「緯育 2026-0508」修訂間的差異

出自頂極製作所
 
行 134: 行 134:
* 網路位址轉譯 (NAT):將在 R1 路由器上設定,實現私有 IP 與公用 IP 的轉換。
* 網路位址轉譯 (NAT):將在 R1 路由器上設定,實現私有 IP 與公用 IP 的轉換。
* 虛擬私人網路 (VPN):在 R6 與 R1 之間建立安全的 VPN 通道,實現遠端據點的安全互聯。
* 虛擬私人網路 (VPN):在 R6 與 R1 之間建立安全的 VPN 通道,實現遠端據點的安全互聯。
[[檔案:2026-0507-04.png|800px]]

於 2026年5月10日 (日) 12:47 的最新修訂

本系列講座為網路治安課程,深入探討防火牆的核心技術,特別是存取控制列表(ACL)。講師首先強調,雖然課程使用具備進階功能的路由器(Router)進行教學,而非實際的防火牆硬體,但學習目標是為了掌握防火牆的原理與配置,如ACL、NAT和VPN等核心技術,這對於網路工程師的求職面試至關重要。講座詳細闡述了ACL的概念、從傳統號碼式演進至命名式ACL的原因,並透過實際網路拓撲案例(如新竹總公司與各分公司的VLAN和OSPF架構)解釋如何利用ACL在原本暢通的網路中實現精細的存取控制,以保護如資料中心等重要資源。

內容深入探討了ACL的原理、類型(標準型與擴充型)、萬用遮罩(Wildcard Mask)的應用,以及防火牆在企業網路中的兩種主要佈署位置:資料中心外圍與企業網路邊界。講師進一步解釋了ACL作為封包分類工具的進階應用,如何與NAT、VPN等功能結合,並透過FTP、DNS、ICMP等協定細節,展示資安人員如何制定更精確、高效的控制規則,例如利用ICMP類型防禦Ping Flooding攻擊,或應用基於時間的ACL保護企業機密資料。

講座也揭示了傳統編號型ACL存在修改不便的致命缺點,例如no access-list [number]指令會刪除該編號下的所有規則,因此思科(Cisco)推廣使用更具彈性的命名式ACL。命名式ACL引入了行號概念,允許在規則中間插入或刪除特定行,大幅提升了管理靈活性。最後,講師運用程式設計的流程圖與條件判斷概念,詳細拆解了ACL的內部執行順序與比對邏輯,包括封包如何依序比對路由表與ACL規則、綁定方向(in/out)的重要性,以及ACL結尾隱含的「Deny Any」規則如何作為預設安全機制,確保所有未被明確允許的流量都會被拒絕。

防火牆與網路治安的重要性

  • 防火牆的核心地位與教學策略
    • 硬體防火牆是企業網路治安的基礎設備,相關知識在求職面試中佔比極高(80-90%)。
    • 因實體防火牆映像檔資源消耗大,課程採用具備治安功能(IOS檔名含"K9")的Cisco路由器來學習ACL、NAT、VPN等核心技術。此方法在面試中被視為聰明的學習策略。
    • 學員應表明學過防火牆的核心技術,而非直接回答「沒有」。
  • 防火牆的佈署與資安角色
    • 兩個主要佈署位置:
   1. 資料中心外圍:保護內部伺服器與資料,根據資安政策對訪問者進行分級控管。
   2. 企業網路與網際網路邊界:保護整個企業內網,防止外部未經授權的訪問,常與NAT技術結合。
    • 資安部門的角色:在組織中層級較高,獨立掌控防火牆的設定與管理權限,以落實資安控管。近年政府主管機關也要求資安部門需獨立運作。

存取控制清單 (ACL) 的原理與類型

  • ACL基本概念與目的
    • ACL(Access Control List)是一系列用於比對、過濾網路封包的規則,其核心功能是控制封包的進出(permit 或 deny)。
    • 學習重點在於掌握其語法,並根據網路安全需求進行配置。
  • ACL的類型:標準型與擴充型
    • 標準型 ACL (Standard ACL):
 ** 僅比對封包的「來源 IP 位址 (Source IP)」。
 ** 號碼範圍:1-99 及 1300-1999。
 ** 語法相對簡單,但在特定場景下仍非常實用。
    • 擴充型 ACL (Extended ACL):
 ** 可比對多個參數,條件更精細,包括:「來源IP」、「目的IP」以及「第四層協定與埠號」。這些條件是 AND 的邏輯關係。
 ** 號碼範圍:100-199 及 2000-2699。
 ** CCNA考試的重點,因其複雜度較高。
  • 萬用遮罩 (Wildcard Mask)
    • 在Cisco設備中,ACL使用萬用遮罩來定義IP位址的比對範圍,0 代表「必須比對」,1 代表「不比對」,與子網路遮罩意義相反。
    • 在OSPF與ACL中皆有應用,但比對對象不同:OSPF比對路由器介面IP,ACL比對封包的來源或目的IP。

