一、訪(fǎng)問(wèn)控制列表(ACL)Access List
1.作用:控制IP流量
2.使用ACL的原因:(1)管理網(wǎng)絡(luò)中逐步增長(zhǎng)的IP數(shù)據(jù)
(2)當(dāng)數(shù)據(jù)通過(guò)路由器時(shí)進(jìn)行過(guò)濾
3.ACL的應(yīng)用:(1)允許或拒絕數(shù)據(jù)包通過(guò)Router
(2)允許或拒絕Telnet會(huì)話(huà)的建立
(3)沒(méi)有設(shè)置ACL時(shí),所有數(shù)據(jù)包都會(huì)在網(wǎng)絡(luò)上傳輸
4.分類(lèi):
(1)標(biāo)準(zhǔn)ACL:1.檢查源地址
2.通常允許(permit)或拒絕(deny)的是完整的協(xié)議
ACL編號(hào):1——99 1300——1999
(2)擴(kuò)展ACL:1.檢查源地址和目標(biāo)地址
2.通常允許或拒絕的是某個(gè)特定的協(xié)議,如Telnet
ACL編號(hào):100——199 2000——2699
(3)命名ACL
5.ACL的配置指南:(1)ACL的編號(hào)指明了使用何種協(xié)議的訪(fǎng)問(wèn)列表
(2)ACL的最后有一條隱含聲明:deny any—每一條正確的訪(fǎng)問(wèn)列表都至少應(yīng)該有一條允許語(yǔ)句
(3)每個(gè)端口,每個(gè)方向,每條協(xié)議只能對(duì)應(yīng)一條訪(fǎng)問(wèn)列表
(4)先創(chuàng)建訪(fǎng)問(wèn)列表,然后應(yīng)用到端口上
(5)訪(fǎng)問(wèn)列表不能過(guò)濾路由器自身產(chǎn)生的數(shù)據(jù)
(6)具有嚴(yán)格限制語(yǔ)句應(yīng)放在訪(fǎng)問(wèn)列表所有語(yǔ)句的最上面
6.ACL配置原則:編寫(xiě)標(biāo)準(zhǔn)ACL是一般要靠近目的;而編寫(xiě)擴(kuò)展ACL是一般要靠近源。
7.實(shí)驗(yàn)配置:
1.標(biāo)準(zhǔn)ACL的設(shè)置
(1)設(shè)置訪(fǎng)問(wèn)列表測(cè)試語(yǔ)句的參數(shù)
Router(config)#access-list access-list-number {permit|deny}{test-conditions}
access-list-numbe:表示ACL的編號(hào)
permit:允許 deny:拒絕
test conditions:條件
(2)在端口上應(yīng)用ACL
Router(config)#int s1/0 !打開(kāi)某個(gè)端口
Router(config-if)#access-list-number{permit|deny{test-conditions}
應(yīng)用:Protocol access-group
Access-list-number{in|out}
2.擴(kuò)展ACL的設(shè)置
(1)設(shè)置訪(fǎng)問(wèn)列表測(cè)試語(yǔ)句的參數(shù)
Router(config)#access-list access-list-number{permit-deny} protocol
source-address source-widcard [operator port] destination-add
destination-widcard [operator port] [established] [log]
其中:operator可以是lt(小于),gt(大于),eq(等于),neq(不等于)port為協(xié)議端口號(hào)
established只適用于入站TCP訪(fǎng)問(wèn)表,它允許使用已建立的連接的TCP分組通過(guò)(如TCK
位為1)
3.使用訪(fǎng)問(wèn)類(lèi)條目控制對(duì)vty的訪(fǎng)問(wèn)
(1)技術(shù)原理:標(biāo)準(zhǔn)和擴(kuò)展訪(fǎng)問(wèn)表禁止分組通過(guò)路由器,但不能禁止當(dāng)前路由器發(fā)送
的分組通過(guò),出站Telnet擴(kuò)展訪(fǎng)問(wèn)表不能組織當(dāng)前路由器發(fā)起Telnet會(huì)話(huà)。
配置命令:router(config)#line vty {#/vty-range} !命令line將路由器切換到線(xiàn)路配置模式
router(config-line)#access-class access-list-number {in|out}
!命令access-class將訪(fǎng)問(wèn)表應(yīng)用于一條或一組終端線(xiàn)路
其中:in:禁止訪(fǎng)問(wèn)表中指定地址以Telnet方式訪(fǎng)問(wèn)路由器
out:禁止路由器的vty端口向訪(fǎng)問(wèn)表指定的地址發(fā)起Telnet連接,注意,在這種情
況下,標(biāo)準(zhǔn)訪(fǎng)問(wèn)表中指定的源地址用作目標(biāo)地址。
(2)配置實(shí)例:
【實(shí)驗(yàn)名稱(chēng)】允許特定網(wǎng)絡(luò)中的設(shè)備建立到路由器的Telnet會(huì)話(huà)
【實(shí)驗(yàn)步驟】router(config)#access-list 2 permit 192.168.1.0 0.0.0.255
router(config)#line vty 0 4
router(config-line)#access-class 2 in
二、實(shí)驗(yàn):
實(shí)驗(yàn)一 【實(shí)驗(yàn)名稱(chēng)】利用標(biāo)準(zhǔn)ACL訪(fǎng)問(wèn)控制列表,控制IP流量
【實(shí)驗(yàn)設(shè)備】三臺(tái)CISCO 7200路由器,其中一臺(tái)作為Host(主機(jī))利用
【實(shí)驗(yàn)?zāi)繕?biāo)】(1)在沒(méi)有設(shè)置ACL時(shí),主機(jī)IP可以Ping通R2
(2)當(dāng)在R1的in(入端口)端口或out(出端口)端口設(shè)置ACL
后,讓主機(jī)IP無(wú)法Ping通R2即無(wú)法給R2發(fā)送IP流量,從而阻止了主機(jī)發(fā)送的IP流量。在網(wǎng)絡(luò)中的目的就是阻止某些IP發(fā)送來(lái)的流量。比如阻止某些惡意IP的攻擊。
【實(shí)驗(yàn)拓?fù)洹?/p>
【實(shí)驗(yàn)步驟】(一)給Host,R1,R2各個(gè)端口設(shè)置IP
1.Host上
Router(config)#no ip routing !關(guān)閉路由功能,即把Router設(shè)置成主機(jī)
Router(config)#hostname host !重命名為host
host(config)#ip default-gateway 199.99.1.1 !設(shè)置主機(jī)的默認(rèn)網(wǎng)關(guān)
host(config)#int s1/0
host(config-if)#ip add 199.99.1.2 255.255.255.0
host(config-if)#no shut
2.R1
rack01(config)#int s1/0
rack01(config-if)#ip add 199.99.1.1 255.255.255.0
rack01(config-if)#no shut
rack01(config)#int s1/1
rack01(config-if)#ip add 192.168.1.1 255.255.255.0
rack01(config-if)#no shut
3.R2
rack02(config)#int s1/1
rack02(config-if)#ip add 192.168.1.2 255.255.255.0
rack02(config-if)#no shut
注:到這里為止各鏈路連接成功。
(二)在R1和R2上設(shè)置路由功能,在這里設(shè)置EIGRP協(xié)議.
設(shè)置路由目的:讓Host、R1、R2之間可以互相Ping通
1.R1
rack01(config)#router eigrp 100
rack01(config-router)#network 199.1.1.0 !宣告網(wǎng)段
rack01(config-router)#network 192.168.1.0
2.R2
rack02(config)#router eigrp 100
rack02(config-router)#network 192.168.1.0
注:到這里為止Host、R1、R2之間可以互相Ping通。
host#ping 192.168.1.2
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.1.2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max=96/148/188 ms
(三)在R1上設(shè)置ACL
目的:讓199.99.1.1 Ping不通192.168.1.2
rack01(config)#access-list 10 deny host 199.99.1.2
!在R1上設(shè)置ACL 其中10指ACL的編號(hào) deny:拒絕 host+ip表示一個(gè)特定的IP地址
上條命令還等于:rack01(config)#access-list 10 deny 199.99.1.1 0.0.0.0
!0.0.0.0代表一臺(tái)特定的主機(jī)
rack01(config)#access-list 10 permit any
!允許除199.99.1.1外的IP訪(fǎng)問(wèn),如果不設(shè)置此條命令,則表示拒絕所有
rack01(config)#int s1/1 !進(jìn)入S1/1 端口
rack01(config-if)#ip access-group 10 out !將ACL應(yīng)用到R1的出端口上
以上兩條命令還等于以下兩條命令:
rack01(config)#int s1/0
rack01(config-if)#ip access-group 10 in !將ACL應(yīng)用到R1的入端口上
測(cè)試結(jié)果:在Host Ping192.168.1.2
host#ping 192.168.1.2
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.1.2, timeout is 2 seconds:
U.U.U 表示線(xiàn)路不通
(四)現(xiàn)在給Host設(shè)置第二個(gè)IP:199.99.1.3 用此IP是可以Ping通192.168.1.2
host(config)#int s1/0
host(config-if)#ip add 199.99.1.3 255.255.255.0 secondary
!為S1/0端口設(shè)置第二個(gè)IP地址,其中secondary表示第二個(gè)
host(config-if)#no shut
測(cè)試結(jié)果:用擴(kuò)展Ping來(lái)Ping192.168.1.2
host#ping 擴(kuò)展Ping
Protocol [ip]:
Target IP address: 192.168.1.2 目標(biāo)地址
Repeat count [5]:
Datagram size [100]:
Timeout in seconds [2]:
Extended commands [n]: y
Source address or interface: 199.99.1.3 源地址
Type of service [0]:
Set DF bit in IP header? [no]:
Validate reply data? [no]:
Data pattern [0xABCD]:
Loose, Strict, Record, Timestamp, Verbose[none]:
Sweep range of sizes [n]:
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.1.2, timeout is 2 seconds:
Packet sent with a source address of 199.99.1.3
!!!!! 此時(shí)表示199.99.1.3可以Ping通192.168.1.2
Success rate is 100 percent (5/5), round-trip min/avg/max=120/150/176 ms
(五)在R1上關(guān)閉ACL,此時(shí)199.99.1.1依然可以Ping通192.168.1.2
rack01(config)#no access-list 10
!關(guān)閉ACL,但是關(guān)閉后會(huì)將所有設(shè)置ACL設(shè)置全部擦除,不能NO掉單個(gè)ACL設(shè)置
實(shí)驗(yàn)二、【實(shí)驗(yàn)名稱(chēng)】利用擴(kuò)展ACL訪(fǎng)問(wèn)控制列表,控制IP流量
【實(shí)驗(yàn)設(shè)備】三臺(tái)CISCO 7200路由器,其中一臺(tái)作為Host(主機(jī))利用
【實(shí)驗(yàn)?zāi)繕?biāo)】設(shè)置ACL,Host可以Ping通R2,但不可以Telnet R2。
【實(shí)驗(yàn)拓?fù)洹?/p>
【實(shí)驗(yàn)步驟】(一)給Host,R1,R2各個(gè)端口設(shè)置IP
1.Host上
Router(config)#no ip routing !關(guān)閉路由功能,即把Router設(shè)置成主機(jī)
Router(config)#hostname host !重命名為host
host(config)#ip default-gateway 199.99.1.1 !設(shè)置主機(jī)的默認(rèn)網(wǎng)關(guān)
host(config)#int s1/0
host(config-if)#ip add 199.99.1.2 255.255.255.0
host(config-if)#no shut
2.R1
rack01(config)#int s1/0
rack01(config-if)#ip add 199.99.1.1 255.255.255.0
rack01(config-if)#no shut
rack01(config)#int s1/1
rack01(config-if)#ip add 199.99.2.1 255.255.255.0
rack01(config-if)#no shut
3.R2
rack02(config)#int s1/1
rack02(config-if)#ip add 199.99.2.2 255.255.255.0
rack02(config-if)#no shut
注:到這里為止各鏈路連接成功。
(二)在R1和R2上設(shè)置路由功能,在這里設(shè)置EIGRP協(xié)議.
設(shè)置路由目的:讓Host、R1、R2之間可以互相Ping通
1.R1
rack01(config)#router eigrp 100
rack01(config-router)#network 199.1.1.0 !宣告網(wǎng)段
rack01(config-router)#network 192.168.1.0
2.R2
rack02(config)#router eigrp 100
rack02(config-router)#network 192.168.1.0
注:到這里為止Host、R1、R2之間可以互相Ping通,而且Host可以Telnet R2
測(cè)試結(jié)果:
host#ping 199.99.2.2
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 199.99.2.1, timeout is 2 seconds:
!!!!! 表示能夠Ping通
host#telnet 199.99.2.2
Trying 199.99.2.2 ... Open
User Access Verification
Password:
rack02>en
Password:
rack02# 表示能夠Telnet到R2,已進(jìn)入了R2的配置
(三)在R1上設(shè)置擴(kuò)展ACL,讓Host可以Ping通R2但不能Telnet R2
1.在R1上設(shè)置擴(kuò)展ACL
rack01(config)#access-list 110 permit icmp host 199.99.1.2 host 199.99.2.2
!110表示擴(kuò)展ACL的編號(hào),host 199.99.1.2表示源IP,host 199.99.2.2表示目的IP
rack01(config)#access-list 110 deny tcp host 199.99.1.2 host 199.99.2.2 eq 23
!拒絕來(lái)自199.99.1.2的Telnet,其中tcp表示telnet是tcp協(xié)議,23是Telnet協(xié)議的端口號(hào)
rack01(config)#access-list 110 permint ip any any
2.應(yīng)用到端口上
rack01(config)#int s1/1
rack01(config-if)#ip access-group 110 out
測(cè)試結(jié)果:
host#telnet 199.99.2.2
Trying 199.99.2.2 ...
% Destination unreachable; gateway or host down 表示目標(biāo)鏈路不可達(dá)
實(shí)驗(yàn)三、【實(shí)驗(yàn)名稱(chēng)】利用命名ACL訪(fǎng)問(wèn)控制列表,控制IP流量
【實(shí)驗(yàn)設(shè)備】三臺(tái)CISCO 7200路由器,其中一臺(tái)作為Host(主機(jī))利用
【實(shí)驗(yàn)?zāi)繕?biāo)】設(shè)置ACL,Host可以Telnet R2,但不可以Ping通R2。
【實(shí)驗(yàn)拓?fù)洹?/p>
【實(shí)驗(yàn)步驟】(一)給Host,R1,R2各個(gè)端口設(shè)置IP
1.Host上
Router(config)#no ip routing !關(guān)閉路由功能,即把Router設(shè)置成主機(jī)
Router(config)#hostname host !重命名為host
host(config)#ip default-gateway 199.99.1.1 !設(shè)置主機(jī)的默認(rèn)網(wǎng)關(guān)
host(config)#int s1/0
host(config-if)#ip add 199.99.1.2 255.255.255.0
host(config-if)#no shut
2.R1
rack01(config)#int s1/0
rack01(config-if)#ip add 199.99.1.1 255.255.255.0
rack01(config-if)#no shut
rack01(config)#int s1/1
rack01(config-if)#ip add 199.99.2.1 255.255.255.0
rack01(config-if)#no shut
3.R2
rack02(config)#int s1/1
rack02(config-if)#ip add 199.99.2.2 255.255.255.0
rack02(config-if)#no shut
注:到這里為止各鏈路連接成功。
(二)在R1和R2上設(shè)置路由功能,在這里設(shè)置EIGRP協(xié)議.
設(shè)置路由目的:讓Host、R1、R2之間可以互相Ping通
1.R1
rack01(config)#router eigrp 100
rack01(config-router)#network 199.1.1.0 !宣告網(wǎng)段
rack01(config-router)#network 192.168.1.0
2.R2
rack02(config)#router eigrp 100
rack02(config-router)#network 192.168.1.0
注:到這里為止Host、R1、R2之間可以互相Ping通,而且Host可以Telnet R2
(三)在R1上設(shè)置命名ACL,讓Host可以Telnet R2,但Ping不通R2
rack01(config)#ip access-list extended cisco
!設(shè)置命名ACL,其中extended表示命名,cisco則是隨意起的命令
rack01(config-ext-nacl)#deny icmp host 199.99.1.2 host 199.99.2.2
!拒絕來(lái)自主機(jī)199.99.1.2發(fā)送的icmp數(shù)據(jù)包,即Ping不通,其中host 199.99.2.2表示目標(biāo)地址
rack01(config-ext-nacl)#permit tcp host 199.99.1.2 host 199.99.2.2 eq 23
!允許來(lái)自主機(jī)199.99.1.2的Telnet訪(fǎng)問(wèn)199.99.2.2,其中eq 23表示Telnet的端口號(hào)
rack01(config-ext-nacl)#permit ip any any
(四)應(yīng)用到端口上
rack01(config)#int s1/0
rack01(config-if)#ip access-group cisco in !cisco是命的名稱(chēng)
測(cè)試結(jié)果:
host#ping 199.99.2.2
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 199.99.2.2, timeout is 2 seconds:
U.U.U 表示鏈路不通
Success rate is 0 percent (0/5)
host#telnet 199.99.2.2
Trying 199.99.2.2 ... Open
User Access Verification
Password:
rack02>en
Password:
rack02# 表示已成功Telnet到R2
(四)綜合實(shí)驗(yàn)
【實(shí)驗(yàn)設(shè)備】四臺(tái)CISCO 7200路由器,其中一臺(tái)作為Host(主機(jī))利用
【實(shí)驗(yàn)?zāi)繕?biāo)】設(shè)置Host S1/0端口的IP地址為192.168.1.1、192.168.1.2、192.168.1.7
(1)不允許host的192.168.1.1、192.168.1.2 Ping R3
(2)不允許host的192.168.1.7 Telnet到R4
(3)不允許R2 Ping R3
【實(shí)驗(yàn)拓?fù)洹?/p>
【實(shí)驗(yàn)步驟】(一)設(shè)置Host,R1,R2,R3各端口的IP
1.Host
host(config)#no ip routing !關(guān)閉路由功能
host(config)#ip default-gateway 192.168.1.1 !設(shè)置默認(rèn)網(wǎng)關(guān)
host(config)#int s1/0
host(config-if)#ip add 192.168.1.7 255.255.255.0
host(config-if)#no shut
host(config-if)#ip add 192.168.1.2 255.255.255.0 secondary
host(config-if)#no shut
host(config-if)#ip add 192.168.1.1 255.255.255.0 secondary
2.R1
rack01(config)#int s1/0
rack01(config-if)#ip add 192.168.1.8 255.255.255.0
rack01(config-if)#no shut
rack01(config)#int s1/1
rack01(config-if)#ip add 192.168.2.1 255.255.255.0
rack01(config-if)#no shut
rack01(config)#int s1/2
rack01(config-if)#ip add 192.168.3.1 255.255.255.0
rack01(config-if)#no shut
3.R2
rack02(config)#int s1/1
rack02(config-if)#ip add 192.168.2.2 255.255.255.0
rack02(config-if)#no shut
4.R3
rack03(config)#int s1/2
rack03(config-if)#ip add 192.168.3.2 255.255.255.0
rack03(config-if)#no shut
(二)給R1,R2,R3設(shè)置路由功能
目的:讓Host,R1,R2,R3之間可以互相Ping通
1.R1
rack01(config)#router eigrp 100
rack01(config-router)#network 192.168.1.0
rack01(config-router)#network 192.168.2.0
rack01(config-router)#network 192.168.3.0
2.R2
rack02(config-router)#network 192.168.2.0
3.R3
rack03(config-router)#network 192.168.3.0 (三)配置ACL
1.不允許host的192.168.1.1、192.168.1.2 Ping R3
rack01(config)#access-list 110 deny icmp 192.168.1.0 0.0.0.3 host 192.168.2.2
!配置擴(kuò)展ACL,其中192.168.1.0表示一個(gè)網(wǎng)段代表1.1和1.2這兩太主機(jī),0.0.0.3是它的反子網(wǎng)掩碼,子網(wǎng)掩碼為255.255.255.252,它是路由匯總后的掩碼,這樣只能包括1.1和1.2兩個(gè)地址
rack01(config)#int s1/0
rack01(config-if)#ip access-group 110 in !將ACL應(yīng)用到端口S1/1上
測(cè)試結(jié)果:
host#ping 192.168.3.2
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.3.2, timeout is 2 seconds:
U.U.U
host#ping 擴(kuò)展Ping
Protocol [ip]:
Target IP address: 192.168.3.2 目標(biāo)地址
Extended commands [n]: y
Source address or interface: 192.168.1.2 源地址
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.3.2, timeout is 2 seconds:
Packet sent with a source address of 192.168.1.2
U.U.U
2.不允許Host的192.168.1.7 Telnet到R4
rack01(config)# access-list 110 deny tcp host 192.168.1.7 host 192.168.3.2 eq 23
3.不允許R2 Ping R3
rack01(config)#access-list 111 deny icmp host 192.168.2.2 host 192.168.3.2
!需要注意的是ACL的每個(gè)編號(hào)只能應(yīng)用一次,即只能用在一個(gè)端口上。
rack01(config)#int s1/1
rack01(config-if)#ip access-group 111 in
測(cè)試結(jié)果:
rack02#ping 192.168.3.2
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.3.2, timeout is 2 seconds:
..... 表示不能被Ping通
Success rate is 0 percent (0/5)