一般架設完Mail Server收信大部分都沒有問題,但若想要信件寄出時不會進到垃圾郵件,那就需要新增SPF、DKIM、DMARC來確保信件不會進到垃圾郵件,而隨著惡意郵件的氾濫,許多企業都會加入上述驗證機制來驗證寄件者的信件,根據趨勢科技TrendLabsabs的研究,高達91%的持續滲透攻擊(Advanced Persistent Therat)利用電子郵件作為攻擊開端,除此之外更有高達69%的人每週都會接觸到網路釣魚信件,其中高達25%的高階主管曾被釣得逞。
就先來講解當使用者寄信時若有SPF、DKIM、DMAR,信是如何跑的呢~以下圖為例,這邊就不多解釋流程
SPF、DKIM、DMARC介紹
SPF(Sender Policy Framework):寄件者政策
SPF是用來規範發送郵件服務的位址,可以用來發送寄件人的網域郵件,此機制可避免垃圾信濫發業者,偽裝網域發送假冒郵件。
DKIM(DomainKeys Identified Mail):網域驗證機制,防止郵件內容遭到竄改
DKIM是一種數位簽章,採用公鑰與私鑰加密驗證法,在發送郵件時由發信服務器對郵件私鑰進行簽章,而在郵件接收服務器上,會透過DNS到發信者網域查詢DKIM紀錄,擷取上面的公鑰資料,然後對此郵件進行簽章解碼,如果公鑰與私鑰配對成功,代表郵件確實為原始發信機構所發出。
DMARC則是用來補助SPF及DKIM
當SPF及DKIM都無法檢查通過時,則會使用此機制進行處理,此機制可以確保若不是從原始伺服器發出的網域郵件,則皆會遭到拒絕。
那麼該如何設定呢,SPF及DMARC可以直接在DNS上設定即可
SPF設定
到DNS上設定TXT紀錄:
Host:@
Value:v=spf1 a=mail.[網域] -all
假設網域是google.com則範例(以GoDaddy DNS設定畫面為例)如下
DKIM設定
首先要到Mail Server上去新增[DKIM前置字串]及[公鑰],這邊以Synology的Mail Plus為例,若是其他作業系統可去查找相關系統設定說明
開啟MailPlus Server,選擇網域並進入進階選項,前置字串可自定義,建議不要加標點符號,輸入完後點選產生公開金鑰,將此金鑰先全選複製
回到DNS設定畫面在新增一筆TXT紀錄
Host:123._domainkey (123是前置字串,請根據你的設定輸入,另外理論上domainkey後面需要加入你的網域例如:123.domainkey.google.com,但GoDaddy主機預設就會帶入網域,所以這裡不在輸入網域,請特別注意,若有疑問可詢問你的DNS供應商設定方式)
Value:v=DKIM1; k=rsa; p=剛剛複製的公鑰
DMARC
新增一筆TXT紀錄
Host:_dmarc
Value:v=DMARC1; p=quarantine; rua=mailto:dmarc-reports@你的網域; pct=90; sp=none
以上已設定完成,那麼如何驗證是否有設定成功呢!?
可至這個網站上去測試: https://www.appmaildev.com/
隨便選一個進去
點Next Step
用你的網域信箱寄一封到指定郵件內(標題隨便打),寄過去後狀態就會改變
大概等個10~15秒就可以看到結果