【Linux】啟動灰名單 greylist 擋掉廣告信

greylist 灰名單的機制原理是當 mail server 第一次收到寄件者的信時,會先予以退信,
若是寄件者的 mail server 是合法正式的, 則寄件者的 mail server 會嘗試再重新寄送,此時,我方的 mail server 才會收下這封信,
並將寄件者列入白名單 whitelist;而通常寄發垃圾信都是利用廣告信寄送軟體或非正式或不合法的 mail server
所以信被退時,基於效率,也不會重試。 
據估計,利用這樣的機制可先過濾掉 80% 的垃圾信。

postfix 灰名單的套件是 postgrey,不過至 CentOS5.xpostgrey 尚不是官方套件,得另外取得, 安裝。
 
rpm.pbone.netwww.rpmfind.net 下載 postgreyRPM 並安裝。

設定 postfixmain.cf,要注意發行版本的設定法不一樣。

Debian / Ubuntu ----
smtpd_recipient_restrictions =
        permit_mynetworks
        permit_sasl_authenticated
        reject_unauth_destination
        check_policy_service inet:127.0.0.1:60000
RedHat / CentOS ----
smtpd_recipient_restrictions =
        permit_mynetworks
        permit_sasl_authenticated
        reject_unauth_destination
        check_policy_service unix:/var/spool/postfix/postgrey/socket

# 設定開機便啟動 postgrey
chkconfig postgrey on

# 立即執行 postgrey daemon 服務
service postgrey start

# 重新啟動 postfix
service postfix restart

# 驗證 postgrey 已開始運作
cat /var/log/maillog | grep greylist | lesslog 裡有出現 greylist 字眼, 即表示 postgrey 已開始運作了。