ACL的進階應用與協定細節

  • ACL作為封包分類工具
    • 除了基本的允許/拒絕,ACL更廣泛的應用是作為「封包分類」工具。
    • 它能將封包分為不同類別(如需NAT的封包、需VPN的封包),再交由後續功能處理。此「無所不搭」的特性使其成為網路故障排除時必須檢查的一環。
  • 基於協定細節的精細化控制
    • FTP:Port 21(命令)與Port 20(資料)協同工作。阻擋FTP只需deny Port 21,但允許FTP則需同時permit Port 20和Port 21。撰寫最精簡的ACL規則能獲得更高評價。
    • DNS:使用Port 53。Client到Server的查詢用UDP(可掉包),Server到Server的區域傳輸(Zone Transfer)用TCP(確保資料完整性)。
    • ICMP:ping的Echo Request為Type 8,Echo Reply為Type 0。為防禦Ping Flooding攻擊,可在防火牆上Deny ICMP Type 0,使設備不回覆ping請求,從而節省CPU資源。
  • 基於時間的存取控制
    • 擴充型ACL可加入時間參數(Time Range),實現分時段的存取控制。
    • 例如,可設定規則,禁止高階主管在非上班時間(如深夜)存取核心伺服器,以防止類似梁孟松事件的機密資料外洩。

ACL的撰寫、部署與管理

  • 號碼式ACL vs. 命名式ACL
    • 號碼式ACL的缺點:具有隱含的行號順序,修改極為不便。若指令打錯,需先用no指令刪除整條規則,再重新加入,會導致規則順序被打亂。更致命的是,no access-list [number]指令會刪除該編號下的所有規則,而非僅單一行。
    • 命名式ACL的優勢:為了解決上述問題,Cisco推廣使用命名式ACL(ip access-list [standard/extended] [name])。它引入了明確的行號(Sequence Number),預設從10開始,每次遞增10。這允許使用者在規則中間插入新規則,或根據行號精確刪除單一規則,大幅提升了管理的靈活性。
  • ACL的設定與綁定流程
    • 兩步驟設定:
   1. 定義規則:使用 access-list 指令撰寫 permit 或 deny 的條件。
   2. 應用至介面:使用 ip access-group [number/name] [in/out] 指令將ACL綁定到特定介面的特定方向。若未綁定,ACL不會生效。
    • 綁定方向 (in/out):方向是基於「路由器」的視角定義的。in指封包進入路由器的方向,out指封包離開路由器的方向。方向設定錯誤會導致ACL失效。

ACL的執行順序與比對邏輯

  • 路由器內部處理順序
 1. 路由表比對:封包進入後,首先根據其「目的IP」查詢路由表,決定「離開端口」。若無匹配路由,則丟棄封包。
 2. ACL檢查:在封包離開端口前,檢查該端口是否有綁定方向相符的ACL。若有,則觸發ACL規則比對。
  • ACL比對邏輯(流程圖概念)
 1. 逐行比對:封包從ACL的第一行規則開始,根據其「來源IP」(標準型)或其他屬性(擴充型)進行比對。
 2. 條件滿足 (Match):若封包符合某行規則,則執行該規則的動作(permit或deny),比對流程結束,不再檢查後續規則。
 3. 條件不滿足 (No Match):若不符合,則跳至下一行規則繼續比對。
 4. 隱含的Deny Any:若封包比對完所有使用者定義的規則後皆不滿足,將會觸發ACL結尾一條「看不見的」規則:deny any。這條「隱含拒絕」規則是所有主流防火牆的預設安全機制,確保所有未被明確允許的流量都會被封鎖。

2026-0507-03.png

ACL 的基本概念與原理

  • ACL 的作用與實施步驟
    • ACL (Access Control List) 是防火牆功能的基礎,用於過濾網路封包,控制其通過與否。
    • 設定 ACL 分為兩步驟:首先撰寫規則(使用 access-list 指令),然後將其綁定到指定的網路介面或線路上。
  • 綁定目標與指令差異
    • 過濾通過流量:將 ACL 綁定到實體端口 (Interface) 上,使用 ip access-group [編號/名稱] [in/out] 指令。
    • 限制網管存取:將 ACL 綁定到虛擬終端線路 (LINE VTY) 上,用於保護 Telnet/SSH 等連線,需使用 access-class [編號/名稱] [in/out] 指令。
  • 方向性 (in/out)
    • ACL 的應用具有明確方向性,in (進入介面) 和 out (離開介面),方向判斷至關重要,設定錯誤會導致規則失效。
  • 隱含的 Deny All 規則 (Implicit Deny)
    • 在每組 ACL 規則的結尾,都存在一條看不見的、隱含的 deny any 規則,會阻擋所有未被前面明確 permit 規則允許的流量。
    • 因此,一個有意義的 ACL 應至少包含一條 permit 語句,否則將阻擋所有流量。
  • 規則比對邏輯 (AND 邏輯)
    • 擴充型 ACL 的一條規則可能包含多個條件(來源 IP、目的 IP、協定、埠號)。封包必須同時滿足所有條件,該規則才會被觸發。

