萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 網路安全 >  >> 網路應用技術 >> 應用程式教學

ACL 訪問控制列表:原理、類型、配置實戰與最佳實踐

ACL 核心概念

ACL (Access Control List,**訪問控制列表**) 是網絡設備 (路由器/交換機/防火牆) **按順序匹配的規則集**,用於**識別流量**並執行 **許可/拒絕/重定向/限速/標記** 等動作。
本質:**有序的條件-動作規則鏈**,**首匹配生效** (Top-down first match)。

ACL 分類體系

分類維度類型匹配字段編號範圍 (Cisco)典型用途
按匹配深度標準 ACL**僅源 IP 地址**1-99, 1300-1999簡單源地址過濾、路由過濾
擴展 ACL源/目的 IP、協議 (TCP/UDP/ICMP)、源/目的端口、TCP 标志位、ICMP 類型/代碼、DSCP/ToS100-199, 2000-2699精細流量控制、安全策略、QoS 分類、NAT 匹配
命名 ACL同標準/擴展,但用名字標識無編號限制可讀性強、支持編輯插入刪除、重排序
按應用方向入方向 (in)進接口前處理—節省 CPU、防止無效流量進設備
出方向 (out)出接口前處理—NAT 後過濾、對稱路由場景
VLAN 映射 / VACLVLAN 內部流量 (L2/L3/L4)—同一 VLAN 內主機隔離、租戶隔離
按功能擴展反射 ACL (Reflexive)動態臨時許可返程流量 (模擬狀態檢測)—簡易防火牆、CBAC 前身
動態 ACL (Lock-and-Key)用戶認證後動態下發臨時許可—遠程訪問臨時開放
基於時間time-range 關聯—上班/非上班時段不同策略
IPv6 ACLIPv6 地址/下一頭部/流標籤/DSCP—IPv6 網絡同等控制
對象組 ACL網絡/服務/端口組對象引用—大規模策略簡化維護

匹配邏輯與隱含規則

  • 順序執行:從第一條順序匹配,**首條匹配生效**,後續忽略
  • 隱含拒絕:所有顯式規則結束後,**隱含 `deny ip any any` (IPv4) / `deny ipv6 any any` (IPv6)**
  • 空 ACL:應用空 ACL = **隱含拒絕所有** (視廠商實現而定,Cisco 默認許可,建議顯式 `permit ip any any` 末尾)
  • 統計計數:每條 `match` 計數器,`show access-lists` 觀察命中情況

配置實戰範例 (Cisco IOS 風格)

標準 ACL:允許特定網段訪問管理平面

access-list 10 permit 192.168.10.0 0.0.0.255  ! 管理網段
access-list 10 deny any log                   ! 其餘拒絕並記錄
line vty 0 4
 access-class 10 in                           ! 應用於 VTY 入方向

擴展 ACL:Web 服務器訪問控制

ip access-list extended WEB_SRV_IN
 permit tcp any host 10.1.1.80 eq 80                    ! HTTP
 permit tcp any host 10.1.1.80 eq 443                   ! HTTPS
 permit icmp any host 10.1.1.80 echo-reply              ! 允許 Ping 回應
 permit icmp any host 10.1.1.80 packet-too-big          ! PMTUD 必需
 deny ip any any log                                    ! 其餘拒絕記錄
!
interface GigabitEthernet0/1
 ip access-group WEB_SRV_IN in

基於時間:工作時間開放內網訪問外網

time-range WORK_HOURS
 periodic weekdays 09:00 to 18:00
!
ip access-list extended LAN_OUT
 permit ip 192.168.10.0 0.0.0.255 any time-range WORK_HOURS
 deny ip any any log
!
interface GigabitEthernet0/0
 ip access-group LAN_OUT out

VACL (VLAN Access Map):同 VLAN 內隔離

vlan access-map ISOLATE 10
 match ip address 100          ! ACL 100 匹配需隔離的主機對
 action drop
!
vlan access-map ISOLATE 20
 action forward                ! 其餘放行
!
vlan filter ISOLATE vlan-list 10,20,30

性能優化與最佳實踐

  1. 具體規則前置:`permit host 1.1.1.1` 在 `permit 1.1.1.0/24` 前面
  2. 合併連續網段:`permit 10.1.0.0/16` 替代多條 `/24`
  3. 使用對象組:`object-group network SERVERS`、`object-group service WEB_PORTS tcp`
  4. 避免過長 ACL** 硬件 TCAM 資源有限,超長 ACL 導致軟件轉發/性能崩塌
  5. 啟用硬件加速:確認 ACL 進入 TCAM (Cisco: `show platform hardware acl entry interface ...`)
  6. 日誌限速:`logging rate-limit 100` 防止日志淹沒 CPU
  7. 定期審計:清理零命中規則、合併冗餘、驗證業務變更同步更新
  8. 測試優先:實驗室/預發環境全流量回放驗證,再推生產

進階應用場景

  • QoS 分類:`class-map match-any VOICE match access-group name VOICE_ACL` → `policy-map` 標記 DSCP EF
  • NAT 匹配:`ip nat inside source list NAT_ACL interface Gig0/0 overload`
  • 路由過濾/策略路由:`distribute-list`、`route-map match ip address ACL`
  • 防火牆狀態檢測前置:ACL 粗過濾 → 狀態檢測精細檢查 → 深度檢測 (IPS/AMP)
  • 可編程數據平面:P4/eBPF/XDP 實現邏輯可編程 ACL,突破固定匹配字段限制
copyright © 萬盛學電腦網 all rights reserved