關於在SendMail郵件伺服器上反垃圾郵件的一點心得
最近,垃圾郵件日益猖獗,如果不採取一定的措施,平均每天每使用者會收到不少於20封的垃圾郵件,更為可惡的是,這些垃圾郵件中,居然有一半是病毒郵件。現在,連反垃圾做得比較好的新浪(因為它的反垃圾功能,很多論壇的郵件伺服器無法發郵件到新浪,相信大家都有體會)的郵箱中,居然每天也會有兩三封的病毒郵件了。
相信很多企業使用的是Sendmail作為自己的郵件伺服器,儘管有一些黑IP地址列表可供我們使用,但垃圾郵件仍然放不勝防。敝人在實踐中探索出若干方法與大家共享。
1.檢查HELO的域名,以及其IP地址是否可以反向解析。如果HELO域名與其IP地址不符,或者IP地址不能反向解析(國內浮動IP大部分不能),則不允許其向本伺服器傳送郵件,當然更不允許轉發。
這一點非常有效,當然,由於過內諸如網易,263等其IP與helo域名根本沒有任何關係,IP也不能反向解析,有可能會被當作垃圾擋掉,這種情況我的解決辦法是建議一個白名單列表,將這些IP與HELO域名的對應關係維護起來。
2.國外的浮動IP大部分可以反向解析,這比較討厭,只能見一個封一批(此域名的下的所有子域名一律封殺,積累個三五天,基本可以封殺完畢。
3.有些無聊人士,藉機會攻擊你的郵件伺服器,見到就用防火牆封其IP地址即可。
如何更改Sendmail呢,這兒要自己編點兒程式了。
Sendmail的源程式中有個srvrsmtp.c,這個程式是他的SMTP主程式。判斷可以放在CMDMAIL或者CMDHELO的地方均可。
裡面有個CurSmtpClient變數,存放的是傳送者的IP地址,格式為 “域名 [IP]”,如果不能反向解析,則沒有前面的域名,只有後面的帶中括號的IP地址。
CMDMAIL和CMDHELO命令後面,srvrsmtp.c程式都會生成一個名為"p"的變數,用來儲存HELO的域名和MAIL FROM:的郵件地址。這三個變數可以作為我們封堵垃圾郵件的依據,程式具體怎麼寫我就不在此獻醜了,相信各位管理員有自己的思路。
我只提供幾點注意事項供參考。
1.不能僅僅依據HELO的域名和MAIL FROM的郵件域名一致就放行,現在國內垃圾傳送者都會這麼做來逃避封堵了,必須結合IP地址。
2.sendmail使用的access.db檔案可以作為黑名單或白名單的儲存資料庫,當然也可以建自己的db檔案存放。這個是使用 libdb4庫實現的,網上可以下載到db-4.2.52.tar.gz,這個裡面有個名叫 ex_access.c的c例程式,可以很容易上手使用
3.國內若干郵件HELO域名與IP對照表
202.108.252.135 tom.com,163.net
202.108.252.134 tom.com,163.net
202.108.45.57 126.com
202.108.45.59 126.com
202.108.44.214 163.com
202.108.44.138 163.com
202.108.44.181 163.com
202.108.44.164 163.com
202.108.44.250 163.com
202.108.44.205 163.com
202.108.44.237 163.com
202.108.44.218 163.com
211.150.96.35 smtp.263.net
211.150.96.30 mta10.263.net
61.159.225.75 vip.km169.net
61.159.225.77 vip.km169.net
61.135.145.20 sohu.com
202.96.233.104 websvr.wsh.wistron.com.cn
211.158.8.225 EX3BK01.EIP.CQCNC.COM
202.188.224.18 icemail8.ao.ericsson.se
202.101.186.105 vip.163.com
202.108.34.19 list.163.com
4.國外常見的動態域名垃圾郵件傳送者
*adsl-pool.axelero.hu DENY
*brno.tiscali.cz DENY
*dialup.optusnet.com.au DENY
*.adelphia.net DENY
*.dion.ne.jp DENY
*.shawcable.net DENY
# *sympatico.ca DENY
*.cinci.rr.com DENY
*.xod.concentric.net DENY
*.so-net.ne.jp DENY
*dsl.callplus.net.nz DENY
*.ne.client2.attbi.com DENY
*.cable.conwaycorp.net DENY
*.comcast.net DENY
# *.mot.com DENY
*.dialup.alkar.net DENY
*.asm.bellsouth.net DENY
*.net.cable.rogers.com DENY
*.pooles.rima-tde.net DENY
*.midsouth.rr.com DENY
*.surfer.at DENY
*.bellsouth.net DENY
*.ocn.ne.jp DENY
*.upc-e.chello.nl DENY
*.milare-tv.ne.jp DENY
*.lightbound.com DENY
*.kuhncom.net DENY
*.t-ipconnect.de DENY
*.t-dialin.net DENY
*.dsl-verizon.net DENY
*.vtr.net DENY
*.mpowercom.net DENY
*.chello.nl DENY
*.charter.com DENY
*.ec.rr.com DENY
*.plala.or.jp DENY
*.adsl.tpnet.pl DENY
*.dsl.net.pk DENY
*.adsl.terra.cl DENY
*.chello.pl DENY
*.virtua.com.br DENY
*.dyn.optonline.net DENY
*.dsl-pun.eth.net DENY
*.adsl.wanadoo.nl DENY
*.hkicable.com DENY
*.dsl.att.net DENY
*.communicomm.com DENY
*.unitelsd.com DENY
*.infosel.net.mx DENY
*.broadband.hu DENY
*.veloxzone.com.br DENY
*.optonline.net DENY
*.shore.net DENY
*.interbusiness.it DENY
*.brasiltelecom.net.br DENY
*.rr.com DENY
*.mindspring.com DENY
*.ipt.aol.com DENY
*.actcom.co.il DENY
*.snet.net DENY
*.retevision.es DENY
*.cybercable.net.mx DENY
*.brightohio.net DENY
*.bonanzacafe.biz DENY
*.bonanzahouse.biz DENY
*.bbtec.net DENY
*.xrushmail.com DENY
*.onvol.net DENY
*.megared.net.mx DENY
*.roadrunner.nf.net DENY
*.cable.ntl.com DENY
*.vsnl.net.in DENY
*.cty-net.ne.jp DENY
*.numericable.fr DENY
*.maxonline.com.sg DENY
*.noos.fr DENY
*.wayinternet.com.br DENY
*.a2000.nl DENY
*.supercable.es DENY
*.telepar.net.br DENY
*.teleweb.at DENY
*.typhlosoles.net DENY
*.infoweb.ne.jp DENY
*.iowatelecom.net DENY
*.bezeqint.net DENY
*.wanadoo.fr DENY
*.relline.ru DENY
*.info.com.ph DENY
*.sympatico.ca DENY
*.mesh.ad.jp DENY
*.staff.chu.edu.tw DENY
*.gulftel.com DENY
*.reinspects.org DENY
*.myclearwave.net DENY
通過上述幾點,相信大家可以寫出自己的反垃圾程式,歡迎大家交流。
順便提一句,SMTP的流程基本如下,希望對不太瞭解SMTP的管理員寫程式有所幫助。HELO domain
MAIL FROM:<傳送方郵件地址>
RCPT TO:<接收方郵件地址>
DATA
QUIT
由於反垃圾郵件的程式一旦公開,就不太靈光了,這兒就不公開我的程式了。