轉載 五、數據中心核心技術之網絡技術(防火牆技術)

一、防火牆的概念

防火牆(Firewall),也稱防護牆,是由Check Point 創立者Gil Shwed於1993 年發明並引入國際互聯網(US5606668(A)1993-12-15)。

它是一種位於內部網絡與外部網絡之間的網絡安全系統。是一項信息安全的防護系統,依照特定的規則,允許或是限制傳輸的數據通過。

(圖片來源於網絡)        

        在網絡的世界裏,要由防火牆過濾的就是承載通信數據的通信包

        在網絡中,所謂“防火牆”,是指一種將內部網和公衆訪問網(如Internet)分開的方法,它實際上是一種隔離技術。防火牆是在兩個網絡通訊時執行的一種訪問控制尺度,它能允許你“同意”的人和數據進入你的網絡,同時將你“不同意”的人和數據拒之門外,最大限度地阻止網絡中的黑客來訪問你的網絡。換句話說,如果不通過防火牆,公司內部的人就無法訪問Internet,Internet上的人也無法和公司內部的人進行通信。

二、防火牆的發展歷程

防火牆從誕生開始,已經歷了四個發展階段:

  • 基於路由器的防火牆
  • 用戶化的防火牆工具套
  • 建立在通用操作系統上的防火牆
  • 具有安全操作系統的防火牆

現階段常見的防火牆屬於具有安全操作系統的防火牆,例如NETEYE、NETSCREEN、TALENTIT等。

三、防火牆的基本類型

網絡層防火牆

網絡層防火牆可視爲一種 IP 封包過濾器,運作在底層的TCP/IP協議堆棧上。可以以枚舉的方式只允許符合特定規則的封包通過,其餘的一概禁止穿越防火牆(病毒除外,防火牆不能防止病毒侵入)。這些規則通常可以經由管理員定義或修改,不過某些防火牆設備可能只能套用內置的規則。

應用層防火牆

應用層防火牆是在 TCP/IP 堆棧的“應用層”上運作,您使用瀏覽器時所產生的數據流或是使用 FTP 時的數據流都是屬於這一層。應用層防火牆可以攔截進出某應用程序的所有封包,並且封鎖其他的封包(通常是直接將封包丟棄)。理論上,這一類的防火牆可以完全阻絕外部的數據流進到受保護的機器裏。

數據庫防火牆

數據庫防火牆是一款基於數據庫協議分析與控制技術的數據庫安全防護系統。基於主動防禦機制,實現數據庫的訪問行爲控制、危險操作阻斷、可疑行爲審計。
數據庫防火牆通過SQL協議分析,根據預定義的禁止和許可策略讓合法的SQL操作通過,阻斷非法違規操作,形成數據庫的外圍防禦圈,實現SQL危險操作的主動預防、實時審計。
數據庫防火牆面對來自於外部的入侵行爲,提供SQL注入禁止和數據庫虛擬補丁包功能。

四、Linux 防火牆

Linux 防火牆在企業應用中非常有用,舉例如下:

  • 中小企業與網吧裏有iptables 作爲企業的NAT路由器,可以用來代替傳統路由器,而節約成本。
  • IDC機房一般沒有硬件防火牆,IDC機房的服務器可以用Linux 防火牆代替硬件防火牆。
  • iptables 可以結合squid 作爲企業內部上網的透明代理。傳統代理需要在瀏覽器裏配置代理服務器信息,而iptables+squid 的透明代理則可以把客戶端的請求重定向到代理服務器的端口。客戶端不要作任何設置,而感覺不到代理的存在。
  • 將iptables 作爲企業NAT 路由器時,可以使用iptables 的擴展模塊屏蔽P2P 流量,還可以禁止非法網頁。
  • iptables 可以用於外網IP 向內網IP 映射。
  • iptables 可以輕鬆防止輕量級DOS 攻擊,比如ping 攻擊及SYN 洪水攻擊。

綜述,Iptables 有兩種應用模式:主機防火牆,NAT路由器。

五、防火牆的基本原理

對應下圖的字節傳輸流程,可以分爲以下幾層:

  • 包過濾(Packet filtering):工作在網絡層,僅根據數據包頭中的IP地址、端口號、協議類型等標誌確定是否允許數據包通過。
  • 應用代理(Application Proxy):工作在應用層,通過編寫不同的應用代理程序,實現對應用層數據的檢測和分析。
  • 狀態檢測(Stateful Inspection):工作在2~4層,訪問控制方式與1同,但處理的對象不是單個數據包,而是整個連接,通過規則表和連接狀態表,綜合判斷是否允許數據包通過。
  • 完全內容檢測(Compelete Content Inspection):工作在2~7層,不僅分析數據包頭信息、狀態信息,而且對應用層協議進行還原和內容分析,有效防範混合型安全威脅。


