1 ACL 的配置服務器
1.1 建立 ACL網絡
標準 ACLtcp
router(config)#access-list <ACL表號> {permit|deny}{<源IP|host><反掩碼>|any} //表號1~99
擴展 ACL測試
router(config)#access-list <ACL表號> {permit|deny}{<協議名稱>|<端口號>}{<源IP><反掩碼>}{<目的IP><反掩碼>}{<關係><協議名稱>} //表號101~199
1.2 應用 ACLspa
router(config-if)#{協議棧} access-group <ACL表號> {in|out} //協議棧能夠爲IP或IPX
2 ACL 上機實驗3d
2.1 ACL 配置舉例 1code
router(config)#access-list 1 deny 10.0.0.1 0.0.0.0 //ACL表號爲1,丟棄10.0.0.1發出的數據包,至關於 deny host 10.0.0.1 router(config)#access-list 1 permit any router(config)#access-list 2 permit any //ACL表號爲2,能夠轉發任意數據包 router(config)#int s0/0 router(config-if)#ip access-group 1 in //該接口輸入方向應用ACL列表組1,拒絕來自10.0.0.1的數據包 router(config-if)#ip access-group 2 out //該接口輸出方向應用ACL列表組2,容許發出流經該路由器的全部數據包
2.2 ACL 配置舉例 2router
router(config)#access-list 101 deny tcp 172.16.0.0 0.0.255.255 host 192.168.1.1 eq telnet //不容許172.16.0.0網絡的數據包telnet主機192.168.1.1 router(config)#access-list 101 permit ip any any //容許轉發其餘任何數據包 router(config)#int s0/0 router(config-if)#ip access-group 101 in
2.3 ACL 配置舉例 3server
限制只容許 192.168.2.2 訪問 192.168.1.2 的 80 端口,192.168.3.2 訪問 192.168.1.2 的 DNS。blog
router(config)#ip access-list extended cj router(config ext-nacl)#permit udp host 192.168.3.2 host 192.168.1.2 eq 53 router(config ext-nacl)#permit tcp host 192.168.2.2 host 192.168.1.2 eq 80 router(config ext-nacl)#exit router(config)#int f0/0 router(config-if)#ip access-group cj out
2.4 ACL 配置舉例 4
要求:只容許 172.16.4.0/24 網絡的主機經過端口 E0 進入網絡 172.16.3.0/24,其餘的被禁止。
爲了實現上面的實驗要求,咱們將網絡拓撲進行簡化,PC1 的 IP 設置爲 172.16.4.2,PC2 的 IP 設置爲 172.16.0.2,PC3 的 IP 設置爲 172.16.3.2,最終要達到的要求爲 PC1 網段的主機能夠訪問 PC3 網段的主機,PC2 網段的主機不能訪問 PC3 網段的主機。須要注意的是這裏的路由器的選擇,若是選擇不恰當會致使端口不夠用,能夠參照下面的網絡拓撲圖中所選路由器。
先對路由器進行配置,讓三臺 PC 之間均可以通訊。
Router>enable Router#conf t Router(config)#int gig0/0 Router(config-if)#ip add 172.16.4.1 255.255.255.0 Router(config-if)#no shut Router(config-if)#exit Router(config)#int gig0/1 Router(config-if)#ip add 172.16.0.1 255.255.255.0 Router(config-if)#no shut Router(config)#int gig0/2 Router(config-if)#ip add 172.16.3.1 255.255.255.0 Router(config-if)#no shut
路由器配置完成後給各臺 PC 分配 IP,並設置其網關,先來驗證 PC1 和 PC2 都能 ping 通 PC3 。
上述結果代表,在沒有作 ACL 限制前,PC 之間是能夠相互通訊的,如今來設置 ACL 規則,讓 PC1 能夠 ping 通 PC3,而 PC2 不能 ping 通 PC3。
Router(config)#access-list 5 permit 172.16.4.0 0.0.0.255 Router(config)#int gig0/2 Router(config-if)#ip access-group 5 out
如今再來驗證 PC 之間的通訊。
PC1 能夠 ping 通 PC3,但 PC2 不能 ping 通 PC3,達到實驗要求。這裏並無 deny any 的語句,是由於路由隱含在每一個 ACL 列表的最後有一句拒絕全部數據包訪問的語句,因此不用再專門寫出了。
2.5 ACL 配置舉例 5
要求:
(1)禁止從 172.16.4.0/24 經過 FTP 訪問 172.16.3.0/24;
(2)除此之外的其餘訪問和數據流都容許。
爲了驗證上述實驗,這裏將網絡拓撲圖進行簡化,因爲 172.16.3.0 網段涉及 FTP 登陸,這裏用一臺服務器來代替該網段,並設置 FTP 的登陸帳號和密碼。
如下是簡化的網絡拓撲圖和對 server 的 FTP 的配置 。
對路由器進行配置,配置好後爲 PC 和 server 分配 IP,並設置其網關,而後驗證 PC1 在沒有作 ACL 限制前能夠訪問 FTP。
Router>enable Router#conf t Router(config)#int gig0/0 Router(config-if)#ip add 172.16.4.1 255.255.255.0 Router(config-if)#no shut Router(config-if)#exit Router(config)#int gig0/1 Router(config-if)#ip add 172.16.0.1 255.255.255.0 Router(config-if)#no shut Router(config-if)#exit Router(config)#int gig0/2 Router(config-if)#ip add 172.16.3.1 255.255.255.0 Router(config-if)#no shut Router(config-if)#exit
如今對路由器作 ACL 限制,讓 PC1 沒法再登陸 server 的 FTP。
Router(config)#access-list 105 deny tcp 172.16.4.0 0.0.0.255 172.16.3.0 0.0.0.255 eq 20 Router(config)#access-list 105 deny tcp 172.16.4.0 0.0.0.255 172.16.3.0 0.0.0.255 eq 21 Router(config)#access-list 105 permit ip any any Router(config)#int gig0/0 Router(config-if)#ip access-group 105 in
驗證 PC1 是否還能繼續登陸 server 的 FTP,由結果能夠看出已經達到實驗要求 。
列表最後要有一句 permit ip any any,這個必須加上,由於一個列表中至少要有一句 permit 語句。
2.6 ACL 配置舉例 6
要求:
(1)拒絕 172.16.2.0/24 這個網段的主機訪問 SERVER1;
(2)拒絕 PC1 訪問 SERVER1;
(3)只容許 PC1 對 R2 進行遠程鏈接管理。
R2(config)#access-list 1 deny 172.16.2.0 0.0.0.255 R2(config)#access-list 1 deny host 172.16.1.10 R2(config)#access-list 1 permit any R2(config)#access-list 2 permit host 172.16.1.10 R2(config)#int f0/0 R2(config-if)#ip access-group 1 out //對端口 R2(config)#line vyt 0 4 R2(config-line)#password fsh R2(config-line)#access-class 2 in //對線模式
2.7 ACL 配置舉例 7
要求:
(1)211.12.3.0/24 這個網段不能訪問 SEREVER2 的網頁和 FTP,其餘服務能夠訪問;
(2)全部設備都能 ping 通 PC4,但反之不行(單向 ping)。
控制訪問類別
R2(config)#access-list 101 deny tcp 211.12.3.0 0.0.0.255 host 172.16.1.100 eq 80 R2(config)#access-list 101 deny tcp 211.12.3.0 0.0.0.255 host 172.16.1.100 eq 20 R2(config)#access-list 101 deny tcp 211.12.3.0 0.0.0.255 host 172.16.1.100 eq 21
控制單向 ping
R2(config)#access-list 101 permit icmp 211.12.3.0 0.0.0.255 any echo-reply //echo-reply表示ICMP響應 R2(config)#access-list 101 deny icmp 211.12.3.0 0.0.0.255 any //拒絕211.12.3.0/24到其餘任何網絡的icmp包 R2(config)#access-list 101 permit ip any any R2(config)#int f0/1 R2(config-if)#ip access-group 101 in
2.8 ACL 配置舉例 8
要求:
(1)VLAN 10 不能訪問 VLAN 30;
(2)其他 VLAN 之間能夠自由訪問。
一、劃分 VLAN,並將各接口分配至 VLAN中。
Switch>enable Switch#conf t Switch(config)#vlan 10 Switch(config-vlan)#exit Switch(config)#vlan 20 Switch(config-vlan)#exit Switch(config)#vlan 30 Switch(config-vlan)#exit Switch(config)#int fa0/1 Switch(config-if)#switchport mode access Switch(config-if)#switchport access vlan 10 Switch(config-if)#exit Switch(config)#int fa0/2 Switch(config-if)#switchport mode access Switch(config-if)#switchport access vlan 20 Switch(config-if)#exit Switch(config)#int fa0/3 Switch(config-if)#switchport mode access Switch(config-if)#switchport access vlan 30 Switch(config-if)#exit
二、開啓交換機路由功能,並給各虛擬 VLAN 接口配置 IP 地址,此接口和地址將成爲 vlan 中主機的網關。
Switch(config)#ip routing Switch(config)#int vlan 10 Switch(config-if)#ip add 10.0.0.1 255.255.255.0 Switch(config-if)#exit Switch(config)#int vlan 20 Switch(config-if)#ip add 20.0.0.1 255.255.255.0 Switch(config-if)#exit Switch(config)#int vlan 30 Switch(config-if)#ip add 30.0.0.1 255.255.255.0 Switch(config-if)#exit
三、配置訪問控制列表,並應用。
Switch(config)#access-list 1 deny 10.0.0.0 0.0.0.255 Switch(config)#access-list 1 permit any Switch(config)#int vlan 30 Switch(config-if)#ip access-group 1 out
四、配置各主機的 IP 地址及網關,經過 ping 檢驗各 vlan 之間的通訊狀況。
PC1 去 ping 另外兩臺 PC 。
另外兩臺 PC 的通訊 。
2.9 ACL 單向 ping
實驗要求:
(1)配好設備 IP 後,先相互 ping,能 ping 通;
(1)設置 ACL,使得:
1. 全部設備能 ping 通 PC3,即 PC3 能對全部 ping 請求做響應;
2. PC3 不能 ping 其餘設備。
對交換機進行設置,將交換機與路由器相連的接口設置爲 trunk 模式。
Switch>enable Switch#conf t Switch(config)#int fa0/3 Switch(config-if)#switchport mode trunk
對路由器進行設置。
Router>enable Router#conf t Router(config)#int fa0/0 Router(config-if)#ip add 10.0.0.1 255.255.255.0 Router(config-if)#no shut Router(config-if)#exit Router(config)#int fa1/0 Router(config-if)#ip add 20.0.0.1 255.255.255.0 Router(config-if)#no shut
上述配置完成後給各臺 PC 分配 IP,並設置它們的網關,而後驗證它們之間的通訊。這裏的通訊比較簡單,自行去驗證。
ping 的動做總共分爲兩部分,一是源主機將數據包發送給目標主機,二是目標主機收到數據包後給源主機響應。因爲 PC3 不能 ping 通其餘 PC,而其餘 PC 可以 ping 通 PC3,說明 PC3 能給其餘因此 PC 響應,爲了簡化 ACL 配置,這裏以 PC3 爲源主機,容許它的全部 icmp 的響應,其餘的 icmp 被限制,因爲 PC3 爲源主機,則數據包是通過路由器的 fa1/0 進入網絡的,下面是 ACL 規則的配置。
Router(config)#access-list 101 permit icmp 20.0.0.0 0.0.0.255 any echo-reply Router(config)#access-list 101 deny icmp 20.0.0.0 0.0.0.255 any Router(config)#access-list 101 permit ip any any Router(config)#int fa1/0 Router(config-if)#ip access-group 101 in
對結果進行驗證,用 PC3 去 ping 其餘兩臺 PC 。
其餘兩臺 PC 去 ping 主機 PC3 。
2.10 ACL 控制 VLAN 之間的訪問
實驗要求:
(1)開啓三層交換機路由功能,PC1,PC2,PC3,PC4 和 server 分別在 vlan10,vlan20,vlan30,vlan40 和 vlan50;
(2)查看路由表,確實各 VLAN 之間能夠互通;
(3)設置訪問控制列表,使 VLAN 10 和 VLAN 20 之間不能夠相互訪問,VLAN 30 和 VLAN 40 與服務器所在的 VLAN 50 不能夠相互訪問;
(4)其他全部的訪問都是容許的。
一、劃分 VLAN,並將各接口分配至 VLAN 中。
Switch>enable Switch#conf t Enter configuration commands, one per line. End with CNTL/Z. Switch(config)#vlan 10 Switch(config-vlan)#exit Switch(config)#vlan 20 Switch(config-vlan)#exit Switch(config)#vlan 30 Switch(config-vlan)#exit Switch(config)#vlan 40 Switch(config-vlan)#exit Switch(config)#vlan 50 Switch(config-vlan)#exit Switch(config)#int fa0/1 Switch(config-if)#switchport mode access Switch(config-if)#switchport access vlan 10 Switch(config-if)#exit Switch(config)#int fa0/2 Switch(config-if)#switchport mode access Switch(config-if)#switchport access vlan 20 Switch(config-if)#exit Switch(config)#int fa0/3 Switch(config-if)#switchport mode access Switch(config-if)#switchport access vlan 30 Switch(config-if)#exit Switch(config)#int fa0/4 Switch(config-if)#switchport mode access Switch(config-if)#switchport access vlan 40 Switch(config-if)#exit Switch(config)#int fa0/5 Switch(config-if)#switchport mode access Switch(config-if)#switchport access vlan 50 Switch(config-if)#exit
二、開啓交換機路由功能,並給各虛擬 VLAN 接口配置 IP 地址,此接口和地址將成爲 vlan 中主機的網關。
Switch(config)#int vlan 10 Switch(config-if)#ip add 10.0.0.1 255.255.255.0 Switch(config-if)#exit Switch(config)#int vlan 20 Switch(config-if)#ip add 20.0.0.1 255.255.255.0 Switch(config-if)#exit Switch(config)#int vlan 30 Switch(config-if)#ip add 30.0.0.1 255.255.255.0 Switch(config-if)#exit Switch(config)#int vlan 40 Switch(config-if)#ip add 40.0.0.1 255.255.255.0 Switch(config-if)#exit Switch(config)#int vlan 50 Switch(config-if)#ip add 50.0.0.1 255.255.255.0 Switch(config-if)#exit
三、配置 vlan 10 與 vlan 20 不能相互訪問的控制列表,並應用。
Switch(config)#access-list 1 deny 20.0.0.0 0.0.0.255 Switch(config)#access-list 1 permit any Switch(config)#int vlan 10 Switch(config-if)#ip access-group 1 out Switch(config-if)#exit Switch(config)#access-list 2 deny 10.0.0.0 0.0.0.255 Switch(config)#access-list 2 permit any Switch(config)#int vlan 20 Switch(config-if)#ip access-group 2 out Switch(config-if)#exit
四、驗證設置 ACL 後 vlan 10 與 vlan 20 之間的通訊,結果代表設置的 ACL 已經生效,vlan 10 與 vlan 20之間不能相互訪問 。
五、配置 vlan 30 和 vlan 40 與 vlan 50 不能相互訪問的控制列表,並應用。
Switch(config)#access-list 3 deny 50.0.0.0 0.0.0.255 Switch(config)#access-list 3 permit any Switch(config)#int vlan 30 Switch(config-if)#ip access-group 3 out Switch(config-if)#exit Switch(config)#int vlan 40 Switch(config-if)#ip access-group 3 out Switch(config-if)#exit Switch(config)#access-list 4 deny 30.0.0.0 0.0.0.255 Switch(config)#access-list 4 deny 40.0.0.0 0.0.0.255 Switch(config)#access-list 4 permit any Switch(config)#int vlan 50 Switch(config-if)#ip access-group 4 out
六、驗證設置 AC L後 vlan 30 和 vlan 40 與 vlan 50 之間的通訊,結果代表設置的 ACL 已經生效,vlan 30 和 vlan 40 與 vlan 50 之間不能相互訪問。這裏以 vlan 50 去訪問 vlan 30 與 vlan 40爲例,其餘的通訊狀況自行測試 。
2.11 ACL 綜合練習
實驗要求:
(1)PC1 和 PC2 在 10.0.0.0 網段,server 在 20.0.0.0 網段,PC3 在 30.0.0.0 網段。在服務器 server 開啓 HTTP 和 FTP 功能,設置 FTP 登陸用戶名、密碼和訪問權限;
(2)10.0.0.0 網段能夠訪問 server 的 FTP,其餘訪問均被拒絕;
(3)PC3 能夠訪問 server 的 HTTP,但不能夠訪問 server 的 FTP;
(4)服務器 server 能夠 ping 通全部設備,但全部設備不能夠 ping 服務器 sever。
對交換機進行配置。
Switch>enable Switch#conf t Switch(config)#int fa0/3 Switch(config-if)#switchport mode trunk
對路由器進行配置,設置各臺 PC 的網關及其掩碼。
Router>enable Router#conf t Router(config)#int gig0/0 Router(config-if)#ip add 10.0.0.1 255.255.255.0 Router(config-if)#no shut Router(config-if)#exit Router(config)#int gig0/1 Router(config-if)#ip add 30.0.0.1 255.255.255.0 Router(config-if)#no shut Router(config-if)#exit Router(config)#int gig0/2 Router(config-if)#ip add 20.0.0.1 255.255.255.0 Router(config-if)#no shut Router(config-if)#exit
配置訪問控制列表,並應用。
Router(config)#access-list 101 permit tcp 10.0.0.0 0.0.0.255 20.0.0.0 0.0.0.255 eq 20 Router(config)#access-list 101 permit tcp 10.0.0.0 0.0.0.255 20.0.0.0 0.0.0.255 eq 21 Router(config)#access-list 101 permit tcp 30.0.0.0 0.0.0.255 20.0.0.0 0.0.0.255 eq 80 Router(config)#access-list 101 permit icmp any 20.0.0.0 0.0.0.255 echo-reply Router(config)#access-list 101 deny icmp any 20.0.0.0 0.0.0.255 Router(config)#int gig0/2 Router(config-if)#ip access-group 101 out
給全部 PC 和 server 分配 IP,並設置其網關,對 server 進行設置,開啓 FTP 並添加用戶,FTP 的設置能夠參考前面的配置。驗證 10.0.0.0 網段能夠訪問 server 的 FTP,其餘訪問被拒絕是否生效。由結果能夠看出配置已經成功 。
驗證 PC 能夠訪問 server 的 HTTP,但不能訪問 server 的 FTP 是否生效,結果代表 ACL 配置已經成功 。
驗證 server 能夠 ping 通全部設備,全部設備不能 ping 通 server:
server 去 ping 其餘網段的 PC ;
10.0.0.0 網段的 PC ping server ;
30.0.0.0 網段的 PC ping server 。
上述結果代表,已經達到實驗要求。
對 ACL 設置的小結:在應用 ACL 的時候,大部分同窗可能會在判斷是進入接口還在出接口的地方感到疑惑,解決這個問題最好的辦法就是去看本身寫的 ACL 規則,ACL 規則裏面都有源主機地址,不管是標準仍是擴展,都會寫上源地址,那麼從源地址出發到目標主機,看它通過的設備,這樣可以一目瞭然看出應該應用在接口的出仍是進。