邮件服务器搭建

############分割线 编译安装Mysql,启动控制Mysql##########
1、卸载已安装的mysql的RPM包
编译安装mysql前,首先查看系统中是否已安装mysql服务器软件:
[root@server01 /]# rpm -qa | grep mysql
[root@server01 /]# rpm -e mysql-server
[root@server01 /]# rpm -e mysql-connector-odbc
[root@server01 /]# rpm -e libdbi-dbd-mysql
[root@server01 /]# rpm -e mysql --nodeps
删除RPM包创建的mysql账号
[root@server01 /]# userdel -r mysql
2、释放MySQL软件包
为了避免发生冲突,建议先卸载掉系统自带的mysql相关软件包
[root@server01 tool]# tar -zxvf mysql-5.0.56.tar.gz
3、添加MySQL用户和组,用于运行和维护mysql服务
[root@server01 tool]# useradd -M -s /sbin/nologin mysql
 -M 选项表示不建立用户宿主目录、
 -s 选项表示指定用户的shell
4、编译前的预配置
[root@server01 mysql-5.0.56]# ./configure --prefix=/usr/local/mysql
5、编译并安装
[root@server01 mysql-5.0.56]# make && make install
6、建立mysql配置文件
在展开的源码包目录中的support-files文件夹下,提供了多个MySQL服务器的配置样例文件,分别适用于不同负载的数据库服务器。一般选择my-medium.cnf文件即可,该配置文件适用于中等负载的数据库,可以满足大多数企业的应用需求
[root@server01 mysql-5.0.56]# cp support-files/my-medium.cnf /etc/my.cnf
7、初始化mysql数据库
以mysql用户的身份执行mysql_install_db脚本,对MySQL数据库进行初始化
[root@server01 mysql-5.0.56]# cd /usr/local/mysql/bin/
[root@server01 bin]# ./mysql_install_db --user=mysql
会在/usr/local/mysql下产生var目录,并在var目录下创建2个默认数据库mysql和test;
8、调整mysql目录权限
修改相关目录的所有权,以便mysql用户可以读写数据库
调整/usr/loca/mysql目录的权限:
[root@server01 local]# ls -ld /usr/local/mysql/
[root@server01 local]# chown -R root.mysql /usr/local/mysql
[root@server01 local]# ls -ld /usr/local/mysql/
调整/usr/local/mysql/var目录的权限:
[root@server01 local]# chown -R mysql /usr/local/mysql/var/
[root@server01 local]# ls -ld /usr/local/mysql/var
9、调整lib库路径
由于Mysql安装到了非标准的路径中。所以还需要将MySQL的库文件路径“/usr/local/mysql/lib/mysql”?加入到系统的库文件搜索路径中,以便在用到时能够自动搜索到。增加库文件搜索路径可以通过修改“/etc/ld.so.conf”文件实现
[root@server01 local]# vi /etc/ld.so.conf
添加路径:
/usr/local/mysql/lib/mysql
[root@server01 local]# ldconfig
10、Mysql的启动控制
(1) 使用mysqld_safe脚本安全启动服务
[root@server01 local]# /usr/local/mysql/bin/mysqld_safe --user=mysql &
(2) 设置MySQL程序的执行路径,主要是为了在执行mysql管理工具时方便
方法一:修改配置文件/etc/profile,使配置永久生效
[root@server01 local]# vi /etc/profile
添加:
PATH=$PATH:/usr/local/mysql/bin
[root@server01 local]# source /etc/profile
方法二:执行export命令,使配置仅当前生效
[root@server01 local]#export PATH=$PATH:/usr/local/mysql/bin
(3) 将Mysql添加为系统服务,主要是为了mysql服务启动的方便
[root@server01 local]# cd /tool/mysql-5.0.56
[root@server01 mysql-5.0.56]# cp support-files/mysql.server /etc/init.d/mysqld
[root@server01 mysql-5.0.56]# chmod +x /etc/init.d/mysqld
[root@server01 mysql-5.0.56]# chkconfig --add mysqld
[root@server01 mysql-5.0.56]# chkconfig mysqld on
这样也就可以使用service mysqld start/restart/stop来对mysql服务进行管理了!

#######分割线 停用/卸载sendmail服务,以避免冲突###########
1、查看当前系统是否安装sendmail
[root@server01 /]# rpm -qa | grep sendmail

2、为了避免与要安装的postfix冲突,可以停用sendmail或卸载
停用方法:
[root@server01 /]# service sendmail stop
[root@server01 /]# chkconfig --level 35 sendmail off
卸载方法:
[root@server01 /]# rpm -e sendmail-cf
[root@server01 /]# rpm -e sendmail --nodeps

3、查看系统是否安装postfix的rpm包
[root@server01 /]# rpm -qa | grep postfix
确认系统没有安装postfix服务器软件包

