1. 程式人生 > >Cisco之訪問控制列表(ACL)

Cisco之訪問控制列表(ACL)

cisco acl

訪問控制列表(ACL)是應用在路由器接口的指令列表(即規則),這些規則表用來告訴路由器,哪些數據包可以接收,哪些包需要拒絕。其基本原理如下:ACL使用包過濾技術,在路由器上讀取OSI七層模型的第三層和第四層包頭中的信息,如源地址、目的地址、源端口、目的端口等,根據預先定義的規則,對包進行過濾,從而達到訪問控制的目的。

ACL可以分為以下兩種基本類型:

  • 標準ACL:檢查數據包的源地址,來決定是允許還是拒絕轉發數據包,使用1-99之間的數字作為表號。

  • 擴展ACL:既能對數據包的源地址和目標地址進行檢查,也能檢查特定的協議、端口號及其它的參數。使用100-199之間的數字作為表號。

ACL是一組規則的集合,應用在路由器的某個接口上,因此對路由器的接口而言,ACL有兩個方向:

  • 出:已經經過路由器的處理,離開路由器接口的數據包,檢查順序:先查路由表,再查出ACL。

  • 入:已經到達路由器接口的數據包,將要被路由器處理。檢查順序:先檢查入ACL,再查詢路由表。

    匹配規則:

  • 如果匹配第一條規則,則不再繼續往下查,路由器將決定是允許或拒絕數據包通過。

  • 如果不匹配第一條規則,則依次往下檢查,直到匹配一條規則,如果沒有任何規則匹配,路由器默認會丟棄數據包。

由以上規則可見,數據包要麽被拒絕,要麽被丟棄。如下圖:

技術分享


示例 1:標準訪問控制列表

ROUTE(config)#access-list 1 deny 192.168.3.0 0.0.0.255

ROUTE(config)#int f1/0 #應用到入站方向

ROUTE(config-if)#ip access-group 1 in

ROUTE#sh ip access-lists #查看ACL

Standard IP access list 1

10 deny 192.168.3.0, wildcard bits 0.0.0.255

C:\Users\win7>ping 172.16.2.1

正在 Ping 172.16.2.1 具有 32 字節的數據:

來自 192.168.3.254 的回復: 無法訪問目標主機。

來自 192.168.3.254 的回復: 無法訪問目標主機。

來自 192.168.3.254 的回復: 無法訪問目標主機。

來自 192.168.3.254 的回復: 無法訪問目標主機。


在接口上取消ACL應用

ROUTE(config-if)#no ip access-group 1 in

C:\Users\win7>ping 172.16.2.1 #取消ACL後,可以ping通

正在 Ping 172.16.2.1 具有 32 字節的數據:

來自 172.16.2.1 的回復: 字節=32 時間=127ms TTL=252

來自 172.16.2.1 的回復: 字節=32 時間=97ms TTL=252

來自 172.16.2.1 的回復: 字節=32 時間=78ms TTL=252

來自 172.16.2.1 的回復: 字節=32 時間=84ms TTL=252


刪除ACL:

ROUTE(config)#no access-list 1


僅允許某臺主機訪問

ROUTE(config)#access-list 2 permit host 192.168.3.2

ROUTE(config)#int f1/0

ROUTE(config-if)#ip access-group 2 in


允許所有:

ROUTE(config)#access-list 2 permit any

ROUTE(config)#access-list 2 permit 0.0.0.0 255.255.255.255


示例 2:擴展訪問控制列表

sw1(config)#access-list 101 deny tcp any host 172.16.1.1 eq www

sw1(config)#int vlan 2

sw1(config-if)#ip access-group 101 in

sw1#sh access-lists

Extended IP access list 101

10 deny tcp any host 172.16.1.1 eq www (24 matches)

sw1#sh ip int vlan 2

Vlan2 is up, line protocol is up

Internet address is 172.16.2.254/24

Broadcast address is 255.255.255.255

Address determined by setup command

MTU is 1500 bytes

Helper address is not set

Directed broadcast forwarding is disabled

Multicast reserved groups joined: 224.0.0.5 224.0.0.6

Outgoing access list is not set

Inbound access list is 101

...

客戶端無法正常訪問:

技術分享

在接口上取消ACL應用,即可正常訪問:

sw1(config-if)#int vlan 2

sw1(config-if)#no ip access-group 101 in

技術分享


示例 3:命名訪問控制列表

sw1(config)#ip access-list extended name

sw1(config-ext-nacl)#deny tcp any host 172.16.1.1 eq www

sw1(config)#int vlan 2

sw1(config-if)#ip access-group name in

sw1#sh ip access-lists name

Extended IP access list name

10 deny tcp any host 172.16.1.1 eq www


禁止後,從客戶端已無法訪問,取消後可正常訪問:

sw1(config)#ip access-list extended name

sw1(config-ext-nacl)#no deny tcp any host 172.16.1.1 eq www

sw1(config-ext-nacl)#11 deny tcp 172.16.2.0 0.0.0.255 host 172.16.1.1 eq www

sw1(config-ext-nacl)#12 permit tcp 172.16.1.0 0.0.0.255 host 172.16.1.1 eq www

sw1#sh ip access-lists

Extended IP access list name

11 deny tcp 172.16.2.0 0.0.0.255 host 172.16.1.1 eq www (36 matches)

12 permit tcp 172.16.1.0 0.0.0.255 host 172.16.1.1 eq www


備註:

  • 在路由器的接口上每個方向只能有一個ACL,即每個接口只能有兩個ACL,一個出方向ACL,一個入方向ACL。

  • ACL只對穿越流量起作用,而對於路由器或三層交換機本身產生的流量不起作用。

  • 標準ACL盡可能靠盡目標,擴展ACL盡可能應用在靠近源服務器的位置。

  • 標準和擴展ACL如果要修改,需要刪除整個ACL,而命名ACL可以通過增加或刪除ACL語句來實現。

本文出自 “一萬年太久,只爭朝夕” 博客,請務必保留此出處http://zengwj1949.blog.51cto.com/10747365/1922848

Cisco之訪問控制列表(ACL)