㈠ 防火牆基本技術
防火牆的基本技術
防火牆是在對網路的服務功能和拓撲結構詳細分析的基礎上,在被保護對象周圍通過的專用軟體、硬體以及
管理措施的綜合,對跨越網路邊界的信息進行監測、控制甚至修改的設施。目前使用的防火牆技術主要有包過濾
和代理服務技術等,用這些技術可以分別做成具有不同功能的防火牆部件。
⒈包過濾技術
包過濾(Packet Filtering)技術就是在網路的適當位置對數據包進行審查,審查的依據是系統內設置的過濾
邏輯——訪問控製表(Access Control table)。包過濾器逐一審查每份數據包並判斷它是否與包過濾規則相匹配。
過濾規則以順行處理數據包頭信息為基礎,即通過對IP包頭和TCP包頭或UDP包頭的檢查而實現。包過濾工作在網
絡層,故也稱網路防火牆。
在Internet技術中還使用內容過濾技術,擔任內容過濾的軟體有「黑名單」軟體、「白名單」軟體和內容選
擇平台(Platform for Internet Content Selection,PICS)。
「黑名單」軟體是第一代Internet內容過濾軟體,其工作原理是封鎖住不應檢索的網址。其中最有名的是(Cyber
NOT,它記錄了大約7000個網址。「白名單」軟體是第二代Internet內容過濾軟體,其工作原理是先封鎖全部網址,
然後只開放應檢索的網址。
PICS是由麻省理工學院計算機科學實驗室的Jim Miller教授開發的第三代Internet內容過濾軟體。它的主要工
作是對每一個網頁的內容進行分類,並根據內容加上標簽,同時由計算機軟體對網頁的標簽進行檢測,以限制對特
定內容網頁的檢索。
數據包過濾防火牆網路邏輯簡單、性能和透明性好,一般安裝在路由器上。路由器是內部網路與Internet連接
的必要設備是一種天然的防火牆,它可以決定對到來的數據包是否進行轉發。這種防火牆實現方式相當簡捷,效率
較高,在應用環境比較簡單的情況下,能夠以較小的代價在一定程度上保證系統的安全。
包過濾技術是一種完全基於網路層的安全技術,只能根據數據包的來源、目標和埠等網路信息進行判斷,無
法識別基於應用層的惡意侵入,如惡意的Java小程序以及電子郵件中附帶的病毒。有經驗的黑客很容易偽造IP地址,
騙過包過濾型防火牆,一旦突破防火牆,即可對主機上的軟體和配置漏洞進行攻擊。進一步說,由於數據包的源地址、
目標地址以及IP的埠號都在數據包的頭部,很有可能被竊聽或假冒;並且它缺乏用戶日誌(Log)和審計 (Audit)信
息,不具備登錄和報告性能,不能進行審核管理,因而過濾規則的完整性難以驗證,所以安全性較差。
⒉代理服務技術
⑴代理服務概述
代理伺服器(Proxy Server)是位於兩個網路(如Internet和Intranet)之間的一種常見伺服器,如果把網路防火牆
比做門衛,代理伺服器就好比是接待室。門衛只根據證件決定來訪者是否可以進入,而接待室在內部人員與來訪者之
間真正隔起一道屏障,它位於客戶機與伺服器之間,完全阻擋了二者間的數據交流。其特別之處就在於它的雙重角色,
從客戶機來看,它相當於一台真正的伺服器;而從伺服器來看,它又是一台真正的客戶機。當客戶機需要使用服務
器上的數據時,首先將數據請求發給代理伺服器,代理伺服器再根據這一請求向伺服器索取數據,然後再由代理服務
器將數據傳輸給客戶機。由於外部系統與內部伺服器之間沒有直接的數據通道,外部的惡意侵害也就很難傷害到企
業內部網路系統。
代理服務技術可以運用於應用層,也可以運用於傳輸層。運用於應用層的代理服務與過濾路由器組合的防火牆,
被稱為應用層網關,它們是面對不同的應用的。運用於傳輸層的代理服務防火牆,實際上是TCP/UDP連接中繼服務。
⑵代理伺服器的工作原理
圖8-9所示表明了代理伺服器(應用網關)的工作原理。
①代理伺服器運行後,它的核心部件——應用代理程序啟動,並開始監聽某個應用埠(這個應用埠是由安全管
理員設定的);
②外部客戶需要訪問內部伺服器時,發送請求到對應的應用埠;
③代理伺服器將請求轉發給內部伺服器;
④伺服器的應答也通過代理伺服器發給外部客戶。
一旦應用代理程序與伺服器之間的連接建立,也就在客戶與伺服器之間建立了一個虛連接,這個虛連接是由兩
條虛連接(客戶端到代理伺服器的客戶連接和代理伺服器到伺服器的伺服器連接)和代理伺服器(應用代理程序)的
中轉實現。
圖8-9代理伺服器工作原理
⑶應用代理程序
應用代理程序是代理伺服器的核心部件。對於應用網關來說,應用代理程序是根據不同的應用協議進行設計的,
根據所代理的應用協議,應用網關可以分為FTP網關、Telnet網關、Web網關等,它們各有對應的應用代理程序。
⑷代理伺服器的功能
①中轉數據。
②對傳輸的數據進行預處理常見的有地址過濾、關鍵字過濾和協議過濾。
③對中轉數據提供詳細的日誌和審計。
④節省IP地址。使用網路地址轉換服務(Network Address Translation,NAT),可以屏蔽內部網路的IP地址,使所
有用戶對外只用一個IP地址,但這也給黑客留下了隱藏自己真實的IP地址,而逃避監視的隱患。
⑤節省網路資源。代理服務常常設置一個較大的硬碟存儲空間,用於存放通過的信息,當內部用戶再訪問相同的信
息時,就可以直接從緩沖區中讀取。
代理服務的隔離作用強,具有對過往的數據包進行分析監控、注冊登記、過濾、記錄和報告等功能,可以針對
應用層進行偵測和掃描,當發現被攻擊跡象時會向網路管理員發出警報,並能保留攻擊痕跡,因此,具有比包過濾
更強的防火牆功能。它的缺點是必須針對客戶機可能產生的所有應用類型逐一進行設置,大大增加了系統管理的復
雜性。
⒊堡壘主機
運行防火牆軟體(例如運行應用代理程序)的主機稱為堡壘主機。堡壘主機是防火牆最關鍵的部件,也是入侵者
最關注的部件,因此它必須健壯,必須不容易被攻破。
㈡ 包過濾技術的技術原理
包過濾技術(IP Filtering or packet filtering) 的原理在於利用路由器監視並過濾網路上流入流出的IP包,拒絕發送可疑的包。由於Internet 與Intranet 的連接多數都要使用路由器,所以Router成為內外通信的必經埠,Router的廠商在Router上加入IP 過濾 功能,過濾路由器也可以稱作包過濾路由器或篩選路由器(Packet FilterRouter)。防火牆常常就是這樣一個具備包過濾功能的簡單路由器,這種Firewall應該是足夠安全的,但前提是配置合理。然而一個包過濾規則是否完全嚴密及必要是很難判定的,因而在安全要求較高的場合,通常還配合使用其它的技術來加強安全性。
包過濾技術是指網路設備(路由器或防火牆)根據包過濾規則檢查所接收的每個數據包,做出允許數據包通過或丟棄數據包的決定。包過濾規則主要基於IP包頭信息設置,包括如下內容:
1、TCP/UDP的源或目的埠號
2、協議類型:TCP、UDP、ICMP等
3、源或目的IP地址
4、數據包的入介面和出介面
數據包中的信息如果與某一條過濾規則相匹配並且該規則允許數據包通過,則該數據包會被轉發,如果與某一條過濾規則匹配但規則拒絕數據包通過,則該數據包會被丟棄。如果沒有可匹配的規則,預設規則會決定數據包是被轉發還是被丟棄。
舉例說明:如圖所示,如果我們需要允許IP地址為192.168.0.1的電腦瀏覽網頁(建立HTTP連接),允許IP地址為192.168.0.2的電腦與Internet建立FTP連接,不允許其他電腦與Internet通信,可以在路由器設置如下過濾規則:
1、允許源IP地址為192.168.0.1、目的埠號為80的數據包通過(HTTP的埠號為80)。
2、允許源IP地址為192.168.0.1、目的埠號為53的數據包通過(DNS的埠號為53,在瀏覽網頁時通常需要進行域名解析)。
3、允許源IP地址為192.168.0.2、目的埠號為21的數據包通過(FTP的埠號為21)。
4、預設禁止所有的其他連接。
包過濾規則允許Router取捨以一個特殊服務為基礎的信息流,因為大多數服務檢測器駐留於眾所周知的TCP/UDP埠。例如,Telnet Service 為TCP port 23埠等待遠程連接,而SMTP Service為TCP Port 25埠等待輸入連接。如要封鎖輸入Telnet、SMTP的連接,則Router舍棄埠值為23、25的所有的數據包。
表9.1 一些常用網路服務和使用的埠 服務名稱 埠號 協議 說明 ftp-data 20 tcp FTP數據 ftp 21 tcp FTP控制 telnet 23 tcp 如BBS smtp 25 tcp 發email用 time 37 tcp timserver time 37 udp timserver domain 53 tcp DNS domain 53 udp DNS tftp 69 udp gopher 70 tcp gopher查詢 http 80 tcp www pop3 110 tcp 收email用 nntp 119 tcp 新聞組,usernet netbios-ns 137 tcp NETBIOS 名稱服務 netbios-ns 137 udp NETBIOS 名稱服務 netbios-dgm 138 udp NETBIOS 數據報服務 netbios-ssn 139 tcp NETBIOS Session服務 snmp 161 udp SNMP snmptrap 162 udp SNMP trap irc 194 tcp IRC網路聊天服務 ldap 389 tcp 輕型目錄服務協議 https 443 tcp SSL加密 https 443 udp 典型的過濾規則有以下幾種:允許特定名單內的內部主機進行Telnet輸入對話、只允許特定名單內的內部主機進行FTP輸入對話、只允許所有Telnet 輸出對話、只允許所有FTP 輸出對話、拒絕來自一些特定外部網路的所有輸入信息。
有些類型的攻擊很難用基本包頭信息加以鑒別,因為這些獨立於服務。一些Router可以用來防止這類攻擊,但過濾規則需要增加一些信息,而這些信息只有通過以下方式才能獲悉:研究Router選擇表、檢查特定的IP選項、校驗特殊的片段偏移等。這類攻擊有以下幾種:
源IP地址欺騙攻擊:入侵者從偽裝成源自一台內部主機的一個外部地點傳送一些信息包;這些信息包似乎像包含了一個內部系統的源IP地址。如果這些信息包到達Router的外部介面,則舍棄每個含有這個源IP地址的信息包,就可以挫敗這種源欺騙攻擊。
源路由攻擊:源站指定了一個信息包穿越Internet時應採取的路徑,這類攻擊企圖繞過安全措施,並使信息包沿一條意外(疏漏)的路徑到達目的地。可以通過舍棄所有包含這類源路由選項的信息包方式,來挫敗這類攻擊。
殘片攻擊:入侵者利用IP殘片特性生成一個極小的片斷並將TCP報頭信息肢解成一個分離的信息包片斷。舍棄所有協議類型為TCP、IP片斷偏移值等於1的信息包,即可挫敗殘片的攻擊。
從以上可看出定義一個完善的安全過濾規則是非常重要的。通常,過濾規則以表格的形式表示,其中包括以某種次序排列的條件和動作序列。每當收到一個包時,則按照從前至後的順序與表格中每行的條件比較,直到滿足某一行的條件,然後執行相應的動作(轉發或舍棄)。有些數據包過濾在實現時,「動作」這一項還詢問,若包被丟棄是否要通知發送者(通過發ICMP信息),並能以管理員指定的順序進行條件比較,直至找到滿足的條件。
對流進和流出網路的數據進行過濾可以提供一種高層的保護。建議過濾規則如下:
(1)任何進入內部網路的數據包不能把網路內部的地址作為源地址。
(2)任何進入內部網路的數據包必須把網路內部的地址作為目的地址。
(3)任何離開內部網路的數據包必須把網路內部的地址作為源地址。
(4)任何離開內部網路的數據包不能把網路內部的地址作為目的地址。
(5)任何進入或離開內部網路的數據包不能把一個私有地址(private address)或在RFC1918中 127.0.0.0/8.)的地址作為源或目的地址。
(6)阻塞任意源路由包或任何設置了IP選項的包。
(7)保留、DHCP自動配置和多播地址也需要被阻塞。0.0.0.0/8 、169.254.0.0/16 、192.0.2.0/24 、224.0.0.0/4 、240.0.0.0/4。