在網絡的世界里,要由防火墻過濾的就是承載通信數據的通信包。
技術意義的防火墻,是指一種將內部網和公眾訪問網(如Internet)分開的方法,它實際上是一種隔離技術。
防火墻是在兩個網絡通訊時執行的一種訪問控制尺度,它能允許你“同意”的人和數據進入你的網絡,同時將你“不同意”的人和數據拒之門外。
所以,防火墻是可信和不可信網絡之間的一道屏障,通常用在LAN和WAN之間。
它通常放置在轉發路徑中,目的是讓所有數據包都必須由防火墻檢查,然后根據策略來決定是丟棄或允許這些數據包通過。

如上圖,LAN有一臺主機和一臺交換機SW1。在右側,有一臺路由器R1連接到運營商的路由器ISP1。防火墻位于兩者之間,這樣就可以保證LAN的安全。
今天,就想簡單和你說說防火墻的基礎技術點,延展開來,細細講講。
防火墻的類型
你知道多少?
防火墻從誕生開始,已經歷了四個發展階段:
基于路由器的防火墻 → 用戶化的防火墻工具套 → 建立在通用操作系統上的防火墻 → 具有安全操作系統的防火墻
現階段常見的防火墻屬于具有安全操作系統的防火墻,例如NETEYE、NETSCREEN、TALENTIT等。
而一般來說,防火墻一般分為四類:
01 網絡層防火墻
網絡層防火墻可視為一種 IP 封包過濾器,運作在底層的TCP/IP協議堆棧上。可以以枚舉的方式只允許符合特定規則的封包通過,其余的一概禁止穿越防火墻(病毒除外,防火墻不能防止病毒侵入)。這些規則通常可以經由管理員定義或修改,不過某些防火墻設備可能只能套用內置的規則。
02 應用層防火墻
應用層防火墻是在 TCP/IP 堆棧的“應用層”上運作,你使用瀏覽器時所產生的數據流或是使用 FTP 時的數據流都是屬于這一層。
應用層防火墻可以攔截進出某應用程序的所有封包,并且封鎖其他的封包(通常是直接將封包丟棄)。
理論上,這一類的防火墻可以完全阻絕外部的數據流進到受保護的機器里。
03 數據庫防火墻
數據庫防火墻是一款基于數據庫協議分析與控制技術的數據庫安全防護系統。
基于主動防御機制,實現數據庫的訪問行為控制、危險操作阻斷、可疑行為審計。
數據庫防火墻通過SQL協議分析,根據預定義的禁止和許可策略讓合法的SQL操作通過,阻斷非法違規操作,形成數據庫的外圍防御圈,實現SQL危險操作的主動預防、實時審計。

數據庫防火墻面對來自于外部的入侵行為,提供SQL注入禁止和數據庫虛擬補丁包功能。
04 Linux 防火墻
Linux 防火墻在企業應用中非常有用,舉例如下:
中小企業與網吧里有iptables 作為企業的NAT路由器,可以用來代替傳統路由器,而節約成本。
IDC機房一般沒有硬件防火墻,IDC機房的服務器可以用Linux 防火墻代替硬件防火墻。
將iptables 作為企業NAT 路由器時,可以使用iptables 的擴展模塊屏蔽P2P 流量,還可以禁止非法網頁。
iptables 可以用于外網IP 向內網IP 映射。
iptables 可以輕松防止輕量級DOS 攻擊,比如ping 攻擊及SYN 洪水攻擊。
綜述,Iptables 有兩種應用模式:主機防火墻,NAT路由器。
關于防火墻
這3個技術點得抓住
要知道,在這一過程中,路由器是可選的,主要是取決于所連的WAN。
例如,如果你的 ISP 提供電纜,那么你可能有一個帶有以太網連接的電纜調制解調器,也可以直接連接到你的防火墻。
當它是無線連接時,你可能需要那里的路由器進行連接。
如果你需要配置(高級)路由,如 BGP,你就需要路由器。
大多數防火墻支持一些基本路由選項:靜態路由、默認路由,有時還支持 RIP、OSPF 或 EIGRP 等路由協議。
01 狀態過濾
防火墻,如路由器,可以使用訪問控制列表來檢查源、目地址/端口號。
然而,大多數路由器不會在過濾上花太多時間……當它們收到數據包時,就檢查數據包的源目信息是否與訪問控制列表中的條目匹配,如果匹配,它們會允許或丟棄該數據包。
無論他們收到一個數據包還是數千個數據包,每個數據包都會單獨處理,不進行跟蹤之前是否檢查過的數據包,這稱為無狀態過濾。
與之相反的就是,有狀態過濾。防火墻會跟蹤所有入向和出向的連接。例如:
局域網里有臺電腦,作為郵箱客戶端,通過互聯網去訪問郵箱服務器,郵箱客戶端起初會進行TCP三次握手,經過防火墻,就知道它們的源目信息,防火墻會跟蹤這些信息,當郵箱服務器要進行響應客戶端的請求時,防火墻就會自動允許這部分的流量通過防火墻,最終到達客戶端。
又比如,一個 Web 服務器位于防火墻后面,它是一個繁忙的服務器,平均每秒從不同的 IP 地址接受 20 個新的 TCP 連接。
防火墻會跟蹤所有連接,一旦發現每秒請求超過 10 個新 TCP 連接的源 IP 地址,它將丟棄來自該源 IP 地址的所有流量,防止 DoS(拒絕服務)。
02 數據包檢測
大多數防火墻支持進行數據包(深度)檢查。簡單的訪問控制列表僅能檢查源、目標地址/端口,即 OSI 模型的第 3 層和第 4 層。
數據包深度檢查意味著防火墻可以檢查 OSI 模型的第 7 層。這就意味著防火墻查看應用程序數據甚至負載:

