如何防止郵件服務器被濫用
發表于:2007-07-02來源:作者:點擊數:
標簽:
郵件 服務器 在Inte .net 上扮演著一個非常重要的角色。SMTP(簡單郵件傳輸協議)是Internet上計算機之間傳送電子郵件所普遍采用的協議,Sendmail是構成郵件服務器的 Unix 系統中使用極為廣泛的一種郵件傳輸代理程序,它遵循SMTP協議,提供了很強大的郵件服務
郵件
服務器在Inte
.net上扮演著一個非常重要的角色。SMTP(簡單郵件傳輸協議)是Internet上計算機之間傳送電子郵件所普遍采用的協議,Sendmail是構成郵件服務器的
Unix系統中使用極為廣泛的一種郵件傳輸代理程序,它遵循SMTP協議,提供了很強大的郵件服務功能,可以承載高達數萬個用戶的電子郵件通信服務。
美中不足的是,Sendmail在為用戶發送郵件時,并不對用戶進行身份認證,這就給一些廣告郵件或垃圾郵件的制造者提供了機會──任何人只要想發信,就可以利用任何一臺沒有帶認證功能而又對其“open relay”的Sendmail郵件服務器,為其發送大量的垃圾或廣告信件。雖然Sendmail 8.9.3以上的版本提供了一些限制郵件轉發的功能,可以在某種程度上限制這種情況的發生,但它只能根據靜態的IP地址、郵件地址或域名來進行限制,這使得合法用戶只能在固定的IP地址范圍內使用郵件服務器,否則將會被拒絕。這樣就給用戶帶來了使用上的不方便,例如用戶下班回家或是出差在外,都無法使用工作單位的郵件服務器發信,學生放假離開學校也不能使用學校的郵件服務器發出信件。但是如果設定郵件服務器為open relay模式,又怕造成服務器轉發功能被濫用。這是個很矛盾的問題,長期困擾著郵件服務器的管理員。
為了不讓自己的郵件成為垃圾郵件的中轉站而被外面的郵件服務器拒絕,以往許多郵件服務器的管理員大都只能選擇限制mail relay的模式?,F在好了,隨著Sendmail軟件版本的不斷更新,新的功能也隨之出現。使用新版本的Sendmail 8.12.5郵件服務器軟件,再搭配Cyrus-SASL(Simple Authentication and Security Layer)身份認證程序庫,就可以解決對郵件用戶進行身份認證的問題。服務器有了認證功能后,任何人想通過郵件服務器發送信件時都得先輸入用戶名和密碼進行身份認證。
下面就給大家詳盡解釋一下如何編譯、安裝Cyrus-SASL程序庫和Sendmail 8.12.5軟件使郵件系統支持SASL的SMTP認證功能。
一.環境 操作系統平臺:Solaris 2.7 或 Linux 6.2
使用軟件:Cyrus-SASL 1.5.27和Sendmail 8.12.5
二.編譯、安裝Cyrus-SASL程序庫: 1.下載:ftp://ftp.andrew.cmu.edu/pub/cyrus-mai/cyrus-sasl-1.5.27.tar.gz
2.解包:
tar xvfz cyrus-sasl-1.5.27.tar.gz
|
3.編譯、安裝:
進入cyrus-sasl-1.5.27目錄:
編譯配置:
#./configure --enable-login --enable-plain
|
這里由于SASL庫缺省狀態下并不支持某些客戶端軟件的使用方式,所以要在生成配置文件時特別加入一些功能選項。具體要加什么可以用命令查看:
#./configure -help
如加“--enable-login”是因為Outlook Expresss使用LOGIN的認證方法,SASL庫缺省并不支持這種方式,所以要在生成配置文件時特別加入。
另外,缺省情況下,所有的庫函數是安裝到“/usr/local/lib”目錄下,但Sendmail使用的庫函數是在目錄“/usr/lib”中的,所以需要做一些修改。在運行configure腳本前,修改其中的缺省路徑就可以了。方法是打開configure文件找到下面這一行:
ac_default_prefix=/usr/local
|
改為:
編譯:
到這里SASL庫就安裝好了(注意在整個編譯安裝的過程中都不能有任何錯誤警告顯示才行)。
接著必須設置Sendmail的使用者身份驗證方式,因為這里要使用的是系統賬號與密碼來進行驗證,所以要在“/usr/lib/Sendmail.conf”文件中指明:
#cd /usr/lib/sasl/
#cat > Sendmail.conf
pwcheck_method: shadow
^d
|
三.編譯、安裝及配置Sendmail 1.下載:
可以從http://www.Sendmail.org下載最新的Sendmail.8.12.5.tar.gz
2.解包:
tar xvfz Sendmail.8.12.5.tar.gz
|
3.編譯、安裝 (在進行如下操作之前要注意對“/usr/lib/Sendmail”和“/etc/mail/Sendmail.cf”文件進行備份):
進入Sendmail-8.12.5目錄:
在“devtools/Site/”目錄下創建“config.site.m4”文件,加入如下四行文字,把SMTP認證功能編譯到Sendmail中。
APPENDDEF(‘conf_Sendmail_ENVDEF’,‘-DSASL’)
APPENDDEF(‘conf_Sendmail_LIBS’,‘-lsasl’)
APPENDDEF(‘confLIBDIRS’,‘-L/usr/lib’)
APPENDDEF(‘confINCDIRS’,‘-I/usr/include’)
|
回到Sendmail-8.12.5目錄,再進入Sendmail目錄,開始編譯Sendmail:
#sh Build -c -f ../devtools/Site/site.config.m4
|
編譯成功后,先要增加一個用戶smmsp和組。然后運行“./Build install”安裝Sendmail。
4.配置:
接著需要修改Sendmail的配置文件?;氐絊endmail-8.12.5目錄,再進入cf/cf目錄,找到相應的后綴為“.mc”的文件,如“generic-solaris.mc”或“generic-
linux.mc”,然后編輯相應的“.mc”文件,加入下列內容:
TRUST_AUTH_MECH(‘PLAIN LOGIN’)dnl
define(‘confAUTH_MECHANISMS’,‘PLAIN LOGIN’)dnl
FEATURE(‘no_default_msa’)dnl turn off default entry for MSA
|
或按照需要適當修改,具體要加什么可參考相應的README文件。
接著就可以編譯生成“/etc/mail/Sendmail.cf”文件:
#m4 ../m4/cf.m4 ./generic-solaris.mc > Sendmail.cf
#cp ./Sendmail.cf /etc/mail
#chmod g-w /etc/mail/Sendmail.cf
#vi /etc/mail/local-host-names
#(編輯該郵件服務器的全域名及別名)
|
最后啟動Sendmail,再
測試一下認證功能有沒有啟動就可以了。這樣基于Sendmail郵件傳輸代理下的SMTP認證就做成了。有了認證功能的郵件服務器就能有效地避免被當成垃圾郵件的發送站。
,
原文轉自:http://www.kjueaiud.com