公司mail server採用Postfix,剛好有套postgrey可以幫助他過濾垃圾信。原理是基於許多發送垃圾信的server通常都射後不理,只要發送出去就好,不管對方有沒有收到都算成功;而正常的mail server會在沒有收到對方回應的時候,停一段時間再重試,所以這個套件就是記錄對方來源,第一次阻擋,等收到第二次重送的時候再放行。我們也可以自己手動增加白名單,在白名單內的位址就不去判斷,一律放行。
以下以本公司的作業系統OpenSuSE來說明如何設定。
首先執行yast,去套件管理搜尋postgrey,安裝的時候會順便把相依的套件一起裝上。
安裝完成後,基本上不需要對postgrey做設定,他預設的判斷重試時間是五分鐘。
如果要修改的話,可編輯/etc/sysconfig/postgrey這個檔案
vi /etc/sysconfig/postgrey
加入
OPTIONS="--unix=/var/spool/postfix/postgrey/socket --delay=60" #60就是如果60秒後收到對方重試就可放行,這個數字可自己調整到大家都可接受的程度
接著編輯postfix的設定檔
vi /etc/postfix/main.cf
加上紅框處
smtpd_recipient_restrictions =
permit_mynetworks,
reject_unauth_destination,
reject_unknown_sender_domain,
reject_unknown_recipient_domain,
reject_rbl_client cbl.abuseat.org,
reject_rbl_client bl.spamcop.net,
reject_rbl_client cblless.anti-spam.org.cn,
reject_rbl_client sbl-xbl.spamhaus.org,
check_policy_service unix:/var/spool/postfix/postgrey/socket #<-加上這行
啟動postgrey
/etc/init.d/postgrey start
檢查一下看有沒有跑起來
netstat -nlap | grep postgrey
要看到如下面的文字才算有啟動成功
unix 2 [ ACC ] STREAM LISTENING 2475812 28418/socket --auto /var/spool/postfix/postgrey/socket
增加開機即啟動
chkconfig postgrey on
重新啟動postfix
/etc/init.d/postfix restart
這樣就完成我們的設定囉~
如果要手動編輯白名單,加入我們信任的server,也可直接編輯白名單
vi /etc/postgrey/whitelist_clients在最底下加上server的IP或Domain即可。
參考資料:
鳥哥
沒有留言:
張貼留言