1 ACL 的配置
1.1 創(chuàng)建 ACL
標(biāo)準(zhǔn) ACL
router(config)#access-list <ACL表號(hào)> {permit|deny}{<源IP|host><反掩碼>|any} //表號(hào)1~99
擴(kuò)展 ACL
router(config)#access-list <ACL表號(hào)> {permit|deny}{<協(xié)議名稱(chēng)>|<端口號(hào)>}{<源IP><反掩碼>}{<目的IP><反掩碼>}{<關(guān)系><協(xié)議名稱(chēng)>} //表號(hào)101~199
1.2 應(yīng)用 ACL
router(config-if)#{協(xié)議棧} access-group <ACL表號(hào)> {in|out} //協(xié)議??梢詾镮P或IPX
2 ACL 上機(jī)實(shí)驗(yàn)
2.1 ACL 配置舉例 1
router(config)#access-list 1 deny 10.0.0.1 0.0.0.0 //ACL表號(hào)為1,丟棄10.0.0.1發(fā)出的數(shù)據(jù)包,相當(dāng)于 deny host 10.0.0.1router(config)#access-list 1 permit anyrouter(config)#access-list 2 permit any //ACL表號(hào)為2,可以轉(zhuǎn)發(fā)任意數(shù)據(jù)包router(config)#int s0/0router(config-if)#ip access-group 1 in //該接口輸入方向應(yīng)用ACL列表組1,拒絕來(lái)自10.0.0.1的數(shù)據(jù)包router(config-if)#ip access-group 2 out //該接口輸出方向應(yīng)用ACL列表組2,允許發(fā)出流經(jīng)該路由器的所有數(shù)據(jù)包
2.2 ACL 配置舉例 2
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網(wǎng)絡(luò)的數(shù)據(jù)包telnet主機(jī)192.168.1.1router(config)#access-list 101 permit ip any any //允許轉(zhuǎn)發(fā)其他任何數(shù)據(jù)包router(config)#int s0/0router(config-if)#ip access-group 101 in
2.3 ACL 配置舉例 3
限制只允許 192.168.2.2 訪問(wèn) 192.168.1.2 的 80 端口,192.168.3.2 訪問(wèn) 192.168.1.2 的 DNS。
router(config)#ip access-list extended cjrouter(config ext-nacl)#permit udp host 192.168.3.2 host 192.168.1.2 eq 53router(config ext-nacl)#permit tcp host 192.168.2.2 host 192.168.1.2 eq 80router(config ext-nacl)#exitrouter(config)#int f0/0router(config-if)#ip access-group cj out
2.4 ACL 配置舉例 4
要求:只允許 172.16.4.0/24 網(wǎng)絡(luò)的主機(jī)通過(guò)端口 E0 進(jìn)入網(wǎng)絡(luò) 172.16.3.0/24,其他的被禁止。
為了實(shí)現(xiàn)上面的實(shí)驗(yàn)要求,我們將網(wǎng)絡(luò)拓?fù)溥M(jìn)行簡(jiǎn)化,PC1 的 IP 設(shè)置為 172.16.4.2,PC2 的 IP 設(shè)置為 172.16.0.2,PC3 的 IP 設(shè)置為 172.16.3.2,最終要達(dá)到的要求為 PC1 網(wǎng)段的主機(jī)可以訪問(wèn) PC3 網(wǎng)段的主機(jī),PC2 網(wǎng)段的主機(jī)不能訪問(wèn) PC3 網(wǎng)段的主機(jī)。需要注意的是這里的路由器的選擇,如果選擇不恰當(dāng)會(huì)導(dǎo)致端口不夠用,可以參照下面的網(wǎng)絡(luò)拓?fù)鋱D中所選路由器。
先對(duì)路由器進(jìn)行配置,讓三臺(tái) PC 之間都可以通信。
Router>enableRouter#conf tRouter(config)#int gig0/0Router(config-if)#ip add 172.16.4.1 255.255.255.0Router(config-if)#no shutRouter(config-if)#exitRouter(config)#int gig0/1Router(config-if)#ip add 172.16.0.1 255.255.255.0Router(config-if)#no shutRouter(config)#int gig0/2Router(config-if)#ip add 172.16.3.1 255.255.255.0Router(config-if)#no shut
路由器配置完成后給各臺(tái) PC 分配 IP,并設(shè)置其網(wǎng)關(guān),先來(lái)驗(yàn)證 PC1 和 PC2 都能 ping 通 PC3 。
上述結(jié)果表明,在沒(méi)有做 ACL 限制前,PC 之間是可以相互通信的,現(xiàn)在來(lái)設(shè)置 ACL 規(guī)則,讓 PC1 可以 ping 通 PC3,而 PC2 不能 ping 通 PC3。
Router(config)#access-list 5 permit 172.16.4.0 0.0.0.255Router(config)#int gig0/2Router(config-if)#ip access-group 5 out
現(xiàn)在再來(lái)驗(yàn)證 PC 之間的通信。
PC1 可以 ping 通 PC3,但 PC2 不能 ping 通 PC3,達(dá)到實(shí)驗(yàn)要求。這里并沒(méi)有 deny any 的語(yǔ)句,是因?yàn)槁酚呻[含在每個(gè) ACL 列表的最后有一句拒絕所有數(shù)據(jù)包訪問(wèn)的語(yǔ)句,所以不用再專(zhuān)門(mén)寫(xiě)出了。
2.5 ACL 配置舉例 5
要求:
(1)禁止從 172.16.4.0/24 通過(guò) FTP 訪問(wèn) 172.16.3.0/24;
(2)除此以外的其他訪問(wèn)和數(shù)據(jù)流都允許。
為了驗(yàn)證上述實(shí)驗(yàn),這里將網(wǎng)絡(luò)拓?fù)鋱D進(jìn)行簡(jiǎn)化,由于 172.16.3.0 網(wǎng)段涉及 FTP 登錄,這里用一臺(tái)服務(wù)器來(lái)代替該網(wǎng)段,并設(shè)置 FTP 的登錄賬號(hào)和密碼。
以下是簡(jiǎn)化的網(wǎng)絡(luò)拓?fù)鋱D和對(duì) server 的 FTP 的配置 。
對(duì)路由器進(jìn)行配置,配置好后為 PC 和 server 分配 IP,并設(shè)置其網(wǎng)關(guān),然后驗(yàn)證 PC1 在沒(méi)有做 ACL 限制前可以訪問(wèn) FTP。
Router>enableRouter#conf tRouter(config)#int gig0/0Router(config-if)#ip add 172.16.4.1 255.255.255.0Router(config-if)#no shutRouter(config-if)#exitRouter(config)#int gig0/1Router(config-if)#ip add 172.16.0.1 255.255.255.0Router(config-if)#no shutRouter(config-if)#exitRouter(config)#int gig0/2Router(config-if)#ip add 172.16.3.1 255.255.255.0Router(config-if)#no shutRouter(config-if)#exit
現(xiàn)在對(duì)路由器做 ACL 限制,讓 PC1 無(wú)法再登錄 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 20Router(config)#access-list 105 deny tcp 172.16.4.0 0.0.0.255 172.16.3.0 0.0.0.255 eq 21Router(config)#access-list 105 permit ip any anyRouter(config)#int gig0/0Router(config-if)#ip access-group 105 in
驗(yàn)證 PC1 是否還能繼續(xù)登錄 server 的 FTP,由結(jié)果可以看出已經(jīng)達(dá)到實(shí)驗(yàn)要求 。
列表最后要有一句 permit ip any any,這個(gè)必須加上,因?yàn)橐粋€(gè)列表中至少要有一句 permit 語(yǔ)句。
2.6 ACL 配置舉例 6
要求:
(1)拒絕 172.16.2.0/24 這個(gè)網(wǎng)段的主機(jī)訪問(wèn) SERVER1;
(2)拒絕 PC1 訪問(wèn) SERVER1;
(3)只允許 PC1 對(duì) R2 進(jìn)行遠(yuǎn)程連接管理。
R2(config)#access-list 1 deny 172.16.2.0 0.0.0.255R2(config)#access-list 1 deny host 172.16.1.10R2(config)#access-list 1 permit anyR2(config)#access-list 2 permit host 172.16.1.10R2(config)#int f0/0R2(config-if)#ip access-group 1 out //對(duì)端口R2(config)#line vyt 0 4R2(config-line)#password fshR2(config-line)#access-class 2 in //對(duì)線模式
2.7 ACL 配置舉例 7
要求:
(1)211.12.3.0/24 這個(gè)網(wǎng)段不能訪問(wèn) SEREVER2 的網(wǎng)頁(yè)和 FTP,其他服務(wù)可以訪問(wèn);
(2)所有設(shè)備都能 ping 通 PC4,但反之不行(單向 ping)。
控制訪問(wèn)類(lèi)別
R2(config)#access-list 101 deny tcp 211.12.3.0 0.0.0.255 host 172.16.1.100 eq 80R2(config)#access-list 101 deny tcp 211.12.3.0 0.0.0.255 host 172.16.1.100 eq 20R2(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響應(yīng)R2(config)#access-list 101 deny icmp 211.12.3.0 0.0.0.255 any //拒絕211.12.3.0/24到其他任何網(wǎng)絡(luò)的icmp包R2(config)#access-list 101 permit ip any anyR2(config)#int f0/1R2(config-if)#ip access-group 101 in
2.8 ACL 配置舉例 8
要求:
(1)VLAN 10 不能訪問(wèn) VLAN 30;
(2)其余 VLAN 之間可以自由訪問(wèn)。
1、劃分 VLAN,并將各接口分配至 VLAN中。
Switch>enableSwitch#conf tSwitch(config)#vlan 10Switch(config-vlan)#exitSwitch(config)#vlan 20Switch(config-vlan)#exitSwitch(config)#vlan 30Switch(config-vlan)#exitSwitch(config)#int fa0/1Switch(config-if)#switchport mode accessSwitch(config-if)#switchport access vlan 10Switch(config-if)#exitSwitch(config)#int fa0/2Switch(config-if)#switchport mode accessSwitch(config-if)#switchport access vlan 20Switch(config-if)#exitSwitch(config)#int fa0/3Switch(config-if)#switchport mode accessSwitch(config-if)#switchport access vlan 30Switch(config-if)#exit
2、開(kāi)啟交換機(jī)路由功能,并給各虛擬 VLAN 接口配置 IP 地址,此接口和地址將成為 vlan 中主機(jī)的網(wǎng)關(guān)。
Switch(config)#ip routingSwitch(config)#int vlan 10Switch(config-if)#ip add 10.0.0.1 255.255.255.0Switch(config-if)#exitSwitch(config)#int vlan 20Switch(config-if)#ip add 20.0.0.1 255.255.255.0Switch(config-if)#exitSwitch(config)#int vlan 30Switch(config-if)#ip add 30.0.0.1 255.255.255.0Switch(config-if)#exit
3、配置訪問(wèn)控制列表,并應(yīng)用。
Switch(config)#access-list 1 deny 10.0.0.0 0.0.0.255Switch(config)#access-list 1 permit anySwitch(config)#int vlan 30Switch(config-if)#ip access-group 1 out
4、配置各主機(jī)的 IP 地址及網(wǎng)關(guān),通過(guò) ping 檢驗(yàn)各 vlan 之間的通信情況。
PC1 去 ping 另外兩臺(tái) PC 。
另外兩臺(tái) PC 的通信 。
2.9 ACL 單向 ping
實(shí)驗(yàn)要求:
(1)配好設(shè)備 IP 后,先相互 ping,能 ping 通;
(1)設(shè)置 ACL,使得:
1. 所有設(shè)備能 ping 通 PC3,即 PC3 能對(duì)所有 ping 請(qǐng)求作響應(yīng);
2. PC3 不能 ping 其他設(shè)備。
對(duì)交換機(jī)進(jìn)行設(shè)置,將交換機(jī)與路由器相連的接口設(shè)置為 trunk 模式。
Switch>enableSwitch#conf tSwitch(config)#int fa0/3Switch(config-if)#switchport mode trunk
對(duì)路由器進(jìn)行設(shè)置。
Router>enableRouter#conf tRouter(config)#int fa0/0Router(config-if)#ip add 10.0.0.1 255.255.255.0Router(config-if)#no shutRouter(config-if)#exitRouter(config)#int fa1/0Router(config-if)#ip add 20.0.0.1 255.255.255.0Router(config-if)#no shut
上述配置完成后給各臺(tái) PC 分配 IP,并設(shè)置它們的網(wǎng)關(guān),然后驗(yàn)證它們之間的通信。這里的通信比較簡(jiǎn)單,自行去驗(yàn)證。
ping 的動(dòng)作總共分為兩部分,一是源主機(jī)將數(shù)據(jù)包發(fā)送給目標(biāo)主機(jī),二是目標(biāo)主機(jī)收到數(shù)據(jù)包后給源主機(jī)響應(yīng)。由于 PC3 不能 ping 通其他 PC,而其他 PC 能夠 ping 通 PC3,說(shuō)明 PC3 能給其他所以 PC 響應(yīng),為了簡(jiǎn)化 ACL 配置,這里以 PC3 為源主機(jī),允許它的所有 icmp 的響應(yīng),其他的 icmp 被限制,由于 PC3 為源主機(jī),則數(shù)據(jù)包是經(jīng)過(guò)路由器的 fa1/0 進(jìn)入網(wǎng)絡(luò)的,下面是 ACL 規(guī)則的配置。
Router(config)#access-list 101 permit icmp 20.0.0.0 0.0.0.255 any echo-replyRouter(config)#access-list 101 deny icmp 20.0.0.0 0.0.0.255 anyRouter(config)#access-list 101 permit ip any anyRouter(config)#int fa1/0Router(config-if)#ip access-group 101 in
對(duì)結(jié)果進(jìn)行驗(yàn)證,用 PC3 去 ping 其他兩臺(tái) PC 。
其他兩臺(tái) PC 去 ping 主機(jī) PC3 。
2.10 ACL 控制 VLAN 之間的訪問(wèn)
實(shí)驗(yàn)要求:
(1)開(kāi)啟三層交換機(jī)路由功能,PC1,PC2,PC3,PC4 和 server 分別在 vlan10,vlan20,vlan30,vlan40 和 vlan50;
(2)查看路由表,確實(shí)各 VLAN 之間可以互通;
(3)設(shè)置訪問(wèn)控制列表,使 VLAN 10 和 VLAN 20 之間不可以相互訪問(wèn),VLAN 30 和 VLAN 40 與服務(wù)器所在的 VLAN 50 不可以相互訪問(wèn);
(4)其余所有的訪問(wèn)都是允許的。
1、劃分 VLAN,并將各接口分配至 VLAN 中。
Switch>enableSwitch#conf tEnter configuration commands, one per line. End with CNTL/Z.Switch(config)#vlan 10Switch(config-vlan)#exitSwitch(config)#vlan 20Switch(config-vlan)#exitSwitch(config)#vlan 30Switch(config-vlan)#exitSwitch(config)#vlan 40Switch(config-vlan)#exitSwitch(config)#vlan 50Switch(config-vlan)#exitSwitch(config)#int fa0/1Switch(config-if)#switchport mode accessSwitch(config-if)#switchport access vlan 10Switch(config-if)#exitSwitch(config)#int fa0/2Switch(config-if)#switchport mode accessSwitch(config-if)#switchport access vlan 20Switch(config-if)#exitSwitch(config)#int fa0/3Switch(config-if)#switchport mode accessSwitch(config-if)#switchport access vlan 30Switch(config-if)#exitSwitch(config)#int fa0/4Switch(config-if)#switchport mode accessSwitch(config-if)#switchport access vlan 40Switch(config-if)#exitSwitch(config)#int fa0/5Switch(config-if)#switchport mode accessSwitch(config-if)#switchport access vlan 50Switch(config-if)#exit
2、開(kāi)啟交換機(jī)路由功能,并給各虛擬 VLAN 接口配置 IP 地址,此接口和地址將成為 vlan 中主機(jī)的網(wǎng)關(guān)。
Switch(config)#int vlan 10Switch(config-if)#ip add 10.0.0.1 255.255.255.0Switch(config-if)#exitSwitch(config)#int vlan 20Switch(config-if)#ip add 20.0.0.1 255.255.255.0Switch(config-if)#exitSwitch(config)#int vlan 30Switch(config-if)#ip add 30.0.0.1 255.255.255.0Switch(config-if)#exitSwitch(config)#int vlan 40Switch(config-if)#ip add 40.0.0.1 255.255.255.0Switch(config-if)#exitSwitch(config)#int vlan 50Switch(config-if)#ip add 50.0.0.1 255.255.255.0Switch(config-if)#exit
3、配置 vlan 10 與 vlan 20 不能相互訪問(wèn)的控制列表,并應(yīng)用。
Switch(config)#access-list 1 deny 20.0.0.0 0.0.0.255Switch(config)#access-list 1 permit anySwitch(config)#int vlan 10 Switch(config-if)#ip access-group 1 outSwitch(config-if)#exitSwitch(config)#access-list 2 deny 10.0.0.0 0.0.0.255Switch(config)#access-list 2 permit anySwitch(config)#int vlan 20Switch(config-if)#ip access-group 2 outSwitch(config-if)#exit
4、驗(yàn)證設(shè)置 ACL 后 vlan 10 與 vlan 20 之間的通信,結(jié)果表明設(shè)置的 ACL 已經(jīng)生效,vlan 10 與 vlan 20之間不能相互訪問(wèn) 。
5、配置 vlan 30 和 vlan 40 與 vlan 50 不能相互訪問(wèn)的控制列表,并應(yīng)用。
Switch(config)#access-list 3 deny 50.0.0.0 0.0.0.255Switch(config)#access-list 3 permit anySwitch(config)#int vlan 30Switch(config-if)#ip access-group 3 outSwitch(config-if)#exitSwitch(config)#int vlan 40Switch(config-if)#ip access-group 3 outSwitch(config-if)#exitSwitch(config)#access-list 4 deny 30.0.0.0 0.0.0.255Switch(config)#access-list 4 deny 40.0.0.0 0.0.0.255Switch(config)#access-list 4 permit anySwitch(config)#int vlan 50Switch(config-if)#ip access-group 4 out
6、驗(yàn)證設(shè)置 AC L后 vlan 30 和 vlan 40 與 vlan 50 之間的通信,結(jié)果表明設(shè)置的 ACL 已經(jīng)生效,vlan 30 和 vlan 40 與 vlan 50 之間不能相互訪問(wèn)。這里以 vlan 50 去訪問(wèn) vlan 30 與 vlan 40為例,其他的通信情況自行測(cè)試 。
2.11 ACL 綜合練習(xí)
實(shí)驗(yàn)要求:
(1)PC1 和 PC2 在 10.0.0.0 網(wǎng)段,server 在 20.0.0.0 網(wǎng)段,PC3 在 30.0.0.0 網(wǎng)段。在服務(wù)器 server 開(kāi)啟 HTTP 和 FTP 功能,設(shè)置 FTP 登錄用戶名、密碼和訪問(wèn)權(quán)限;
(2)10.0.0.0 網(wǎng)段可以訪問(wèn) server 的 FTP,其他訪問(wèn)均被拒絕;
(3)PC3 可以訪問(wèn) server 的 HTTP,但不可以訪問(wèn) server 的 FTP;
(4)服務(wù)器 server 可以 ping 通所有設(shè)備,但所有設(shè)備不可以 ping 服務(wù)器 sever。
對(duì)交換機(jī)進(jìn)行配置。
Switch>enableSwitch#conf tSwitch(config)#int fa0/3Switch(config-if)#switchport mode trunk
對(duì)路由器進(jìn)行配置,設(shè)置各臺(tái) PC 的網(wǎng)關(guān)及其掩碼。
Router>enableRouter#conf tRouter(config)#int gig0/0 Router(config-if)#ip add 10.0.0.1 255.255.255.0Router(config-if)#no shutRouter(config-if)#exitRouter(config)#int gig0/1Router(config-if)#ip add 30.0.0.1 255.255.255.0Router(config-if)#no shutRouter(config-if)#exitRouter(config)#int gig0/2Router(config-if)#ip add 20.0.0.1 255.255.255.0Router(config-if)#no shutRouter(config-if)#exit
配置訪問(wèn)控制列表,并應(yīng)用。
Router(config)#access-list 101 permit tcp 10.0.0.0 0.0.0.255 20.0.0.0 0.0.0.255 eq 20Router(config)#access-list 101 permit tcp 10.0.0.0 0.0.0.255 20.0.0.0 0.0.0.255 eq 21Router(config)#access-list 101 permit tcp 30.0.0.0 0.0.0.255 20.0.0.0 0.0.0.255 eq 80Router(config)#access-list 101 permit icmp any 20.0.0.0 0.0.0.255 echo-replyRouter(config)#access-list 101 deny icmp any 20.0.0.0 0.0.0.255Router(config)#int gig0/2Router(config-if)#ip access-group 101 out
給所有 PC 和 server 分配 IP,并設(shè)置其網(wǎng)關(guān),對(duì) server 進(jìn)行設(shè)置,開(kāi)啟 FTP 并添加用戶,F(xiàn)TP 的設(shè)置可以參考前面的配置。驗(yàn)證 10.0.0.0 網(wǎng)段可以訪問(wèn) server 的 FTP,其他訪問(wèn)被拒絕是否生效。由結(jié)果可以看出配置已經(jīng)成功 。
驗(yàn)證 PC 可以訪問(wèn) server 的 HTTP,但不能訪問(wèn) server 的 FTP 是否生效,結(jié)果表明 ACL 配置已經(jīng)成功 。
驗(yàn)證 server 可以 ping 通所有設(shè)備,所有設(shè)備不能 ping 通 server:
server 去 ping 其他網(wǎng)段的 PC ;
10.0.0.0 網(wǎng)段的 PC ping server ;
30.0.0.0 網(wǎng)段的 PC ping server 。
上述結(jié)果表明,已經(jīng)達(dá)到實(shí)驗(yàn)要求。
對(duì) ACL 設(shè)置的小結(jié):在應(yīng)用 ACL 的時(shí)候,大部分同學(xué)可能會(huì)在判斷是進(jìn)入接口還在出接口的地方感到疑惑,解決這個(gè)問(wèn)題最好的辦法就是去看自己寫(xiě)的 ACL 規(guī)則,ACL 規(guī)則里面都有源主機(jī)地址,不論是標(biāo)準(zhǔn)還是擴(kuò)展,都會(huì)寫(xiě)上源地址,那么從源地址出發(fā)到目標(biāo)主機(jī),看它經(jīng)過(guò)的設(shè)備,這樣能夠一目了然看出應(yīng)該應(yīng)用在接口的出還是進(jìn)。
聯(lián)系客服