歡迎您光臨本站 註冊首頁

Sendmail + SASL + TLS

←手機掃碼閱讀     火星人 @ 2014-03-04 , reply:0

Sendmail + SASL + TLS

 STARTTLS介紹
 
 一、SMTP和STARTTLS
 
 SMTP協議默認使用明文在網路傳送用戶名和密碼,這是十分危險的。為此,sendmail使用TLS來解決這個潛在的危險問題。TLS不僅可以用來加密用戶名和密碼,還可以加密傳送信件的內容。Sendmail使用starttls命令來啟動一個SMTP會話加密進程(TLS會話)。Micorsoft的outlook軟體和其它的許多MUA也支持STARTTLS。
 
 STARTTLS能實現什麼樣的功能?
 1.實現對一次E-MAIL通訊中server端以及client端彼此身份的校驗;
 2.加密傳輸信件(身份不能確認的情況下亦可以實現);
 3.認證轉發;
 
 由於SMTP是一個存儲轉發協議,並且一封電子郵件的轉交投遞可能會涉及到多台SMTP伺服器,因此,一個MUA就算能夠通過認證並把E-MAIL加密傳輸至將要經過的第一台SMTP伺服器,讓最終用戶的SMTP通過發送端的身份認證,並認為信件傳送過程中沒有被篡改也是不太可能的。故而,RFC文件聲明說一個實現公共Email的SMTP伺服器是不必苛求於在傳送郵件中實現上述功能的。不過,對於一個私有網路中的郵件傳輸來講,能夠以要求必需提供有效證書來實現嚴格的身份認證和加密傳輸,因為我們可以將證書部署到需要傳送EMAIL服務的每個客戶端。
 
 當然,儘管基於TLS的SMTP服務所提供的功能不像基於SSL的HTTP服務那樣完美,但在伺服器和客戶端之間的一次認證會話間加密傳輸用戶名和密碼卻是完全可以實現的。
 
 二、STARTTLS的工作方式:
 
 1.sendmail作為服務端
 
 在一次SMTP會話中,客戶端(可能是其它的SMTP伺服器,也可能是一個終端用戶的MUA)通過EHLO命令來探測伺服器是否支持STARTTLS。如果伺服器支持此種方式,客戶就把STARTTLS列入可以使用的命令列裡面。此時,客戶端便可以通過STARTTLS命令來和伺服器建立STARTTLS話,伺服器以「準備好啟動TLS」來回應客戶端。
 
 如果客戶端能夠提供一個SSL證書,Sendmail將會從中提取出有關CA的信息並和自己信任的CA列表進行比較,並嘗試將證書中的common name和客戶端的主機名加以比較。同時,Sendmail還將會檢查客戶端的證書是否已經存在於自己的訪問資料庫中。如果一切順利通過,Sendmail將繼續後面的會話。實際使用中,即使Sendmail無法驗證客戶端的證書,它也會接受客戶端會話。我們可以在TLS日誌中找到有關的詳細信息,如果驗證順利進行,將會出現類同「verify=OK"之類的日誌記示,否則,則可能顯示為「verify=FAIL」或者「verify=NO」。
 
 在無法驗證客戶端身份的情況下,Sendmail也將嘗試實現信件加密傳送。此時,日誌中如果記錄有類同「ciper=DHE-RSA-AES256-SHA,bit=128/128"的信息,表示加密成功實現。加密協商會話成功實現后,伺服器端可能會使用基於PLAIN或者LOGIN的SMTP AUTH方式來驗證身份,此時,STARTTLS將會把用戶各和密碼加密傳送,從而在很大程度保證了會話的安全性。
 
 2.Sendmail作為客戶端
 
 當Sendmail伺服器為最終用戶或者其它的Sendmail轉發信件時,它將作為一台客戶端與其它的SMTP伺服器通信。此時,如果服務端支持STARTTLS,即使雙方沒有配置證書的情況下,Sendmail(前提是也支持STARTTLS)仍將通過STARTTLS命令與其建立通信會話。其過程類同前面所述。
 
 日誌中將會記錄類同「STARTTLS=client」(客戶端)或者「STARTTLS=server」(服務端)以及有關版本號、校驗方式、加密方式和加密位數等信息。
 
 安裝過程
 
 本文將以RedHat9.0為例
 
 一、啟用cyrus-sasl
 
 本文使用系統自帶的saslauthd認證服務,請檢查你的系統是否已經安裝如下軟體,如果沒有的話,請自行安裝
 
 1.# rpm -aq |grep cyrus-sasl
 
     cyrus-sasl-devel-2.1.10-4
     cyrus-sasl-2.1.10-4
     cyrus-sasl-plain-2.1.10-4
     cyrus-sasl-md5-2.1.10-4
 
 2.新建/usr/local/lib/sasl2/Sendmail.conf,添加如下內容:
    pwcheck_method: saslauthd
    mech_list: login plain digest-md5
 
 3.啟動服務
   #service saslauthd start
   #chkconfig --level 35 saslauthd on
 
 
 二、安裝openssl0.98e
 
 1.下載相關軟體包至/usr/local/src目錄
   http://www.openssl.org/source/openssl-0.9.8e.tar.gz
 
 2.安裝
 
 #cd /usr/local/src
 #tar zxvf openssl-0.9.8e.tar.gz
 #cd openssl-0.9.8e
 #./config shared zlib
 #make
 #make test
 #make install
 mv /usr/bin/openssl /usr/bin/openssl.OFF
 mv /usr/include/openssl /usr/include/openssl.OFF
 ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl
 ln -s /usr/local/ssl/include/openssl /usr/include/openssl
 
 
 3.配置庫文件搜索路徑
   #echo "/usr/local/ssl/lib" >> /etc/ld.so.conf
   #ldconfig -v
 
 4.查看openssl的版本號,以驗正是否安裝正確
 #openssl version -a
 OpenSSL 0.9.8e 23 Feb 2007
 built on: Sat Mar 24 21:24:41 CST 2007
 platform: linux-elf
 options:  bn(64,32) md2(int) rc4(idx,int) des(ptr,risc1,16,long) idea(int) blowfish(idx)
 compiler: gcc -fPIC -DOPENSSL_PIC -DZLIB -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall -DOPENSSL_BN_ASM_PART_WORDS -DOPENSSL_IA32_SSE2 -DSHA1_ASM -DMD5_ASM -DRMD160_ASM -DAES_ASM
 OPENSSLDIR: "/usr/local/ssl"
 
 三、安裝Sendmail-8.14.0
 
 1.下載相關軟體包至/usr/local/src目錄
 ftp://ftp.sendmail.org/pub/sendmail/sendmail.8.14.0.tar.gz
 
 2.先檢查本機是否已經開啟了MTA,若有,先關閉並卸載它們,如:
 
 #service sendmail stop
 #rpm -e sendmail
 
 3. 安裝:
 
 解壓原碼包
 #cd /usr/local/src
 #tar zxvf sendmail.8.14.0.tar.gz
 #cd sendmail-8.14.0
 
 編輯site.config.m4文件
 #vi devtools/Site/site.config.m4
 添加:
 APPENDDEF(`confENVDEF',`-DSASL=2')
 APPENDDEF(`conf_sendmail_LIBS',`-lsasl2')
 APPENDDEF(`confINCDIRS',`-I/usr/local/ssl/include')dnl
 APPENDDEF(`conf_sendmail_ENVDEF',`-DSTARTTLS')
 APPENDDEF(`conf_sendmail_ENVDEF',`-D_FFR_SMTP_SSL')
 APPENDDEF(`conf_sendmail_LIBS',`-lssl -lcrypto -L/usr/local/ssl/lib')
 
 編譯並安裝
 #sh Build
 #mkdir -pv /usr/man/man{1,8}
 #sh Build install
 
 
 拷貝cf目錄至/usr/share/sendmail
 #mkdir -pv /usr/share/sendmail
 #cp -a cf /usr/share/sendmail
 #cd cf/cf
 #cp generic-linux.mc sendmail.mc
 
 編輯sendmail.mc文件,添加如下內容:
 
 include(`/usr/share/sendmail/cf/m4/cf.m4')dnl
 FEATURE(`access_db')dnl
 define(`confAUTH_MECHANISMS',`A p y')dnl
 define(`confAUTH_MECHANISMS',`LOGIN PLAIN DIGEST-MD5')dnl
 TRUST_AUTH_MECH(`LOGIN PLAIN DIGEST-MD5')dnl
 define(`confCACERT_PATH',`/etc/mail/certs')dnl
 define(`confCACERT',`/etc/mail/certs/cacert.pem')dnl
 define(`confSERVER_CERT',`/etc/mail/certs/mysmtp.pem')dnl
 define(`confSERVER_KEY',`/etc/mail/certs/mysmtp.pem')dnl
 define(`confCLIENT_CERT',`/etc/mail/certs/mysmtp.pem')dnl
 define(`confCLIENT_KEY',`/etd/mail/certs/mysmtp.pem')dnl
 dnl define(`confTLS_SRV_OPTIONS',`V')dnl
 FEATURE(`no_default_msa')dnl
 DAEMON_OPTIONS(`Port=25,Name=MTA,M=Ea')dnl
 DAEMON_OPTIONS(`Family=inet,Port=465,Name=MTA-SSL,M=s')dnl
 
 安裝sendmail.cf及submit.cf文件
 #make install-cf
 #cp sendmail.mc /etc/mail
 
 添加必須的用戶組(redhat9.0上,已經存在此用戶和組)
 #groupadd –g 51 -r smmsp
 #useradd –u 51 -r -g smmsp -s /sbin/nologin smmsp
 
 添加必要的配置文件
 #cd /etc/mail
 #touch aliases access  virtusertable
 
 添加接收郵件的域
 #echo "benet.org">local-host-names
 #echo "mail.benet.org">>local-host-names
 
 配置轉發域(此步為常規步驟,為本機配置郵件轉發許可)
 #echo "localhost  RELAY" >> access
 #echo "127.0.0.1  RELAY" >> access
 
 生成相應的資料庫文件
 #makemap hash access.db < access
 # makemap hash virtusertable < virtusertable
 
 改變相關目錄的許可權,以保證安全(RedHat 9.0上已經設置正確)
 #mkdir -pv /var/spool/{mail,mqueue,clientqueue}
 #chmod 775       /var/spool/mail
 #chown root.mail /var/spool/mail
 
 #chmod 755       /var/spool/mqueue
 #chown root.mail /var/spool/mqueue
 
 #chmod 770         /var/spool/clientmqueue
 #chown smmsp.smmsp /var/spool/clientmqueue
 
 chmod 4555      /usr/sbin/sendmail
 chown root.smmsp /usr/sbin/sendmail
 
 四、為TLS生成證書:
 
 #cd /etc/mail/certs/
 
 生成CA的簽名及證書
 # openssl req -new -x509 -keyout cakey.pem -out cacert.pem -days 3650
 Generating a 1024 bit RSA private key
 ...............................++++++
 .....++++++
 writing new private key to 'cakey.pem'
 Enter PEM pass phrase:      <----此處輸入CA密碼
 Verifying - Enter PEM pass phrase:    <----重複上個密碼
 -----
 You are about to be asked to enter information that will be incorporated
 into your certificate request.
 What you are about to enter is what is called a Distinguished Name or a DN.
 There are quite a few fields but you can leave some blank
 For some fields there will be a default value,
 If you enter '.', the field will be left blank.
 -----
 Country Name (2 letter code) :CN    <----此處為國家名
 State or Province Name (full name) :HA    <----此處為地域(省)名
 Locality Name (eg, city) []:ZZ    <----此處為城市名
 Organization Name (eg, company) :BENET  <----此處為單位名
 Organizational Unit Name (eg, section) []:    <----此處為部門名
 Common Name (eg, YOUR name) []:    <----此處為你的名字或伺服器的名字,也可省略
 Email Address []:redhat@benet.org    <----此處為管理郵件
 
 生成Sendmail的證書
 # openssl req -nodes -new -x509 -keyout mysmtp.pem -out mysmtp.pem -days 3650
 Generating a 1024 bit RSA private key
 ..++++++
 ...................................++++++
 writing new private key to 'mysmtp.pem'
 -----
 You are about to be asked to enter information that will be incorporated
 into your certificate request.
 What you are about to enter is what is called a Distinguished Name or a DN.
 There are quite a few fields but you can leave some blank
 For some fields there will be a default value,
 If you enter '.', the field will be left blank.
 -----
 Country Name (2 letter code) :CN
 State or Province Name (full name) :HA
 Locality Name (eg, city) []:ZZ
 Organization Name (eg, company) :BENET
 Organizational Unit Name (eg, section) []:
 Common Name (eg, YOUR name) []:
 Email Address []:redhat@benet.org
 
 查看證書內容
 # openssl x509 -noout -text -in mysmtp.pem
 Certificate:
     Data:
         Version: 3 (0x2)
         Serial Number:
             e7:3a:cf:c4:2c:e9:71:8f
         Signature Algorithm: sha1WithRSAEncryption
         Issuer: C=CN, ST=HA, L=ZZ, O=BENET/emailAddress=redhat@benet.org
         Validity
             Not Before: Mar 24 14:19:21 2007 GMT
             Not After : Mar 21 14:19:21 2017 GMT
         Subject: C=CN, ST=HA, L=ZZ, O=BENET/emailAddress=redhat@benet.org
         Subject Public Key Info:
             Public Key Algorithm: rsaEncryption
             RSA Public Key: (1024 bit)
                 Modulus (1024 bit):
                     00:f6:17:f8:27:be:9b:c6:b9:b0:b3:0b:0c:62:c1:
                     7e:cd:19:80:62:b4:83:91:ec:a3:b1:83:df:77:6f:
                     12:83:56:94:6c:e3:e0:5a:a7:20:75:60:d3:92:00:
                     18:9a:e5:fc:3a:27:93:bc:10:60:4b:f3:d1:b4:43:
                     5c:af:17:f9:de:72:04:3a:8e:12:f1:19:c5:11:28:
                     9c:08:f6:fe:b0:db:e6:c5:8c:c1:c8:d2:86:f2:0a:
                     d7:b3:a3:e3:08:d0:5b:8c:5a:03:d7:87:0d:4e:56:
                     62:2b:54:3c:f7:ea:70:03:53:96:4d:bc:ac:f8:de:
                     cd:2b:87:6f:24:79:d0:8b:a3
                 Exponent: 65537 (0x10001)
         X509v3 extensions:
             X509v3 Subject Key Identifier:
                 C7:1B:1C:D0:58:B2:A7:19:7F:F1:8C:DB:D0:C9:49:24:A4:BA:B3:FA
             X509v3 Authority Key Identifier:
                 keyid:C7:1B:1C:D0:58:B2:A7:19:7F:F1:8C:DB:D0:C9:49:24:A4:BA:B3:FA
                 DirName:/C=CN/ST=HA/L=ZZ/O=BENET/emailAddress=redhat@benet.org
                 serial:E7:3A:CF:C4:2C:E9:71:8F
             X509v3 Basic Constraints:
                 CA:TRUE
     Signature Algorithm: sha1WithRSAEncryption
         a5:c0:58:52:f4:db:76:78:d3:05:d3:36:a9:7e:ef:05:4a:01:
         93:3f:64:48:8a:66:36:20:25:c1:b2:93:b6:a4:05:1b:6e:55:
         c6:21:ec:70:a1:41:d8:0f:cd:46:d6:8f:f2:e8:48:c2:0d:5f:
         9e:2f:dd:af:61:f6:ca:08:16:20:7c:b5:e6:38:58:d8:e7:cd:
         92:d9:35:00:93:70:5d:04:d0:4c:d0:33:e6:49:18:30:a7:1b:
         0e:3b:d0:3f:82:ce:6e:03:da:96:32:7b:8a:69:9e:8e:0b:8b:
         ab:ea:9a:40:c8:b3:a8:f5:62:a5:0e:ab:bf:24:47:aa:02:ef:
 
         61:0f
 
 
 修改證書許可權,如果沒有此步驟,啟動sendmail時會報starttls啟動錯誤
 #chmod 400 mysmtp.pem
 
 五、啟動並驗正Sendmail
 
 1.執行如下命令,查看sendmail是否sasl2方式的身份認證(按我們如上的步驟編譯安裝,sendmail是支持此認證的)及starttls:
 
 # sendmail -d0.1 -bv root
 Version 8.14.0
  Compiled with: DNSMAP LOG MATCHGECOS MILTER MIME7TO8 MIME8TO7
                 NAMED_BIND NETINET NETUNIX NEWDB PIPELINING SASLv2 SCANF
                 STARTTLS USERDB XDEBUG
 
 ============ SYSTEM IDENTITY (after readcf) ============
       (short domain name) $w = mail
   (canonical domain name) $j = mail.benet.org
          (subdomain name) $m = benet.org
               (node name) $k = mail.benet.org
 ========================================================
 root... deliverable: mailer local, user root
 
 請查看執行結果中是否顯示為橙色字體的部分。如果有,則可進行以下步驟,否則,請檢查前面的編譯安裝過程是否有遺漏或錯誤之處,或者查看日誌以檢查錯誤之所在。也可以運行如下命令仔細檢查問題所在。
 
 #sendmail -O loglevel=14 -bs
 
 2.啟動sendmail,
 
 #sendmail -bd -q30m
 
 注:Sendmail的命令參數的含義如下:
    -b:指定Sendmail在後台運行,並且監聽埠25的請求。
    -d:指定Sendmail以Daemon方式運行(守護進程)。
    -q:當Sendmail無法將郵件成功地發送到目的地時,它會將郵件保存在隊列里。該參數指定郵件在隊列里保存的時間。例子里的30m表示保留30分鐘。
 
 3.查看Sendmail對於認證及TLS的支持是否已經打開
 
 # telnet localhost 25
 Trying 127.0.0.1...
 Connected to localhost.
 Escape character is '^]'.
 220 mail.benet.org ESMTP Sendmail 8.13.8/8.13.8; Sun, 25 Mar 2007 01:46:08 +0800
 ehlo localhost    <--此句為輸入的命令
 250-mail.benet.org Hello localhost.localdomain , pleased to meet you
 250-ENHANCEDSTATUSCODES
 250-PIPELINING
 250-EXPN
 250-VERB
 250-8BITMIME
 250-SIZE
 250-DSN
 250-ETRN
 250-AUTH LOGIN PLAIN DIGEST-MD5
 250-STARTTLS
 250-DELIVERBY
 250 HELP
 
 請注意查看輸出中有沒有類同橙色的兩行。
 
 六、開啟基於SSL的IMAP服務
 
 1.檢查是否已經安裝imap軟體包,如果沒有,請自行安裝
 #rpm -qa |grep imap
 imap-2001a-18
 imap-devel-2001a-18
 
 2.開啟imaps服務
 #chkconfig imaps on
 # chkconfig --list imaps
 imaps           on
 
 3.重新啟動xinetd服務
 #service xinet.d restart
 
 4.查看是否已經監聽相應的993埠:
 #netstat -tnlp |grep :993
 tcp        0      0 0.0.0.0:993             0.0.0.0:*               LISTEN      32477/xinetd
 
 七、驗正
 
 1.使用outlook客戶端登錄,測試發信情況,注意如下設置:
 
 
 http://blog.chinaunix.net/photo/24866_070326000100.jpg
 http://blog.chinaunix.net/photo/24866_070325235551.jpg
 
 2.查看日誌
 
 #tail /var/log/maillog
 Mar 25 03:58:55 mail sendmail: STARTTLS=server, relay=, version=TLSv1/SSLv3, verify=NO, cipher=RC4-MD5, bits=128/128
 Mar 25 03:58:55 mail sendmail: AUTH=server, relay=, authid=redhat, mech=LOGIN, bits=0
 Mar 25 03:58:55 mail sendmail: l2OJwsnF001962: from=

, size=1700, class=0, nrcpts=1, msgid=<003601c76ed5$6a012da0$6400a8c0@microsofde20f2>, proto=ESMTP, daemon=MTA-SSL, relay=
 Mar 25 03:58:55 mail sendmail: l2OJwsnF001962: to=, ctladdr=(500/500), delay=00:00:00, xdelay=00:00:00, mailer=local, pri=31953, dsn=2.0.0, stat=Sent
 
 
 
 八、在本機命令行模式測試通過TLS發送郵件
 
 # openssl s_client -connect localhost:465
 
 CONNECTED(00000003)
 depth=0 /C=CN/ST=HA/L=ZZ/O=BENET/emailAddress=redhat@benet.org
 verify error:num=18:self signed certificate
 verify return:1
 depth=0 /C=CN/ST=HA/L=ZZ/O=BENET/emailAddress=redhat@benet.org
 verify return:1
 ---
 Certificate chain
  0 s:/C=CN/ST=HA/L=ZZ/O=BENET/emailAddress=redhat@benet.org
    i:/C=CN/ST=HA/L=ZZ/O=BENET/emailAddress=redhat@benet.org
 ---
 Server certificate
 -----BEGIN CERTIFICATE-----
 MIIC6zCCAlSgAwIBAgIJAOc6z8Qs6XGPMA0GCSqGSIb3DQEBBQUAMFgxCzAJBgNV
 BAYTAkNOMQswCQYDVQQIEwJIQTELMAkGA1UEBxMCWloxDjAMBgNVBAoTBUJFTkVU
 MR8wHQYJKoZIhvcNAQkBFhByZWRoYXRAYmVuZXQub3JnMB4XDTA3MDMyNDE0MTky
 MVoXDTE3MDMyMTE0MTkyMVowWDELMAkGA1UEBhMCQ04xCzAJBgNVBAgTAkhBMQsw
 CQYDVQQHEwJaWjEOMAwGA1UEChMFQkVORVQxHzAdBgkqhkiG9w0BCQEWEHJlZGhh
 dEBiZW5ldC5vcmcwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAPYX+Ce+m8a5
 sLMLDGLBfs0ZgGK0g5Hso7GD33dvEoNWlGzj4FqnIHVg05IAGJrl/Donk7wQYEvz
 0bRDXK8X+d5yBDqOEvEZxREonAj2/rDb5sWMwcjShvIK17Oj4wjQW4xaA9eHDU5W
 YitUPPfqcANTlk28rPjezSuHbyR50IujAgMBAAGjgbwwgbkwHQYDVR0OBBYEFMcb
 HNBYsqcZf/GM29DJSSSkurP6MIGJBgNVHSMEgYEwf4AUxxsc0Fiypxl/8Yzb0MlJ
 JKS6s/qhXKRaMFgxCzAJBgNVBAYTAkNOMQswCQYDVQQIEwJIQTELMAkGA1UEBxMC
 WloxDjAMBgNVBAoTBUJFTkVUMR8wHQYJKoZIhvcNAQkBFhByZWRoYXRAYmVuZXQu
 b3JnggkA5zrPxCzpcY8wDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQUFAAOBgQCl
 wFhS9Nt2eNMF0zapfu8FSgGTP2RIimY2ICXBspO2pAUbblXGIexwoUHYD81G1o/y
 6EjCDV+eL92vYfbKCBYgfLXmOFjY582S2TUAk3BdBNBM0DPmSRgwpxsOO9A/gs5u
 A9qWMnuKaZ6OC4ur6ppAyLOo9WKlDqu/JEeqAu9hDw==
 -----END CERTIFICATE-----
 subject=/C=CN/ST=HA/L=ZZ/O=BENET/emailAddress=redhat@benet.org
 issuer=/C=CN/ST=HA/L=ZZ/O=BENET/emailAddress=redhat@benet.org
 ---
 Acceptable client certificate CA names
 /C=CN/ST=HA/L=ZZ/O=BENET/emailAddress=redhat@benet.org
 ---
 SSL handshake has read 1291 bytes and written 270 bytes
 ---
 New, TLSv1/SSLv3, Cipher is DHE-RSA-AES256-SHA
 Server public key is 1024 bit
 Compression: NONE
 Expansion: NONE
 SSL-Session:
     Protocol  : TLSv1
     Cipher    : DHE-RSA-AES256-SHA
     Session-ID: F388B5DE25A652FDF29ED31D619913BFC0F9ED2F3B0FE005F22E1872715A4260
     Session-ID-ctx:
     Master-Key: 15DE2147783606658382F967CADCD824E416E0FDCA1ECCCD459926C10668072DDC127C68033BD81DEC8FE55EFCEA8C57
     Key-Arg   : None
     Start Time: 1174755830
     Timeout   : 300 (sec)
     Verify return code: 18 (self signed certificate)
 ---
 220 localhost.localdomain ESMTP Sendmail 8.14.0/8.14.0; Sun, 25 Mar 2007 01:03:50 +0800
 mail from:root@benet.org    <----發信人
 250 2.1.0 root@benet.org... Sender ok
 rcpt to:redhat@benet.org    <----收信人
 250 2.1.5 redhat@benet.org... Recipient ok
 data                                      <----信件正文開始的命令354 Enter mail, end with "." on a line by itself
 This is a test!!                        <----信件內容
 .                                            <----信件正文編輯結束命令,此時將會發送郵件
 250 2.0.0 l2OHAIra032556 Message accepted for delivery
 quit                                       <----退出命令
 221 2.0.0 localhost.localdomain closing connection
 closed
 
 
 後記:本文是作者在成功實驗的基礎上過程總結,其中還有著許多不成熟的地方,比如沒有為outlook生成一個Windows可以識別的證書並導入等等。希望各位有興趣的朋友給與補充,以作學習交流之用。謝謝!

  正在測試使用Sendmail+MailScanner+Clamav和Sendmail+Mimedefang+Spamassassin,歡迎這方面有經驗的朋友來交流一下.
 我會建議你用 mimedefang solution, 若你對 perl 熟的話,若不熟那就前者吧
 我目前用的方案是後者
 我會建議你用 mimedefang solution, 若你對 perl 熟的話,若不熟那就前者吧
 我目前用的方案是後者
 再謝abel兄的關注及指點!
 在Sendmail SASL TLS的基礎出上已經測試成功MIMEdefang+Spamassassin+Clamav,整理后貼上來,望能再得到兄之指教,先附上日誌。並歡迎各位來討論指正。
 
 #tail /var/log/maillog
 Mar 25 09:34:01 mail sendmail: AUTH=server, relay=, authid=redhat, mech=LOGIN, bits=0
 Mar 25 09:34:01 mail sendmail: l2P1Y0Yp001833: from=, size=1206, class=0, nrcpts=1, msgid=<001701c770db$ddf2e3e0$af01a8c0@dellfe18970b3a>, proto=ESMTP, daemon=MTA-SSL, relay=
 Mar 25 09:34:01 mail mimedefang.pl: MDLOG,l2P1Y0Yp001833,mail_in,,,,,defangfang
 Mar 25 09:34:01 mail sendmail: l2P1Y0Yp001833: Milter delete (noop): header: X-Spam-Score
 Mar 25 09:34:01 mail sendmail: l2P1Y0Yp001833: Milter add: header: X-Scanned-By: MIMEDefang 2.61 on 192.168.1.66
 Mar 25 09:34:01 mail imapd: imaps SSL service init from 192.168.1.175
 Mar 25 09:34:01 mail sendmail: l2P1Y0Yp001833: to=, ctladdr=(500/500), delay=00:00:00, xdelay=00:00:00, mailer=local, pri=31504, dsn=2.0.0, stat=Sent
 Mar 25 09:34:01 mail imapd: Login user=redhat host=

[火星人 ] Sendmail + SASL + TLS已經有1270次圍觀

http://coctec.com/docs/service/show-post-30743.html