############分割线 编译安装postfix及vda补丁包##########
1、创建运行邮件系统的用户账号postfix及用户组postfix和postdrop
[root@server01 /]# groupadd -g 1200 postdrop
[root@server01 /]# groupadd -g 1000 postfix
[root@server01 /]# useradd -M -u 1000 -g postfix -G postdrop -s /sbin/nologin postfix
2、解压释放postfix源码包、合并VGA补丁
[root@server01 tools]# tar zxvf postfix-2.4.6.tar.gz
[root@server01 tools]# gunzip postfix-2.4.6-vda-ng.patch.gz
[root@server01 tools]# cd postfix-2.4.6
[root@server01 postfix-2.4.6]# patch -p1 < ../postfix-2.4.6-vda-ng.patch
3、产生postfix编译前的makefiles配置文件
由于实验案例的需要,在这里不能使用rpm包安装的postfix,因为rpm安装的postfix默认不支持mysql。
说明:在编译前需要使用“make maekfiles”命令调整编译参数,以便Postfix支持SASL认证和查询MySQL数据库。
[root@server01 postfix-2.4.6]# make makefiles 'CCARGS=-DHAS_MYSQL -I/usr/local/mysql/include/mysql -DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I/usr/include/sasl' 'AUXLIBS=-L/usr/local/mysql/lib/mysql -lmysqlclient -lz -lm -L/usr/lib/sasl2 -lsasl2'
---------------------------------------------------------------------------------------------------
编译参数CCARGS和AUXLIBS的作用如下:
CCARGS参数:为编译器提供额外的参数。“-I”选项指出标准的额外头文件的存放目录。
AUXLIBS参数:指出位于标准位置之外的额外函数库。如果需要链接SASL、MySQL或任何附加的函数库,而且他们不是存在标准位置(/usr/lib目录),则必须在AUXLIBS参数中指出这些函数库的路径。
---------------------------------------------------------------------------------------------------
4、编译和编译安装
[root@server01 postfix-2.4.6]# make && make install
安装过程需要设置一些安装参数,接受默认设置即可,直接持续回车完成安装。
5、postfix安装后的主要目录和配置文件
----------------------------------------------------
配置文件目录:/etc/postfix/
服务程序目录:/usr/libexec/postfix/
邮件队列目录:/var/spool/postfix/*
邮件管理程序目录:/usr/sbin/*
master主程序的配置文件:/etc/postfix/master.cf
postfix服务的配置文件:/etc/postfix/main.cf
记录了postfix服务的邮件传递等过程信息:/var/log/maillog
-----------------------------------------------------
6、使用postconf工具简化postfix配置文件main.cf,只保留与默认配置不同的参数,提高易读性和可编辑性
[root@server01 /]# cd /etc/postfix/
[root@server01 postfix]# postconf -n > main2.cf
[root@server01 postfix]# mv main.cf main.cf.bak
[root@server01 postfix]# mv main2.cf main.cf
7、启动postfix服务
[root@server01 postfix]# postfix start
查看服务启动后打开的端口:
[root@server01 postfix]# netstat -antp | grep 25
###############分割线 配置DNS服务器,创建相应的资源记录###
1、在对应的区域数据库文件中增加MX记录:
mail    IN A            192.168.1.102
@       IN MX 10                mail.benet.com.
2、测试mx记录
[root@server01 postfix]# nslookup
> set type=mx
> benet.com
Server:         192.168.1.102
Address:        192.168.1.102#53

benet.com       mail exchanger = 10 mail.benet.com.
###################分割线 构建postfix电子邮件系统###########
1、配置postfix,调整运行参数
[root@server01 postfix]# vi /etc/postfix/main.cf
增加如下参数:
inet_interfaces=192.168.1.102,127.0.0.1
myhostname=mail.benet.com
mydomain=benet.com
myorigin=$mydomain
mydestination=$mydomain,$myhostname
home_mailbox=Maildir/

执行命令产生别名数据库文件aliases.db
[root@server01 ~]# newaliases
[root@server01 ~]# ls /etc/aliases.db
否则会导致smtpd程序启动失败!
2、重新加载配置
[root@server01 postfix]# postfix reload
3、建立邮件用户,通过telnet方法发送电子邮件测试
[root@server01 postfix]# useradd -s /sbin/nologin mail01
[root@server01 postfix]# passwd mail01
[root@server01 postfix]# useradd -s /sbin/nologin mail02
[root@server01 postfix]# passwd mail02

[root@server01 /]# telnet 127.0.0.1 25
SMTP常用命令字:
HELO localhost   宣告客户端主机地址
MAIL FROM:       发件人地址
RCPT TO:         收件人地址
DATA             邮件数据
QUIT             退出
################分割线 构建dovecot服务器###########################
1、卸载当前系统已安装的dovecot的rpm包
[root@server01 tools]# rpm -e dovecot
2、编译安装dovecot服务器软件包
[root@server01 tools]# useradd -M -s /sbin/nologin dovecot
[root@server01 tools]# tar zxvf dovecot-1.1.4.tar.gz

[root@server01 tools]# cd dovecot-1.1.4
[root@server01 dovecot-1.1.4]# ./configure --sysconfdir=/etc --with-mysql

[root@server01 dovecot-1.1.4]# make && make install
2、配置dovecot的运行参数
从dovecot的模板配置文件生成简单配置文件
[root@server01 dovecot-1.1.4]# cp /etc/dovecot-example.conf /etc/dovecot.conf

[root@server01 dovecot-1.1.4]# vi /etc/dovecot.conf
修改以下配置参数:(建议通过查找的方式配置以下各项)
protocols = imap pop3
ssl_disable = yes
disable_plaintext_auth = no
mail_location = maildir:~/Maildir
3、创建dovecot的PAM认证文件
[root@server01 dovecot-1.1.4]# vi /etc/pam.d/dovecot
auth    required        pam_nologin.so
auth    include         system-auth
account include         system-auth
session include         system-auth
4、启动dovecot服务
[root@server01 dovecot-1.1.4]# dovecot -c /etc/dovecot.conf
查看dovecot服务开启的端口:
[root@server01 dovecot-1.1.4]# netstat -antp | grep dovecot
5、pop3邮件测试
[root@server01 dovecot-1.1.4]# telnet localhost 110
6、在windows客户端使用OE连接邮件系统发送电子邮件测试
############分割线 添加Webmail邮件界面###########################
准备条件:
apache服务器已经安装并配置好,支持php!
这里的配置环境是apache编译安装的,安装路径为:/usr/local/apache

1、解压squirremail软件包
[root@server01 tools]# tar jxvf squirrelmail-1.4.13.tar.bz2
[root@server01 tools]# mv squirrelmail-1.4.13 /usr/local/apache2/htdocs/webmail
[root@server01 webmail]# cd /usr/local/apache2/htdocs/webmail/
把squirremail的中文补丁包解压出来
[root@server01 webmail]# tar -jxvf /tools/zh_CN-1.4.13-20071220.tar.bz2
2、创建及调整数据目录、附件目录
[root@server01 webmail]# mkdir -p attach data
[root@server01 webmail]# chown -R daemon:daemon attach/ data/
[root@server01 webmail]# chmod 730 attach/
3、创建并修改squirremail的配置文件
[root@server01 webmail]# cp config/config_default.php config/config.php
[root@server01 webmail]# vim config/config.php
修改如下:(如果查找起来比较麻烦,可以查找)
$squirrelmail_default_language = 'zh_CN';
$domain = 'benet.com';
$smtpServerAddress = 'localhost';
$default_charset = 'zh_CN.UTF-8';
$imap_server_type = 'dovecot';
$data_dir = '/usr/local/apache2/htdocs/webmail/data';
$p_w_upload_dir = '/usr/local/apache2/htdocs/webmail/attach';
4、通过客户端浏览器访问测试
http://mail.benet.com/webmail/
#################分割线 添加SMTP的用户认证 ###########################
1、查看系统是否已安装cyrus sasl认证组件
[root@server01 /]# rpm -qa | grep cyrus
在这里如果是rpm安装的,也可以直接使用
2、设置cyrus sasl函数库
[root@server01 /]# vi /usr/lib/sasl2/smtpd.conf
添加参数:
pwcheck_method: saslauthd
3、启动saslauthd服务
[root@server01 /]# service saslauthd start
4、修改postfix主配置文件main.cf
添加sasl认证相关的参数:
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
mynetworks = 127.0.0.1
smtpd_recipient_restrictions = permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination
5、测试SMTP发信认证
在这里测试的方式最好是有2台邮件系统的环境。
测试可以通过smtp命令字测试,也可以通过邮件客户端软件测试。
#################分割线 设置用户别名与邮件群组###########################
1、修改postfix主配置文件,使用/etc/aliases文件作为数据查询表
[root@server01 /]# vi /etc/postfix/main.cf
添加参数:
alias_maps = hash:/etc/aliases
2、修改/etc/aliases配置文件
--配置别名
--配置邮件群发
--配置邮件转发
3、生成查询数据库
[root@server01 /]# newaliases
4、使用客户端访问测试
#################分割线 设置邮件大小、邮箱空间限制###########################
邮件大小限制:
message_size_limit

邮箱空间大小限制:
mailbox_size_limit
 针对Mailbox邮箱、系统用户,缺省值为50MB
virtual_mailbox_limit
 针对使用虚拟用户的情况,缺省值为50MB
quota磁盘配额功能
 针对使用Linux系统用户作为邮件账号的情况
##############分割线 配置Postfix虚拟用户支持###########################
1、下载并对extman邮件管理工具解包
[root@www mail]# tar zxvf extman-0.2.5.tar.gz
2、导入extman的SQL脚本文件
[root@www docs]# pwd
/tool/mail/extman-0.2.5/docs
[root@www docs]# mysql -u root -p < extmail.sql
[root@www docs]# mysql -u root -p < init.sql
3、修改postfix配置文件main.cf,添加支持虚拟用户的参数
[root@www /]# vi /etc/postfix/main.cf
添加如下参数:
#mydestination = $mydomain,$myhostname        //注释掉此参数
virtual_mailbox_base = /mailbox
virtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf
virtual_mailbox_maps = mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf
virtual_mailbox_domains = mysql:/etc/postfix/mysql_virtual_domains_maps.cf
virtual_uid_maps = static:1000
virtual_gid_maps = static:1000
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain = $myhostname
smtpd_sasl_application_name = smtpd
4、建立虚拟用户映射表文件
[root@www docs]# pwd
/tool/mail/extman-0.2.5/docs
把已存在的样例模板文件复制到/etc/postfix目录下:
[root@www docs]# cp mysql_virtual_* /etc/postfix/
5、为虚拟用户设置SMTP发信认证
需要安装courier-authlib应用程序才能提供对位于mysql数据库中的邮件虚拟用户的验证
[root@www mail]# tar jxvf courier-authlib-0.60.2.tar.bz2
[root@www mail]# cd courier-authlib-0.60.2
[root@www courier-authlib-0.60.2]# ./configure --prefix=/usr/local/courier-authlib --without-stdheaderdir --with-authmysql --with-redhat --with-mysql-libs=/usr/local/mysql/lib/mysql --with-mysql-include=/usr/local/mysql/include/mysql
[root@www courier-authlib-0.60.2]# make && make install
[root@www courier-authlib-0.60.2]# make install-configure
6、修改courier-authlib相关配置,并启动服务
[root@www /]# vi /etc/ld.so.conf
增加路径:
/usr/local/courier-authlib/lib/courier-authlib
[root@www /]# ldconfig
7、修改authdaemonrc主配置文件,仅保留authmysql认证方式,去掉其他方式
[root@www /]# cd /usr/local/courier-authlib/etc/authlib/
[root@www authlib]# cp authdaemonrc authdaemonrc.bak
[root@www authlib]# vim authdaemonrc
修改认证模块,如下:
authmodulelist="authmysql"
authmodulelistorig="authmysql"
[root@www authlib]# chmod -R 755 /usr/local/courier-authlib/var/spool/authdaemon/
8、修改配置文件authmysqlrc,设置如何向mysql数据库查询信息
[root@www authlib]# cp authmysqlrc authmysqlrc.bak
[root@www authlib]# vim authmysqlrc
修改如下参数的值:
MYSQL_SERVER            127.0.0.1
MYSQL_USERNAME   extmail
MYSQL_PASSWORD   extmail
MYSQL_SOCKET   /tmp/mysql.sock
MYSQL_DATABASE   extmail
MYSQL_USER_TABLE   mailbox
……
MYSQL_HOME_FIELD  concat('/mailbox/',homedir)
……
MYSQL_MAILDIR_FIELD  concat('/mailbox/',maildir)
[root@www authlib]# chown daemon.daemon authmysqlrc
9、复制courier-authlib脚本,并启动courier-authlib服务
[root@www courier-authlib-0.60.2]# cd /tool/mail/courier-authlib-0.60.2
[root@www courier-authlib-0.60.2]# cp courier-authlib.sysvinit /etc/init.d/courier-authlib
[root@www courier-authlib-0.60.2]# chmod 755 /etc/rc.d/init.d/courier-authlib
[root@www courier-authlib-0.60.2]# chkconfig --level 35 courier-authlib on
[root@www courier-authlib-0.60.2]# service courier-authlib start
10、修改cyrus sasl设置,更改认证方式
[root@www /]# vi /usr/lib/sasl2/smtpd.conf
修改为:
pwcheck_method:authdaemond
authdaemond_path:/usr/local/courier-authlib/var/spool/authdaemon/socket
调整socked目录的权限:
[root@www /]# chmod -R 755 /usr/local/courier-authlib/var/spool/authdaemon/
11、重新启动courier-authlib服务
[root@www /]# service courier-authlib restart
12、配置dovecot,调整邮件存储位置及其他参数
[root@www /]# vim /etc/dovecot.conf
添加并修改参数如下:
mail_location = maildir:/mailbox/%d/%n/Maildir
auth default {
  mechanisms = plain
  passdb sql {
     args = /etc/dovecot-mysql.conf
  }
  userdb sql {
     args = /etc/dovecot-mysql.conf
  }
}
13、设置配置文件/etc/dovecot-mysql.conf
[root@www /]# cd /etc
[root@www etc]# touch dovecot-mysql.conf
[root@www etc]# vi dovecot-mysql.conf
添加并设置参数如下:
driver = mysql
connect = host=localhost dbname=extmail user=extmail password=extmail
default_pass_scheme = CRYPT
password_query = SELECT username AS user,password AS password FROM mailbox WH
ERE username = '%u'
user_query = SELECT maildir,uidnumber AS uid,gidnumber AS gid FROM mailbox WH
ERE username = '%u'
14、建立虚拟用户的邮箱目录
[root@www /]# mkdir -p /mailbox/extmail.org/postmaster/Maildir/
[root@www /]# cd /mailbox/extmail.org/postmaster/Maildir/
[root@www Maildir]# chown -R postfix:postfix /maibox/
[root@www Maildir]# killall dovecot
[root@www Maildir]# dovecot
15、测试对虚拟用户的SMTP发信认证
获得虚拟“用户postmaster@extmail.org密码extmail”的加密的字符串
有2种方法可以获取:
方法一:
[root@www authlib]# printf "postmaster@extmail.org" | openssl base64
[root@www authlib]# printf "extmail" | openssl base64
方法二:
[root@www authlib]# perl -e 'use MIME::Base64; print encode_base64("postmaster@extmail.org")'
[root@www authlib]# perl -e 'use MIME::Base64; print encode_base64("extmail")'
测试:
[root@www authlib]# telnet localhost 25
##############分割线 Extmail邮件使用及管理平台Extman###########################
1、编译安装相关的perl依赖包
[root@www /]# rpm -qa | grep Unix
[root@www /]# rpm -qa | grep DBI
perl-DBI-1.52-2.el5
[root@www /]# rpm -qa | grep DBD
perl-DBD-MySQL-3.0007-2.el5

卸载RPM安装的perl-DBD-MySQL
[root@www /]# rpm -e perl-DBD-MySQL
##安装Unix-Syslog-1.1.tar.gz
[root@www mail]# tar zxvf Unix-Syslog-1.1.tar.gz
[root@www mail]# cd Unix-Syslog-1.1
[root@www Unix-Syslog-1.1]# perl Makefile.PL
[root@www Unix-Syslog-1.1]# make && make install

##安装DBI-1.607.tar.gz
[root@www mail]# tar zxvf DBI-1.607.tar.gz
[root@www mail]# cd DBI-1.607
[root@www DBI-1.607]# perl Makefile.PL
[root@www DBI-1.607]# make && make install

##安装DBD-mysql-4.011.tar.gz 
[root@www mail]# tar zxvf DBD-mysql-4.011.tar.gz
[root@www mail]# cd DBD-mysql-4.011
[root@www DBD-mysql-4.011]# perl Makefile.PL
[root@www DBD-mysql-4.011]# make && make install
2、编译安装apache,修改apache配置文件httpd.conf
##查看当前系统是否存在rpm的http,如果存在则卸载
[root@www /]# rpm -qa | grep httpd
##释放apache软件包
[root@www tool]# tar zxvf httpd-2.2.9.tar.gz
##编译前的预配置
[root@www tool]# cd httpd-2.2.9
[root@www httpd-2.2.9]# ./configure --prefix=/usr/local/apache --with-mysql=/usr/local/mysql --enable-so --enable-rewrite --enable-track-vars --enable-cgi --with-zlib --enable-mods-shared=all --enable-suexec --with-suexec-caller=daemon --with-suexec-docroot=/usr/local/apache/htdocs
##编译并安装
[root@www httpd-2.2.9]# make && make install
##查看apache是否安装完成
[root@www httpd-2.2.9]# ls /usr/local/apache/
##配置apache,并启动httpd服务
修改httpd.conf配置文件:
Listen 192.168.100.2:80
ServerName 192.168.100.2:80
DirectoryIndex index.html index.cgi
去掉以下3个配置参数的注释:
Include conf/extra/httpd-languages.conf
Include conf/extra/httpd-info.conf
Include conf/extra/httpd-vhosts.conf

配置httpd基于域名的虚拟主机:
[root@www /]# vim /usr/local/apache/conf/extra/httpd-vhosts.conf
创建虚拟主机:
NameVirtualHost 192.168.100.2
<VirtualHost 192.168.100.2:80>
    DocumentRoot "/usr/local/apache/htdocs/"
    ServerName www.jkw.net
</virtualhost>

<VirtualHost 192.168.100.2:80>
    DocumentRoot "/usr/local/apache/htdocs/extmail/html/"
    ServerName mail.jkw.net
    scriptalias /extmail/cgi/ "/usr/local/apache/htdocs/extmail/cgi/"
    alias /extmail /usr/local/apache/htdocs/extmail/html
    suexecusergroup postfix postfix
</VirtualHost>
启动apache服务器:
[root@www /]# /usr/local/apache/bin/apachectl start
##设置apache服务开机启动
[root@www /]# echo "/usr/local/apache/bin/apachectl start" >> /etc/rc.d/rc.local
3、安装并配置extmail套件
[root@www mail]# tar zxvf extmail-1.0.5.tar.gz -C /usr/local/apache/htdocs/
[root@www mail]# cd /usr/local/apache/htdocs/
[root@www htdocs]# mv extmail-1.0.5/ extmail
[root@www htdocs]# cd extmail/
[root@www extmail]# chown -R postfix:postfix cgi
4、建立webmail.cf配置文件
[root@www extmail]# cp webmail.cf.default webmail.cf
[root@www extmail]# vim webmail.cf
修改以下参数的值:
SYS_USER_LANG = zh_CN
SYS_USER_CHARSET = gb2312
SYS_CONFIG = /usr/local/apache/htdocs/extmail/
SYS_LANGDIR = /usr/local/apache/htdocs/extmail/lang
SYS_TEMPLDIR = /usr/local/apache/htdocs/extmail/html
SYS_MAILDIR_BASE = /mailbox
SYS_MYSQL_USER = extmail
SYS_MYSQL_PASS = extmail
SYS_MYSQL_DB = extmail
SYS_MYSQL_HOST = localhost
SYS_MYSQL_SOCKET = /tmp/mysql.sock
SYS_AUTHLIB_SOCKET = /usr/local/courier-authlib/var/spool/authdaemon/socket
SYS_G_ABOOK_FILE_PATH = /usr/local/apache/htdocs/extmail/globabook.cf
5、访问测试
http://mail.jkw.net/extmail/cgi/
6、部署extman web管理界面
##安装perl支持软件包GD、file-tail及rrdtool绘图引擎工具
[root@www mail]# tar zxvf GD-2.41.tar.gz
[root@www mail]# tar zxvf File-Tail-0.99.3.tar.gz
[root@www mail]# tar -zxvf gd-2.0.33.tar.gz
[root@www mail]# cd gd-2.0.33
[root@www gd-2.0.33]#  ./configure
[root@www gd-2.0.33]#  make && make install
[root@www mail]# cd ../GD-2.41
[root@www GD-2.41]# perl Makefile.PL
[root@www GD-2.41]# make && make install
[root@www GD-2.41]# cd ../File-Tail-0.99.3
[root@www File-Tail-0.99.3]# perl Makefile.PL
[root@www File-Tail-0.99.3]# make && make install
[root@www File-Tail-0.99.3]# cd ..
[root@www mail]# rpm -ivh rrdtool-1.2.23-3.el5.i386.rpm
[root@www mail]# rpm -ivh rrdtool-perl-1.2.23-3.el5.i386.rpm
7、安装并配置extman套件
[root@www mail]# tar zxvf extman-0.2.5.tar.gz -C /usr/local/apache/htdocs/
[root@www mail]# cd /usr/local/apache/htdocs/
[root@www htdocs]# mv extman-0.2.5/ extman
[root@www htdocs]# cd extman/
[root@www extman]# chown -R postfix.postfix cgi
[root@www extman]# mkdir /tmp/extman
[root@www extman]# chown -R postfix.postfix /tmp/extman/
[root@www extman]# vi webman.cf
修改参数如下:
SYS_CONFIG = /usr/local/apache/htdocs/extman/
SYS_LANGDIR = /usr/local/apache/htdocs/extman/lang
SYS_TEMPLDIR = /usr/local/apache/htdocs/extman/html
SYS_MAILDIR_BASE = /mailbox
SYS_SESS_DIR = /tmp/extman/
SYS_MYSQL_USER = webman
SYS_MYSQL_PASS = webman
SYS_MYSQL_DB = extmail
SYS_MYSQL_HOST = localhost
SYS_MYSQL_SOCKET = /tmp/mysql.sock
修改httpd.conf配置文件,添加extman的相关设置:
[root@www extman]# vi /usr/local/apache/conf/extra/httpd-vhosts.conf
<VirtualHost 192.168.100.2:80>
    DocumentRoot "/usr/local/apache/htdocs/extmail/html/"
    ServerName mail.jkw.net
    scriptalias /extmail/cgi/ "/usr/local/apache/htdocs/extmail/cgi/"
    alias /extmail /usr/local/apache/htdocs/extmail/html
    scriptalias /extman/cgi/ "/usr/local/apache/htdocs/extman/cgi/"
    alias /extman /usr/local/apache/htdocs/extman/html
    suexecusergroup postfix postfix
</VirtualHost>
重新启动apache服务:
[root@www extman]# /usr/local/apache/bin/apachectl restart
8、使用客户端登陆extmail邮件系统
http://mail.jkw.net/extmail
可以使用:
用户名:postmaster@extmail.org
密码:extmail
域名:extmail.org
登陆收发电子邮件进行测试!!!!
9、使用客户端登陆extman管理界面
http://mail.jkw.net/extman/
可以使用:
用户名:root@extmail.org
密码:extmail*123*
登陆管理extman邮件系统。
10、查看邮件系统的图形化日志信息
启用 mailgraph_ext 图形日志插件
[root@www html]# ln -sf /usr/local/apache/htdocs/extman/addon/mailgraph_ext/mailgraph-init /usr/sbin/
[root@www html]# ln -sf /usr/local/apache/htdocs/extman/addon/mailgraph_ext/qmonitor-init /usr/sbin/
[root@www html]# cd /usr/local/apache/htdocs/extman/addon/mailgraph_ext/
[root@www mailgraph_ext]# mkdir /usr/local/mailgraph_ext
[root@www mailgraph_ext]# cp mailgraph_ext.pl qmonitor.pl /usr/local/mailgraph_ext/
[root@www mailgraph_ext]# mailgraph-init start
[root@www mailgraph_ext]# qmonitor-init start
[root@www mailgraph_ext]# echo "/usr/sbin/mailgraph-init start" >> /etc/rc.d/rc.local
[root@www mailgraph_ext]# echo "/usr/sbin/qmonitor-init start" >> /etc/rc.d/rc.local
设置完成后就可以通过extman管理界面中的"图形日志"链接查看邮件系统的图形化日志信息。
说明:如果这里日志无法查看,可以回头检查之前的组件安装及上面的配置是否正确。
##########分割线 基于邮件地址的过滤###########################
通过配置postfix主配置文件/etc/main.cf可以实现邮件过滤的功能。
----------------------------------------------------------------
根据客户端的主机名/地址过滤   smtpd_client_restrictions
根据HELO主机名地址过滤        smtpd_helo_required
                              smtpd_helo_restrictions
根据发件人的地址过滤          smtpd_sender_login_maps
                              smtpd_sender_restrictions
根据收件人的地址过滤          smtpd_recipient_restrictions
----------------------------------------------------------------
应用示例1:根据主机名/地址过滤
[root@mail ~]# vi /etc/postfix/access
……
192.168.100      REJECT
192.168.100.1    OK
jkw.net       REJECT
[root@localhost ~]# postmap  /etc/postfix/access
[root@mail ~]# vi /etc/postfix/main.cf
……
smtpd_client_restrictions = check_client_access hash:/etc/postfix/access
示例测试需要的虚拟域、虚拟邮件用户、客户端需要自己创建,并测试过滤是否有效。

应用示例2:根据HELO宣告的地址过滤
[root@mail ~]# vi /etc/postfix/main.cf
……
smtpd_helo_required = yes
smtpd_helo_restrictions =  reject_invalid_hostname

应用示例3:根据发件人地址过滤
[root@mail ~]# vi /etc/postfix/main.cf
……
smtpd_sender_login_maps =
  mysql:/etc/postfix/mysql_virtual_sender_maps.cf,
  mysql:/etc/postfix/mysql_virtual_alias_maps.cf
smtpd_sender_restrictions =permit_mynetworks,reject_sender_login_mismatch, reject_non_fqdn_sender, reject_unknown_sender_domain,
  check_sender_access hash:/etc/postfix/sender_access

[root@mail ~]# vi /etc/postfix/sender_access
……
ads@xxxx.com??????????REJECT
marketing@???????????REJECT
fake.jkw.net   ???????   REJECT
[root@mail ~]# postmap /etc/postfix/sender_access

应用示例4:根据收件人地址过滤
[root@mail ~]# vi /etc/postfix/main.cf
……
smtpd_recipient_restrictions =
  permit_mynetworks,                     //允许本邮件系统发出的邮件
  permit_sasl_authenticated,             //允许通过sasl认证的用户作为发件人
  reject_unauth_destination,             //收件人地址域不包括在Postfix授权网络内时拒绝
  reject_non_fqdn_recipient,             //收件人地址域不属于合法FQDN时拒绝
  reject_unknown_recipient_domain        //收件人地址域未知或不存在时拒绝
###########分割线 邮件内容过滤及防病毒###########################
1、安装MailScanner调度工具
[root@www mail]# tar zxvf MailScanner-4.75.11-1.rpm.tar.gz
[root@www mail]# cd MailScanner-4.75.11-1
[root@www MailScanner-4.75.11-1]# ./install.sh
说明:
mailscanner的安装会提示需要安装多个perl软件包,可以挂载光盘查找安装即可!
需要大概25分钟时间,较长,需要耐心!
2、修改配置文件/etc/MailScanner/MailScanner.conf
[root@mail ~]# vi /etc/MailScanner/MailScanner.conf          
……
Run As User = postfix                         
Run As Group = postfix
Incoming Queue Dir = /var/spool/postfix/hold
Outgoing Queue Dir = /var/spool/postfix/incoming
MTA = postfix
Required SpamAssassin Score = 7
High SpamAssassin Score = 10
Spam Actions = deliver header "X-Spam-Status: Yes"
High Scoring Spam Actions = delete forward spam@extmail.org
3、配置postfix支持调用MailScanner
[root@mail ~]# vi /etc/postfix/main.cf
……
header_checks = regexp:/etc/postfix/header_checks
4、调整过滤队列目录,启动MailScanner服务
[root@mail ~]# vi /etc/postfix/header_checks
/^Received:/  HOLD
[root@mail ~]# cd /var/spool/MailScanner/
[root@mail MailScanner]# chown -R postfix.postfix  incoming
[root@mail MailScanner]# chown -R postfix.postfix quarantine
[root@mail MailScanner]# service MailScanner start
5、安装 SpamAssassin 过滤器
从RHEL5光盘中查找安装即可,包括存在依赖关系的相关perl软件包
启动 spamassassin 服务
 service spamassassin start
6、安装 F-Prot 病毒扫描工具
[root@www mail]# tar zxvf fp-Linux-i686-ws.tar.gz
[root@www mail]# cd f-prot/
[root@www f-prot]# ./install-f-prot.pl
7、按照书上给出的测试方法进行邮件内容过滤和防病毒机制的测试!

转载于:https://blog.51cto.com/576642026/458471

LINUX下邮件服务器相关推荐

  1. linux 下邮件服务器,Linux 下搭建Postfix邮件服务器

    Linux 下搭建Postfix邮件服务器详解: 1.首先关闭sendmail服务 service sendmail stop 2.chkconfig sendmail off(关闭开机自启动) 3. ...

  2. linux下邮件服务器 qmail sendmail postfix - 三种MTA的比较

    关于sendmail/qmail/postfix孰优孰劣,以及部署邮件系统的时候该选哪一个的讨论已经重复了千百次了.但事实往往并不是A好B坏,或B好A坏,必须根据场合和应用的要求来定.但虽然如此,大多 ...

  3. Linux下Web服务器应用之基础简介

    Linux下Web服务器应用之基础简介 一.web服务器基本知识: WWW 是 World Wide Web 的缩写 URL:<协定>://<主机地址或主机名>[:port]/ ...

  4. linux 企业邮件服务器_什么是Linux服务器,为什么您的企业需要一个?

    linux 企业邮件服务器 IT组织努力通过提高生产率和提供服务的速度来交付业务价值,同时保持足够的灵活性以结合云,容器和配置自动化等创新技术. 无论是在裸机,虚拟机,容器,私有云还是公共云上运行的现 ...

  5. CentOS4.4下邮件服务器架设笔记之windows AD整合功能实现

    1.通过"CentOS4.4下邮件服务器架设笔记之邮件网关功能实现"这一篇文章,我们已经实现了邮件网关功能,但是对于microsoft ad 平台下exchange邮件系统用户来说 ...

  6. linux下samba服务器防病毒

    Linux系统下对samba服务器防病毒保护,现在很多反病毒都支持,有开源的(Clam),现在要装的是在linux下带有两个引擎(clam+escan)的防病毒eScan,废话少说,还是来看下安装和界 ...

  7. 免费邮件服务器软件 linux,U-Mail for linux 64-bit 邮件服务器软件下载|U-Mail for linux 64-bit 邮件服务器软件官方下载-太平洋下载中心...

    U-Mail for linux 64-bit 邮件服务器软件是网络工具频道下深受用户喜爱的软件,太平洋下载中心提供U-Mail for linux 64-bit 邮件服务器软件官方下载. U-Mai ...

  8. linux下apache服务器的配置和管理(启动、重启、中断服务)

    2019独角兽企业重金招聘Python工程师标准>>> linux下apache服务器的配置和管理 一.两个重要目录: Apache有两个重要的目录: 1.配置目录/etc/http ...

  9. Linux下SVN服务器同时支持Apache的http和https及svnserve独立服务器三种模式且使用相同的访问权限账号...

    1.在服务器上安装配置SVN服务: 2.配置SVN服务同时支持Apache的http和svnserve独立服务器两种模式访问: 3.Apache的http和svnserve独立服务器两种模式使用相同的 ...

最新文章

  1. 「AI不惑境」网络深度对深度学习模型性能有什么影响?
  2. linux shell中 if else以及大于、小于、等于逻辑表达式
  3. nginx学习总结五(nginx反向代理)
  4. 多喜临门,BCH币价应声上涨
  5. LA 2659 poj 3076 zoj 3122 Sudoku(精确覆盖 + DLX)
  6. 知识图谱实践篇(五):KBQA Demo
  7. 转载 linux内核 asmlinkage宏
  8. 网络协议 反扒机制 fidder 抓包工具
  9. Js+XML 操作 [ZT]
  10. pymysql ︱mysql的基本操作与dbutils+PooledDB使用
  11. OpenGL ES简介(一)
  12. python3.7 倒计时
  13. 【POJ2752】Seek the Name, Seek the Fame(hash)
  14. Axure RP9授权码(亲测有效)
  15. 基于matlab的运动目标检测
  16. 导出计算机配置信息吗,4种方式:查看电脑配置信息,没有必要用第三方软件。...
  17. 【行业了解】天眼查、企查查、启信宝、爱企查
  18. 爬取网易云数据并且可视化展示
  19. 高速公路ETC卡签之我见2-卡片消费
  20. 云宏与航天科工706所一起获得2018年国家发改委“互联网+”重大工程项目支持

热门文章

  1. pytest文档3-pycharm运行pytest
  2. Jenkins+Gradle+Git+Pyger+二维码搭建Android自动打包平台
  3. 洛谷P1474 [USACO 2.3]货币系统 Money Systems [2017年4月计划 动态规划04]
  4. 【转载】C/C++中long long与__int64的区别
  5. PhantomJS快速入门教程(转)
  6. JS解析XML文件和XML字符串
  7. 千图成像_「原创」千图成像,用PS给人物制作全图的拼人像
  8. matlab中的方波信号图片_电气信息类专业课程之matlab系统仿真 第十章 DBPSK调制解调器(9)...
  9. 计算Gaunt积分 m1m2<0
  10. 用神经网络二分类吸引子与排斥子