防火墻的結(jié)構(gòu)和原理
2022-10-21?
圍觀熱度 4729?資訊中心
無論服務(wù)器部署在哪里,現(xiàn)在一般都會在前面部署一個防火墻,如果包無法通過防火墻,就無法到達服務(wù)器。因此,讓我們先來探索一下包是如何通過防火墻的。
防火墻的基本思路剛才已經(jīng)介紹過了,即只允許發(fā)往特定服務(wù)器中的特定應(yīng)用程序的包通過,然后屏蔽其他的包。不過,特定服務(wù)器上的特定應(yīng)用程序這個規(guī)則看起來不復(fù)雜,但網(wǎng)絡(luò)中流動著很多各種各樣的包,如何才能從這些包中分辨出哪些可以通過,哪些不能通過呢?為此,人們設(shè)計了多種方式,其中任何一種方式都可以實現(xiàn)防火墻的目的,但出于性能、價格、易用性等因素,現(xiàn)在最為普及的是包過濾方式。因此,我們的探險之旅就集中介紹一下包過濾方式的防火墻是怎樣工作的。
網(wǎng)絡(luò)包的頭部包含了用于控制通信操作的控制信息,只要檢查這些信息,就可以獲得很多有用的內(nèi)容。這些頭部信息中,經(jīng)常用于設(shè)置包過濾規(guī)則的字段如表5.1所示。不過,光看這張表還是難以理解過濾規(guī)則是如何設(shè)置的,所以我們來看一個具體的例子。地址轉(zhuǎn)換和包過濾中用于設(shè)置規(guī)則的字段
假設(shè)我們的網(wǎng)絡(luò)將開放給外網(wǎng)的服務(wù)器和公司內(nèi)網(wǎng)分開部署,Web服務(wù)器所在的網(wǎng)絡(luò)可以從外網(wǎng)直接訪問。現(xiàn)在我們希望允許從互聯(lián)網(wǎng)訪問Web服務(wù)器,但禁止Web服務(wù)器訪問互聯(lián)網(wǎng)。以前很少禁止Web服務(wù)器訪問互聯(lián)網(wǎng),但現(xiàn)在出現(xiàn)了一些寄生在服務(wù)器中感染其他服務(wù)器的惡意軟件,如果阻止Web服務(wù)器訪問互聯(lián)網(wǎng),就可以防止其他服務(wù)器被感染。要實現(xiàn)這樣的要求,應(yīng)該如何設(shè)置包過濾的規(guī)則呢?我們就用這個例子來看一看包過濾的具體思路。
在設(shè)置包過濾規(guī)則時,首先要觀察包是如何流動的。通過接收方IP地址和發(fā)送方IP地址,我們可以判斷出包的起點和終點。在圖5.2①的例子中,包從互聯(lián)網(wǎng)流向Web服務(wù)器,從互聯(lián)網(wǎng)發(fā)送過來的包其起點是不確定的,但終點是確定的,即Web服務(wù)器。因此,我們可以按此來設(shè)定規(guī)則,允許符合規(guī)則的包通過。也就是說,允許起點(發(fā)送方IP地址)為任意,終點(接收方IP地址)為Web服務(wù)器IP地址的包通過。如果可以確定發(fā)送方IP地址,也可以將其加入規(guī)則,但這個例子中起點是不確定的,因此可以不將發(fā)送方IP地址設(shè)為判斷條件。
這樣一來,從互聯(lián)網(wǎng)發(fā)往Web服務(wù)器的包就可以通過防火墻了,但光這樣還無法完成訪問。因為收到包之后,Web服務(wù)器需要通過確認(rèn)應(yīng)答機制[插圖]通知發(fā)送方數(shù)據(jù)已經(jīng)正常收到,這需要Web服務(wù)器向互聯(lián)網(wǎng)發(fā)送包。在Web服務(wù)器發(fā)往互聯(lián)網(wǎng)的包中,我們可以將起點(發(fā)送方IP地址)為Web服務(wù)器地址的包設(shè)置為允許通過。像這樣,我們可以先根據(jù)接收方和發(fā)送方地址判斷包的流向,并設(shè)置是允許還是阻止。
不過,按照前面的設(shè)置,相當(dāng)于允許了互聯(lián)網(wǎng)和Web服務(wù)器之間所有的包通過,這個狀態(tài)很危險。假如服務(wù)器上還有一個文件服務(wù)器程序在工作,那么這些文件就可能會被非法訪問從而造成信息泄露。有風(fēng)險的還不僅是文件服務(wù)器,現(xiàn)在每天都會發(fā)布若干安全漏洞,可以說隨處都隱藏著風(fēng)險。因此,我們最好是阻止除了必需服務(wù)(也就是本例中的Web服務(wù))以外的所有應(yīng)用程序的包。
當(dāng)我們要限定某個應(yīng)用程序時,可以在判斷條件中加上TCP頭部或者UDP頭部中的端口號。Web服務(wù)器的端口號為80[插圖],因此我們在剛才的接收方IP地址和發(fā)送方IP地址的基礎(chǔ)上再加上80端口作為條件就可以了。也就是說,當(dāng)包的接收方IP地址為Web服務(wù)器地址,且接收方端口號為80時,允許這些包通過;或者當(dāng)包的發(fā)送方IP地址為Web服務(wù)器地址,且發(fā)送方端口號為80時,允許這些包通過。如果要允許訪問除Web之外的其他應(yīng)用程序,則只要將該應(yīng)用程序的端口號設(shè)置到防火墻中并允許通過就可以了。
通過防火墻像這樣,我們可以在防火墻中設(shè)置各種規(guī)則,當(dāng)包到達防火墻時,會根據(jù)這些規(guī)則判斷是允許通過還是阻止通過。如果判斷結(jié)果為阻止,那么這個包會被丟棄并被記錄下來。這是因為這些被丟棄的包中通常含有非法入侵的痕跡,通過分析這些包能夠搞清楚入侵者使用的手法,從而幫助我們更好地防范非法入侵。