ACL動態控制列表


實驗一:基本的動態訪問列表的應用(手動激活)

1.試驗說明:使用3臺路由器,R1模擬一個內網用戶;R2模擬網關;R3模擬外網的一臺服務器。R2上已經做了策略禁止R1遠程登陸到R3它只允許R1遠程登陸到R2上,然後激活一個動態訪問列表。這個動態訪問表是臨時性的,它允許R1在一個特定的時間內可以登陸到R3上,現在進行配置
2.初始配置:
R1
interface Ethernet0/0
ip address 192.168.12.1 255.255.255.0
interface Loopback0
ip address 1.1.1.1 255.255.255.255
ip route 192.168.23.0 255.255.255.0 192.168.12.2
ip route 3.3.3.3 255.255.255.255 192.168.12.2
R2
interface Ethernet0/0
ip address 192.168.12.2 255.255.255.0
interface Ethernet0/1
ip address 192.168.23.2 255.255.255.0
R3
interface Ethernet0/1
ip address 192.168.23.3 255.255.255.0
interface Loopback0
ip address 3.3.3.3 255.255.255.255
ip route 192.168.12.0 255.255.255.0 192.168.23.2
ip route 1.1.1.1 255.255.255.255 192.168.23.2
r1#telnet 192.168.23.3
Trying 192.168.23.3 ... Open
r3>
現在R1可以直接登陸到R3上。
2 在R2上配置ACL禁止R1登陸到R3,只允許它登陸到R2上。
r2(config)#ip access-list extended DENY
r2(config-ext-nacl)#permit icmp any any
r2(config-ext-nacl)#permit tcp host 192.168.12.1 host 192.168.12.2 eq telnet
r2(config)#int e0/0
r2(config-if)#ip access-group DENY in
r1#telnet 192.168.23.3
Trying 192.168.23.3 ...
% Destination unreachable; gateway or host down
r1#telnet 192.168.12.2
Trying 192.168.12.2 ... Open
r2>
現在R1就無法登陸R3了,只能登陸R2
3.在R2上建立動態訪問列表允許R1可以動態的暫時的登陸到R3
r2(config)#ip access-list extended DENY
r2(config-ext-nacl)# dynamic DYN timeout 3 permit tcp host 192.168.12.1 host 192.168.23.3 eq telnet
以上語句就是在命名列表DENY中建立一條名爲DYN的動態列表項,
Timeout值表示動態列表項被激活後只能存在3分鐘,之後將消失。
現在在R1上嘗試登陸R3r1#telnet 192.168.23.3
Trying 192.168.23.3 ...
% Destination unreachable; gateway or host down
結果依然失敗,這是因爲剛建立的動態列表還需要激活。
r1#telnet 192.168.12.2
Trying 192.168.12.2 ... Open
r2>access-enable        注意:此命令只能在VTY線程下輸入
完成激活,現在再次登陸R3
r1#telnet 192.168.23.3
Trying 192.168.23.3 ... Open
r3>
這次可以成功登陸了。現在到R2上查看一下訪問列表
r2#sh ip access-lists
Extended IP access list DENY
    permit icmp any any
    permit tcp host 192.168.12.1 host 192.168.12.2 eq telnet (153 matches)
    Dynamic DYN permit tcp host 192.168.12.1 host 192.168.23.3 eq telnet
    permit tcp host 192.168.12.1 host 192.168.23.3 eq telnet (10 matches)
可以看到這時出現了一條動態列表項,允許R1登陸到R3上。過了3分多鐘,再次查看
r2#sh ip access-lists
Extended IP access list DENY permit eigrp any any (516 matches)
    permit icmp any any
    permit tcp host 192.168.12.1 host 192.168.12.2 eq telnet (153 matches)
    Dynamic DYN permit tcp host 192.168.12.1 host 192.168.23.3 eq telnet
這時那條動態列表項已經不在了。到這裏,基本的動態列表配置已經完成。
4.現在再進一步的研究一下命令的幾個參數;我們注意到R1到R2激活的命令:
r2#access-enable ?
host    Enable a specific host only
timeout Maximum idle time to expire this entry
這後面有兩個參數

現在就做一下研究host參數,先更改一下動態列表

r2(config)#ip access-list extended DENY
r2(config-ext-nacl)#dynamic CCIE permit tcp any host 192.168.23.3 eq telnet
然後激活,現在看一下控制列表
r2# sh ip access
Extended IP access list DENY
    permit icmp any any
    permit tcp host 192.168.12.1 host 192.168.12.2 eq telnet (477 matches)
    Dynamic CCIE permit tcp any host 192.168.23.3 eq telnet
    permit tcp any host 192.168.23.3 eq telnet (15 matches)
