53 張圖詳解防火牆的 55 個知識點

微笑橙子mr 發佈 2023-01-17T03:22:43.567887+00:00

假設客戶端和 HTTP 伺服器通信時, 客戶端發送請求報文時,代理伺服器會替代客戶端向 HTTP 伺服器發送請求;

請關注 點讚 轉發

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 、Telnet 、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 張配圖,一次看懂防火牆!

關鍵字: