2011年1月7日 星期五

如何在 DNS Server 設定 SPF

SPF 說明:
SPF 的全寫是 Sender Policy Framework,它是一個可以保障域名持有人,免被 spammers 冒充發信的一種機制。做法是在域名的 DNS 內加入 SPF record,說明這個域名只會透過那些主機發送郵件,而 SPF record 的格式如下為:
        v=spf1 [[pre] type [ext] ] … [mod]
如果不熟悉 SPF record 也沒關係,我覺得反正不是經常要用到,在 SPF 的官方網站提供了一個很方便的 SPF WIZARD,它會根據你的設定給出一個 SPF record 的字串,直接加入 DNS 及重新啟動即可。
        
http://old.openspf.org/wizard.html?mydomain=&x=35&y=6 (The SPF Setup Wizard)



補充說明:
SPF 是 Sender Policy Framework 的簡寫, 它是用識別寄件者的來源 IP 位址是否偽造的技術, 這是放在 DNS Server 上的一種技術, 向人說明 cpc.com.tw 寄出的郵件, 其來源 IP 位址都會 203.69.155.3。假設, 
xxx@cpc.com.tw 寄給 yahoo 時, 他會去看 cpc.com.tw 的 DNS Server 所宣稱的來源 IP 位址與目前的來源 IP 位址是否一致, 是的話, 這應該就是可信的寄件者。    



如果在 DNS Server 中加入一筆 SPF record:
1. Linux Bind
        假設我們的域名為 hgiga.com, 其出去的 IP 位址有210.241.239.221, 203.69.97.156, 210.241.239.253
        設在 /var/named/hgiga.com.hosts 中, 加入內容如下:
                hgiga.com.                500     IN      TXT     "v=spf1 ip4:210.241.239.221 ip4:203.69.97.156 ip4:210.241.239.253 ?all"
        誠如您所看到的, 它是一筆 TXT 記錄。 500 是設定 TTL (Time To Live) 的秒數。500秒意指這個設定 500 秒內都不需重讀。
2. Solaris    
        假設我的域名為 cpc.com.tw, 出去的 IP 位址有 203.69.155.3
        設在 /var/named/named.data 中, 加入內容如下:
                cpc.com.tw.     500     IN      TXT     "v=spf1 ip4:203.69.155.3 mx a:ap1.cpc.com.tw a:ap2.cpc.com.tw a:ap3.cpc.com.tw ?all"
        然後再 kill -1 named.pid 使設定生效
    


測試 SPF 記錄是否有成功:
1. 
http://www.seoconsultants.com/tools/spf/
        輸入 Domain, 如 hgiga.com; 然後再輸入來源 IP 位址, 如 210.241.239.221, 得到 Result 為 Pass, 表示為可信任的來源
2. 
http://www.dnsreport.com/
        輸入 Domain, 如 hgiga.com, 在 Mail 那塊的檢測的最後一部份, 會說您有 SPF record.
3. 利用 dig 指令
        # dig txt hgiga.com
        ;; ANSWER SECTION:
        hgiga.com.              500     IN      TXT     "v=spf1 ip4:210.241.239.221 ip4:203.69.97.156 ip4:210.241.239.253 ?all"
   
      

沒有留言:

張貼留言