我們這里說的防火墻(Firewall)是一種網絡設備,它在網絡中起到兩個最基本的功能:劃分網絡的邊界、加固內網的安全。
— 劃分網絡的邊界 —
防火墻設備的其中一個功能,就是劃分網絡的邊界,嚴格地將網絡分為“外網”和“內網”。
“外網”則是防火墻認為的——不安全的網絡,不受信任的網絡;“內網”則是防火墻認為的——安全的網絡,受信任的網絡。
— 加固網絡的安全 —
防火墻的其中一個功能,就是網絡流量流向的問題(內到外可以訪問,外到內默認不能訪問),這就從一定程度上加強了網絡的安全性,那就是:“內網屬于私有環境,外人非請莫入!”
另外,防火墻還能從另外一些方面來加固內部網絡的安全:
1:隱藏內部的網絡拓撲
這種情況用于互聯網防火墻。因為內網一般都會使用私有IP地址,而互聯網是Internet的IP地址。
由于在IPv4環境下IP地址不足,內部使用大量的私有地址,轉換到外部少量的Internet地址,這樣的話,外部網絡就不會了解到內部網絡的路由,也就沒法了解到內部網絡的拓撲了。
同時,防火墻上還會使用NAT技術,將內部的服務器映射到外部,所以從外部訪問服務器的時候只能了解到映射后的外部地址,根本不會了解到映射前的內部地址。

2:帶有安全檢測防御
這種功能并不是每一款防火墻都有。
安全檢測系統(簡稱“IDS”)是一種對網絡傳輸進行即時監視,在發現可疑傳輸時發出警報或者采取主動反應措施的網絡安全設備。
它與其他網絡安全設備的不同之處便在于,IDS是一種積極主動的安全防護技術。
3:會話日志功能
防火墻都有“會話記錄”功能,每一個數據包在經過防火墻之后,都可以在防火墻的會話表中查詢到歷史訪問記錄。
如果是外部主機訪問內部呢?當然,在你的內部網絡遭受不安全以后,可以在防火墻上查到從外到內,到底是哪個IP地址非法闖入了。
— 防火墻在企業環境的應用 —
1:互聯網出口設備
這估計是大家最能想到的一種用途吧。
因為Internet就是一個最典型的“外網”,當企業網絡接入Internet的時候,為了保證內部網絡不受來自外部的威脅侵害,就會在互聯網出口的位置部署防火墻。

2:分支機構接骨干網作邊界設備
在電力行業、金融行業等大型跨地,跨省的企業時,為了企業中各個省級、地市級單位的內部數據通信通常都會自建一張骨干網絡。
每個省級、地市級單位辦公網絡接入骨干網時,就可以在網絡接入點部署防火墻,進一步提高每個單位的辦公網絡安全性。

