筆者所在單位在DMZ區(qū)域部署了自建郵件系統(tǒng)(如 圖 1),為滿足公網(wǎng)用戶及內(nèi)網(wǎng)用戶都能正常的訪問(wèn)郵件系統(tǒng),在出口防火墻配置了NAT雙向地址轉(zhuǎn)換(如圖2)。
圖1 郵件系統(tǒng)部署網(wǎng)絡(luò)拓?fù)鋱D
圖2 防火墻對(duì)郵件服務(wù)器NAT雙向轉(zhuǎn)換設(shè)置
在此處之所以配置NAT雙向轉(zhuǎn)換,是考慮到內(nèi)網(wǎng)用戶需要通過(guò)公網(wǎng)地址訪問(wèn)郵件系統(tǒng)。如配置為NAT目的地址轉(zhuǎn)換(即端口映射),則會(huì)造成郵件服務(wù)器返回內(nèi)網(wǎng)用戶的數(shù)據(jù)包目的地址被更改,數(shù)據(jù)不能正確返回到內(nèi)網(wǎng)用戶,造成通信失敗。關(guān)于NAT地址轉(zhuǎn)換的相關(guān)模式,在此不做介紹。
用戶通過(guò)公司郵件系統(tǒng)發(fā)送郵件正常。但公司郵件系統(tǒng)收取第三方郵件系統(tǒng)的郵件,則出現(xiàn)選擇性收信故障:QQ等郵箱發(fā)送給公司郵箱的信件可正常收取 ;而 126、163等郵件系統(tǒng)無(wú)法正常發(fā)送給公司郵局信件,發(fā)送方收到錯(cuò)誤退信提示:
SMTP error, DOT: 550 Requested mail action not taken: Invalid IP<218.X.X.3>
注:218.X.X.3為公司郵件系統(tǒng)公網(wǎng)地址。
鑒于故障現(xiàn)象的特點(diǎn),首先把故障分析的著眼點(diǎn)放到QQ郵箱與126郵箱的差異及故障退信的錯(cuò)誤提示上。經(jīng)聯(lián)系企業(yè)郵箱客服及退信提示分析,退信是因?yàn)镾PF記錄檢查不通過(guò)而導(dǎo)致的。
SPF“Sender Policy Framework,發(fā)件人策略框架”,是目前一種實(shí)用的反垃圾郵件解決方案。它是一種TXT類型的DNS記錄,通過(guò)提前設(shè)定指定的、合法的發(fā)送電子郵件服務(wù)器IP記錄,來(lái)驗(yàn)證郵件發(fā)件人的身份,即SPF記錄指定了一個(gè)域名下的郵件必須通過(guò)哪些SMTP服務(wù)器來(lái)發(fā)送郵件。接收郵件方在接收郵件時(shí),首先要檢查發(fā)件方后綴域名的SPF記錄,如SPF記錄與發(fā)件人SMTP的IP相吻合,那就是合法郵箱。如有差異,那就會(huì)被認(rèn)為是偽造的郵件從而退回。
圖3 調(diào)整后針對(duì)郵件服務(wù)器NAT轉(zhuǎn)換設(shè)置
從本例的故障中可以看出,126郵箱應(yīng)該設(shè)置了SPF記錄,當(dāng)公司郵箱收到126郵箱發(fā)來(lái)的郵件時(shí),會(huì)對(duì)126郵箱的SPF記錄與來(lái)信的SMTP IP進(jìn)行比對(duì),因?yàn)镾MTP IP為218.X.X.3 (故障退信中標(biāo)注)與126的SPF不符,故造成退信。而QQ郵箱未設(shè)置SPF記錄,故不進(jìn)行核對(duì),收信無(wú)問(wèn)題。
那么126的SMTP怎么變成的218.X.X.3呢?這個(gè)就與防火墻對(duì)于郵件服務(wù)器的NAT雙向地址轉(zhuǎn)換有關(guān)了。如圖2所示,無(wú)論公網(wǎng)還是內(nèi)網(wǎng)用戶訪問(wèn)公司郵箱的公網(wǎng)地址,所有的源地址轉(zhuǎn)換為公司郵箱的公網(wǎng)地址,目的地址轉(zhuǎn)換為公司郵箱的內(nèi)網(wǎng)地址。由此一來(lái),其他郵箱發(fā)往公司郵箱的郵件SMTP源地址都被轉(zhuǎn)換成了218.X.X.3,所有設(shè)置SPF記錄的郵箱發(fā)送都會(huì)出現(xiàn)故障。
筆者通過(guò)討論分析,利用NAT轉(zhuǎn)換的順序組合,將NAT轉(zhuǎn)換對(duì)于公網(wǎng)用戶和內(nèi)網(wǎng)用戶分別進(jìn)行設(shè)置轉(zhuǎn)換:對(duì)于公網(wǎng)用戶只進(jìn)行目的轉(zhuǎn)換,不更改源地址,消除SPF記錄故障;對(duì)于內(nèi)網(wǎng)用戶保留了原來(lái)的雙向轉(zhuǎn)換,確保可訪問(wèn)性。另外,對(duì)于公網(wǎng)用戶的NAT轉(zhuǎn)換一定要優(yōu)先于內(nèi)網(wǎng)用戶轉(zhuǎn)換,以確保SPF問(wèn)題的消除(如圖3)。
對(duì)于本例防火墻設(shè)置的優(yōu)化及故障排除,是基于對(duì)源地址轉(zhuǎn)換、目的地址轉(zhuǎn)換、雙向地址轉(zhuǎn)換的理解和靈活組合運(yùn)用,此外更少不了對(duì)類似SPF相關(guān)應(yīng)用場(chǎng)景、應(yīng)用特點(diǎn)的了解和分析。
針對(duì)出現(xiàn)的問(wèn)題,不要先急于調(diào)整。如果從錯(cuò)誤信息、廠商反饋、經(jīng)驗(yàn)討論等方面進(jìn)行著手分析,逐步縮小故障范圍,像類似的故障是不難處置的。