构建Postfix+Mysql+Dovecot邮件系统,实现以Web页面访问的功能、添加SASL认证以及TLS加密传输


Postfix邮件系统的组成及原理


构建Postfix+Mysql+Dovecot邮件系统,实现以Web页面访问的功能、添加SASL认证以及TLS加密传输


用到的主要协议和软件


1.邮件用户代理(MUA)

     MUA是一个邮件系统的客户端程序,它提供了阅读、发送、和接受电子邮件的用户接口,是用户和MTA之间的接口。常用软件Windows下有outlookFoxmail等;Linux下有ThunderbirdEvolution.

MUA至少具有如下3个功能:

       a.撰写邮件

       b.显示邮件

       c.处理邮件


2.邮件传输代理(MTA)

       MTA主要用于存储和转发邮件,也可以说是邮件服务器软件的总称。常用软件:windows下的exchange,LinuxSendmailPostfixQmail等;

MTA主要功能:

       a.接收和传递由客户端发送的邮件

       b.维护邮件队列,以便客户端不必一直等到邮件真正发送出去

       c.接收客户的邮件,并将邮件放置在缓冲区存储,直到用户连接从而收取邮件

       d.有选择的转发和拒绝转发接收到的、目的地为另一个主机的消息


3.邮件分发代理(MDA)

       MDA主要负责将MTA接收的邮件传递到收件人的邮箱(mailbox)


4.电子邮件基本的工作流程

       用户----MUA---MTA...........MTA---MUA----用户

5.相关协议

   1).简单邮件传输协议SMTP

       监听25端口;

       邮件的发送过程中有两处要用到这个协议:

           a.发送邮件的MUAMTA建立链接并发送邮件

           b.MTA之间的邮件转发

   2)邮件访问协议

       a.POP3(Post Office Protocol)

           Pop协议要检测用户的登录名和口令,然后将用户的邮件从服务器移动到用户本地桌面系统的MUA中,监听110端口


       b.IMAP(Internet message access protocol)

           IMAPPop的替代品,踏出了提供与pop相同的基本功能外,还增加了对邮箱同步的支持,即IMAP提供了如何远程维护服务器上的邮件箱的功能,监听143端口    



Postfix系统更新,添加支持mysql模块,构建邮件系统


 1.Postfix添加Mysql模块

       #tar zxf postfix-2.10.2.tar.gz


#cd postfix-2.10.2


#make -f Makefile.init makefiles             //需要db*-develgcc支持


#make upgrade          //make -f 后边不添加mysql的头文件及库文件参数,makeupgrade更新后postfix将不支持mysql服务,可以使用postconf-m 查看,若不支持mysql需要重新解压postfix包重新更新,如下




首先需要安装mysql-devel开发包


#yum install mysql-devel


#make -f Makefile.init makefiles \


>‘CCARGS=-DHAS_MYSQL -I/usr/include/mysql‘ \                      //指定mysql的头文件所在目录


>‘AUXLIBS=-L/usr/lib64/mysql -lmysqlclient -lz -lm‘                   //指定mysql的库文件所在目录


#make upgrade                                        //更新后,再使用postconf-m查看可以支持mysql模块


2.安装PhpMyAdmin,web页面形式操作Mysql数据库,建立邮件用户信息:


       PhpMyAdmin是一个以PHP为基础,以Web-Base方式架构在网站主机上的MySQL的数据库管理工具,让管理者可用Web接口管理MySQL数据库。借由此Web接口可以成为一个简易方式输入繁杂SQL语法的较佳途径,尤其要处理大量资料的汇入及汇出更为方便。其中一个更大的优势在于由于phpMyAdmin跟其他PHP程式一样在网页服务器上执行,但是您可以在任何地方使用这些程式产生的HTML页面,也就是于远端管理MySQL数据库,方便的建立、修改、删除数据库及资料表。也可借由phpMyAdmin建立常用的php语法,方便编写网页时所需要的sql语法正确性。


   #yum install httpd php php-mysql

   #tar -zxf phpMyAdmin-3.5.7-all-languages.tar.gz -C /var/www/html

   #cd /var/www/html/

   #mv phpMyAdmin-3.5.7-all-languages/ phpmyadmin

   #cd phpmyadmin/

   #cp config.sample.inc.php config.inc.php


   #vi config.inc.php

          $cfg[‘blowfish_secret‘] = ‘tian‘;                     //第二个引号中必须要有字符串,可任意


   #/etc/init.d/httpd start


