首先,在做实验之前,你应当明确



                     发送给邮件服务器(通过25端口)     MTA将邮件存在Mailbox中去。(sasl/TLS)
        MUA ------------------------->MTA------------------------>mailbox
        |                            |                |
        |                  |                   |
        |                  |                     |
        dovecot-----------------------mysql--------------------------->
解析: 首先MUA 是客户端。他可以发送邮件,服务器通过25端口接受客户端发送来的邮件,放到mailbox中(邮件服务器,所有用户的邮件都存放在此)在此MUA向服务 其发送邮件的过程中,可以加上sasl验证,就是你发送邮件的时候给你个验证,看你是否被允许往服务器上存邮件,而TLS是指的在发送的过程中对邮件采用 TLS加密。
倘若你客户端接收邮件的时候,你通过dovecot来接收邮件,你通过配置dovecot来接收,dovecot通过110 143 993 995这几个端口来接收,这几个端口中。110 143是加密的,993 995 是不加密的。首先先去myql数据库中查询与你身份符合的邮件,或者可以说目的地是你的邮件,然后可以通过加密去mailbox去取属于自己的邮件。

还有一种接收邮件的方式:
               80   
webmail------->http---------->extmail
        443(加密的https)
webmail可以通过http接收邮件,通过80端口接收的是没有加密的邮件,通过443接收的是加密的方式接收,需要验证身份。
   
实验一:
smtp是用来发邮件的:
做sasl的时候记得服务器上运行:  postconf -a  有显示: cyrus  dovecot的时候你才可以做。
    (1)yum list cyrus*
    yum install cyrus-sasl.x86_64  cyrus-sasl-sql-2.1.23-8.el6.x86_64 -y
    yum install cyrus-sasl-plain.x86_64      cyrus-sasl-sql.x86_64   -y

    (2) postconf -d | grep smtpd_sasl
         postconf -e smtpd_sasl_auth_enable=yes
         postconf -e smtpd_sasl_authenticated_header=yes
     postconf ­e smtpd_sasl_type=cyrus
     postconf ­e smtpd_sasl_path=smtpd

     postconf -e "smtpd_recipient_restrictions =         permit_sasl_authenticated, permit_mynetworks,reject_unauth_destination"     
   

 (3)cd ~
    cd /pub/docs/postfix
    get postfix-2.8.5.tar.gz
(或者去www.postfix.org网站去下载,注意你搭建服务器的时候要下稳定版,你做测试的话可以下那种实验的版本)
    tar zxf postfix-2.8.5.tar.gz   
    cd postfix-2.8.5/README_FILES

        less SASL_README可以查看帮助文档信息(里面会有如何在/usr/lib64/sasl2中建立的文档及内容)
     (4) cp /etc/sasl2/smtpd.conf  /usr/lib64/sasl2
     vi /usr/lib64/sasl2/smtpd.conf

  1. pwcheck_method: auxprop 
  2. auxprop_plugin: sql 
  3. mech_list: PLAIN LOGIN (大小写都一样的)
  4. sql_engine: mysql 
  5. sql_hostnames: 127.0.0.1 
  6. sql_user: extmail 
  7. sql_passwd: extmail 
  8. sql_database: extmail 
  9. sql_statement: SELECT password FROM mailbox WHERE username = '%u@%r' 
  10. sql_verbose: yes 

邮件服务器SASL TLS 反垃圾邮件系统_邮件服务器


(注意@是一个特殊的符号,你或的密码的时候前面要加 \)
  ( 5) postfix reload       /etc/init.d/postfix restart          
  perl -MMIME::Base64 -e 'print encode_base64 ("\0postmaster\@extmail.org\0sushan");'
出现类似:    AHd4aEBleHRtYWlsLm9yZwB3ZXBN0BSM=
测试: telnet localhost 25
    ehlo localhost
(出现250-AUTH PLAIN LOGIN表示明文密码登录)     
   auth plain AHBvc3RtYXN0ZXJAZXh0bWFpbC5vcmcAc3VzaGFu    若出现   successful   说明你设置的成功了。            这样你用thunderbird做测试:     添加用户: ADD Mail Account
                 username: postmaster
         Email Address: postmaster@extmail.org
         password:  sushan