ACL 的撰寫方式與要領

  • 撰寫方式:編號式 vs. 命名式
    • 傳統編號式:使用數字編號識別 ACL(標準型 1-99,擴充型 100-199)。缺點是無法單獨刪除或修改某一行規則。
    • 命名式 (Named ACL):使用自訂名稱識別 ACL,是目前主流方式。語法為 ip access-list standard/extended [名稱],允許單獨修改或刪除規則。
  • 核心撰寫原則
 1. 順序至關重要:ACL 依撰寫順序逐行比對,一旦匹配成功即停止後續比對。
 2. 範圍由小到大:應將最嚴格、最特定的規則(如特定主機)放在最前面,再處理範圍較大的通用規則(如子網段、主網段、any)。順序:Specific Host -> Subnet -> Major Network -> Any。
  • 萬用字元遮罩 (Wildcard Mask)
    • 用於定義 IP 位址比對的精確度。0 代表對應位元必須比對,1 (或 255) 代表不需比對。
    • 0.0.0.0:精確比對單一主機。可簡寫為 host [IP位址]。
    • 0.0.0.255:比對前 24 位元(/24 網段)。
    • any 關鍵字:代表任何 IP 位址,等同於 0.0.0.0 255.255.255.255。

ACL 的類型與語法

  • 標準型 ACL (Standard ACL)
    • 號碼範圍:1-99。
    • 比對條件:僅能根據來源 IP 位址進行過濾。
    • 範例:access-list 1 permit 192.168.1.0 0.0.0.255
  • 擴充型 ACL (Extended ACL)
    • 號碼範圍:100-199。
    • 比對條件:可根據來源 IP、目的 IP、協定 (TCP/UDP) 及埠號進行過濾。
    • 語法結構:access-list [號碼] [permit/deny] [協定] [來源IP] [來源遮罩] [目的IP] [目的遮罩] [運算子] [埠號]
    • 範例 (阻擋 FTP 連線):access-list 101 deny tcp any any eq 21 (只需阻擋控制埠 21 即可)。
    • 範例 (允許所有其他流量):access-list 101 permit ip any any。

ACL 的效能優化與應用策略

  • 最佳部署位置:靠近來源
    • 將 ACL 部署在越靠近流量「源頭」(Source) 的端口越好。
    • 理由:能在封包進入路由程序前就將其過濾,避免不必要的 CPU 資源消耗,提升路由器效能。
  • 規則排序優化
 1. 範圍由小到大:這是必須遵守的邏輯基礎。
 2. 命中計數由大到小:在不影響邏輯的前提下,將「命中計數」(Hit Count) 高的規則移到前面。流量最大的封包能被優先處理,大幅減少 CPU 的總比對次數。
    • 檢驗工具:使用 show access-list 指令可以查看每條規則的命中計數。
  • 雲端應用 (AWS Security Group)
    • AWS 的安全群組功能類似 ACL。過多的規則(如數百行)會導致虛擬主機效能下降,整理和縮減規則時應遵循上述優化原則。

遠端管理安全 (Telnet & SSH)

  • Line VTY 的應用
    • Line VTY 是處理遠端登入(Telnet/SSH)的邏輯端口。
    • 針對路由器的網管連線,應將 ACL 綁定在 Line VTY 上,實現統一管理。
  • 從 Telnet 遷移到 SSH
    • Telnet 以明文傳輸密碼,不安全。SSH 為加密連線,是安全替代方案。
    • 啟用 SSH 步驟:
   1. 設定主機名稱與網域名稱:hostname R1, ip domain-name sysco.com (金鑰命名所需)。
   2. 產生 RSA 金鑰:crypto key generate rsa (建議長度 1024 位元)。
   3. 啟用 SSH v2:ip ssh version 2。
   4. 設定本地使用者帳號:username [user] password [pass]。
   5. 在 Line VTY 上設定:
    ** login local:使用本地帳號驗證。
    ** transport input ssh:僅允許 SSH 連線,禁用 Telnet。
  • 結合 ACL 限制 SSH 來源
    • 建立 ACL 規則只 permit 特定網段(如 IT 部門)的 IP。
    • 使用 access-class [ACL編號] in 指令將其應用於 Line VTY,實現精細化安全管理。

OSPF 與 /32 主機路由

  • 等成本多路徑 (ECMP)
    • 在 OSPF 中,若到達同一目的地的多條路徑成本相同,路由器會將它們都視為最佳路徑,並在路由表中保留多個下一跳。
  • /32 主機路由 (Host Route)
    • /32 (遮罩 255.255.255.255) 在現代網路中被用來表示一個僅包含單一 IP 位址的「主機路由」。
    • 常用於表示網管 IP,使其能以路由條目的形式參與路由決策,便於 ACL 和應用程式進行精確比對。
    • 可透過 OSPF 的鏈路狀態通告 (LSA) 在路由器間交換這些 /32 路由。

未來課程預告

  • 網路擴展:將內部網路透過 NAT 連接到網際網路。
  • 網路位址轉譯 (NAT):將在 R1 路由器上設定,實現私有 IP 與公用 IP 的轉換。
  • 虛擬私人網路 (VPN):在 R6 與 R1 之間建立安全的 VPN 通道,實現遠端據點的安全互聯。

2026-0507-04.png