用浏览器访问127.0.0.1/phpmyadmin就可以以web形式访问mysql,用户名密码仍未mysql


浏览器访问mysql后,建立库(linux),在建立表email,结构内容如下


              username  varchar(25)          test@ty.com

              password  varchar(20)          test

              domain    varchar(15)          ty.com

              mailbox   varchar(15)          ty.com/test/


#useradd -u 800 email             //添加邮件用户email


mysql> grant all on linux.* to email@localhost identified by‘email‘;

   Query OK, 0 rows affected (0.00 sec)                   //用户授权


   postconf -d             //查看默认设置

   postconf -n             //查看当前设置    


3.配置Postfix

   [root@ty ~]# postconf -e virtual_mailbox_base=/home/email/

   [root@ty ~]# postconf -e virtual_gid_maps=static:800

   [root@ty ~]# postconf -e virtual_uid_maps=static:800


#vi mysql-alias.cf


       user = email

       password = email

       dbname = linux

       table = email

       select_field = username

       where_field = username


#vi mysql-domains.cf


       user = email

       password = email

       dbname = linux

       table = email

       select_field = domain        

       where_field = domain


#vi mysql-mailboxs.cf


       user = email

       password = email

       dbname = linux

       table = email

       select_field = mailbox

       where_field = username


#postconf -e "virtual_alias_maps =mysql:/etc/postfix/mysql-alias.cf"

#postconf -e "virtual_mailbox_domains =mysql:/etc/postfix/mysql-domains.cf"

#postconf -e "virtual_mailbox_maps =mysql:/etc/postfix/mysql-mailboxs.cf"



#postmap -q "test@ty.com"mysql:/etc/postfix/mysql-alias.cf

#postmap -q "ty.com"mysql:/etc/postfix/mysql-domains.cf

#postmap -q "test@ty.com"mysql:/etc/postfix/mysql-mailboxs.cf


现在就可以测试发送mailtest@ty.com,若发送成功则会在/home/email目录下生成ty.com邮件目录


--------------------------------------------------------------


         Postfix只承担邮件系统中的MTA功能,一个完整的邮件系统还需要很多其他的功能,如POP/IMAP服务、Web界面客户端、垃圾邮件过滤等,这些功能Postfix都是无法完成的,需要第三方软件的支持;


下面就开是添加各个软件:


Postfix+mysql+dovecot:


      Dovecot软件是一种在Linux下使用的开源软件,他可以提供POP3IMAP服务。Dovecot将安全作为主要设计目标,速度快、占用内存小、配置简单,可以在各种规模的场合使用。


在实际使用中,常见的邮件系统使PostfixDovecotMysql三者配合搭建的邮件服务器。其中Postfix作为邮件发送服务,Dovecot作为邮件接受服务,而Mysql作为帐号存储服务器。




    #yum install dovecot dovecot-mysql


   #vi dovecot.conf


          listen = *, ::


   #cd /etc/dovecot/conf.d


   #vi 10-auth.conf

         !include auth-system.conf.ext

         !include auth-sql.conf.ext


   #vi 10-mail.conf

         mail_location = maildir:/home/vemail/%d/%n   //maildir不变,只变后边路径

         first_valid_uid = 888


   #cat auth-sql.conf.ext   //需要有/etc/dovecot/dovecot-sql.conf.ext文件


   #cd /usr/share/doc/dovecot-2.0.9/example-config


   #cp dovecot-sql.conf.ext /etc/dovecot/




   #vi dovecot-sql.conf.ext


          driver = mysql

          connect = host=localhost dbname=vmail user=email password=email

          default_pass_scheme = PLAIN

          password_query = \

              SELECT username, domain, password \

              FROM postfix WHERE username = ‘%u‘  

          user_query = SELECT mailbox, 888AS uid, 888 AS gid FROMpostfix WHERE

  username = ‘%u‘                                                        //from+表,select+表的内容选项


配置文件修改好后,测试dovecot是否成功


#telnet localhost 110


      Trying ::1...

      Connected to localhost.

      Escape character is ‘^]‘.

      +OK Dovecot ready.

      user test@ty.com

      +OK

      pass test

      +OK Logged in.  


若登录出现Loggedin.dovecot成功




---------------------------------------------------------------------------



