環境: Redhat Linux 6.0(內核2.2.14) sendmail-8.10.2 cyrus-sasl-1.5.21 Outlook eXPress 5.0
一、准備工作 1.首先要下載sasl庫,該函數庫提供了安全認證所需函數,下載地址是 (FTP://ftp.andrew.cmu.edu/pub/cyrus-mail/ ),版本1.5.21。 2.下載sendmail(http://www.sendmail.org),版本在8.10.0以上的sendmail才支持SMTP認證功能。 3.注意選擇客戶端電子郵件軟件。並不是所有的客戶端電子郵件軟件都支持SMTP認證功能,幾種常見的 版本要求是這樣的: Netscape Messenger 的版本要4.6以上 Outlook和Outlook Express要5.0版本以上 Eudora pro的版本要在4.3以上 FoxMail目前還不支持這個功能。 每一種軟件的認證方法是不一樣的,編譯sasl庫的時候和配置sendmail略有不同。 我就大家最常見的 Outlook Express 5.0的設置方法介紹如下。
二、安裝sasl庫 1.解壓cyrus-sasl-1.5.21.tar.gz到你選定的目錄 2.cd cyrus-sasl-1.5.21 3 ./configure --enable-login --with-pwcheck Outlook Expresss使用LOGIN的認證方法,sasl庫缺省並不支持這種方式,所以要在生成配置文件時特別加入,另外,Outlook的口令驗證方式也不是缺省的方式,所以也需要加入--with-pwcheck的選項。 下面就可以編譯和安裝sasl庫了。 make make install 4.缺省情況下,所有的庫函數安裝到/usr/local/lib目錄下,但sendmail使用的庫函數是在目錄/usr/lib下的,所以需要做一些調整。 cd /usr/lib ln /usr/local/lib/sasl/ ./sasl -s cp /usr/local/lib/libsa* . 也可以避開這一步,在第3步時候運行configure腳本前,修改其中的缺省路徑就可以了。 打開configure文件找到這一行ac_default_prefix=/usr/local(在文件前幾行),改為 ac_default_prefix=/usr 就可以了,這樣更方便一些。 5.新建目錄/var/pwcheck,供pwcheck命令使用,該命令是一個後台程序,負責檢查用戶的輸入口令, 以root權限件使用shadow口令文件。 6.在/usr/lib/sasl目錄下建立文件Sendmail.conf,加入如下一行 pwcheck_method:pwcheck 這樣sasl庫函數的安裝就完成了。
三、編譯和配置sendmail 1.解壓sendmail軟件到你希望的目錄,進入sendmail-8.10.2目錄。 在devtools/Site/目錄下創建config.site.m4文件,加入如下兩行文字,把SMTP認證功能編譯到sendmail中。 APPENDDEF(`confENVDEF', `-DSASL') APPENDDEF(`conf_sendmail_LIBS', `-lsasl') 2.回到sendmail-8.10.2目錄,再進入sendmail目錄,開始編譯sendmail。 ./Build -c(如果不是第一次編譯,需要加入-c選項,清除以前的配置)編譯成功後,運行./Build install安裝軟件。 3.下一步需要改寫Sendmail的配置文件。回到上一級目錄,再進入cf/cf目錄,找到合適的.mc文件(具體做法 參見其他文章,這些不在本文討論范圍中)。按照你的要求適當修改,加入如下幾行: TRUST_AUTH_MECH(`LOGIN PLAIN DIGEST-MD5') define(`confAUTH_MECHANISMS', `LOGIN PLAIN DIGEST-MD5') dnl define(`confDEF_AUTH_INFO', `/etc/mail/auth/auth-info') FEATURE(`no_default_msa') DAEMON_OPTIONS(`Port=25, Name=MSA, M=Ea') 說明:"TRUST_AUTH_MECH"的作用是使sendmail不管Access文件中如何設置,都能 relay那些通過LOGIN,PLAIN或DIGEST-MD5方式驗證的郵件。 "confAUTH_MECHANISMS"的作用是確定系統的認證方式。 "confDEF_AUTH_INFO"的作用是當你的計算機作為客戶機時,向另外一台有smtp認證功能的主機進行認證,用戶和密碼存放在auth-info文件中,在這個例子中並不需要這個功能,所以注釋掉了。 4.編譯生成/etc/mail/sendmail.cf文件 m4 xxxx.mc >/etc/mail/sendmail.cf,不過記住一定要備份舊的sendmail.cf文件,否則就可能麻煩了。 5.現在基本上可以了,啟動sendmail讓我們來測試一下吧 sendmail -bd -q20m 運行下面命令 telnet localhost 25 ehlo localhost 注意有沒有以下的信息出現. 250-xxxxxxxx 250-xxxxxxx 250-AUTH LOGIN PLAIN DIGEST-MD5 250-xxxxxx 可能會略有不同,不過你選定的認證方式一定要有的。如果顯示沒有問題,恭喜你!服務器端的配置你已經成功了。如果沒有出現上面的信息,請運行 sendmail -O loglevel=14 -bs 仔細檢查問題所在。 在結束服務器端的配置之前,我們還要做一件事,運行pwcheck這個daemon程序,這樣才能完成用戶認證功能。 pwcheck &
四、Outlook Express 5.0 的配置 1.打開你的Outlook Express,修改你的賬號屬性,在服務器選項,選取我的smtp服務器需要認證選項,然後進入配置。 2.不要選取安全口令認證,sendmail並不支持這個選項。是選取使用pop3同樣的口令還是選擇另外輸入用戶和密碼,這就看你的愛好和設置了,這不是關鍵。如果你在服務器上有一個真實賬號,不妨選取使用同樣的口令,如果沒有賬號,選用其他的用戶口令同樣可以。