1、什么是防火墻?
防火墻( Firewall )是防止火災發生時,火勢燒到其它區域,使用由防火材料砌的墻。
![]()
后來這個詞語引入到了網絡中,把從外向內的網絡入侵行為看做是火災,防止這種入侵的策略叫做防火墻。后來,防火墻不但用于防范外網,例如:對企業內網的 DoS 攻擊或非法訪問等,也開始防范從內部網絡向互聯網泄露信息、把內部網絡作為攻擊跳板等行為。
![]()
硬件防火墻可以實現 CIA 的機密性( Confidentiality )、完整性( Integrity )、可用性( Availability )這三種類型的對應策略。小企業會在局域網和互聯網的邊界部署防火墻。
![]()
2、防火墻有哪些類型?
防火墻可分為軟件防火墻和硬件防火墻。軟件防火墻又可分為個人防火墻和網關防火墻。
個人防火墻
個人防火墻運行在 PC 上,用于監控 PC 和外網的通信信息。在 windows 操作系統中集成了 Windows 防火墻。
![]()
殺毒軟件產品廠家的個人防火墻一般包含在安全軟件套件里。
![]()
網關防火墻
在網絡中的網關上配置防火墻的功能,能對網絡中的流量進行策略控制,這就是網關防火墻。
網關防火墻分為兩種,一種是在 Windows 、linux 等操作系統上安裝并運行防火墻軟件的軟件網關防火墻,另一種是使用專用設備的硬件網關防火墻。
個人防火墻主要監控 PC 的通信流量,網關防火墻是監控網絡中所有終端的通信流量,在網關處進行策略控制。
![]()
硬件防火墻
通過硬件設備實現的防火墻叫做硬件防火墻,外形跟路由器相似,接口類型通常有千兆網口、萬兆光口。
![]()
3、防火墻有哪些技術類型?
![]()
4、什么是代理服務器?
代理服務器是應用網關防火墻的一種。假設客戶端和 HTTP 服務器通信時, 客戶端發送請求報文時,代理服務器會替代客戶端向 HTTP 服務器發送請求;HTTP 服務器回復響應報文時,代理服務器會代替 HTTP 服務器向客戶端回復。對于客戶端來說,代理服務器就是 HTTP 服務器。客戶端和代理服務器、代理服務器和 HTTP 服務器分別建立兩個會話。
- 從客戶端收到的請求報文、從服務器收到響應報文,代理服務器都會在應用層進行檢查,如果有異常就放棄通信或發送出錯信息。
- 由于代理服務器是會話的起點,對互聯網的服務器來說,是看不到客戶端的 IP 地址。
![]()
報文過濾防火墻是以 IP 或 TCP/UDP 為對象,判斷是否允許通信。而應用網關防火墻是以應用程序為對象,也就是將 FTP 、HTTP 、Te.NET 、DNS 等為對象進行判斷。
5、防火墻有哪些接口模式?
防火墻有四種接口模式,分別是 L3 模式、L2 模式、L1 模式和 TAP 模式。
![]()
L1 ~ L3 模式是將防火墻進行串連,TAP 模式是防火墻進行旁掛。
![]()
6、防火墻能防范哪些威脅?
防火墻能夠防范的威脅如下:
- 竊聽:通過竊聽網絡數據獲取銀行卡號、密碼等重要信息
![]()
- 篡改:將網站主頁、郵件等通信內容惡意修改
![]()
- 破壞:通過電腦病毒或DoS攻擊等破壞系統的正常工作
![]()
- 冒充:冒充他人發送郵件,對接收方進行釣魚、詐騙等行為
![]()
- 信息泄露:電腦或服務器上的重要信息或文檔泄露
![]()
- 攻擊跳板:作為病毒部署或DoS攻擊的跳板
![]()
- 垃圾郵件:以營利為目的發送大量郵件
7、有哪些人會威脅安全?
- 黑客( hacker ):是指精通計算機技術的人,并非特指網絡攻擊者。
- 破解者( cracker ):對網絡進行非法訪問、竊聽信息、篡改等行為的人。
- 攻擊者( attacker ):使用 DoS 等攻擊系統,以造成系統宕機為目的的人。
- 妨礙者:發送大量垃圾郵件、在論壇粘貼大量廣告、發布大量無意義信息的人。
- 普通用戶:盡管不會主動攻擊,但在病毒、蠕蟲等感染電腦后,成為威脅網絡安全的對象。
- 僵尸( bot ):作為攻擊跳板的終端,被植入具有攻擊程序的病毒,遭受感染的終端叫做僵尸,由大量僵尸程序組成的網絡叫做僵尸網絡。
8、防火墻有哪些功能?
防火墻常見的功能有:會話管理、報文結構解析、安全區域、安全策略、NAT 、VPN 、DoS 防御、報文攻擊防御、內容掃描、監控和報告、報文抓包。
9、什么是會話?
會話是兩個終端系統之間的邏輯連接,從開始到結束的通信過程。
在 TCP 中,客戶端和服務器通信,使用 3 次握手建立 1 個 TCP 連接,客戶端發送請求( request ),服務器進行回應( response ),直至結束的過程就是進行了 1 個會話通信。
在 UDP 中,客戶端和服務器的源端口和目的端口一致,之后的一系列通信都叫做會話。
在 ICMP 中,Echo request 和對應的 Echo reply 組成 1 個會話。
數據流是一組有序,有起點和終點的數據序列。一個會話有兩個數據流( flow ):一個是 “ 客戶端到服務器 ”( client to server ),另一個是 “ 服務器到客戶端 ”( server to client )。
![]()
10、什么是 TCP 連接管理?
在數據通信前,客戶端發送一個 SYN 包作為建立連接的請求。如果服務器發來回應,則認為可以開始數據通信。如果未收到服務器的回應,就不會進行數據通信。在通信結束時,會使用 FIN 包進行斷開連接的處理。
SYN 包和 FIN 包是通過 TCP 頭部的控制字段來管理 TCP 連接。一個連接的建立與斷開,正常過程至少需要來回發送 7 個包才能完成。建立一個 TCP 連接需要發送 3 個包,這個過程叫作三次握手。斷開一個 TCP 連接需要發送 4 個包,這個過程也稱作四次揮手。創建一個 TCP 連接,會產生一個 32 位隨機序列號,因為每一個新的連接使用一個新的隨機序列號。
![]()
- SYN 檢查
TCP 會話開始時,客戶端會發送一個 SYN 消息。如果沒有會話信息,或尚未建立會話,即非 SYN 消息的 TCP 數據段到達防火墻,防火墻會當做非法消息而丟棄。
- ACK 檢查
通過對 SYN-ACK 的 ACK 消息檢查,確認進行中的 3 次握手是否是非法嘗試,防范 SYN Flood 攻擊。
- 重復數據段檢查
防火墻收到重復數據段,也就是序列號相同的 TCP 數據段,可以選擇接收或者丟棄。
- 窗口檢查
防火墻可以檢測 TCP 頭部的序列號和滑動窗口大小,攔截超過滑動窗口容量數據的序列號。
- 數據段重組
防火墻可以驗證 TCP 數據段序列號是否完整。
11、防火墻如何建立會話?
a.防火墻收到報文后,首先檢查會話表,確認是否有相同的會話。如果有相同會話,那么會禁止會話建立,確保會話都是唯一的。
b.如果是不同會話,那么檢查報文,通常是查看路由表或 mac 地址表來確定轉發路徑。如果可以轉發,就確定對應的轉發出接口和目的網段。如果不能轉發,就丟棄這個數據。
c.報文檢查目的地址是否需要進行 NAT 。如果需要,就先完成 NAT ,然后轉發到相應出接口和目的網段。
d.對報文和目的信息進行安全策略檢查,源信息是源接口、源區域和源地址,目的信息是目的接口、目的區域和目的地址。如果有匹配的安全策略,就根據策略進行處理,允許通信就進行轉發,拒絕通信就進行丟棄。如果沒有匹配的安全策略,就根據默認拒絕的策略丟棄數據。
e.當報文被允許通信時,防火墻的會話表中就會生成相應的會話信息。
12、什么是會話生存時間?
自動生成的會話表信息,是有一定的生存時間。會話建立后,一段時間內一直沒有進行通信,防火墻會刪除生存時間到期的會話表項。如果長期保留會話表項,這些會話信息可能會被惡意攻擊。同時,會話表是會占用防火墻資源,防火墻的會話表項的數量也是有限的,長期保留閑置的會話,會影響新會話的生成。
會話時間可以根據協議的不同,分別進行設置。
TCP 的話,會話的超時時間通常是 30 分鐘到 1 小時,UDP 是 30 秒。比如,Telnet 連接在防火墻上建立會話后,如果在 1 個小時內沒有任何數據通信,防火墻會自動刪除這個會話表項。客戶端無法再次使用這個 Telnet 會話了。
![]()
13、會話如何正常終止?
客戶端完成數據傳輸后,發送 FIN 消息,即使用 FIN 標志位的 TCP 數據段。
服務器收到 FIN 消息后,在回復消息中,使用 FIN 和 ACK 標志位,并將 ACK 編號設置為“接收的 Seq 編號 + 1 ” 。
客戶端相同處理方式,在回復消息中,使用 ACK 標志位,并將 ACK 編號設置為“接收的 Seq 編號 + 1 ” 。
如果客戶端或服務器在連接過程發生故障,只有一方是偵聽狀態,這叫做半偵聽或半關閉。如果通信恢復,接收到故障前的數據段,那么會回復 RST 消息,強制終止 TCP 連接。
當防火墻收到 FIN 或 RST 消息時,會啟動一個 30 秒的定時器。即使 FIN → FIN-ACK → ACK 的終止過程沒完成,防火墻也會強制刪除會話表項。
![]()
14、什么是 UDP 數據流?
UDP 不需要像 TCP 一樣 3 次握手,客戶端和服務器直接使用應用程序的 UDP 數據進行交互。
UDP 數據流是指源 IP 地址、源端口號、目的 IP 地址和目的端口號這 4 個參數都相同的一系列 UDP 數據。
![]()
DNS 和 SNMP 這類應用程序,只需要 1 個 UDP 數據,就能構成 1 個數據流。
音頻和視頻使用的 RTP ,就需要多個 UDP 數據,來構成 1 個數據流。
15、沒有端口號的協議如何生成會話?
像 ICMP 這類沒有端口號的協議,是直接根據 IP 頭部的協議號來生成會話。
防火墻通過識別 ICMP 不同的請求消息和對應的響應消息,來判斷這些消息序列是否屬于同一個會話。
![]()
16、兩臺防火墻,如何管理會話?
通常兩臺防火墻會使用主備方式的冗余結構,對主防火墻和備防火墻的會話信息進行同步。主防火墻負責建立用戶通信的會話,并把會話信息記錄到會話表中,同時將信息轉發到備防火墻。
17、會話管理有什么防御功能?
防火墻可以通過限制會話數量,能夠防范 DoS 攻擊,還能控制防火墻的負載,提高防火墻的性能。
防火墻可以以 TCP SYN 、UDP 、ICMP 等協議為單位,通過指定源與目的的組合方式,來限制這類會話的數目。
18、如何防范非法報文?
為了防止非法報文的流入和流出,防火墻會對報文的頭部和數據進行解析。常見的有:IP 頭部解析、TCP 頭部解析、UDP 頭部解析。
IP 頭部解析
![]()
數據幀和 IPv4 頭部的解析內容如下:
以太網類型與 IP 版本:以太網數據幀頭部的類型字段為 0x0800 時表示 IPv4 ,同時 IPv4 頭部的版本也是 4 。類型字段為 0x86DD 時表示 IPv6 ,IP 頭部的版本也是 6 。
IP 頭部:確認數據是否完整,并檢查報文長度與實際長度是否一致。
IP 協議號、TTL :檢查字段值,如果值為 0 就丟棄報文。
源地址、目的地址:確認是否存在 LAND attack 。
數據總長度:確認是否存在 ping of death 攻擊。
標志位、分片偏移:丟棄無法進行分片的報文。
可選項:丟棄無用可選項的報文。
TCP 頭部解析
![]()
TCP 頭部的解析內容如下:
TCP 頭部:確認各個字段是否完整、是否有被中途截斷。
數據偏移:確認數據偏移字段的值是否是 5 以下,TCP 頭部長度最小是 5 字符 = 20 字節。
校驗和:確認校驗和是否錯誤。
端口號:確認源端口號和目的端口號是否為 0 。
控制位:檢查 SYN 、ACK 等字段是否存在組合不正確的情況。
UDP 頭部解析
![]()
UDP 頭部的解析內容如下:
UDP 頭部:確認各個字段是否完整、是否有被中途截斷。
校驗和:確認校驗和是否錯誤。
19、什么是安全區域?
防火墻有安全區域( Security Zone ,簡稱區域)的概念。防火墻的物理接口和邏輯接口會分配到不同的區域中,也就是將防火墻的網段分別劃分到不同的區域中。一個網絡接口只能屬于一個區域。
在同一個區域內,可以自由進行通信,但是跨區域通信,必須符合安全策略才行。當然,防火墻也可以設置安全策略,根據源或目的地址等條件,判斷在同一區域內能否允許通信。
![]()
信任區域( Trust Zone ),也叫做內部區域,所屬接口是 G1/1 、tunnel1 、Loopback1 ,是指公司內部網絡區域,表示可以信賴的區域。通常區域內是可以自由通信。
不信任區域( Untrust Zone ),也叫做外部區域,所屬接口是 G1/2 ,是指公司外部網絡區域,比如互聯網。與信任區域相對,是不可信任的區域,通常只會攔截通信,不允許所有通信。也可以設置安全策略,允許從信任區域到不信任區域的通信。
DMZ 區域( DeMilitarized Zone ),所屬接口是 G1/4 ,是對外公開的服務器使用的區域,與信任區域是分開的。
為了防止攻擊,從外部網絡訪問內部網絡的通信會被防火墻攔截,但是內部網絡中有對外公開的服務器,比如 Web 服務器,對于 Web 請求就不能一刀切的攔截。但如果把服務器放在內部網絡中,一旦從外部網絡惡意入侵,就會導致內網的重要數據泄露。因此,我們把需要對外公開的服務器放在 DMZ 中,這樣即使服務器遭到入侵,DMZ 區域也無法直接訪問內部網絡。
自定義區域( Custom Zone),這里說的是上圖 Sales Zone ,所屬接口是 G1/3 ,只有銷售部門員工才能訪問的區域,是人為劃分和定義的自定義區域。當然,也能根據具體內容、安全策略描述和管理目的自定義其它區域。
20、什么是安全策略?
防火墻的主要功能是訪問控制,也就是判斷特定源和特定目的之間是否允許進行特定的通信。訪問控制是通過規則來實現,每一條規則都指定了源、目的和通信內容等信息。這些訪問控制規則的集合,在路由器中,叫做訪問控制列表,而在防火墻中,叫做安全策略或安全規則。
21、路由器的訪問控制列表是什么樣的?
通常一個規則是由多條訪問控制列表組成,一條訪問控制列表也叫做一個表項。一個表項由對象( object )、行為( action )、選型( option )這 3 個元素組成。
舉個栗子:思科標準訪問控制列表,表項只允許源 IP 地址作為對象,而行為是在允許( permit )和拒絕( deny )之間二選一。當滿足條件時,也就是觸發對象時,選項可以指定 “ 記錄日志 ” 或 “ 表項有效時間 ” 等操作。如果使用了有效時間選項,就可以設置一個只有公司上班時間為對象的表項。
擴展訪問控制列表,對象就不僅僅是 IP 地址,還可以是 IP 協議號、源 IP 地址、目的 IP 地址、ToS 數據域、ICMP 類型、ICMP 消息、源 TCP/UDP 端口號、目的 TCP/UDP 端口號、TCP 會話是否已經建立等。
舉個栗子:允許 IP地址是 10.1.1.2 的客戶端向 IP 地址是 172.16.1.1 的服務器進行 Telnet 連接,Telnet 的 TCP 端口是 23 ,訪問控制列表如下:
access-list 101 permit tcp host 10.1.1.2 host 172.16.1.1 eq telnet
22、防火墻的安全策略是什么樣的?
對比路由器的訪問控制列表,防火墻的安全策略最大的不同點是對象,防火墻以區域作為對象,還可以以應用程序名稱和用戶名稱等信息作為對象。
![]()
舉個栗子:在上圖的安全策略中,192.168.2.1 從信任區域向不信任區域的 80 端口通信時,防火墻首先執行第 1 條安全策略,發現源地址不匹配,不執行 Allow 。接著執行第 2 條安全策略,發現地址和端口匹配,執行 Deny ,也就是拒絕通信。防火墻的安全策略從上往下依次執行的行為,也叫做安全策略查找( policy lookup )。
Any 表示任何值都與策略匹配。如果是安全策略中,出現未定義的通信,比如從信任區到 DMZ 區域的通信,防火墻默認執行拒絕,這個策略叫做 “ 默認拒絕 ”( implicit deny )。
如果需要在防火墻沒有匹配的情況下,執行 Allow ,可以在安全策略的最后一行設置對象為 Any ,行為為 Allow 的策略。
![]()
當然,防火墻的安全策略是會有上限,上限由產品規格決定。而且當表項越多時,設備性能也會隨之下降。
23、什么是內容安全策略?
防火墻不僅能夠基于區域、IP 地址、端口號、應用程序等設置安全策略,還可以使用內容安全策略進行通信控制。內容安全策略包括反病毒、IPS(入侵防御系統)、URL 過濾、DLP(數據泄露防護)等基于內容的安全機制,能夠攔截非法通信和避免不必要的通信流量。還可以對這些通信不進行攔截,而是記錄到告警日志中后放行。
安全設備的默認設置是攔截嚴重程度高的攻擊,嚴重程度低的攻擊只記錄到告警日志中。當然,嚴重程度的高低可以自定義,也可以修改設置為攔截嚴重程度低的攻擊。
反病毒和 IPS 可能會出現誤判,誤判分為假陽性錯誤和假陰性錯誤兩種。
假陽性錯誤是沒有攻擊行為或病毒入侵,但是被判定為攻擊行為或病毒入侵,并記錄到日志中,或把通信攔截。這類錯誤,用戶容易察覺。
假陰性錯誤是存在攻擊行為,卻判定沒有攻擊行為,而允許通信,也沒有記錄到日志中,無法察覺到嚴重后果。只有 PC 上安裝反病毒軟件或防火墻軟件,才能找到沒有被識別的攻擊行為。這種錯誤一般是由于數字簽名本身不存在,或誤認為數字簽名存在而導致的檢測失敗。
24、什么是 NAT ?
私有 IP 地址只能在內部網絡通信,如果要訪問外部網絡(互聯網),可以通過路由器或防火墻把私有 IP 地址轉換為公網 IP 地址,這個過程叫做 NAT( Network Address Translator )。
NAT 以前是路由器的功能,后來位于網絡邊界的防火墻也常常使用這個功能。路由器和防火墻等運行 NAT 功能后,也叫做網關( gateway )。
靜態 NAT
靜態 NAT( Static NAT )是指 NAT 轉換前的地址和 NAT 轉換后的地址是一對一的對應關系,通常是一個私網地址對應一個公網地址,手動將對應信息配置到網關中。
![]()
動態 NAT
動態 NAT( Dynamic NAT )是在網關配置一個 IP 地址池( IP address pool ),地址池里面包含多個 IP 地址。在 NAT 建立會話時,在地址池內的 IP 地址按順序分配一個轉換后的 IP 地址。由于地址范圍能夠手動進行設置和更改,因此這種方式應用的比較多。
![]()
雖然和靜態 NAT 有點類似,私有地址和公網地址是一對一的映射關系,但不是指定的 NAT 轉換后地址,而是動態分配的、在 IP 地址池中排序靠前的有效地址。
源 NAT
源 NAT( Source NAT )是對發送方的源 IP 地址進行 NAT 轉換。在公司內部網絡的客戶端,要訪問互聯網的服務器,客戶端的私有地址作為發送源,把數據發送到網關時,必須將私有 IP 地址轉換成公網 IP 地址才行。
![]()
要和互聯網上的服務器進行通信,必須使用公網 IP 地址,但是 IPv4 地址有限,無法為每臺客戶端都分配一個公網地址。大部分情況下,源 NAT 能夠通過動態 NAT 方式節約公網地址資源。在網關上設置地址池,或在網關的接口使用 NAPT ,可以實現私有網絡訪問互聯網的功能。
外部網絡只能看到公網地址信息,源 NAT 能夠隱藏客戶端實際使用的 IP 地址,從而降低受到外部網絡攻擊的風險。
目的 NAT
目的 NAT( Destination NAT )是接收到的目的 IP 地址進行 NAT 轉換。
![]()
互聯網的客戶端,想要通過網關訪問內部網絡的服務器時,由于公司內部服務器使用內網地址,無法直接從互聯網訪問到,需要進行目的 NAT 。網關作為內部服務器的代理,把服務器的內網地址映射到公網地址,收到外網客戶端訪問公網地址時,網關將報文的目的地址轉換為內部服務器的私有地址,完成路由和訪問。公司內的服務器通常放置在 DMZ 區域中,能夠對外部網絡屏蔽內部服務器的地址,從而避免內部網絡受到攻擊。
NAPT
當有大量的內網客戶端要跟外網通信,而公網地址只有一個或者少量時,網關無法完成私有地址和公網地址的一對一的分配。
![]()
這時,網關需要結合 TCP 或 UDP 端口號,完成多個私有地址映射成一個公網地址的轉換,這種轉換方式叫做 NAPT( Network Address Port Translation ,網絡地址端口轉換)。
25、什么是 VPN ?
VPN ,全稱是 Virtual Private Network ,也就是虛擬私有網絡。VPN 是使用電信運營商提供的公共網絡,搭建內部網絡的技術。
內部網絡的財務、人事等數據,對外而言是屬于機密信息,必須在內部封閉的傳輸數據。如果只有一個辦公場所,可以通過 LAN 搭建內網。但如果北京和上海都有分支機構時,就需要在不同的辦公場所之間搭建內網。電信運營商有專線服務,可以完成不同地域的內網搭建。專線是單獨使用的線路,不用擔心數據被竊聽,通信質量也能得到保證,但是專線費用昂貴。
還有 ADSL 這種互聯網接入服務,雖然屬于共享類型網絡,但是價格低廉,搭建內網有成本優勢。路由器、防火墻、VPN 設備都支持 IPsec-VPN 功能,在各個分支機構內,使用這些設備建立 IPsec 隧道,完成 VPN 的搭建。
26、VPN 有哪幾種網絡拓撲?
常見的 VPN 網絡拓撲有點對點 VPN 、中心型 VPN 、遠程接入 VPN 。
- 點對點 VPN
點對點 VPN( site-to-site VPN )是通過 IPsec 隧道連接兩個網絡的拓撲結構。網絡的網關,通常是路由器或防火墻等網絡設備,在兩個網絡間,使用點對點的拓撲結構,建立 IPsec 隧道。
![]()
這里的網絡,是指不在同一個局域網的網絡,比如:成都機構或廣州總部的任意一個站點。因為是站點( site )之間的連接,所以叫做點對點 VPN 。
- 中心型 VPN
中心型 VPN( hub and spoke VPN )是星型拓撲結構,也就是一個中心站點的設備,連接多個遠程站點的設備,形成的網絡結構。中心站點( center site )位于總部的網絡,也就是數據中心,成為整個結構的核心站點。一般是電信供應商提供的 VPN 業務,以電信供應商的基礎設施為中心站點,通過 VPN 連接其它站點。
![]()
- 遠程接入 VPN
在家里,或出差在外時,通過互聯網使用 PC 上的軟件,與公司的 VPN 設備建立 IPsec 隧道,能夠訪問公司內部網絡的拓撲結構,叫做遠程接入 VPN 。
![]()
遠程接入的 IPsec-VPN 需要在 PC 上安裝 VPN 客戶端軟件,而 SSL-VPN 是通過 Web 瀏覽器,使用 SSL 連接到公司的 VPN ,通過 SSL( HTTPS )和公司的內部網絡進行連接。
27、IPsec VPN 有哪些專用名詞?
SA( Security Association ):IPsec 通信時建立的邏輯連接。
ESP( Encapsulating Security ):原始報文使用 DES/3DES/AES 中的任意一種算法進行加密,通過 HMAC 確定數據是否被篡改,使用的 IP 協議號是 50 。
AH( Authentication Header ):根據 HMAC 信息確定報文是否被篡改的認證協議。不對報文加班,使用的 IP 協議號是 51 。
IKE( Internet Key Exchange ):IPsec 協議用來交換 key 信息的協議,也叫做 ISAKMP/Oakley 。在 ISAKMP 協議上實現 Oakley 的 key 交換過程。使用的是 UDP 端口號 500 。分為階段一和階段二進行處理。
HMAC( Keyed-Hashing for Message Authentication code ):用來驗證信息是否被篡改的一種 MAC ,也就是消息認證碼,通過散列函數與密鑰信息的組合計算得出,其中散列函數使用的算法一般是 MD5 或 SHA-1 。
SPI( Security Pointer Index ):表示 SA 的編號,32 比特。在對報文加密時,用這個值表示使用了什么加密算法和密鑰信息。
NAT traversal :通過 ESP 加密的報文,由于沒有 TCP/UDP 頭部,因此無法使用 NAPT 。可以使用 NAT traversal 技術,給 ESP 加密后的報文添加 UDP 頭部,從而在 NAPT 環境下進行 IPsec 通信。一般使用 500 或 4500 的端口號。
IPsec-VPN 連接:在建立 IPsec 隧道時,發起協商的叫做發起方( initiator ),另一方叫做應答方( responder )。發送方是最先發出通過 IPsec 隧道報文的設備。
更新 key( rekey ) :IPsec 隧道建立后,每過一段時間,或經過一定量的數據,就會進行 rekey 操作。VPN 設備有修改 rekey 時間的功能。
28、點對點 VPN 的處理過程是什么樣的?
舉個栗子:網絡 A 與網絡 B 通過 IPsec 隧道連接時,網絡 A 的 PC1 想和網絡 B 的 PC2 進行通信。
![]()
PC1 發送請求,到達網絡 A 的網關,也就是 VPN 設備 A ,這時的報文還未加密,是明文狀態。VPN 設備 A 對報文進行加密,并添加 ESP 頭部和在隧道中使用的 IP 頭部(叫做外層 IP 地址),再通過 IPsec 隧道發送出去。
網絡 B 的 VPN 設備 B 通過 IPsec 隧道收到加密的報文,會檢查 ESP 頭部和 AH 頭部。如果 ESP 序列號不正確,VPN 設備 B 就會認為是重放攻擊,并輸出錯誤信息,SPI 值不正確,會輸出 “ Bad SPI ” 的錯誤通知信息。
如果加密報文正常,就進行解密操作,去除外部 IP 、ESP 、AH 等頭部,并對原來 IP 頭部的目的地址進行路由,從而到達 PC2 。
PC2 向 PC1 回復消息時,由 VPN 設備 B 進行加密處理,由 VPN 設備 A 進行解密處理。
中心型 VPN 的遠程站點客戶端和中央站點服務器的 VPN 通信也是這種處理流程。
29、遠程站點之間的通信過程是什么樣的?
舉個栗子:遠程站點 A 、遠程站點 B 和中央站點 VPN 設備 C 。A 的 PC1 和 B 的 PC2 進行通信。
![]()
報文通過 VPN 設備 A 和 VPN 設備 C 的 IPsec 隧道,再經過 VPN 設備 C 和 VPN 設備 B 的 IPsec 隧道,最終到達 PC2 。
如果中央站點是路由器或 VPN 設備,一般只會解密、加密和路由選擇處理。如果中央站點是防火墻,就會在報文解密后進行檢查,只對安全的報文進行加密,然后再向遠程站點發送。
30、什么是基于策略的 VPN ?
路由器和 VPN 設備通常使用基于策略的 VPN 。基于策略的 VPN 是指根據策略(訪問控制列表)控制經過 IPsec 隧道的流量,這樣即使路徑發生變化,也不會對 IPsec 通信造成影響。
基于策略的 VPN 需要設置 IPsec 策略和 proxyID 信息。proxyID 指定 IPsec 隧道傳輸報文的本地網絡和遠程網絡。
舉個栗子:站點 A 和站點 B 使用點對點 VPN 組成網絡,其中站點 A 網絡是 192.168.1.0/24 和 192.168.2.0/24 ,站點 B 網絡是 192.168.3.0/24 和 192.168.4.0/24 。如果只有 192.168.1.0/24 和 192.168.3.0/24 進行加密通信,那么在站點 A 的 VPN 設備設置本地 proxyID 為 192.168.1.0/24 ,遠程 proxyID 為 192.168.3.0/24 。在站點 B 的 VPN 設備設置本地 proxyID 為 192.168.3.0/24 ,遠程 proxyID 為 192.168.1.0/24 。
![]()
31、什么是基于路由的 VPN ?
基于路由的 VPN 通常是防火墻產品使用的 VPN 類型。防火墻會對 IPsec 報文進行精確的控制。
在基于路由的 VPN 中,IPsec 隧道是使用的虛擬接口,又叫做隧道接口( tunnel interface ),流量通過這個接口進入 IPsec 隧道。如果有流量需要在 IPsec 隧道內傳輸,可以設置路由選擇,轉發到隧道接口就行。
基于策略的 VPN 使用策略來控制 IPsec 通信的流量,而基于路由的 VPN 通過隧道接口的路由信息來控制 IPsec 通信的流量。所以在進行 IPsec 通信時,可以和處理普通報文一樣,通過策略定義報文過濾和防火墻處理等。
32、什么是階段 1 ?
在 IPsec 通信中,為了建立加密隧道的 SA ,需要在設備之間使用 IKE 協議完成密鑰的交換。
為了提高安全性,IKE 協議分為階段 1 和階段 2 兩個部分。IKE 階段 1 是完成鑒別和保護 SA 通信的雙方,同時生成階段 2 需要的公有密鑰,建立 IKE SA 等工作。
![]()
33、什么是階段 2 ?
IKE 階段 2 負責生成 IPsec 通信使用的密鑰,并建立 IPsec SA 。
![]()
34、什么是 SSL-VPN ?
SSL-VPN 是通過瀏覽器使用 HTTPS( HTTP over SSL )進行 Web 訪問的遠程接入 VPN 。
如果要使用 IPsec-VPN ,需要在 PC 上安裝專用的客戶端軟件。這個客戶端軟件不一定支持 Mac OS 、手機等操作系統。同時 IPsec-VPN 連接過程,可能會因為防火墻過濾了 IPsec-VPN 的協議號或 NAT traversal 的端口號,而導致連接失敗。
SSL-VPN 就方便很多,只要設備帶有瀏覽器,就能夠通過反向代理的方式完成 VPN 的連接。而且防火墻幾乎不會攔截,因為使用的是 HTTPS 的 443 端口,讓 VPN 遠程連接擺脫了操作系統和連接方式的限制。
![]()
IPsec-VPN 是在網絡層實現的,能夠完成傳輸層 TCP 和 UDP 的加密和隧道傳輸處理。而 SSL-VPN 是在會話層實現的,基于 TCP 的 443 端口運行。只有特定的幾種 TCP 能夠使用反向代理和端口轉發方式,而 ICMP 和 UDP 等傳輸層通信,只能選擇隧道方式。
![]()
35、什么是反向代理?
反向代理,又叫做無客戶端 SSL-VPN 。SSL-VPN 的終端在 443 端口號上,通過 HTTPS 完成解密工作后,轉換為 80 端口號的 HTTP 通信,與內部網絡上的 Web 服務器進行交互。這種方式只有使用 80 端口號、通過瀏覽器訪問 Web 的應用程序才能使用。
在內部客戶端訪問互聯網時,進行中繼的代理服務器,叫做轉發代理服務器。如果訪問方向相反,也就是在互聯網上的客戶端訪問內部網絡服務器時,進行中繼的代理服務器叫做反向代理服務器( reverse proxy )。
36、什么是端口轉發?
端口轉發,又叫做瘦客戶端 SSL-VPN 。使用 ActiveX 或 JAVA Applet 等瀏覽器插件來創建 PC 和服務器的 SSL 隧道。用戶只要登錄 Web 門戶( SSL-VPN 網關),并完成認證,就能夠下載相關插件。用戶能夠使用公司內網服務器上的特定應用程序,也能夠使用端口固定且無需瀏覽器支持的 TCP 應用程序,比如 E-mail 。有些產品還能夠支持端口號變動的應用和 UDP 應用程序等。
37、什么是隧道?
隧道方式是使用 SSL-VPN 客戶端軟件的方式。和 IPsec-VPN 一樣,支持網絡層以上協議的隧道傳輸。
用戶通過瀏覽器訪問 SSL-VPN 設備,并完成認證,就可以下載應用程序,并安裝在用戶的 PC 上。接下來就是通過客戶端軟件建立 PC 和 SSL-VPN 設備的隧道。由于使用了客戶端軟件,還是會不可避免的受到操作系統的限制。
![]()
38、什么是主機檢查?
支持主機檢查( Host Checker )功能的 SSL-VPN ,在客戶端與 SSL-VPN 設備連接時,能夠對連接的客戶端主機進行檢查,檢查信息如下圖。
![]()
如果主機檢查結果 OK ,就允許客戶端的 SSL-VPN 連接,就能夠從外部網絡訪問公司內網。如果結果是 NO ,就拒絕客戶端的 SSL-VPN 連接,或只能進行軟件升級等特定范圍的訪問操作。
39、什么是 DoS 攻擊?
DoS 全稱是 Denial of Service ,也就是無法繼續提供服務的意思。這里的服務是指服務器的應用程序服務,比如客戶端發起 HTTP 請求時,服務器能夠發出 HTTP 響應就說明完成了 HTTP 服務。DoS 攻擊是針對服務器和網絡設備發起的攻擊,制造遠超預先設計的訪問量,讓服務器和網絡設備無法正常的回復響應報文,導致被攻擊的系統無法提供服務。DoS 攻擊也可以利用操作系統或程序的安全漏洞等,以少量流量使系統發生異常。在 DoS 中,通過僵尸網絡的多個跳板,對服務器發起攻擊的方式叫做 DDoS( Distributed Denial of Service )攻擊。
40、DoS 攻擊有哪些類型?防火墻有什么防范措施?
Syn Flood :發送大量 TCP SYN 報文,導致服務器資源消耗過度,一段時間內無法提供服務的狀態。在防火墻內,定義每秒允許通過的 SYN 報文數量,當網絡中的 SYN 報文超過這個值時,就會執行 SYN Cookie 的策略。SYN Cookie 策略是當服務器收到客戶端的 SYN 報文時,不建立 TCP 連接,而是將 TCP 頭部內容的散列值當做序列號放入 SYN-ACK 報文中返回。之后收到包含正確響應編號的 ACK 報文時,才將會話信息存儲在內存中,有效防止攻擊對服務器內存的消耗。
ICMP Flood :也叫做 ping flood ,發送大量的 ICMP echo request 報文來消耗服務器內存,讓服務器暫時無法提供服務。防火墻通過定義一秒內允許的最大 ICMP 報文數量,對超過這個值的 ICMP 報文暫時不處理。
UDP Flood :發送大量的 UDP 報文來消耗服務器的內存,使得服務器暫時無法提供服務。防火墻通過定義一秒內允許的最大 UDP 報文數量,對超過這個值的 UDP 報文暫時不處理。
IP Flood :發送大量的 IP 報文來消耗服務器的內存,使得服務器暫時無法提供服務。防火墻通過定義一秒內允許的最大 IP 報文數量,對超過這個值的 IP 報文暫時不處理。
Land :發送源地址和目的地址相同的報文。受到這種攻擊、又有安全漏洞的設備,會不斷向自己轉發數據而導致宕機。防火墻對于這類報文,一律丟棄。
Tear Drop :發送偽造的、含有 offset 的非法 IP 分片報文。這類攻擊對于有安全漏洞的設備而言,會發生無法重新生成報文的現象發生,導致宕機。防火墻對于這類報文,一律丟棄。
Ping of Death :發送超過 IP 報文最大長度 65535 的 ping 。這類攻擊對于有安全漏洞的設備而言,會導致無法運行的情況發生。防火墻對于這類報文,一律丟棄。
Smurf :把攻擊對象的地址設置成源地址,并廣播發送 ICMP echo request 報文,使得攻擊對象收到大量 ICMP echo reply 報文而消耗帶寬資源。
Fraggle :同 Smurf 類似,UDP 替代 ICMP 發起攻擊,同時利用 echo 、Chargen 、daytime 、qotd 等多種端口。防火墻一般關閉這類端口,或使用安全策略進行攔截。
Connection Flood :反復生成大量長時間為 open 狀態的連接,占據攻擊對象的 socket 資源。如果服務器端沒有最大連接數目的限制,就會發生系統崩潰。
Reload :在 Web 瀏覽器中連續按下 F5 鍵,讓 Web 頁面反復執行刷新操作,也叫做 F5 攻擊。在 Web 通信量大時,會讓服務器負載加重。
41、如何防御 DoS ?
防御 DoS 就是限制異常高速通信流量,一般通過設置區域、網絡接口、網絡等單位來實現。
DoS 防御也可以攔截含有非法內容或安全性低的報文,這類報文讓防火墻或路由器處理的話,會導致資源的浪費,因此需要使用專門的 DoS 防御功能來阻擋這類攻擊。
42、什么是端口掃描?
攻擊者在發起攻擊前,會對攻擊對象的設備情況進行調查,最基礎也是最常用的手段就是端口掃描( port scan )。端口掃描可分為 TCP 端口掃描和 UDP 端口掃描兩大類,對 TCP 端口和 UDP 端口按照順序發送報文,探測目的設備是否開啟了對應的服務。比如,某臺設備的掃描結果是開啟了 22 號端口,攻擊者就會知道設備開啟了 SSH 服務,從而利用 SSH 服務訪問這個設備,并發起后續攻擊。
防火墻能夠探測出端口掃描行為,可以阻斷這個行為。
43、端口掃描有哪些類型?
TCP 端口掃描:對 TCP 的 0 ~ 65535 號端口全部進行掃描,或在一定范圍內掃描端口,從而探測服務器有哪些端口可以使用。掃描過程是向服務器發送 TCP( SYN )分組,如果收到了響應 TCP( SYN + ACK )報文,那么說明端口是打開狀態。如果端口關閉,就會從服務器收到 TCP( RST + ACK )報文。
![]()
SYN 端口掃描:屬于 TCP 端口掃描的一種,無需完成 3 次握手,直接針對 SYN 報文進行端口掃描,也叫做半掃描。在 3 次握手過程中,根據服務器回復的是 ACK 報文還是 RST 報文來判斷端口是否打開。
ACK 端口掃描:為規避防火墻對 SYN 端口掃描的檢測,向服務器發送 ACK 報文,根據回復的 RST 報文窗口大小來判斷端口是否打開。只對端口打開或關閉時發送不同窗口大小報文的服務器有效。
![]()
Null 端口掃描:向服務器發送 TCP 頭部所有字段為 0 的報文,通過服務器是否返回 RST + ACK 報文來判斷服務器端口是否打開。
FIN 端口掃描:向服務器發送 FIN 報文,根據是否收到 RST + ACK 報文來判斷端口是否打開。
Xmas 端口掃描:向服務器發送 TCP 頭部所有字段為 1 的報文,根據是否收到 RST + ACK 報文來判斷端口是否打開。
UDP 端口掃描:對 UDP 的 0 ~65535 號端口全部進行掃描,或是在一定范圍內掃描端口,從而探測服務器有哪些端口可以使用。
Host Sweep :向大量主機發送 ICMP 報文或 TCP 報文,如果返回應答,就根據返回的應答報文判斷主機是否存在,并得知主機上運行了哪些應用程序等信息。TCP SYN Host Sweep 會同時向多臺主機的相同端口發送 TCP SYN 報文。
44、有哪些非法報文攻擊?
IP 地址欺騙( IP Spoofing ):為了通過防火墻,避免被監控日志記錄,偽造 IP 頭部中源 IP 地址的攻擊方式。
分片報文:分片的 IP 報文,由于安全性弱,常用于攻擊,因此防火墻會有攔截分片報文的功能。如果報文和通信鏈路的 MTU 大小一致,就不會發送分片,這個功能也不會影響正常的通信。
ICMP 分片:跟 IP 分片報文類似,防火墻也有攔截 ICMP 分片報文的功能。
巨型 ICMP 報文:防火墻通過攔截一定大小以上的 ICMP 報文,就能避免 Ping of Death 攻擊。
非法 ICMP 報文:如果接收的 ICMP 報文中,頭部出現未定義的值時,需要進行額外的異常處理。防火墻會對這類非法的 ICMP 報文進行攔截。
SYN 以外的 TCP 報文控制:TCP 會話開始前,會發送 SYN 報文。如果在未確認的 TCP 會話中,收到了除 SYN 以外的字段位是 1 的 TCP 報文,很有可能就是端口掃描等攻擊,就需要通過防火墻攔截這類報文。
45、什么是 IDS/IPS ?
IDS ,全稱 Intrusion Detection System ,即入侵檢測系統。IPS ,全稱 Intrusion Prevention System ,即入侵防御系統,合稱為 IDS/IPS 。
IDS 負責檢測非法入侵,并告知系統管理員,而 IPS 是通過設置對非法入侵使用的協議和應用程序進行攔截。
IDS/IPS 能夠檢測的威脅有:
- DoS 攻擊
- P2P 造成的信息泄露
- 運行蠕蟲、特洛伊木馬、鍵盤記錄器等惡意軟件
- 入侵局域網和入侵偵查行為
當 IDS/IPS 檢測到入侵行為后,會進行相應處理:
- 通知管理員,通過電子郵件或 SNMP 等方式
- 記錄日志
- 攔截通信,向攻擊方發送 TCP RST 報文
46、什么是 Deep Inspection ?
防火墻的 Deep Inspection 功能,能夠針對特定的應用層協議,重組應用程序數據流的 TCP 數據段,檢測其中是否包含了非法應用程序參數。
![]()
47、IDS/IPS 和 Deep Inspection 能夠檢測和攔截哪些類型的攻擊?
信息泄露:攻擊者利用帶有惡意腳本的郵件,或附帶惡意軟件的 URL 地址發起的攻擊。攻擊成功的話,能夠獲取對方的機密信息。
執行代碼:向服務器發送非法數據,讓服務器接受并執行遠端的代碼。
DoS 攻擊:發送大量報文,讓服務器的 CPU 、內存使用率上升,妨礙服務器正常提供服務的攻擊。
緩存溢出( Buffer Overflow ):通過惡意程序誘導服務器運行內存超過上限,導致緩存溢出的攻擊。
SQL 注入:針對 Web 應用程序,使用數據庫 SQL 語言,對數據庫進行非法操作的攻擊。
暴力破解( Brute Force Attack ):也叫循環攻擊,使用密碼字典等工具,反復嘗試管理員密碼的攻擊。為了防止這類攻擊,需要執行輸錯 3 次密碼就切斷會話的類似策略。
跨站腳本攻擊( Cross-site Scripting ):簡稱 css 或 XSS 。利用 Web 應用程序的漏洞,在提交頁面表單時,通過服務器執行攜帶 html 標簽的腳本,到達劫持會話或釣魚的目的。
exploit 攻擊:利用軟件安全漏洞發起的攻擊中使用的程序或腳本。
瀏覽器劫持:通過操作攜帶惡意軟件的瀏覽器,在用戶瀏覽 Web 頁面時,篡改顯示的頁面形式和內容。一般會導致持續彈出廣告欄、自動添加 URL 連接、跳轉其它網頁失敗的情況。
釣魚:使用偽造官方網站站點 URL 連接的郵件或網站,騙取用戶的個人信用卡和銀行賬號信息。
僵尸網絡:通過僵尸程序感染多臺 PC ,并根據攻擊方命令,同時發送垃圾和實施 DoS 等攻擊。主要通過使用 IRC 對僵尸下達攻擊命令。
48、什么是 CVE ?
CVE( Common Vulnerabilities Exposures ,通用漏洞披露)是美國非盈利機構 MIRTE 公司識別已知漏洞的項目。機構會為發現的安全漏洞問題分配一個 CVE 識別編號( CVE-ID ),當安全廠家提供多個漏洞防范對策時,通過使用這個編號告知用戶是哪個安全漏洞問題。以 “ CVE-(公元紀年)-(4字符編號) ” 的格式記錄,表明使用這個編號的安全漏洞問題已經廣為人知。
![]()
49、什么是反病毒?
反病毒也叫做防病毒策略,通過在個人電腦和服務器上安裝防病毒軟件,來保護設備免遭病毒侵襲。
在終端上安裝防病毒軟件的方式叫做主機型防病毒。而通過互聯網網關的防火墻以及專用設備,對網絡上所有的通信數據進行掃描的方式叫做網關型防病毒。使用網關型防病毒,能夠防止局域網中病毒的蔓延以及跳板機攻擊網絡的發生。
![]()
![]()
確認是否存在病毒的操作叫做掃描。主機型防病毒的掃描是在主機內進行,而網關型病毒的掃描在通信流量中完成。
50、什么是反垃圾郵件?
垃圾郵件是指騷擾郵件、廣告郵件和詐騙郵件等,很多產品都有過濾這類垃圾郵件的反垃圾郵件功能,但是反垃圾郵件很容易引發誤檢。有可能出現正常郵件歸檔到騷擾軟件中,誤以為沒收到郵件,這個需要注意。
51、什么是 DLP ?
DLP ,全稱 Data Loss Prevention ,也就是防范信息泄露功能。
這個功能是檢測網絡中交換的應用程序數據,當發現特定文件或數據時,及時執行告警、斷開會話、記錄日志等操作。主要由文件過濾和數據過濾兩個部分組成。
![]()
52、什么是 URL 過濾?
URL 過濾功能是在 HTTP 通信中,當客戶端向服務器發起請求時,能夠對 URL 信息進行檢查,判斷 URL 能否訪問,并對有害的 Web 站點進行攔截的功能,通常作為服務器上的軟件、防火墻和代理服務器的功能之一,提供給用戶。
53、防火墻有哪些監控功能?
防火墻有監控、告警通知、日志記錄和報告等監控功能。
監控( monitoring ):對網絡和網絡設備的實時狀態進行監控,及時觀察流量狀態和故障信息,當發生故障、異常情況時,能夠及時告警通知管理員。
告警通知( alerting ):發生故障和出現定義事件時,向管理員發生告警通知。告警方式可以是發送 SNMP Trap 、向 Syslog 服務器發送 syslog 通信和向服務器發送電子郵件等。
日志記錄( logging ):記錄流量日志、事件日志等各類日志的功能。日志能夠導出為純文本格式、CSV 格式、PDF 格式等。
報告( reporting ):通過 Web 對日志進行加工處理,提供一目了然的圖表等信息。有些防火墻是發送 Syslog 日志或專用日志到管理服務器,在管理服務器上展示報告。
54、什么是報文抓包功能?
有些安全設備有報文抓包功能。抓到的報文可以在設備上流量,也可以導出為 WinPcap 格式的文件,在 Wireshark 這個應用程序中進行瀏覽。當發生通信故障時,可以根據抓包的信息進行分析。
![]()
55、防火墻性能有哪些要素?
同時在線會話數:防火墻通過管理會話表,以會話為單位來控制通信流量。會話表能夠記錄的表項數目說明了防火墻能夠處理的同時在線會話數量。小型防火墻設備一般管理幾萬個會話,而電信服務供應商使用的防火墻能夠同時管理數百萬個會話。
NAT 表數目:有些防火墻或路由器會分別維護會話表和 NAT 表。NAT 表的數量表示同時在線 NAT 的會話數,這個數值表示設備能夠建立 NAT 會話數的最大值。沒有 NAT 表數上限的防火墻,一般使用會話數的上限。
每秒新建的會話數目:路由器的性能一般使用每秒能夠傳輸的 bit 數 bit/s 和每秒轉發報文數 pps 這兩個參數來描述。而防火墻還增加了一條每秒新建會話數這個參數,表示在 1 秒內能夠完成多少次完整的會話建立過程。1 個完整的會話建立過程包括:監控 TCP 連接的 3 次握手,握手正常則生成會話信息,將信息記錄到會話表等操作。也引入另一個指標,表示在 1 秒內能夠完成會話從建立到結束的次數,這個指標叫做每秒連接數。
網絡技術平臺.
混跡網絡行業10余年,現為世界50強金融科技公司網絡專家。分享計算機網絡知識,讓學習變得更有趣,讓網絡變得更簡單。
來自公眾號:網絡技術平臺
大家好,我是小弗。共 55 個知識點,53 張配圖,一次看懂防火墻!