添加Extmail软件,以web方式操作邮件系统


       Extmail是一个以perl语言编写,面向大容量/ISP级应用,免费的高性能Webmail软件,主要包括ExtMailExtman两个部分的程序套件。ExtMail套件用于提供从浏览器中登录、使用邮件系统Web操作界面,而Extman套件用于提供从浏览器中管理邮件系统的Web操作界面。

       Extmail 套件可以提供给普通邮件用户使用,而Extman套件可以提供给邮件系统管理员使用.


extmail包含两个包:


     extmail-1.2.tar.gz     //为前端邮件工具,配置文件为webmail.cf


     extman-1.1.tar.gz      //为后端管理工具         webman.cf




#mkdir /var/www/extsuite


#tar zxf extmail-1.2.tar.gz -C /var/www/extmail


#tar zxf extman-1.2.tar.gz -C /var/www/extman


#cd extman/docs


#vi init.sql          //可以修改postmasterroot的密码


#mysql -uroot -pwestos < extmail.sql   //导入数据库


#mysql -uroot -pwestos < init.sql


#cd extmail




#cp mysql_virtual_alias_maps.cf /etc/postfix/mysql-alias.cf


#cp mysql_virtual_domains_maps.cf /etc/postfix/mysql-domains.cf


#cp mysql_virtual_mailbox_maps.cf /etc/postfix/mysql-mailbox.cf


#postmap -q "postmaster@extmail.org"mysql:/etc/postfix/mysql-alias.cf


#postmap -q "postmaster@extmail.org"mysql:/etc/postfix/mysql-mailbox.cf


#postmap -q "extmail.org"mysql:/etc/postfix/mysql-domains.cf


现在就可以测试给postmaster@extmail.orgmail,若/home/vmail/下创建目录成功,则ok


#cp webmail.cf.default webmail.cf


#vi webmail.cf


 SYS_LOG_ON = 0                 //日志功能关闭


 SYS_MAILDIR_BASE = /home/vmail   //为系统用户,邮件存放目录


 SSYS_MYSQL_USER = extmail       //extmail库的用户,默认extmail.sql生成


 SYS_MYSQL_PASS = extmail


#chown -R vmail.vmail cgi/       //修改cgi目录及其子目录权限,使该用户可以访问


#vi /etc/httpd/conf/httpd.conf   //添加邮件虚拟用户




    NameVirtualHost *:80                       //添加内容INSTALL文件里有,只需根据自己的实际情况稍做改动即可


    <VirtualHost *:80>        


    ServerName mail.example.com


DocumentRoot /var/www/extsuite/extmail/html/


    ScriptAlias /extmail/cgi /var/www/extsuite/extmail/cgi


   Alias /extmail /var/www/extsuite/extmail/html


   SuexecUserGroup vmail vmail       //此处为系统用户


     </VirtualHost>




#/etc/init.d/httpd restart


使用extmail客户端时,必须先用mail命令发送一封邮件,以激活extmail




构建Postfix+Mysql+Dovecot邮件系统,实现以Web页面访问的功能、添加SASL认证以及TLS加密传输

登录extmail


注册新用户使会用到extman后台管理端,所以须配置好extman后才可以注册





会出现的问题

ERROR1

构建Postfix+Mysql+Dovecot邮件系统,实现以Web页面访问的功能、添加SASL认证以及TLS加密传输


因为没有配置文件/var/www/extsuite/extmail/webmail.cf,所以出现如此问题,执行


#cp webmail.cf.default webmail.cf即可





ERROR2:

构建Postfix+Mysql+Dovecot邮件系统,实现以Web页面访问的功能、添加SASL认证以及TLS加密传输

因为/extmail/cgi/index.cgi权限不符,须执行


#chown -R email.email cgi/    //-R递归,email.email为系统用户,user.group



ERROR3

构建Postfix+Mysql+Dovecot邮件系统,实现以Web页面访问的功能、添加SASL认证以及TLS加密传输

少了perl-CGI包支持


#yum install perl-CGI



ERROR4

构建Postfix+Mysql+Dovecot邮件系统,实现以Web页面访问的功能、添加SASL认证以及TLS加密传输


配置文件webmail.cf中日志功能打开(SYS_LOG_ON= 1),但没有指定目录,将其关闭=0即可,或者在cpan.org网站中下载Unix-Syslog包安装后,即可:


#tar -zxf Unix-Syslog-1.1.tar.gz