上面你看到網絡(IP)和傳輸層(TCP)被標記為紅色,應用層被標記為綠色。這個示例是來自捕獲web瀏覽器請求頁面的數據包。
03 安全區
默認情況下,路由器將允許并轉發它們收到的所有數據包,前提是需要匹配它們的路由表中的路由。
如果你想進行限制,你必須配置一些ACL。如果設備有很多接口或很多條ACL需要配置,這會成為網工的噩夢。這是一個例子:

上面的路由器有兩個入站方向ACL來阻止來自主機的一些流量。
此外,還有兩個ACL,來防止來自 Internet 的流量進入我們的網絡。
我們還可以復用一些ACL,但記得將ACL應用到四個接口。
接下來有個更好的解決方案,防火墻可以結合安全區域來工作。這是一個例子:

上面我們有兩個安全區域:
inside:LAN區域
outside:WAN區域
接口已分配到正確的安全區域,這些區域有兩個簡單的規則:
允許從“高”安全級域到“低”安全級別的流量。
拒絕從“低”安全級別到“高”安全級別的流量。
LAN是我們信任的網絡,所以具有很高的安全級別。WAN 不受信任,因此它的安全級別較低。
這意味著來自從LAN去往WAN的流量將被允許。從 WAN 到 LAN 的流量將被拒絕。由于防火墻是有狀態的,它會跟蹤傳出連接并允許其返回的流量。
如果想例外,你也可以允許從 WAN 到 LAN 的流量,這就需要通過訪問控制列表來完成了。
大多數公司將擁有一臺或多臺服務器,這些服務器大部分是需要從 Internet來訪問。
如郵件服務器。為了安全,我們沒有將它們放在內部(LAN),而是放在稱為DMZ(非軍事區)的第三個區域。看看下面的圖片:

DMZ 安全區域的安全級別介于 INSIDE 和 OUTSIDE 之間。這意味著:
允許從 INSIDE 到 OUTSIDE 的流量。
允許從 INSIDE 到 DMZ 的流量。
允許從 DMZ 到 OUTSIDE 的流量。
從 DMZ 到 INSIDE 的流量被拒絕。
從外部到 DMZ 的流量被拒絕。
從外部到內部的流量被拒絕。
為確保來自 OUTSIDE 的流量能夠到達 DMZ 中的服務器,我們將使用一個訪問列表,該列表只允許流量流向 DMZ 中服務器使用的 IP 地址(和端口號)。
此設置非常安全,如果你在 DMZ 中的其中一臺服務器遭到黑客攻擊,你的 INSIDE 網絡仍然是安全的。

最后,總結一下:
防火墻使用狀態過濾來跟蹤所有入站和出站連接,他們還能夠(主要看防火墻型號)檢查 OSI 模型的第 7 層、應用程序的有效負載。
防火墻還使用安全區域,允許來自高安全級別的流量進入較低安全級別。
從低安全級別到高安全級別的流量將被拒絕,可以使用訪問控制列表進行特例處理。
ManageEngine卓豪
安全俠
Anna艷娜
Anna艷娜
RacentYY
FreeBuf
尚思卓越
Anna艷娜
ManageEngine卓豪
一顆小胡椒