CentOS 7 在postfix郵件伺服器上加裝spf檢查功能,防堵垃圾郵件
SPF 是一種透過dns設定, 用於認證郵件伺服器是否合法, 進而阻擋拉圾郵件的機制, 咖啡偶管理的郵件伺服器老舊了, 從CentOS 6 改成CentOS7 , 安裝spf的方式不一樣, 因此記錄下來,
請進 10021號 IT地窖練功吧
SPF 是一種透過dns設定, 用於認證郵件伺服器是否合法, 進而阻擋拉圾郵件的機制, 咖啡偶管理的郵件伺服器老舊了, 從CentOS 6 改成CentOS7 , 安裝spf的方式不一樣, 因此記錄下來,
請進 10021號 IT地窖練功吧
postfix郵件加上postgrey灰名單功能很簡單 , 步驟如下:
1. 安裝postgrey
CentOS 可於rpmfind.net找尋相對應的RPM版本安裝
Ubuntu 18.04 可直接安裝不用另外下載
sudo apt install postgrey
2. 找出啟動script的OPTIONS選項, 加上自動白名單功能, 與延遲120秒
centos 6:
vi /etc/rc.d/init.d/postgrey
—————————————————
OPTIONS=”–unix=$SOCKET –auto-whitelist-clients=5 –delay=120″
—————————————————
centos 7:
vi /var/lib/systemd/system/postgrey or
vi /usr/lib/systemd/system/postgrey.service
—————————————————
ExecStart=…
–auto-whitelist-clients=5
—————————————————
執行時候會長這樣
/usr/sbin/postgrey -d –unix=/var/spool/postfix/postgrey/socket –auto-whitelist-clients=5 –delay=120
3. 修改postfix的main.cf檔案, 加上check_policy_service unix:postgrey/socket
Centos: vi /etc/postfix/main.cf
smtpd_recipient_restrictions =
permit_mynetworks,
permit_sasl_authenticated,
reject_non_fqdn_helo_hostname,
reject_non_fqdn_recipient,
reject_non_fqdn_sender,
reject_unknown_sender_domain,
reject_unknown_recipient_domain,
reject_unauth_destination,
reject_unauth_pipelining,
reject_invalid_hostname,
check_sender_access hash:/etc/postfix/sender_vip,
reject_rbl_client dnsbl.sorbs.net,
reject_rbl_client bl.spamcop.net,
reject_rbl_client cbl.abuseat.org,
check_policy_service unix:postgrey/socket
4. 產生報表
cat /var/log/maillog | postgreyreport --nosingle_line --check_sender=mx,a --show_tries --separate_by_subnet=":=================================================================\n"
這種作法經過實做, 不建議使用, 原因很簡單, 就是延遲的問題, 收個信會延遲, 這是非常麻煩的
雖然可以自動加入白名單, 但是有些不常聯絡, 一聯絡就要馬上收的狀況大有人在,
除非IT人員在公司很強大, 否則不要用這種方式
DKIM(DomainKeys Identified Mail)是一種用來對抗釣魚之類廣告信的協定.
當初yahoo以及cisco為了對抗廣告信(至少不讓廣告商冒用其名義寄信),使用一種特殊的方式對抗廣告信,
實施了多年以後,終於證明可以有效阻擋廣告信,因此他們將此協定開放讓大家使用,
到了2005年,在多家廠商的合作下,規範出第一版DKIM,送交IETF審查.
,並且在2007年通過,成為開放通訊協定中的一種,RFC編號為4871.
DKIM的運作方式有兩種, 第一種是驗證(verification),第二種是簽名(signature).
假設我是test.com這個網域的管理員, 我必須利用DNS設定一組公開金鑰,
讓所有人可以取得且用來驗證郵件是否為test.com郵件伺服器發出.
這樣以後所有從test.com郵件伺服器所送出的郵件,只要經過簽名(必須使用私密金鑰才可以簽名),
對方就可以使用公開金鑰認證,確保郵件是否為真.
若所有的郵件伺服器都有這樣的機制, 那些廣告信就無所遁形, 因為他們無法經由簽名預告郵件是否為真
.若廣告商要破解這種機制是需要很大的成本,就目前來說, 是很有效的檔廣告機制.
目前實做的DKIM的模組,對於所定義的公開金鑰與私密金鑰,
還只限於郵件伺服器本身對外發出(非公信力單位發出),
現已有 RFC5016(DKIM Signing Practices Protocol)討論所謂的SPP,
未來很可能形成另一種具備安全性與公信力的通訊協定,讓DKIM更能普及.
若遭遇大量廣告郵件攻擊郵件伺服器,在伺服器還沒進行DKIM驗證的動作時,
可以搭配其他輔助套件,先行阻擋廣告商郵件寄送,
才不至於造成郵件伺服器負載過高甚而停止運作.
特別一提的是目前DKIM並不能證明郵件真的是發信者本人發出,
必須搭配第三者簽名的方式如PGP等單位才是正確方式,
參考文件
http://www.dkim.org/index.html
william 2008/09/16