我的身邊的她 訪問控制列表綜合應用實驗
實驗拓撲:
實驗要求:
1、 在R2上配置標準訪問列表,拒絕所有來自3.3.3.0網絡的數據包。
2、 在R2上配置擴展訪問列表,阻塞來自網絡23.1.1.0/24發往12.1.1.1地址的ICMP包。
3、 用命名的訪問列表完成上述兩個實驗。
4、 R1路由器只允許23.1.1.3的IP地址能夠Telnet到路由器上。
5、 在第4步驟中,R1路由器只允許R3在2006年11月1日至2006年11月30日的每週一到週五的8:00到18:00和週末的9:00到21:00纔可以Telnet到R1。
6、 只允許R1能夠主動發起連接Telnet到R3,不允許R3主動發起連接到R1路由器(Established)。
7、 在R2上配置Lock-and-key,R3與R1建立連接前需要在R2上進行認證(Telnet),在R2上的認證方式爲本地數據庫(在VTY線路下面開啓Login local),R2自動生成臨時動態訪問列表,並配置絕對超時時間爲5分鐘,空閒時間爲3分鐘,自動生成的訪問列表中的源地址必須用認證主機IP地址來進行替換。
8、 在R2上配置自反列表,使R1可以Ping通R3,R3不能Ping通R1。
IP地址表:(如圖)
實驗配置如下:
一、基本配置:
配置R1:
Router>en
Router#conf t
Router(config)#hostname R1
R1(config)#int S0
R1(config-if)#ip add 12.1.1.1 255.255.255.0
R1(config-if)#no shut
R1(config-if)#router rip
R1(config-router)#network 12.1.1.1
R1(config-router)#end
R1#sh run
配置R2:
Router>en
Router#conf t
Router(config)#hostname R2
R2(config)#int S0
R2(config-if)#ip add 12.1.1.2 255.255.255.0
R2(config-if)#no shut
R2(config-if)#clock rate 64000
R2(config-if)#int S1
R2(config-if)#ip add 23.1.1.2 255.255.255.0
R2(config-if)#no shut
R2(config-if)#clock rate 64000
R2(config-if)#router rip
R2(config-router)#network 12.1.1.2
R2(config-router)#network 23.1.1.2
R2(config-router)#end
R2#sh run
配置R3:
Router>en
Router#conf t
Router(config)#hostname R3
R3(config)#int S0
R3(config-if)#ip add 23.1.1.3 255.255.255.0
R3(config-if)#no shut
R3(config-if)#int loop0
R3(config-if)#ip add 3.3.3.3 255.255.255.0
R3(config-if)#no shut
R3(config-if)#router rip
R3(config-router)#network 3.3.3.3
R3(config-router)#network 23.1.1.3
R3(config-router)#end
R3#sh run
二、訪問控制列表綜合應用:
1. 在R2上配置標準訪問列表,拒絕所有來自3.3.3.0網絡的數據包.
R2#conf t
R2(config)#access-list 10 deny 3.3.3.0 0.0.0.255
R2(config)#access-list 10 permit any
R2(config)#int S1
R2(config-if)#ip access-group 10 in
2. 在R2上配置擴展訪問列表,阻塞來自網絡23.1.1.0/24發往12.1.1.1地址的ICMP包.
R2#conf t
R2(config)#access-list 100 deny icmp 23.1.1.0 0.0.0.255 host 12.1.1.1
R2(config)#access-list 100 permit ip any any
R2(config)#int S1
R2(config-if)#ip access-group 100 in
3.R1路由器只允許23.1.1.3的IP地址能夠Telnet到路由器上.
R1#conf t
R1(config)#access-list 110 permit tcp host 23.1.1.3 host 12.1.1.1 eq 23
R1(config)#int S0
R1(config-if)#ip access-group 110 in
4. 在第3步驟中,R1路由器只允許R3在2006年11月1日至2006年11月30日的每週一到週五的8:00到18:00和週末的9:00到21:00纔可以Telnet到R1.
R1#conf t
R1(config)#time-range telnettime //建立允許訪問的時間範圍
R1(config-time-range)#absolute start 00:00 1 nov 2006 end 00:00 1 dec 2006
R1(config-time-range)#periodic weekday 08:00 to 18:00
R1(config-time-range)#periodic weekend 09:00 to 21:00
R1(config-time-range)#exit
R1(config)#access-list 110 permit tcp host 23.1.1.3 host 12.1.1.1 eq 23 time-range telnettime
//建立訪問控制列表只允許R3telnet登入到R1,將允許時間範圍應用上
R1(config)#int S0
R1(config-if)#ip access-group 110 in
5. 只允許R1能夠主動發起連接Telnet到R3,不允許R3主動發起連接到R1路由器(Established).
R1#conf t
R1(config)#access-list 110 permit tcp host 23.1.1.3 host 12.1.1.1 eq 23 time-range telnettime established //建立Established列表,只允許R1主動發起連接Telnet到R3, 這裏的源地址指的是 R3的接口地址23.1.1.3,因爲要檢查的是R3迴應的數據流,只有迴應的數據流中TCP的ACK或RST比特纔會被設置成1,主動發起連接的設備R1數據流中的TCP的ACK爲0。
R1(config)#int S0
R1(config-if)#ip access-group 110 in
6. 在R2上配置Lock-and-key,R3與R1建立連接前需要在R2上進行認證(Telnet),在R2上的認證方式爲本地數據庫(在VTY線路下面開啓Login local),R2自動生成臨時動態訪問列表,並配置絕對超時時間爲5分鐘,空閒時間爲3分鐘,自動生成的訪問列表中的源地址必須用認證主機IP地址來進行替換.
R2#conf t
R2(config)#access-list 120 dynamic spoto timeout 5 permit tcp any host 12.1.1.1//絕對超時5分鐘
R2(config)#access-list 120 permit tcp host 23.1.1.3 host 23.1.1.2 //允許R3通過tcp協議訪問R2
R2(config)#int S1
R2(config-if)#ip access-group 120 in
R2(config-if)#end
R2#access-enable host timeout 3
//配置Lock-and-key特性的最後步驟是讓路由器能在一個動態訪問控制列表中創建一個臨時性的訪問控制列表條目,缺省情況下,路由器是不這麼做的,可以使用下面此命令來進行啓用.
Cisco強烈推薦用戶使用該命令的關鍵字Host,其源地址總是用認證主機的IP地址來替換,所以我們在定義動態訪問列表的源地址中總是指定any;Timeout規定了空閒超時值,指示連接在被切斷之前允許保持的空閒時間。
R2#conf t
R2(config)#username spoto password spoto //建立本地用戶和口令
R2(config)#line vty 0 4
R2(config-line)#login local //登入使用本地認證
R2(config-line)#autocommand access-enable host timeout 10 //觸發access-enable的命令
7. 在R2上配置自反列表,使R1可以Ping通R3,R3不能Ping通R1.
R2#conf t
R2(config)#ip access-list extended outbound //建立命名擴展列表,允許從S1接口轉發所有的外出路由包
R2(config-ext-ncl)#permit icmp any any reflect icmp_traffic //自反列表,允許R1所有網段能PING通R3
R2(config-ext-ncl)#exit
R2(config)#ip access-list extended inbound
R2(config-ext-ncl)#evaluate icmp_traffic //檢查從外網進來的流量,如果這個流量確實是從內網發起的對外訪問的返回流量,那麼允許這個流量進來
R2(config-ext-ncl)#exit
R2(config)#int S1
R2(config-if)#ip access-group outbound out //應用控制列表
R2(config-if)#ip access-group inbound in
實驗總結:
1.基於時間的訪問控制列表:
①使用方法
這種基於時間的訪問列表就是在原來的標準訪問列表和擴展訪問列表中加入有效的時間範圍來更合理有效的控制網絡。它需要先定義一個時間範圍,然後在原來的各種訪問列表的基礎上應用它。並且,對於編號訪問表和名稱訪問表都適用。
②使用規則
用time-range 命令來指定時間範圍的名稱,然後用absolute命令或者一個或多個 periodic命令來具體定義時間範圍。
IOS命令格式爲:
time-range time-range-name 用來標識時間範圍的名稱
absolute [start time date] [end time date] 指定絕對時間範圍
periodic days-of-the week hh:mm to [days-of-the week] hh:mm 以星期爲單位來定義時間範圍的一個參數
2.動態訪問控制列表:
①動態訪問控制列表使指定的用戶能獲得對受保護資源的臨時訪問權,而不管他們是通過什麼IP源地址進行訪問。在用戶切斷連接之後,Lock-and-key特性將復原該訪問控制列表。
②爲了能讓Lock-and-key特性能工作,用戶必須先要Telnet到路由器上,Telnet給予用戶一個機會來告訴路由器它是誰(通過用戶名和口令進行認證),以及它目前在使用哪個源IP地址,如果用戶成功地通過了認證,該用戶的源IP地址就被授予臨時通過路由器進行訪問的權限。由動態訪問控制列表的配置決定所允許訪問的範圍。
③動態訪問列表的語法:
Access-list <number> dynamic <name> [timeout] [permit|deny] <protocol> any <destination ip> <destination mask>
Name是動態訪問表的字符串名稱;Timeout參數是可選的,如果定義了該參數,則指定動態表項的絕對超時時間
3.自反列表 (Reflexive ACL):
①Reflexive ACL的配置分爲兩個部分,一部分是outbound的配置,一部分是inbound的配置。
Reflexive ACL中outbound的部分決定了我出去的哪些內網網絡流量是需要被單向訪問的,inbound部分決定了這些流量在返回後能被正確的識別並送給內網發起連接的PC機
②注意在Reflexive ACL中只能用named方式的ACL,不能用numbered方式的ACL。
|outbound部分:
基本配置和普通ACL並沒有什麼太多不同,不同之處是reflect icmp_traffic,它的意思是這條ACE作爲單向流量來處理,並且給了一個名稱叫icmp_traffic,icmp_traffic在inbound部分被引用。
|inbound部分:
語句evaluate icmp_traffic對上述outbound配置中的icmp_traffic進行了引用,也就是說,它要檢查從外網進來的流量,如果這個流量確實是從內網發起的對外訪問的返回流量,那麼允許這個流量進來。
應用reflexive ACL列表時應該注意方向,要能夠完全明白in與out應正確在接口的哪個方向上。
permit ip any any 與 deny ip any any log 命令語句是用來驗證其它包通過時的情況。