郵件伺服器防止垃圾郵件的手段之一: 建置DKIM跟DMARC
DKIM (DomainKeys Identified Mail) 在十幾年前已經定下來的郵件標準。但是並沒有被廣泛使用。
直到最近幾年因為垃圾郵件太過泛濫,Google跟Outlook.com才慢慢開始放入自家的收信規範標準。由於這兩個大咖的加入,開始有人發現用自家的郵件伺服器寄過去都會被退信,DKIM才開始受到重視。
今天我們以EVO Mail Server為範例,教大家如何簡單設定DKIM跟DMARC。
事前準備
首先,我們要把SPF紀錄設定好。為什麼? 因為建立DMARC之前,我們必須要把SPF跟DKIM先設定好。
SPF的設定並不難,就是登入DNS代管或自己架設的DNS伺服器裡面新增一筆TXT紀錄。
SPF紀錄基本的語法如下:
"v=spf1 a mx ptr ip4:123.123.123.123 ~all"
由於每個DNS代管服務的設定模式多少會有些出入,有些會直接提供一個SPF紀錄的選項,有些則需要選擇TXT紀錄的選項。下面的結圖為Hinet的範例:
設定完之後,通常需要一段時間讓DNS紀錄生效。如果查詢是否生效? 有兩個直接的辦法,一個到MXTOOLBOX網站做查詢:
另外一個辦法是直接打開EVO Mail Server的UI介面,在"摘要"頁面中間的"網路組態"區塊可以看到SPF檢測的結果:
設置DKIM紀錄
主要網域DKIM檢測 - DKIM在郵件上面加入郵件伺服器的專屬私鑰簽章,收信端的電郵伺服器可以將郵件內含的簽章與寄信端網域DNS紀錄中提供的DKIM公鑰做解碼配對。如果批配,表示此封郵件來源是沒有問題的。
設定步驟:
1. 尚未設定時或設定錯誤時,會出現下面這個信息:
2. 此時,點擊右手邊的解決方式,會跳出一個視窗,裡面會包含主要網域的DKIM DNS紀錄的公鑰內容。
3. 用COPY + PASTE的方式將上面截圖中的整個字串貼到DNS代管的DKIM TXT紀錄中。需要填入的基本上分兩部分:
PCHome 範例: (添增TXT (SPF)即可)
Zoneedit 範例: (添加TXT紀錄即可)
主機名稱,固定為evoms._domainkey,如果設定上面只顯示Selector,輸入evoms即可。
在值或TEXT/地址的空白處填入先前提到COPY + PASTE的整個字串。
4. 設定完成以後,重新開啟EVO介面,若是設定正確,DKIM部分會如下圖:
5. 如何檢查DKIM是否通過收件方郵件伺服器檢查? 做一個實驗,從自家郵件伺服器寄一封給Gmail。再登入Gmail,點擊三點按鍵然後點選Show original,然後會出現檢查結果:
6. 如果要幫次要網域添加DKIM,步驟2裡面的公鑰字串則開啟c:\ProgramData\EvoMailServer\CONFIGS\CERTSTORE\ 裡面的 domain2._domainkey,然後一樣COPY + PASTE 全部內容接著步驟3繼續。
註記: 近日來DKIM逐漸受到Gmail, Yahoo, Outlook.com等等大型郵件服務商重視,建置完可以降低發出郵件被當做垃圾郵件。
設置DMARC紀錄
SPF及DKIM後續可以設定DMARC (Domain-based Message Authentication Reporting and Comformance)
DMARC讓寄件與收件郵件伺服器做垃圾郵件相關的交流,下面提供在DNS代管服務中設定DMARC紀錄的步驟:
設定步驟
1. 登入DNS代管服務商。
2. 新增TXT紀錄。
3. 主機部份輸入_DMARC。
4. 參數部份輸入"v=DMARC1; p=none; rua=mailto:[email protected]"。規則部份可以參考DMARC官方網站。
5. 儲存設定,等待一陣子讓紀錄生效。可以利用MX Toolbox檢查。
註記: 每隔一段時間,收信端郵件伺服器會寄給寄信端郵件伺服器管理員一份報表,供管理員參考及檢查是否有任何不合規範的垃圾郵件被寄出。