現在到R1上進行測試
r1#telnet 192.168.23.3
Trying 192.168.23.3 ... Open
r1#telnet 23.0.0.3 /source-interface lo0
Trying 23.0.0.3 ... Open
r3>
我們發現R1以E0/0或LO0接口爲源都可以登陸到R3上;這是因爲R2的動態列表允許源爲ANY
等上幾分鐘,再查看一下ACL
r2#sh ip access
Extended IP access list DENY
    permit icmp any any
    permit tcp host 192.168.12.1 host 192.168.12.2 eq telnet (477 matches)
    Dynamic CCIE permit tcp any host 192.168.23.3 eq telnet
這時動態列表項已經超時消失了,現在再次進行激活,這次加上host參數。
r1#telnet 12.0.0.2
Trying 12.0.0.2 ... Open
r2#access-enable host
在R2上查看一下ACL
r2#sh ip access
Extended IP access list DENY
    permit icmp any any
    permit tcp host 192.168.12.1 host 192.168.12.2 eq telnet (594 matches)
    Dynamic CCIE permit tcp any host 192.168.23.3 eq telnet
     permit tcp host 192.168.12.1 host 192.168.23.3 eq telnet (17 matches)
注意這次生成的動態列表項的源只有192.168.12.1;而不是剛纔的ANY
再到R1上進行驗證
r1#telnet 192.168.23.3
Trying 192.168.23.3 ... Open
r1#telnet 192.168.23.3 /source-interface lo0
Trying 192.168.23.3 ...
% Destination unreachable; gateway or host down
這次以LO0爲源無法登陸到R3了,這就是host的作用;

現在再次激活,這次用timeout參數

r1#telnet 192.168.12.2
Trying 192.168.12.2 ... Open
r2#access-enable timeout 1
激活後,不進行登陸測試,現在查看ACL
r2#sh ip access
Extended IP access list DENY
    permit icmp any any
    permit tcp host 192.168.12.1 host 192.168.12.2 eq telnet (690 matches)
    Dynamic CCIE permit tcp any host 192.168.23.3 eq telnet
      permit tcp any host 23.0.0.3 eq telnet
有一條激活的動態列表項
等上一分鐘後,再次查看
r2#sh ip access
Extended IP access list WY
    permit icmp any any
    permit tcp host 192.168.12.1 host 192.168.12.2 eq telnet (690 matches)
    Dynamic CCIE permit tcp any host 23.0.0.3 eq telnet
現在那條動態列表項已經不在了。
總結:
  • 建完動態訪問列表後,需要激活,只能是動態列表所允許的源登陸到建立列表的網關路由器上進行激活。命令爲:access-enable
  • 激活命令後有兩個參數:host和timeout
  • 加上host參數後,則動態列表產生一條只允許剛剛進行激活的IP爲源進行到遠程的telnet
  • 本實驗中兩個timeout參數的區別:
    在建立動態列表時的timeout參數
    表示一個絕對的生存時間。即當此列表被激活後,動態列表項能存在多長時間。無論這期間有沒有符合動態列表的流量通過。
    激活命令後的timeout參數表示一個相對的時間,它表示當列表被激活後,若一直沒有符合該列表的流量經過,則該列表項能存在多長時間。通常情況下,前一個timeout值都比後一個timeout值設的大一些

實驗二:LOCK-AND-KEY動態訪問列表(自動激活)

實驗說明:上一個試驗我們已經必須對動態列表進行手動激活,但覺得手動激活很麻煩。現在我們就來學習一個自動激活的命令。
1.保持上一個試驗的基本配置,在R2上建立本地數據庫
r2(config)#username CONTOSO password FUCK
2.配置用本地數據庫驗證登陸信息
r2(config)#line vty 0 15
r2(config-line)#login local
r1#telnet 192.168.12.2
Trying 192.168.12.2 ... Open
User Access Verification
Username: CONTOSO
Password:
r2>
現在R1登陸R2就需要用戶名和密碼了。
3.配置自動激活動態列表
r2(config)#username CONTOSO autocommand access-enable host timeout 1
該語句表示當以用戶名WY登陸R2後,系統自動執行藍色部分表示的一條命令。
4 在R1上登陸R2
r1#telnet 192.168.12.2
Trying 192.168.12.2 ... Open
User Access Verification
Username: CONTOSO
Password:
[Connection to 12.0.0.2 closed by foreign host]
自動命令運行後會立即退出線程
查看ACL
r2#sh ip access
Extended IP access list FUCK
    permit icmp any any
    permit tcp host 192.168.12.1 host 192.168.12.2 eq telnet (840 matches)
    Dynamic CCIE permit tcp any host 192.168.12.2 eq telnet
      permit tcp host 12.0.0.1 host 23.0.0.3 eq telnet
我們可以看到自動生成了一條動態列表項,可見,激活命令已經在R1登陸R2後自動執行了。
5.進行驗證。
r1#telnet 192.168.23.3
Trying 192.168.23.3 ... Open
r3>
現在R1可以登陸到R3上。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章