#cd Unix-Syslog

 #perl Makefile.PL                                  //可能会出现报错

                  Can‘t locate ExtUtils/MakeMaker.pm in @INC

                                                                   //缺少perl-ExtUtils-MakeMaker

  #yum install perl-ExtUtils-MakeMaker

再次执行,如下即可


 #make install


注:mysql里设置的域不以定要和httpd.conf中的虚拟主机的ServerName相同,登录时填写的域须和mysql中一致,http中的虚拟主机domain须加入/etc/hosts里地址解析,否则用extmail客户端登录不上



extman后台管理:


#cd /var/www/extsuite/extman


#cp webman.cf.default webman.cf


将以下两行添加到httpd.conf中(即上一步添加extmail内容内)


  ScriptAlias /extman/cgi /var/www/extsuite/extman/cgi


  Alias /extman /var/www/extsuite/extman/html


重启apache


 #vi  webman.cf

       SYS_MAILDIR_BASE = /home/email

       SYS_CRYPT_TYPE = plain

登录extman管理端


构建Postfix+Mysql+Dovecot邮件系统,实现以Web页面访问的功能、添加SASL认证以及TLS加密传输

#vim webman.cf


 SYS_CAPTCHA_ON = 1    //验证码开关,此时没有安装验证码包,先关闭(=0)就可以进入extman


 SYS_CAPTCHA_LEN = 6   //控制验证码长度



可能会出现的ERROR:

构建Postfix+Mysql+Dovecot邮件系统,实现以Web页面访问的功能、添加SASL认证以及TLS加密传输

解决:#vi webman.cf  


       SYS_SESS_DIR = /tmp/extman/   //去掉后边的extman目录或者在/tmpmkdir目录,并设置其权限和tmp相同      


现在就可以进入extmail后台管理端extman,但是会在System菜单中出现Nosuch file or directory问题,如下

构建Postfix+Mysql+Dovecot邮件系统,实现以Web页面访问的功能、添加SASL认证以及TLS加密传输


所以需要执行:

#vi /etc/rc.local                


 /var/www/extsuite/extman/daemon/cmdserver &    //添加此行


#/var/www/extsuite/extman/daemon/cmdserver &

构建Postfix+Mysql+Dovecot邮件系统,实现以Web页面访问的功能、添加SASL认证以及TLS加密传输

执行后刷新extman网页,此问题就会消失




想要支持验证码功能,须安装perl-GD-2.45-1.el6.rfx.x86_64包,因为这包存在依赖性,所以选择yum的本地安装


#yum localinstall perl-GD-2.45-1.el6.rfx.x86_64


打开验证码开关,刷新既可以看到验证码


vi webmail.cf


 SYS_SHOW_SIGNUP = 1   //控制*注册



安装验证码包:


yum localinstall perl-GD-2.45-1.el6.rfx.x86_64.rpm //localinstall安装本地包,并检查依赖性,安装成功后,在webman.cf中打开验证功能,刷新extman网页如下,就可以使用验证码功能,防止恶意登录、注册

构建Postfix+Mysql+Dovecot邮件系统,实现以Web页面访问的功能、添加SASL认证以及TLS加密传输




开启/var/log/maillog日志记录功能:


vi /var/www/extsuite/extmail/webmail.cf


  SYS_LOG_ON=1        //打开日志功能


刷新extmail前端,会进不去报错没有Unix::syslog,则需要安装之,可以到cpan.org上下载Unix-Syslog-1.1.tar.gz解压安装


#cd Unix-Syslog

#perl Makefile.PL   //会提示缺少安装包


  Can‘t locate ExtUtils/MakeMaker.pm in @INC


#yum install perl-ExtUtils-MakeMaker             //安装完后继续执行perlMakefile.PL


  #perl Makefile.PL                                //若如下显示,则依赖性解决,可以makeinstall

构建Postfix+Mysql+Dovecot邮件系统,实现以Web页面访问的功能、添加SASL认证以及TLS加密传输


   #make install


extman图形日志的安装:


现在还不支持图形日志,进入extman后端管理web界面下点击GraphLog会出现如下报错

构建Postfix+Mysql+Dovecot邮件系统,实现以Web页面访问的功能、添加SASL认证以及TLS加密传输

需要rrdtool-perl包的支持


安装好后仍不能显示图形,仍需以下步骤


  #cd /var/www/extsuite/extman/addon


  #cp -r mailgraph_ext/ /usr/local/


  #cd /usr/local/mailgraph_ext


  #./mailgraph-init start    

构建Postfix+Mysql+Dovecot邮件系统,实现以Web页面访问的功能、添加SASL认证以及TLS加密传输


报错,未安装File-Tail-0.99.3.tar.gz


进入解压后的目录,安装


  #perl MakeFile.PL


  #make


  #make install


  #cd /usr/local/mailgraph_ext

  #./mailgraph-init start

构建Postfix+Mysql+Dovecot邮件系统,实现以Web页面访问的功能、添加SASL认证以及TLS加密传输

报错,未安装perl-Time-HiRes


  #yum install perl-Time-HiRes.x86_64


  #./mailgraph-init start


构建Postfix+Mysql+Dovecot邮件系统,实现以Web页面访问的功能、添加SASL认证以及TLS加密传输

无报错,安装完成;

现在刷新extman就可以看到图形日志


vi /etc/rc.local      //加入开机启动


  /usr/local/mailgraph_ext/mailgrahp-init start  //添加



-------------------------------------------------------------------------------------------------------


基于web页面的邮件系统添加dovecot支持(Postfix+Extmail+Mysql+Dovecot)


基于前边extmaildovecot已安装,现在只需修改dovecot配置即可

#vi/etc/dovecot/conf.d/10-mail.conf

       mail_location =maildir:/home/email/%d/%n/Maildir

       first_valid_uid= 800

#vi/etc/dovecot/dovecot-sql.conf.ext


       connect =host=localhost dbname=extmail user=extmail password=extmail

       defdefault_pass_scheme= PLAIN

       password_query= \

           SELECTusername, domain, password \

           FROM mailboxWHERE username = ‘%u‘

        user_query =SELECT maildir, 800 AS uid, 800 AS gid FROM mailbox WHERE

username =‘%u‘


dovecot配置好后,启动,测试dovecot(使用的端口110)是否配置正确

构建Postfix+Mysql+Dovecot邮件系统,实现以Web页面访问的功能、添加SASL认证以及TLS加密传输

如此,则配置成功


---------------------------------------------------------------------------------------


使Postfix系统支持cyrus-sasl认证功能(SMTP认证机制)


     Postfix服务器没有认证功能,任何一个客户端都可以通过SMTPPostfix服务器进行连接,然后使用RCPT命令要求Postfix服务器转发邮件到收件人所在邮件服务器,也就是说,互联网上的任何计算机,不需要使用帐号就可以通过这台邮件服务器向任何邮箱发送邮件,这无疑为垃圾邮件的发送敞开了大门。

     因此,我们需要在SMTP服务器中使用身份认证机制,只有通过身份认证的用户才能发送SMTP请求服务器发送邮件到目的地。认证帐号一般与接受邮件的帐号相同,可以是操作系统帐号,也可以是虚拟帐号,或者是保存在数据库中的用户帐号。


可以通过CyrusSASLCyrusSimple Authentication and Security Layer)软件包实现。


#yum  install cyrus-sasl-devel cyrus-sasl-plain

#cd  postfix-2.10.2


#make  -f Makefile.init makefiles  ‘CCARGS=-DHAS_MYSQL  -I/usr/include/mysql  -DUSE_SASL_AUTH  -DUSE_CYRUS_SASL  -I/usr/include/sasl  -DUSE_TLS‘‘AUXLIBS=-L/usr/lib64/mysql  -lmysqlclient  -lz  -lm  -L/usr/lib64  -lsasl2  -lssl  -lcrypto‘


/postfix-2.10.2/README_FILES/

目录下查看各个模块的安装介绍

           SASL_README

           TLS_README

           MYSQL_README


需要根据情况修改各模块的头文件和库文件目录


查看sasl头文件和库文件目录rpm-ql cyrus-sasl-devel


#makeupgrade

#/etc/init.d/postfixstart


#postconf-e "smtpd_sasl_auth_enable = yes"                     //激活sasl加密,smtpd不是smtp

smtpd_sasl_security_options= noanonymous  //限制某些登录方式,此处禁止采用匿名用户登录方式


验证认证方式:

#postconf-a                      //postconf命令用来显示Postfix当前的配置状态,-a选项表示输出当前

cyrus                               支持的SASL认证类型

dovecot


重启服务,测试:

telnetlocalhost 25  //测试显示有字段AUTHLOGIN PLAIN,则开启成功

构建Postfix+Mysql+Dovecot邮件系统,实现以Web页面访问的功能、添加SASL认证以及TLS加密传输


        EHLO向服务器标识用户身份。发送者能欺骗,说谎,但一般情况下服务器都能检测到。可以鉴别接收方是否支持ESMTP(扩展SMTP)协议,接收方将返回所有支持的扩展命令。

         ESMTP就是对标准 SMTP协议进行的扩展。它与 SMTP服务的区别仅仅是,使用 SMTP发信不需要验证用户帐户,而用ESMTP 发信时,服务器会要求用户提供用户名和密码以便验证身份。验证之后的邮件发送过程与SMTP 方式没有两样。


#vi/etc/sasl2/smtpd.conf     //README_FILES/SASL_README文件中Thesql plugin部分定义


       pwcheck_method: auxprop

       auxprop_plugin:sql

       mech_list:PLAIN LOGIN CRAM-MD5 DIGEST-MD5 NTLM

       sql_engine:mysql

       sql_hostnames:127.0.0.1

       sql_user:extmail

       sql_passwd:extmail

       sql_database:extmail

       sql_select:SELECT password FROM mailbox WHERE username = ‘%u@%r‘


               //需要根据mysql中的实际设置修改          

               //注意:一定要把例子中@符两边的单引号‘‘去掉,否则会报SQL语法错误



安装cyrus-sasl-sql-2.1.23-13.el6_3.1.x86_64.rpm  使sasl认证信息加入mysql


   #yumlocalinstall cyrus-sasl-sql-2.1.23-13.el6_3.1.x86_64.rpm


   #perl-MMIME::Base64 -e ‘print encode_base64("\0test\@ty.com\0test");‘

       AHRlc3RAdHkub3JnAHRlc3Q=


                       //括号里边加入数据库extmail里的邮件用户,因为@为特殊字符,需要用\转义,

                       //the\0 is a null byte



   #telnetlocalhost 25


       Trying127.0.0.1...

       Connectedto localhost.

       Escapecharacter is ‘^]‘.

       220ty2.com ESMTP Postfix

       ehlo  localhost

       250-ty2.com

       250-PIPELINING

       250-SIZE10240000

       250-VRFY

       250-ETRN

       250-AUTHCRAM-MD5 DIGEST-MD5 LOGIN PLAIN

       250-ENHANCEDSTATUSCODES

       250-8BITMIME

       250DSN

       authplain   AHRlc3RAdHkub3JnAHRlc3Q=

       2352.7.0 Authentication successful

       quit

       2212.0.0 Bye

       Connectionclosed by foreign host.    //user发送mail时的认证加入成功


------------------------------


TLS使邮件传输链路加密


#postconf-e "smtpd_tls_security_level = may"    //激活TLS加密


#postconf-e "smtpd_tls_session_cache_database =btree:/var/lib/postfix/smtpd_scache"


#cd/etc/pki/tls/certs


#makepostfix.pem       //制作证书和key


#postconf-e smtpd_tls_cert_file=/etc/pki/tls/certs/postfix.pem  //指定证书和key的目录


#telnetlocalhost 25     //测试显示STARTTLS字符,则ok

构建Postfix+Mysql+Dovecot邮件系统,实现以Web页面访问的功能、添加SASL认证以及TLS加密传输


打开thunderbird,在OutgoingServer中编辑,ConnectionsecuritySTARTTLS即可

构建Postfix+Mysql+Dovecot邮件系统,实现以Web页面访问的功能、添加SASL认证以及TLS加密传输



smtpd_client_restrictions= check_client_access hash:/etc/postfix/access //可以设置用此服务器发送邮件的主机(客户端)




dovecot收信:   未加密        加密端口

pop3  110        995(pop3s)

imap4 143        993(imap4s)

postfix发信 SMTP25    


sasl认证是通过25端口给发件用户加一认证,即发mail时需要认证


telnetlocalhost 110  //测试dovecot是否配置成功


telnetlocalhost 25   //测试25端口


tls是加密25端口,使邮件传输过程加密

postconf -a     //postconf命令用来显示Postfix当前的配置状态,-a选项表示输出当前支持的SASL认证类型


--------------------------------------------------------------------------------------------


Postfix邮件系统反垃圾反病毒:



#yuminstall spamassassin      //反垃圾包


下载反病毒安装包:


       clamav-0.97.6-1.el6.rf.x86_64.rpm

       clamav-db-0.97.6-1.el6.rf.x86_64.rpm

       clamav-milter-0.97.6-1.el6.rf.x86_64.rpm

       clamd-0.97.6-1.el6.rf.x86_64.rpm


需要libmilter.so.1.0支持,所以得安装sendmail-milter,官网rpm.pbone.net


   #yumlocalinstall sendmail-milter-8.14.4-8.el6.x86_64.rpm

   #yumlocalinstall clam*    


   #freshclam          //安装完成后更新病毒库,要保证能够上网


   #/etc/init.d/clamdstart        //启动后可以使用clamdscan命令扫描病毒(这个speed快,但必须启动clamd),也可以用clamscan命令扫描(这个speed慢,不用再启动其他程序)


   #clamdscan/tmp                 //扫描/tmp目录下是否有病毒文件


   #clamdscan--remove /tmp        //扫描并直接删除病毒文件


-------------------------


安装mail扫描工具MailScanner-4.84.5-3.rpm.tar.gz


   #tarzxf MailScanner-4.84.5-3.rpm.tar.gz

   #cdMailScanner-4.84.5-3

   #./install.sh      //此时安装会出现error

           Youneed to install the patch command from your Linux distribution.

           Onceyou have done that, please try running this script again.


   需要rpm-build包的支持

   #yuminstall rpm-build    


   #./install.sh    

   #/etc/init.d/postfixstop


   #chkconfigpostfix off      //关闭postfix及开机启动,因为开机自启动MailScanner时会调用postfix启动程序而开启postfix,即就是postfix交由MailScanner控制,并扫描mail



配置MailScannerpostfix


   #vi/etc/MailScanner/MailScanner.conf


            Run As User = postfix

            Run As Group = postfix

           IncomingQueue Dir = /var/spool/postfix/hold

           OutgoingQueue Dir = /var/spool/postfix/incoming

           MTA= postfix

           IncomingWork User =

           IncomingWork Group =

           IncomingWork Permissions = 0640

           VirusScanners = clamav

           SpamAssassinUser State Dir = /var/spool/MailScanner/spamassassin



   #mkdir/var/spool/MailScanner/spamassassin


   #chown-R postfix.postfix /var/spool/MailScanner/spamassassin


   #MailScanner--lint          //MailScanner语法测试,第一次安装会出现一些问题


构建Postfix+Mysql+Dovecot邮件系统,实现以Web页面访问的功能、添加SASL认证以及TLS加密传输


四个ERROR,解决如下:


1.unrar未安装,下载rarlinux-3.8.0.tar.gz解压makeinstall


#whichunrar     //查看unrar目录

/usr/local/bin/unrar

#ln-s /usr/local/bin/unrar /usr/bin/    //必须放在/usr/bin/下,所以使用软链接指向其

构建Postfix+Mysql+Dovecot邮件系统,实现以Web页面访问的功能、添加SASL认证以及TLS加密传输

构建Postfix+Mysql+Dovecot邮件系统,实现以Web页面访问的功能、添加SASL认证以及TLS加密传输



2.ERROR:The "envelope_sender_header" in yourspam.assassin.prefs.conf

   ERROR:is not correct, it should match X-yoursite-MailScanner-From


#vi/etc/MailScanner/spam.assassin.prefs.conf

       envelope_sender_headerX-yoursite-MailScanner-From



3.config:failed to parse line, skipping, in "/etc/mail/spamassassin/ mailscanner.cf": use_auto_whitelist 0


#vi/etc/MailScanner/spam.assassin.prefs.conf

       use_auto_whitelist0               //将此行注释



4.Cannotfind Socket (/tmp/clamd.socket) Exiting! at/usr/lib/MailScanner/MailScanner/SweepViruses.pm line 3838


查看/etc/clamd.conf中Socket如下:

LocalSocket    /var/run/clamav/clamd.sock


根据这个修改MailScanner.conf里的Socket

   ClamdSocket = /var/run/clamav/clamd.sock



本文出自 “划舞鱼” 博客,请务必保留此出处http://ty1992.blog.51cto.com/7098269/1368905

构建Postfix+Mysql+Dovecot邮件系统,实现以Web页面访问的功能、添加SASL认证以及TLS加密传输,布布扣,bubuko.com

构建Postfix+Mysql+Dovecot邮件系统,实现以Web页面访问的功能、添加SASL认证以及TLS加密传输

上一篇:[转]SQLServer跨服务器访问数据库(openrowset/opendatasource/openquery)


下一篇:使用MySQL5.6安装Magento时提示innodb 不支持