分享配置underlay網(wǎng)絡(luò)時(shí)碰到的一個(gè)防火墻問題
這段時(shí)間碰到了幾個(gè)網(wǎng)絡(luò)問題,引發(fā)了一次關(guān)于來回路徑不一致問題的討論。大概整理了一下,供大家參考。
1、概念解釋
所謂來回路徑不一致,就是網(wǎng)絡(luò)訪問報(bào)文和回包報(bào)文經(jīng)過的路徑不同,或者說上行流量和下行流量所經(jīng)過的設(shè)備和路徑不一致。如下圖所示:
服務(wù)器A訪問服務(wù)器B的時(shí)候,是通過防火墻A,服務(wù)器B回包的時(shí)候經(jīng)過防火墻-B
2、問題描述
這一次我們碰到的問題是在一臺防火墻內(nèi)部的來回不一致,如下圖:
1、????? 用戶去訪問服務(wù)器的備份網(wǎng)IP,服務(wù)器從業(yè)務(wù)網(wǎng)回包。用戶的訪問報(bào)文從防火墻的untrust zone進(jìn)入防火墻,從backup出去,訪問到服務(wù)器;服務(wù)器回包從trust zone進(jìn)入防火墻,從untrust zone出去。
2、????? 用戶訪問服務(wù)器,上行流量先經(jīng)過路由器,然后從防火墻的trust zone進(jìn)去,從DMZ出來,訪問到服務(wù)器;服務(wù)器回包依然是從 DMZ zone進(jìn)入防火墻,但是要從untrust zone出去。
問題:這樣的組網(wǎng),用戶是否可以正常訪問到服務(wù)?
當(dāng)然,這里面涉及到的都是需要三次握手的TCP協(xié)議,UDP協(xié)議并不太在乎來回路徑問題
3、知識尋解
這其中涉及到相關(guān)的防火墻知識點(diǎn)有三個(gè):
1、 首包檢測
2、 反向路由探測
3、 跨安全域轉(zhuǎn)發(fā)限制
我們一個(gè)一個(gè)看一下
3.1 首包檢測
眾所周知,TCP連接要建立三次握手,第一次是發(fā)起者發(fā)送syn,然后響應(yīng)者回復(fù)syn + ack,最后發(fā)起者發(fā)送ACK確認(rèn)。
在來回路徑一致時(shí),syn包先經(jīng)過防火墻,觸發(fā)session建立,后續(xù)報(bào)文走session通過,不需要查找policy。
防火墻的policy是針對于原地址、目的地址、端口做的一個(gè)限制,不管是syn包還是后續(xù)的報(bào)文,都應(yīng)該是可以匹配策略的,即來回不一致的組網(wǎng)中,syn+ack的報(bào)文從另外一臺防火墻經(jīng)過的時(shí)候,雖然沒有session,但是應(yīng)該是可以通過查找policy而通過的。
但是防火墻有一個(gè)首包檢測規(guī)定:只有syn包才能觸發(fā)查找policy創(chuàng)建session的動作,而syn+ack、ack報(bào)文達(dá)到防火墻只查找session,若沒有查到對應(yīng)的session,防火墻會直接丟棄該報(bào)文。
所以在來回不一致的組網(wǎng)中,若防火墻開啟了首包檢測功能,TCP肯定是無法建立連接的。在現(xiàn)網(wǎng)的設(shè)備中,我們是要求關(guān)閉首包檢測的。
關(guān)閉命令為:
Eudemon
undo firewall session link-state check
hillstone
no tcp-syn-check
3.2????????? 反向路由探測
反向路由探測是基于一種防攻擊機(jī)制而制作的一項(xiàng)功能。若有黑客想要攻擊某一臺服務(wù)器,他知道了這臺服務(wù)器的IP以后,就偽造這個(gè)IP發(fā)起訪問,后續(xù)回包都會直接回給被攻擊的服務(wù)器。若黑客使用這個(gè)IP同時(shí)給數(shù)以萬記的服務(wù)器發(fā)包,光是回包就能把服務(wù)器帶寬堵死。
firewall defend ip-spoofing enable
設(shè)備對報(bào)文的源IP地址進(jìn)行路由表反查,如果反查下一條最佳出口和報(bào)文的入接口不相等,則視為IP欺騙攻擊,丟棄該數(shù)據(jù)包。
在下圖的場景中,用戶的源地址假設(shè)為10.10.10.10,則防火墻上面的路由應(yīng)該是指向10.10.10.10從untrust出去。當(dāng)訪問的數(shù)據(jù)包從trust口進(jìn)來的時(shí)候,防火墻識別為,他應(yīng)該是從untrust口進(jìn)來,不一致,就會直接丟棄此報(bào)文。
這個(gè)場景在現(xiàn)網(wǎng)的組網(wǎng)中,也會經(jīng)常出現(xiàn),故現(xiàn)網(wǎng)是要求關(guān)閉的。關(guān)閉命令如下:
Eudemon
不開啟defend ip-spoofing就是關(guān)閉
hillstone
在zone中配置no reverse-route
3.3 跨安全域轉(zhuǎn)發(fā)限制
訪問報(bào)文和回包報(bào)文經(jīng)過的zone不一樣,正如我們前面描述的問題一樣。訪問報(bào)文從untrust到backup,回包報(bào)文從trust到untrust。
這樣的訪問是否可以通過?是否有開關(guān)控制?
在產(chǎn)品文檔里面并沒有明確的說法,不過經(jīng)過我們的測試發(fā)現(xiàn):
1、 Eudemon防火墻是沒有限制的,可以正常使用。
2、 Hillstone是不允許這樣訪問的,并且沒有開關(guān)可以關(guān)閉這種設(shè)置。
3、 Juniper防火墻也是不允許如此訪問的,是否有開關(guān)?還有待供應(yīng)商答復(fù)
由于這樣的限制,我們前面碰到的問題是否能解決,關(guān)鍵就看什么防火墻了。如果是hillstone的防火墻,那基本是沒希望的。解決辦法可以調(diào)整路由,或者替換成Eudemon。
4、問題啟發(fā)
知道了這樣的限制以后,我們有哪些地方要注意,以規(guī)避此問題?
1、????? 對于防火墻上的zone 大于等于3 個(gè)的網(wǎng)絡(luò)分區(qū),若使用hillstone防火墻,路由的設(shè)置就要注意不能跨zone轉(zhuǎn)發(fā)。哪怕不是hillstone防火墻,建議也不要跨安全域,不確定以后替換防火墻,新防火墻就限制轉(zhuǎn)發(fā)了。畢竟從安全上來說,限制轉(zhuǎn)發(fā)也是一種安全保護(hù)措施。
2、????? 對于業(yè)務(wù)網(wǎng)和備份網(wǎng)共用防火墻的組網(wǎng)里面,特別是SR,業(yè)務(wù)量少,特地增加一對備份網(wǎng)防火墻也不必要。那這個(gè)時(shí)候防火墻就不應(yīng)該選擇hillstone防火墻,不然備份網(wǎng)的IP可能在大網(wǎng)ping不通,回包都走業(yè)務(wù)網(wǎng)就都被丟了。
3、????? 后續(xù)引進(jìn)防火墻應(yīng)該要測試這個(gè)功能,是否有這個(gè)限制。若有,應(yīng)提需求設(shè)置一個(gè)開關(guān),避免潛在的風(fēng)險(xiǎn)。
網(wǎng)絡(luò) TCP/IP
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。