(圖片來源於網絡) 

(圖片來源於網絡) 

六、Netfilter 與 iptables       

        Netfilter是由Rusty Russell提出的Linux 2.4內核防火牆框架,該框架既簡潔又靈活,可實現安全策略應用中的許多功能,如數據包過濾、數據包處理、地址僞裝、透明代理、動態網絡地址轉換(Network Address Translation,NAT),以及基於用戶及媒體訪問控制(Media Access Control,MAC)地址的過濾和基於狀態的過濾、包速率限制等。Iptables/Netfilter的這些規則可以通過靈活組合,形成非常多的功能、涵蓋各個方面,這一切都得益於它的優秀設計思想。Netfilter/Iptables 數據包過濾系統可以當成一個整體,netfilter是內核的模塊實現,iptables是對上層操作工具。 

        如果不嚴格的區分則在Linux中 netfilter 和 iptables 都可以認爲是指Linux防火牆。

        實際 Iptables 是一個管理內核包過濾的工具,可以用來配置核心包過濾表格中的規則。運行於用戶空間。

        區別在於:netfilter 是 Linux的2.4版內核引入了一種全新的包過濾引擎,稱爲Netfilter。指的是Linux內核中實現包過濾防火牆的內部結構,不以程序或文件的形式存在,屬於“內核態”的防火牆功能體系。iptables指的是用來管理Linux防火牆的命令程序,通常位於/sbin/iptables,屬於“用戶態”的防火牆管理體系。iptables是控制Netfilter的工具,是Linux 2.2版內核中比較老的命令ipchains的兄弟。 

        Netfilter 所設置的規則是存放在內核內存中的,而 iptables 是一個應用層的應用程序,它通過 Netfilter 放出的接口來對存放在內核內存中的 XXtables(Netfilter的配置表)進行修改。這個XXtables由表tables、鏈chains、規則rules組成,iptables在應用層負責修改這個規則文件。類似的應用程序還有 firewalld 。

 iptables 和 netfilter 的聯繫?
        很多人一提到防火牆立馬就想到了是iptables,其實iptables並不是防火牆,他只是一個軟件或者說是一個工具,這個軟件可以編寫某些規則,將寫好的規則保存到netfilter的規則數據庫中。因此,真正起到"防火"的功能是netfilter,並不是iptables。netfilter是內核中的一個框架,這個框架裏面包含了4個表和5個鏈,這些鏈又包含了很多的規則。而數據包要比對的規則就是這個鏈中所定義的規則。

        在下述的內容中我們就以iptables來稱呼Linux防火牆了。

(圖片來源於網絡) 

七、防火牆的性能

吞吐量:該指標直接影響網絡的性能,吞吐量
時延:入口處輸入幀最後1個比特到達至出口處輸出幀的第1個比特輸出所用的時間間隔
丟包率:在穩態負載下,應由網絡設備傳輸,但由於資源缺乏而被丟棄的幀的百分比
背靠背:從空閒狀態開始,以達到傳輸介質最小合法間隔極限的傳輸速率發送相當數量的固定長度的幀,當出現第一個幀丟失時,發送的幀數
併發連結數:併發連接數是指穿越防火牆的主機之間或主機與防火牆之間能同時建立的最大連接數 

八、防火牆的侷限性

防火牆雖然是保護網絡安全的基礎性設施,但是它還存在着一些不易防範的安全威脅:
首先防火牆不能防範未經過防火牆或繞過防火牆的攻擊。例如,如果允許從受保護的網絡內部向外撥號,一些用戶就可能形成與Internet 的直接連接。
防火牆基於數據包包頭信息的檢測阻斷方式,主要對主機提供或請求的服務進行訪問控制,無法阻斷通過開放端口流入的有害流量,並不是對蠕蟲或者黑客攻擊的解決方案。
另外,防火牆很難防範來自於網絡內部的攻擊或濫用。


參考:https://blog.csdn.net/freeking101/article/details/70239637?locationNum=4&fps=1

發佈了42 篇原創文章 · 獲贊 10 · 訪問量 11萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章