FreeBSD防火牆技術(轉)

gugu99發表於2007-08-11
FreeBSD防火牆技術(轉)[@more@]

  將本地網路連線到Internet之後,Internet上的計算機就能自由訪問本地網路中的計算機了。顯然,由於本地網路屬於同一個組織,本地網路中的計算機相互之間都可以信任,而外部Internet上的計算機可能來自任意地方,因此不可信任。如何給可信任的本地網路中的計算機提供資源,而不給其他Internet上的計算機提供訪問或入侵的機會,同時又不妨礙本地網路中的計算機正常訪問Internet,就成為了建立內部網路的一個要求。

  當然,針對每個計算機進行設定,也可以達到遮蔽外部網路訪問的目的。然而這樣做一方面不太方便,對每個計算機都要進行設定,另一方面不太安全,內部網路中不是每臺計算機使用的作業系統都具備良好的保護措施,而外部網路中的計算機可以透過這些不安全的作業系統進入內部網路,提供了攻擊的途徑。因此更好的辦法是御入侵者於網路之外,在內部網路和外部網路中架設一個防火牆,所有的訪問都需要經過它進行驗證,對內部網路提供了保護作用。

  • 包過濾技術

  為了對內部網路提供保護,就有必要對透過防火牆的資料包進行檢查,例如檢查其源地址和目的地址、埠地址、資料包的型別等,根據這些資料來判斷這個資料包是否為合法資料包,如果不符合預定義的規則,就不將這個資料包傳送到其目的計算機中去。由於包過濾技術要求內外通訊的資料包必須透過使用這個技術的計算機,才能進行過濾,因而包過濾技術必須用在路由器上。因為只有路由器才是連線多個網路的橋樑,所有網路之間交換的資料包都得經過它,所以路由器就有能力對每個資料包進行檢查。

  通常的路由器都支援基本的包過濾能力,路由器在轉發IP資料包的時候,預設狀態並不涉及資料包中的內容,只是按照IP包的目的地址和本身的路由表進行轉發。為了使得它進行包過濾,就必須定義一系列過濾規則,使得路由器能進行過濾。通常情況下,過濾能針對IP地址、埠地址、連線型別等進行設定,還能夠針對資料包進行轉發,將資料包轉發到合適的計算機中。

  在包過濾的條件下,內部網路的計算機還是直接和外部計算機相通訊的。由於這是直接在IP層工作,可以適合所有的應用服務,靈活性和效率都較高。但也存在缺點,比如不能瞭解應用協議的具體形式,也不能提供清晰的日誌記錄等。

  • 代理服務

  代理服務是另一種防火牆技術,與包過濾不同,它直接和應用服務程式打交道。它不會讓資料包直接透過,而是自己接收了資料包,並對其進行分析。當代理程式理解了連線請求之後,它將自己啟動另一個連線,向外部網路傳送同樣的請求,然後將返回的資料傳送回那個提出請求的內部網計算機。

  雖然代理伺服器不必連線到兩個網路上就能提供代理服務,然而要想透過代理伺服器限制網路之間的通訊,提供代理服務的計算機必須連線到兩個網路上,所有的網路之間通訊都需要透過它的代理才行,而不能直接連線到Internet上。因此代理伺服器也不能開啟包轉發能力,如果代理伺服器同時也是路由器,那麼內部計算機就可以透過它的路由能力而非代理能力在不同的網路之間通訊,代理伺服器就起不到防火牆的作用。除非特定情況下,才能設定路由能力,此時也應該配置了更嚴格的包過濾規則,以保護網路安全。

  在有代理服務的情況下,內部網路的計算機必須配置具體的代理服務使用的代理伺服器,它只同代理伺服器打交道,而由代理伺服器傳送請求並返回結果。代理伺服器必須要了解它要代理的服務,併為每一種服務都提供詳細的訪問日誌記錄,並能針對不同的使用者進行認證。

  一般來講,由於代理伺服器要針對一個請求啟動一個代理服務連線,因此代理伺服器效率不高,但是如果針對具體的服務應用,可以在代理伺服器上配置大量的緩衝區,透過緩衝區可以提高其工作效率,提供更高的效能。例如對於使用HTTP 代理伺服器時,代理伺服器就能在緩衝區中查詢到同樣的資料,因而不必再次訪問Internet,減少了對寶貴的Internet 頻寬的佔用。代理伺服器不僅是一個防火牆技術,它還能用來提高訪問Internet的效率。

  常用的代理伺服器有http代理,ftp代理等,所有的代理服務能力都需要客戶軟體的支援,這也意味著當使用者要使用代理功能的時候,需要設定客戶軟體,如瀏覽器,如果客戶軟體不支援代理功能,就無法使用代理伺服器。然而,為了減輕配置負擔、利用代理伺服器的緩衝能力,可以設定一種透明代理伺服器,這種方式不需要設定客戶軟體,透過設定路由器,將本來傳送到其他計算機的IP資料包,依據IP地址和埠轉發到代理伺服器中。

  • 網路地址翻譯

  在TCP/IP開始開發的時候,沒有人會想象到它發展的如此之快。當前使用的IPv4地址空間為32位大小,因而地址資源已經十分緊張了。而下一代的IPv6還沒有得到大家的認可。FreeBSD雖然有支援IPv6的開發計劃,正由於整個Internet上IPv6還沒有實施,因此FreeBSD還沒有將以開發的IPv6合併入正式釋出的系統中去。

  為了解決地址緊張的問題,提出了網路地址翻譯(Network Address Translation, NAT)的方法。NAT能處理每個IP資料包,將其中的地址部分進行轉換,將對內部和外部IP進行直接對映,從一批可使用的IP地址池中動態選擇一個地址分配給內部地址,或者不但轉換IP地址,也轉換埠地址,從而使得多個內部地址能共享一個外部IP地址。

  動態分配外部IP地址的方法只能有限的解決IP地址緊張的問題,而讓多個內部地址共享一個外部IP地址的方式能更有效的解決IP地址緊張的問題。讓多個內部IP地址共享一個外部IP地址,就必須轉換埠地址,這樣內部不同IP 地址但具有同樣埠地址的資料包就能轉換為同一個IP地址而埠地址不同,這種方法又被稱為埠地址轉換(Port Address Translation, PAT),或者稱為IP偽裝(IP masquerading)

  網路地址翻譯也是一個重要的防火牆技術,因為它對外隱藏了內部的網路結構,外部攻擊者無法確定內部計算機的連線狀態。並且不同的時候,內部計算機向外連線使用的地址都是不同的,給外部攻擊造成了困難。同樣NAT也能透過定義各種對映規則,遮蔽外部的連線請求,並可以將連線請求對映到不同的計算機中。

  網路地址翻譯都和IP資料包過濾一起使用,就構成一種更復雜的包過濾型的防火牆。僅僅具備包過濾能力的路由器,其防火牆能力還是比較弱,抵抗外部入侵的能力也較差,而和網路地址翻譯技術相結合,就能起到更好的安全保證。

  • 主動監測技術

  無論是包過濾,還是代理服務,都是根據管理員預定義好的規則提供服務或者限制某些訪問。然而在提供網路訪問能力和防止網路安全方面,顯然存在矛盾,只要允許訪問某些網路服務,就有可能造成某種系統漏洞,然而如果限制太嚴厲,合法的網路訪問就受到不必要的限制。代理型的防火牆的限制就在這個方面,必須為一種網路服務分別提供一個代理程式,當網路上的新型服務出現的時候,就不可能立即提供這個服務的代理程式。事實上代理伺服器一般只能代理最常用的幾種網路服務,可提供的網路訪問十分有限。

  為了在開放網路服務的同時也提供安全保證,必須有一種方法能監測網路情況,當出現網路攻擊時就立即告警或切斷相關連線。主動監測技術就是基於這種思路發展起來的,它維護一個記錄各種攻擊模式的資料庫,並使用一個監測程式時刻執行在網路中進行監控,當一旦發現網路中存在與資料庫中的某個模式相匹配時,就能推斷可能出現網路攻擊。由於主動監測程式要監控整個網路的資料,因此需要執行在路由器上,或路由器旁能獲得所有網路流量的位置。由於監測程式會消耗大量記憶體,並會影響路由器的效能,因此最好不在路由器上執行。

  主動檢測方式作為網路安全的一種新興技術,由於需要維護各種網路攻擊的資料庫,因此需要一個專業性的公司維護。理論上這種技術能在不妨礙正常網路使用的基礎上保護網路安全,然而這依賴於網路攻擊的資料庫和監測程式對網路資料的智慧分析,而且在網路流量較大時,使用sniffing技術的監測程式可能會遺漏資料包資訊,因此這種技術主要用於要求較高,只用於對網路安全要求非常高的網路系統中,常用的網路並不需要使用這種方式。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10748419/viewspace-944618/,如需轉載,請註明出處,否則將追究法律責任。

相關文章