3:數據中心內保護服務器
數據中心(DataCenter)是為企業存放重要數據資料的,同時數據中心內會放置各種各樣功能不一的服務器。
想要保證數據的安全,首先就要保證這些服務器的安全。物理上的安全嘛,你就防火防水防賊唄,應用上的安全,找殺毒軟件嘛;但是在網絡上防止,防止非授權人員操作服務器,就需要到防火墻來發揮作用了。
一般在傳統的數據中心內,會根據不同的功能來決定服務器的分區,然后在每個分區和核心設備的連接處部署防火墻。
— 防火墻并不普適 —
不是任何場合都適合部署防火墻。
誰都知道安全性和方便性有時候會有那么一些沖突。防火墻作為一種網絡安全設備,部署在網絡中會對穿過防火墻的數據包進行攔截,然后確定它符合策略要求以后才會放行。這會對網絡傳輸效率造成一定影響。
所以防火墻一般用于數據中心,大型企業總部,國有企業省級、地區級辦公機構,帶有服務器區域的網絡環境或機密性較高的單位。
— 防火墻的分類 —
防火墻按照功能和級別的不同,一般分類這么三類:包過濾型防火墻、狀態檢測型防火墻、代理型防火墻。
1:包過濾型防火墻
這種防火墻只能實現最基礎的包過濾功能,按照既定的訪問控制列表對數據包的三、四層信息進行控制,詳細一點就是:
三層信息:源IP地址,目標IP地址四層信息:源端口,目標端口
這種情況其實用一個路由器或者三層交換機,配置ACL就能實現。
只有符合了條件的數據包才能被放行,不符合條件的數據包無論如何都不會被放行。但是包過濾型防火墻的性質就是那么“教條”與“頑固不化”!
2:狀態檢測型防火墻
狀態檢測型防火墻就是為了解決“傻~”的包過濾型防火墻而存在的。它比包過濾型防火墻還多了一層“狀態檢測”功能。
狀態化檢測型防火墻可以識別出主動流量和被動流量,如果主動流量是被允許的,那么被動流量也是被允許的。
例如TCP的三次握手中,第一次流量是主動流量,從內到外,第二次流量就是從外到內的被動流量,這可以被狀態監測型防火墻識別出并且放行。
狀態監測型防火墻會有一張“連接表”,里面記錄合法流量的信息。當被動流量彈回時,防火墻就會檢查“連接表”,只要在“連接表”中查到匹配的記錄,就會放行這個流量。

第一次握手,內部主機10.112.100.101使用隨機端口10025訪問外部的WebServer
200.100.1.2的TCP 80
三層信息
源IP地址:10.112.100.101 目標IP地址:200.100.1.2
源端口:TCP 10025 目標端口:TCP 80
由于內部接口放行所有流量,所以這個第一次握手的流量被放行了
但此時,防火墻在連接表中生成了如下內容:

第二次握手時,是外部主機被動彈回的流量
源地址(外部):200.100.1.2 源端口(外部):TCP 80
目標地址(內部):10.112.100.101 目標端口(內部):TCP 10025
此時,防火墻會暫時攔截流量,然后檢查連接表,看看內部主機的IP和端口,外部主機的IP和端口是否與連接表中記錄的相同,如果相同,它就會放行這個流量。
如果是外部主動發起的流量,而防火墻又沒有允許它訪問內部,由于是外部主動發起的流量,所以防火墻的連接表里沒有相應的信息,這就會遭到防火墻的拒絕。
從而達到既保證了內部到外部的正常通信,又使得內部主機不受到外部的侵犯,這就是狀態檢測型防火墻的魅力所在。
目前主流的硬件防火墻幾乎都支持狀態監測功能。
3:代理型防火墻
代理型防火墻一般是一個安裝在多網卡服務器上的軟件,擁有狀態監測的功能,但是多了一項功能就是代理服務器功能。一般有正向代理和反向代理兩種功能:
正向代理用于內部主機訪問Internet服務器的時候,特別是Web服務的時候很管用。當內部主機第一次訪問外部的Web服務器時,代理服務器會將訪問后的內容放在自己的“高速緩存”中。
當內部主機再次訪問該Web服務器的時候,如果有相同的內容,代理服務器就會將這個訪問定位到自己的高速緩存,從而提升內部主機的訪問速度。

反向代理和正向代理有點類似,只不過訪問的方向是外部到內部。
當外部主機要訪問內部發布的某個服務器的時候,不會讓它把訪問目標定位到內部服務器上,而是反向代理設備上。
反向代理設備會從真實的服務器上抽取數據到自己的緩存中,起到保護真實服務器的功能。

— 關于防火墻的學習方法 —
1:抓住重點,切勿混淆
學習防火墻,重點技術就是在安全策略,NAT,以及一些安全的配置還有防火墻雙機熱備上面。
2:經驗只可借鑒不可照搬
在企業中運維防火墻的話,防火墻的變更操作會很多,一般都會在安全策略,ACL的地方進行變更操作。