相信大部分使用電子郵件的人每天都會收到大量垃圾郵件。作為單位網(wǎng)管,筆者每天收到垃圾郵件的數(shù)量更在數(shù)百封以上,預(yù)防垃圾郵件已到了刻不容緩的地步。
一、環(huán)境說明
單位的服務(wù)器使用RedHat Linux 9.0,郵件服務(wù)器使用Sendmail 8.12.8;這臺服務(wù)器放在內(nèi)網(wǎng),通過一臺Win2000的服務(wù)器作網(wǎng)關(guān),連到Internet;網(wǎng)關(guān)軟件使用的是WinRoute Pro 4.2.5。
二、主要修改措施
1.關(guān)閉Sendmail的Relay功能
所謂Relay就是指別人能用這臺SMTP郵件服務(wù)器,給任何人發(fā)信,這樣別有用心的垃圾發(fā)送者可以使用筆者單位的這臺郵件服務(wù)器大量發(fā)送垃圾郵件,而最后別人投訴的不是垃圾發(fā)送者,而是單位的服務(wù)器。所以必須關(guān)閉Open Relay,其方法就是到Linux服務(wù)器的/etc/mail目錄,編輯access文件,去掉“*relay”之類的設(shè)置,一般只留“l(fā)ocalhost relay”和“127.0.0.1 relay”兩條即可。
注意:修改access文件后還要用命令makemap hash access.db 2.打開Sendmail的SMTP認(rèn)證功能 關(guān)掉了Relay功能,單位的老師就不能使用OE之類的軟件發(fā)信了?不要緊,只要對Sendmail配置好SMTP認(rèn)證功能,再在OE中打開SMTP認(rèn)證,就可以在任何地方使用單位的SMTP服務(wù)器了。 在RedHat Linux 9.0中配置SMTP認(rèn)證非常方便,首先用命令rpm -qa|grep sasl檢查有沒有安裝cyrus-sasl軟件包(一般默認(rèn)安裝已經(jīng)包括了)。如果沒有安裝的話,用命令rpm -ivh cyrus-sasl?.rpm安裝所有軟件包,接著打開/etc/mail/sendmail.mc文件,把如下三行: dnl TRUST_AUTH_MECH(`DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl RBL(Realtime Blackhole List)是實時黑名單。國外有一些機構(gòu)提供RBL服務(wù),它們把收集到的專發(fā)垃圾郵件的IP地址加入他們的黑名單,我們只要在Sendmail中加入RBL認(rèn)證功能,就會使我們的郵件服務(wù)器在每次收信時都自動到RBL服務(wù)器上去查實,如果信件來源于黑名單,則Sendmail會拒收郵件,從而使單位的用戶少受垃圾郵件之苦。 國外比較有名的RBL是http?//www.ordb.org,他們的RBL可免費使用,去年國內(nèi)的http?//anti-spam.org.cn也提供類似的服務(wù),但它必須先注冊才能使用?免費?。 在Sendmail中添加RBL認(rèn)證,只要對sendmail.mc添加以下幾句話(第一句表示加入了ORDB.ORG的RBL服務(wù),第二句表示加入了ANTI-SPAM的RBL服務(wù),注意第二條必須先去該網(wǎng)站注冊后才能使用。如果還想加入其它的RBL認(rèn)證,則將這樣的話再多加幾句即可,一般加入兩個RBL認(rèn)證也夠了): ①FEATURE(`dnsbl',`relays.ordb.org',`″Email blocked using ORDB.org - see 最后執(zhí)行m4 sendmail.mc>sendmail.cf和service sendmail restart兩條命令,使有關(guān)Sendmail的修改生效。 4.關(guān)閉Open Proxy 單位的網(wǎng)關(guān)使用WinRoute軟件,為了提高訪問Internet的網(wǎng)速,開放了WinRoute的Proxy服務(wù),但想不到的是大部分Proxy都是默認(rèn)允許以HTTP Connect Method連接任意一個TCP端口,這樣一來,當(dāng)Proxy沒有對使用者及相應(yīng)的TCP端口做相應(yīng)的限制時,很容易給垃圾郵件發(fā)送者可乘之機。他們只需要利用單位的Proxy來連接另外一臺郵件服務(wù)器的25端口,并發(fā)送特定的SMTP指令就可以發(fā)送大量的垃圾郵件。 不查不知道,一查嚇一跳。單位服務(wù)器早在去年12月就由于Open Proxy而在國外的黑名單上了。更可氣的是,由于開放了代理,我們的網(wǎng)關(guān)機CPU利用率一直在50%左右,原來筆者單位的網(wǎng)關(guān)一直在為別人義務(wù)干壞事。 在WinRoute中關(guān)閉Open Proxy的方法也很簡單,只要把連接外網(wǎng)網(wǎng)卡的Proxy端口關(guān)閉即可。 具體操作如下:單擊“Settings→Advanced→Packet Filter”,選擇Incoming面板,找到接外網(wǎng)的網(wǎng)卡,單擊Add按鈕,會顯示Add Item對話框,把Protocol選為TCP,Destination中的Port選=3128,Action中選Deny(如圖1所示)。 筆者查看Sendmail的LOG,結(jié)果沒發(fā)現(xiàn)從單位中發(fā)出很多垃圾郵件,正在郁悶時,突然想起這段時間正在大鬧Internet的網(wǎng)絡(luò)天空“NetSky”和唯諾格“”病毒,這兩種病毒都會自動發(fā)出很多垃圾郵件,特別是網(wǎng)絡(luò)天空,它自帶SMTP服務(wù)功能。不需要利用單位的Sendmail,就直接可以發(fā)信。單位的Sendmail的LOG中當(dāng)然也不會有記錄了,于是馬上到網(wǎng)關(guān)機WinRoute中對連接內(nèi)網(wǎng)的網(wǎng)卡加上不能向外連接25號端號的限制,具體設(shè)置如圖2所示。 注意:這個設(shè)置是加在內(nèi)網(wǎng)網(wǎng)卡上的,而上面關(guān)閉Open Proxy的設(shè)置則是加在外網(wǎng)網(wǎng)卡上的。 6.從黑名單上除名 前段時間,由于自已的疏忽,使我單位的IP已經(jīng)上了國外RBL的黑名單了。查詢和刪除RBL中的IP地址可以到http://openrbl.org/ 和http://ordb.org,另外國內(nèi)的http://anti-spam.org.cn/cbl_minus/query.html也可查詢。
3.在Sendmail中添加RBL功能
dnl define(`confAUTH_MECHANISMS',`DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1,Name=MTA')
改為
TRUST_AUTH_MECH(`DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
define(`confAUTH_MECHANISMS',`DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
DAEMON_OPTIONS(`Port=smtp,Addr=0.0.0.0,Name=MTA')
②FEATURE(`dnsbl', `cblplus.anti-spam.org.cn', `', `″451 Temporary lookup failurefor ″ $&{client_addr}″ in cbl.anti-spam.org.cn″')
圖 1
5.關(guān)閉外部的25端口
圖 2