歡迎您光臨本站 註冊首頁

Linux中防禦垃圾郵件的方法

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

相信大部分使用電子郵件的人每天都會收到大量垃圾郵件.作為單位網管,筆者每天收到垃圾郵件的數量更在數百封以上,預防垃圾郵件已到了刻不容緩的地步.

  一、環境說明

  單位的伺服器使用RedHat Linux 9.0,郵件伺服器使用Sendmail 8.12.8;這台伺服器放在內網,通過一台Win2000的伺服器作網關,連到Internet;網關軟體使用的是WinRoute Pro 4.2.5.

  二、主要修改措施

  1.關閉Sendmail的Relay功能

  所謂Relay就是指別人能用這台SMTP郵件伺服器,給任何人發信,這樣別有用心的垃圾發送者可以使用筆者單位的這台郵件伺服器大量發送垃圾郵件,而最后別人投訴的不是垃圾發送者,而是單位的伺服器.必須關閉Open Relay,其方法就是到Linux伺服器的/etc/mail目錄,編輯access文件,去掉「*relay」之類的設置,一般只留「localhost relay」和「127.0.0.1 relay」兩條即可.

  注意:修改access文件后還要用命令makemap hash access.db

  2.打開Sendmail的SMTP認證功能

  關掉了Relay功能,單位的老師就不能使用OE之類的軟體發信了不要緊,只要對Sendmail配置好SMTP認證功能,再在OE中打開SMTP認證,就可以在任何地方使用單位的SMTP


伺服器了.

  在RedHat Linux 9.0中配置SMTP認證非常方便,用命令rpm -qa|grep sasl檢查有沒有安裝cyrus-sasl軟體包(一般默認安裝已經包括了).如果沒有安裝的話,用命令rpm -ivh cyrus-sasl.rpm安裝所有軟體包,接著打開/etc/mail/sendmail.mc文件,把如下三行:

  dnl TRUST_AUTH_MECH(`DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnldnl define(`confAUTH_MECHANISMS',`DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnlDAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1,Name=MTA') 改為TRUST_AUTH_MECH(`DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnldefine(`confAUTH_MECHANISMS',`DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnlDAEMON_OPTIONS(`Port=smtp,Addr=0.0.0.0,Name=MTA')

  3.在Sendmail中添加RBL功能

  RBL(Realtime Blackhole List)是實時黑名單.國外有一些機構提供RBL服務,它們把收集到的專發垃圾郵件的IP地址加入他們的黑名單,我們只要在Sendmail中加入RBL認證功能,就會使我們的郵件伺服器在每次收信時都自動到RBL伺服器上去查實,如果信件來源於黑名單,則Sendmail會拒收郵件,從而使單位的用戶少受垃圾郵件之苦.

  國外比較有名的RBL是http//www.ordb.org,他們的RBL可免費使用,去年國內的http//anti-spam.org.cn也提供類似的服務,但它必須先註冊才能使用免費 .

  在Sendmail中添加RBL認證,只要對sendmail.mc添加以下幾句話(第一句表示加入了ORDB.ORG的RBL服務,第二句表示加入了ANTI-SPAM的RBL


服務,注意第二條必須先去該網站註冊后才能使用.如果還想加入其它的RBL認證,則將這樣的話再多加幾句即可,一般加入兩個RBL認證也夠了):

  ①FEATURE(`dnsbl',`relays.ordb.org',`″Email blocked using ORDB.org - see ″')

  ②FEATURE(`dnsbl', `cblplus.anti-spam.org.cn', `', `″451 Temporary lookup failurefor ″ $&{client_addr}″ in cbl.anti-spam.org.cn″')

  最后執行m4 sendmail.mc>sendmail.cf和service sendmail restart兩條命令,使有關Sendmail的修改生效.

  4.關閉Open Proxy

  單位的網關使用WinRoute軟體,為了提高訪問Internet的網速,開放了WinRoute的Proxy服務,但想不到的是大部分Proxy都是默認允許以HTTP Connect Method連接任意一個TCP埠,這樣一來,當Proxy沒有對使用者及相應的TCP埠做相應的限制時,很容易給垃圾郵件發送者可乘之機.他們只需要利用單位的Proxy來連接另外一台郵件伺服器的25埠,併發送特定的SMTP指令就可以發送大量的垃圾郵件.

  不查不知道,一查嚇一跳.單位伺服器早在去年12月就由於Open Proxy而在國外的黑名單上了.更可氣的是,由於開放了代理,我們的網關機CPU利用率一直在50%左右,原來筆者單位的網關一直在為別人義務幹壞事.

  在WinRoute中關閉Open Proxy的方法也很簡單,只要把連接外網網卡的Proxy埠關閉即可.


具體操作如下:單擊「Settings→Advanced→Packet Filter」,選擇Incoming面板,找到接外網的網卡,單擊Add按鈕,會顯示Add Item對話框,把Protocol選為TCP,Destination中的Port選=3128,Action中選Deny(如圖1所示).

  

  圖 1

  5.關閉外部的25埠

  筆者查看Sendmail的LOG,結果沒發現從單位中發出很多垃圾

郵件,正在鬱悶時,突然想起這段時間正在大鬧Internet的網路天空「NetSky」和唯諾格「MyDoom」病毒,這兩種病毒都會自動發出很多垃圾郵件,特別是網路天空,它自帶SMTP服務功能.不需要利用單位的Sendmail,就直接可以發信.單位的Sendmail的LOG中當然也不會有記錄了,於是馬上到網關機WinRoute中對連接內網的網卡加上不能向外連接25號端號的限制,具體設置如圖2所示.

  

  圖 2

  注意:這個設置是加在內網網卡上的,而上面關閉Open Proxy的設置則是加在外網網卡上的.

  6.從黑名單上除名

  前段時間,由於自已的疏忽,使我單位的IP已經上了國外RBL的黑名單了.查詢和刪除RBL中的IP地址可以到http://openrbl.org/ 和http://ordb.org,另外國內的http://anti-spam.org.cn/cbl_minus/query.html也可查詢.


[火星人 ] Linux中防禦垃圾郵件的方法已經有639次圍觀

http://coctec.com/docs/linux/show-post-53370.html