網絡技術:配置擴展 ACL


ACL 數據包過濾

使用標准 ACL 就可以實現流量過濾功能,但是標准 ACL 的功能是有限的。首先標准 ACL 會將符合過濾規則的源 IP 地址的所有流量都篩出來,但是有時候並不希望過濾掉所有的流量,例如我們只是想限制某網絡對 HTTP 服務的訪問時,標准 ACL 會將一切流量都過濾而非只過濾 HTTP。其次標准 ACL 只能在網絡層進行過夜,也就是只能對於數據包的源 IP 地址進行過濾,這就導致了最好將標准 ACL 配置在盡可能靠近目的地的接口。在實際的情況下往往目的是由目的地的管理員才有權限配置,這就導致標准 ACL 的功能效果有限。

擴展 ACL 可以在傳輸層和網絡層進行過濾,也就是說使用擴展 ACL 可以對某種協議的流量進行過濾,這就使得安全策略可以配置得非常靈活。第二是擴展 ACL 可以對流量的目的地址進行過濾,這樣不僅可以在數據包被路由之前就進行過濾減輕網絡的負擔,也能使過濾的功能更為強大。更重要的是,基於目的地址的過濾可以盡可能在靠近源的地方進行配置,就方便了網絡管理員自行規划 ACL 策略。擴展 ACL 會對流量進行解包,根據數據包的協議類型(TCP、UDP 等協議)和端口號進行匹配。

ACL 的放置

對於接口來說,無論是擴展 ACL 還是標准 ACL,配置的規則是一樣的——可以在每種協議、每個方向、每個接口上配置一個 ACL。

  • 每種協議一個 ACL:控制接口的流量,必須為接口上啟用的每種協議定義一個 ACL。
  • 每個方向一個 ACL:一個 ACL 一次只能在一個接口上控制一個方向的流量,若要同時控制入站和出站流量,則必須分別創建兩個 ACL。
  • 每個接口一個 ACL:ACL 為一個接口控制流量,例如GigabitEthernet O/0。


對於整個網絡來說,將擴展 ACL 放置在盡可能靠近需要過濾的流量源的位置上。這樣不需要的流量會在靠近源網絡的位置遭到拒絕,而無需通過網絡基礎設施。由於標准 ACL 不指定目的地址,所以其位置應該盡可能靠近目的地。除了 ACL 本身的功能決定了配置的方式,還有一些因素需要考慮:

  1. 網絡管理員的控制范圍:ACL 的放置位置取決於網絡管理員是否能夠同時控制源網絡和目的網絡。
  2. 相關網絡的帶寬:在源上過濾不需要的流量,可以在流量消耗通往目的地的路徑上的帶寬之前阻止流量傳輸。
  3. 配置的難易程度:擴展 ACL 可以在每台發出流量的路由器上使用,這通過在源上過濾流量而節省了帶寬,但需要在多台路由器上創建擴展ACL。

配置標准 ACL 還是擴展 ACL,需要放置在什么地方,需要具體問題具體分析。

擴展 ACL 創建語法

擴展 ACL 根據多種屬性過濾 IP 數據包:

  • 協議類型;
  • 源 IPv4 地址;
  • 目的 IPv4 地址;
  • 源 TCP 或 UDP 端口;
  • 目的 TCP 或 UDP 端口;
  • 用於進行精確控制的可選協議類型信息。

擴展 ACL 創建語法如下,命令涉及到了很多的參數。

Router(config)# access-list access-list-number {deny | permit | remark description protocol {source source-wildcard) [operator port [port-number|acl-name]]{destination destination-wildcard) [operator port [port-number | acl-name]]
參數 說明
access-list-number 使用 100~199 和 2000~2699 之間的編號標識訪問列表
deny 匹配條件時拒絕訪問
permit 匹配條件時允許訪問
remark description 用於輸入注釋,便於理解
protocol Internet 協議的名稱或編號,常用關鍵字包括 icmp、ip、tcp 或 udp,要匹配所有 Internet 協議可以使用 ip 關鍵字
source 指定了發送數據包的網絡號或主機號
source-wildcard 指定了用於源地址的通配符比特
destination 指定了接收數據包的網絡號或主機號
destination-wildcard 指定了用於目的地址的通配符比特
operator (可選)比較源或目的端口,運算符包括 lt(小於)、gt(大於)、ea(等於)、neq(不等於)、range(包括的范圍)
port (可選)指定 TCP 或 UDP 端口的編號或名稱
established (可選)僅用於 TCP 協議,指示已建立的連接

配置擴展 ACL

實驗拓撲