(你在init.sql中导入的密码)          创建帐号成功。   
在  postmaster@extmail.org中点击右键:setting            然后在Server Setting:设置: Server Name:192.168.0.139                                             User Name : postmaster@extmail.org         Connection security: SSL/TLS                      OK        在Outgoing Server(SMTP)中设置:             编辑:Server Name: 192.168.0.139              Connection security: None              user name : postmaster@extmail.org                 OK           (outing是配置的发送邮件的一端,Server Setting中设置的是为接收邮件做准备的)         然后你可以测试 sendmail(在你发送的时候可能需要你输入密码认证)    getmail 实验二:    步骤(1)cd  /var/spool/postfix/private
        ll auth(没有该文件或目录)
        cd /etc/dovecot/conf.d/
        vi 10-master.conf   
      
  1. unix_listener /var/spool/postfix/private/auth{ 
  2.              mode = 0666 
  3.              user = postfix 
  4.              group = postfix 
  5.              }      
 (2)/etc/init.d/dovecot restart
          ll auth 
 
   (3)   postconf -e smtpd_sasl_path=private/auth
         postconf -e smtpd_sasl_type=dovecot
         postconf -e smtpd_tls_received_header=yes
             postconf -e smtpd_tls_security_level=may
         postconf -e smtpd_tls_cert_file=/etc/postfix/mail.pem
 postconf -e "smtpd_recipient_restrictions = permit_sasl_authenticated,permit_tls_clientcerts, permit_mynetworks,reject_unauth_destination"     
      postconf -e smtpd_tls_session_cache_database=btree:/var/lib/postfix/smtpd_scache
   
 (4)     cd /etc/pki/tls/certs
    make mail.pem
    mv mail.pem /etc/postfix/
  
测试:        telnet localhost 25     ehlo localhost     可以看到 250-STARTTLS说明你设置成功。     然后在Server Setting:设置: Server Name:192.168.0.139                                                User Name : postmaster@extmail.org           Connection security: SSL/TLS                      OK         在Outgoing Server(SMTP)中设置:             编辑:Server Name: 192.168.0.139              Connection security: STARTTLS              user name : postmaster@extmail.org                   OK              用:sendmail              getmail测试 实验三:     反垃圾邮件的处理。     www.ccert.edu.cn     计算机网紧急相应组(犯垃圾邮件系统)     有一个中国反垃圾邮件联盟。在里面有一些黑名单,以及一些白名单。你自己可以申请加入百白名单。        步骤(1)     wget -N -P /usr/share/spamassassin www.ccert.edu.cn/spam/sa/Chinese_rules.cf     CCERT每周更新一次规则集和相应的分数,更新使用CCERT犯垃圾邮件服务在6个月内处理过的垃圾邮件为样本,Chinese_rules.cf会使过滤效果更好。     service spamassassin start        (2)cd ~      lftp 192.168.0.254
     cd /pub/docs/postfix
     get fp-linux-i386-ws.tar.gz
      tar zxf  fp-linux-i386-ws.tar.gz
       cd f-prot
                cd ..
      mv f-prot/ /usr/local/
      cd /usr/local/f-prot
           ll antivir.def
       du -sh antivir.def
        显示:45M       
cd /mnt        lftp 192.168.0.254      cd /pub/docs/postfix
     get antivir.def
    mv antivir.def /usr/local/f-prot
        cd /usr/local/f-prot
           ll antivir.def
       du -sh antivir.def
        显示:58M      
     /usr/local/f-prot/install-f-prot.pl        ./fpupdate  (安装过程中有可能出现缺少动态连接库 /lib/ld-linux.so.2    yum  install /lib/ld-linux.so.2 -y)       (3)cd  /var/www/extsuite/extmail         fpscan /root/(扫描根文件发现没有病毒)                     lftp 192.168.0.254           cd /pub/docs/postfix         get MailScanner­-4.84.3-1.rpm.tar.gz         (或者去www.mailscanner.info去下载)                 tar zxf   MailScanner­-4.84.3-1.rpm.tar.gz         cd MailScanner­-4.84.3-1             ls(可以看到该文件下面全市sec源码文件)        yum install rpm-build (用于生成rpm包。)          ./install.sh(在你安装gcc之后,该脚本很厉害的。可以检测到缺少的问家,并且给你安装上)     (4) mkdir /var/spool/MailScanner/spamassassin;
       chown postfix.postfix /var/spool/MailScanner/*
         
vi  /etc/MailScanner/MailScanner.conf
  1. Run As User = postfix 
  2. Run As Group = postfix 
  3. Incoming Queue Dir = /var/spool/postfix/hold 
  4. Outgoing Queue Dir = /var/spool/postfix/incoming 
  5. MTA = postfix 
  6. Virus Scanners = f­prot 
  7. Always Include Spamassassin report = yes 
  8. Use Spamassassin = yes            
  9. SpamAssassin User State Dir = /var/spool/MailScanner/spamassassin  
       
 (5)echo  /^Received:/  HOLD  >>/etc/postfix/header_checks   
   ll /etc/postfix/header_checks          
postmap /etc/postfix/header_checks         (make sure uncomment header_checks in /etc/postfix/main.cf)    
   (6)         postfix stop
        chkconfig postfix off
        service MailScanner start
(MailScanner启动之后postfix会自动起来的)     
     chkconfig MailScanner   on         (7) Virus test(病毒测试)         Download “eicar.com” from http://www.eicar.org/anti_virus_
test_file.htm
    b) mail test include “eicar.com”.
    或者用thunderbild来发送和接收邮件。
        发送的时候添加附加病毒。
    send
    get mail
   
此时你可以看得到你发送的病毒附件被删除了,然后系统会给你发送2份邮件, 一份是你本身的邮件除去病毒。另一份是发送给你的警告信息,告诉你本来的邮件内含有 病毒。