郵件服務器SASL TLS 反垃圾郵件系統

首先,在作實驗以前,你應當明確



                     發送給郵件服務器(經過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

mysql

  
  
  
  
  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 


(注意@是一個特殊的符號,你或的密碼的時候前面要加 \)
  ( 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份郵件, 一份是你自己的郵件除去病毒。另外一份是發送給你的警告信息,告訴你原本的郵件內含有 病毒。      
相關文章
相關標籤/搜索