天天看点

LINUX下邮件服务器

邮件服务器搭建

############分割线 编译安装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

调整/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';

$attachment_dir = '/usr/local/apache2/htdocs/webmail/attach';

4、通过客户端浏览器访问测试

<a href="http://mail.benet.com/webmail/">http://mail.benet.com/webmail/</a>

#################分割线 添加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 &lt; extmail.sql

[root@www docs]# mysql -u root -p &lt; 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_local_domain = $myhostname

smtpd_sasl_application_name = smtpd

4、建立虚拟用户映射表文件

把已存在的样例模板文件复制到/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 &amp;&amp; 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 {

}

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

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发信认证

有2种方法可以获取:

方法一:

[root@www authlib]# printf "extmail" | openssl base64

方法二:

[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 &amp;&amp; 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 &amp;&amp; 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 &amp;&amp; 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 &amp;&amp; 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

&lt;VirtualHost 192.168.100.2:80&gt;

    DocumentRoot "/usr/local/apache/htdocs/"

&lt;/virtualhost&gt;

    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

&lt;/VirtualHost&gt;

启动apache服务器:

[root@www /]# /usr/local/apache/bin/apachectl start

##设置apache服务开机启动

[root@www /]# echo "/usr/local/apache/bin/apachectl start" &gt;&gt; /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、访问测试

<a href="http://mail.jkw.net/extmail/cgi/">http://mail.jkw.net/extmail/cgi/</a>

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 &amp;&amp; make install

[root@www mail]# cd ../GD-2.41

[root@www GD-2.41]# perl Makefile.PL 

[root@www GD-2.41]# make &amp;&amp; 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 &amp;&amp; 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 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_SESS_DIR = /tmp/extman/

SYS_MYSQL_USER = webman

SYS_MYSQL_PASS = webman

修改httpd.conf配置文件,添加extman的相关设置:

[root@www extman]# vi /usr/local/apache/conf/extra/httpd-vhosts.conf 

    scriptalias /extman/cgi/ "/usr/local/apache/htdocs/extman/cgi/"

    alias /extman /usr/local/apache/htdocs/extman/html

重新启动apache服务:

[root@www extman]# /usr/local/apache/bin/apachectl restart

8、使用客户端登陆extmail邮件系统

<a href="http://mail.jkw.net/extmail">http://mail.jkw.net/extmail</a>

可以使用:

用户名:[email protected]

密码:extmail

域名:extmail.org

登陆收发电子邮件进行测试!!!!

9、使用客户端登陆extman管理界面

<a href="http://mail.jkw.net/extman/">http://mail.jkw.net/extman/</a>

用户名:[email protected]

密码: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" &gt;&gt; /etc/rc.d/rc.local 

[root@www mailgraph_ext]# echo "/usr/sbin/qmonitor-init start" &gt;&gt; /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宣告的地址过滤

smtpd_helo_required = yes

smtpd_helo_restrictions =  reject_invalid_hostname

应用示例3:根据发件人地址过滤

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

<a href="mailto:[email protected]??????????REJECT">[email protected]??????????REJECT</a>

<a href="mailto:marketing@???????????REJECT">marketing@???????????REJECT</a>

fake.jkw.net   ???????   REJECT

[root@mail ~]# postmap /etc/postfix/sender_access

应用示例4:根据收件人地址过滤

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"

3、配置postfix支持调用MailScanner

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、按照书上给出的测试方法进行邮件内容过滤和防病毒机制的测试!

本文转自 帅枫小明 51CTO博客,原文链接:http://blog.51cto.com/576642026/458453,如需转载请自行联系原作者