Barracuda SPF 運作及設定

SPF 這一個技術其實在防禦垃圾郵件(SPAM)已經行之有年了,但大部分系統管理者對於SPF運作原理似乎都不太熟悉,今天剛好有機會把這一個運作原理跟大家說明一下。

1. 基本運作原理
2. 設定SPF方式
3. 測試SPF運作

1. 基本運作原理
因為SMTP協定在寄件者欄位上是沒有規定不可以仿冒的,也就是說今天我寄信給你時,我可以造假任何網域(e.g fred@163.com、fred@gmail.com、fred@hp.com…etc),那當我今天以某間公司的域名來發送垃圾郵件時,收件人不就認為你這間公司怎麼都在濫發垃圾信件,自然會影響到公司商譽,造成很大的漏洞存在。

為了解決造假域名濫發信件的問題,我們可以透過SPF這個方式來保障網域持有者,避免被有心人士冒充發信的一種機制。

SPF 的全名是 Sender Policy Framework,這個機制的運作圖如下:

a. 在imprezagt1031.idv.tw DNS Server 上設定SPF TXT Record
“v=spf1 ip4:114.32.127.80/32 -all  (限制只有114.32.127.80 才可以帶imprezagt1031.idv.tw 網域發信)

b. 寄信測試
fred@imprezagt1031.idv.tw 透過Mail Server 114.32.127.80 寄信到fred@chmost.com
fred@imprezagt1031.idv.tw 透過Mail Server  143.25.99.63 寄信到fred@chmost.com

c. Barracuda SPAM 收到來信後,開始查詢imprezagt1031.idv.tw DNS Server 上TXT Record,確認imprezagt1031.idv.tw 網域僅授權給IP:114.32.127.80發信,其餘發信IP皆為造假IP

2. 設定SPF方式
SPF 有幾種Action

Pass
寄送IPSPF Record 所指定的IP
Fail
寄送IP不是為SPF Record 所指定的IP,並且不允許寄送
SoftFail
寄送IP不是為SPF Record 所指定的IP,但允許寄送
Neutral
寄送IP無論是否為SPF Record 所指定的IP,皆不影響寄送
None
此網域並未設定SPF Record
PermError
SPF Record上發生錯誤(可能是SPF Record 語法錯誤)
TempError
暫時無法查詢到SPF Record

DNS SPF 的Action 方式如下:

      “-” Fail
all  “~”SoftFail
      “?”Neutral

V=spf1 使用SPF的版本
ip4 使用ipv4 來做SPF的設定
ip6 使用ipv6 來做SPF的設定
mx 使用mx紀錄來做SPF的設定
a 使用a紀錄來做SPF的設定

Windows Server 2008 R2 設定SPF Record 方式
執行伺服器管理員 腳色 DNS 伺服器 正向對應區域 新增其他紀錄

選取 文字(TXT)

信件允許chmost.com 的MX Record發送信件

Bind 設定SPF Record 方式
信件允許chmost.com 的MX Record發送信件

#vim /var/named/chroor/var/named/db.chmost.com
@                       IN      TXT        "v=spf1 mx:chmost.com -all"

3. 測試SPF運作
透過nslookup or dig 指令測試 SPF Record 是否生效

#nslookup
預設伺服器:  dc1.chmost.com
Address:  2001:b030:10c:10::30

> set type=txt
> chmost.com
伺服器:  dc1.chmost.com
Address:  2001:b030:10c:10::30

chmost.com      text =

        "v=spf1 mx:chmost.com ~all"
>
#dig @8.8.8.8 txt chmost.com
; <<>> DiG 9.3.2 <<>> @8.8.8.8 txt chmost.com
; (1 server found)
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 818
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;chmost.com.                    IN      TXT

;; ANSWER SECTION:
chmost.com.             3599    IN      TXT     "v=spf1 mx:chmost.com -all"

;; Query time: 82 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Thu Jul 10 11:43:32 2014
;; MSG SIZE  rcvd: 66

Barracuda SPAM 開啟SPF 檢查
BLOCK/ACCEPT Sender Authentication
Sender Policy Framework (SPF) Yes
Tag On SPF Block

當設定Fail “-” 時,Barracuda SPAM 會自動封鎖信件

但實際使用此功能時,不少系統管理員都會忘記那些IP是公司會發送信件的IP,造成公司發送信件出去後被有開啟SPF的MTA給封鎖了,甚至還會被認為設備怎麼這麼容易誤判,真是辜負當初設計SPF的用意了,所以為了解決這一個問題,目前Barracuda SPAM有兩種方式

a. Sender Policy Framework (SPF) 使用Tag

b. SPF 仍然使用封鎖功能,使用SPF IP白名單

Refer:
http://www.openspf.org/SPF_Record_Syntax#include

Facebook Comments