設備 接口 IP 地址 子網掩碼 默認網關
R1 G0/1 192.168.10.1 255.255.255.0 不適用
Lo0 192.168.20.1 255.255.255.0 不適用
S0/0/0 (DCE) 10.1.1.1 255.255.255.252 不適用
ISP S0/0/0 10.1.1.2 255.255.255.252 不適用
S0/0/1 (DCE) 10.2.2.2 255.255.255.252 不適用
G0/0 209.165.200.226 255.255.255.224 不適用
G0/1 209.165.201.2 255.255.255.224 不適用
R3 G0/1 192.168.30.1 255.255.255.0 不適用
Lo0 192.168.40.1 255.255.255.0 不適用
S0/0/1 10.2.2.1 255.255.255.252 不適用
S1 VLAN 1 192.168.10.11 255.255.255.0 192.168.10.1
S3 VLAN 1 192.168.30.11 255.255.255.0 192.168.30.1
PC-A NIC 192.168.10.3 255.255.255.0 192.168.10.1
PC-C NIC 192.168.30.3 255.255.255.0 192.168.30.1
Server0 NIC 209.165.200.225 255.255.255.224 不適用
Server1 NIC 209.165.201.1 255.255.255.224 不適用

在實驗開始之前,需要先正確配置 PC、路由器和 WEB 服務器,並配置路由使得設備之間可以互通。

配置並驗證擴展編號 ACL

對於該網絡配置的安全策略如下:

  1. 允許來自 192.168.10.0/24 網絡的 Web 流量訪問任何網絡。
  2. 允許 PC-A 通過 SSH 連接到 R3 串行接口。
  3. 允許 192.168.10.0/24 網絡上的用戶訪問 192.168.20.0/24 網絡。
  4. 允許來自 192.168.30.0/24 網絡的 Web 流量通過 Web 界面訪問 R1 及 ISP 上的 209.165.200.224/27 網絡。192.168.30.0/24 網絡不能通過 Web 訪問其他任何網絡。

擴展編號 ACL 的編號范圍是 100-199 和 2000-2699,在 R1 上配置 ACL,ACL 編號使用 100。

R1(config)# access-list 100 remark Allow Web & SSH Access
R1(config)# access-list 100 permit tcp any any eq 80

HTTP 協議是 80 端口,所以應該把目的端口設為 80。如果將其置於 G0/1 上可能會阻止網絡 192.168.10.0/24 上的用戶訪問連接到 R1 的任何其他 LAN,如 192.168.20.0/24 網絡。因此,您將把它放在 S0/0/0 的 out 方向上。

R1(config)# interface s0/0/0
R1(config-if)# ip access-group 100 out

接下來查看 ACL 100 的配置情況,使用如下 2 個命令。

R1# show access-lists
R1# show ip interface s0/0/0



驗證 ACL 100,在 PC-A 上打開 Web 瀏覽器訪問 http://209.165.200.225,此操作應該會成功。

在 PC-A 的命令提示符下對 10.2.2.1 執行 ping 操作,由於 192.168.10.0/24 網絡只允許 web 流量退出,所以 ping 操作會失敗。

配置並驗證擴展命名 ACL

在 R3 上配置策略,將該 ACL 命名為“WEB-POLICY”。

R3(config)# ip access-list extended WEB-POLICY
R3(config-ext-nacl)# permit tcp 192.168.30.0 0.0.0.255 209.165.200.224 0.0.0.31 eq 80

將 ACL “WEB-POLICY” 應用到 S0/0/1 接口。

R3(config-ext-nacl)# interface S0/0/1
R3(config-if)# ip access-group WEB-POLICY out

接下來查看 ACL “WEB-POLICY” 的配置情況,使用如下 2 個命令。

R3# show access-lists
R3# show ip interface s0/0/1



驗證 ACL “WEB-POLICY”,在 PC-C 上打開 Web 瀏覽器訪問 http://209.165.200.225 (ISP 路由器),此操作應該會成功。

在 PC-C 上打開到 http://209.165.201.1 的 Web 會話,此操作應該會失敗。

在 PC-C 命令提示符下對 PC-A 執行 ping 操作,因為 192.168.30.0/24網絡只允許 web 流量退出,所以 Ping 操作失敗。

修改並驗證擴展 ACL

由於 R1 和 R3 都應用了 ACL,因此 R1 和 R3 上的 LAN 網絡之間不允許 ping 或其他流量類型。為了允許 192.168.10.0/24 和 192.168.30.0/24 網絡之間的所有流量,需要修改 R1 和 R3 上的 ACL。
在 R1 上進入全局配置模式並修改 ACL。

R1(config)# ip access-list extended 100
R1(config-ext-nacl)# 20 permit ip 192.168.10.0 0.0.0.255 192.168.30.0 0.0.0.255
R1(config-ext-nacl)# end

使用 show access-lists 命令查看 ACL 100。

R1# show access-lists


在 R3 上進入全局配置模式並修改 ACL。

R3(config)# ip access-list extended WEB-POLICY
R3(config-ext-nacl)# 20 permit ip 192.168.30.0 0.0.0.255 192.168.10.0 0.0.0.255
R3(config-ext-nacl)# end

使用 show access-lists 命令查看 ACL WEB-POLICY。

R3# show access-lists


在 PC-A 上對 PC-C 的 IP 地址執行 ping 操作,或者在 PC-C 上對 PC-A 的 IP 地址執行 ping 操作,現在都可以成功。

參考資料

《思科網絡技術學院教程(第6版):擴展網絡》,[加] Bob Vachon,[美] Allan Johnson 著,思科系統公司 譯,人民郵電出版社
《CCNA 學習指南(第 7 版)》,[美] Todd Lammle 著,袁國忠 徐宏 譯,人民郵電出版社


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM