一種“多才多藝”的網(wǎng)絡(luò)工具——訪問(wèn)控制列表(ACL)
外圍路由器、防火墻和內(nèi)部路由器
在大中型企業(yè)網(wǎng)絡(luò)中,通常采用外圍路由器、內(nèi)部路由器和防火墻的配置來(lái)實(shí)現(xiàn)各種安全策略。
內(nèi)部路由器對(duì)前往企業(yè)網(wǎng)絡(luò)中受保護(hù)部分的數(shù)據(jù)流進(jìn)行過(guò)濾,以進(jìn)一步提高安全, 這是通過(guò)使用訪問(wèn)控制列表實(shí)現(xiàn)的。圖12-1說(shuō)明了這些設(shè)備所處的位置。
我將頻繁地使用術(shù)語(yǔ)可信網(wǎng)絡(luò)( trusted network)和不可信網(wǎng)絡(luò)( untrustednetwork ),因此必須知道它們位于典型的安全網(wǎng)絡(luò)的什么地方,這很重要。非軍事區(qū)(DMZ)可能是全局因特網(wǎng)地址,也可能是私有地址,這取決于如何配置防火墻,非軍事區(qū)通常包含HTTP、DNS、電子郵件和其他與因特網(wǎng)相關(guān)的企業(yè)服務(wù)器。
我們知道,在可信網(wǎng)絡(luò)內(nèi)部,可不使用路由器,而結(jié)合使用虛擬局域網(wǎng)(VLAN)和交換機(jī)。多層交換機(jī)內(nèi)置了安全功能,可替代內(nèi)部路由器在VLAN架構(gòu)中提供較高的性能。
下面介紹一些使用訪問(wèn)控制列表保護(hù)互聯(lián)網(wǎng)絡(luò)的方式。
訪問(wèn)控制列表簡(jiǎn)介
從本質(zhì)上說(shuō),訪問(wèn)控制列表是一-系列對(duì)分組進(jìn)行分類(lèi)的條件,它在需要控制網(wǎng)絡(luò)數(shù)據(jù)流時(shí)很有用。在這些情況下,可將訪問(wèn)控制列表用作決策工具。訪問(wèn)控制列表最常見(jiàn)也是最容易理解的用途之一是, 將有害的分組過(guò)濾掉以實(shí)現(xiàn)安全策略。例如,可使用訪向控制列表來(lái)作出非常具體的數(shù)據(jù)流控制決策,只允許某些主機(jī)訪問(wèn)因特網(wǎng)上的Web資源。通過(guò)正確地組合使用多個(gè)訪問(wèn)控制列表,網(wǎng)絡(luò)管理員幾乎能夠?qū)嵤┤魏文芟氲降陌踩呗浴?/p>
創(chuàng)建訪問(wèn)控制列表相當(dāng)于編寫(xiě)一系列if-then 語(yǔ)句一如果滿(mǎn) 足給定的條件,就采取給定的措施;如果不滿(mǎn)足,則不采取任何措施,而繼續(xù)評(píng)估下一條語(yǔ)句。訪問(wèn)控制列表語(yǔ)句相當(dāng)于分組過(guò)濾器,根據(jù)它對(duì)分組進(jìn)行比較、分類(lèi),并采取相應(yīng)的措施。創(chuàng)建訪問(wèn)控制列表后,就可將其應(yīng)用于任何接口的人站或出站數(shù)據(jù)流。訪問(wèn)控制列表被應(yīng)用于接口后,路由器將對(duì)沿指定方向穿越該接口的每個(gè)分組進(jìn)行分析,并采取相應(yīng)的措施。
將分組同訪問(wèn)控制列表進(jìn)行比較時(shí),需要遵守一些重要規(guī)則。
- 總是按順序?qū)⒎纸M與訪問(wèn)控制列表的每一行進(jìn)行比較,即總是首先與訪問(wèn)控制列表的第行進(jìn)行比較,然后是第二行和第三行,以此類(lèi)推。
- 不斷比較,直到滿(mǎn)足條件為止。在訪問(wèn)控制列表中,找到分組滿(mǎn)足的條件后,對(duì)分組采取相應(yīng)的措施,且不再進(jìn)行比較。
- 每個(gè)訪問(wèn)控制列表末尾都有一條隱式的 deny語(yǔ)句,這意味著如果不滿(mǎn)足訪問(wèn)控制列表中任何行的條件,分組將被丟棄。
使用訪問(wèn)控制列表過(guò)濾IP分組時(shí),上述每條規(guī)則都將帶來(lái)深遠(yuǎn)的影響;要?jiǎng)?chuàng)建出有效的訪問(wèn)控制列表,必須經(jīng)過(guò)一段時(shí)間的練習(xí)。
訪問(wèn)控制列表分兩大類(lèi):
- 標(biāo)準(zhǔn)訪問(wèn)控制列表 它們只將分組的源IP地址用作測(cè)試條件,所有的決策都是根據(jù)源IP地址作出的。這意味著標(biāo)準(zhǔn)訪問(wèn)控制列表要么允許要么拒絕整個(gè)協(xié)議族,它們不區(qū)分IP數(shù)據(jù)流類(lèi)型(如Web.Telnet、UDP等)。
- 擴(kuò)展訪問(wèn)控制列表它們能夠檢查 IP分組第3層和第4層報(bào)頭中的眾多其他字段。它們能夠檢查源IP地址、目標(biāo)IP地址、網(wǎng)絡(luò)層報(bào)頭的協(xié)議( Protocol )字段、傳輸層報(bào)頭中的端口號(hào)。這讓擴(kuò)展訪問(wèn)列表能夠做出更細(xì)致的數(shù)據(jù)流控制決策。
- 命名訪問(wèn)控制列表 且慢! 前面不是說(shuō)只有兩類(lèi)嗎?怎么這里列出了三類(lèi)呢?從技術(shù)上說(shuō),確實(shí)只有兩類(lèi),因?yàn)槊L問(wèn)控制列表要么是標(biāo)準(zhǔn)的,要么是擴(kuò)展的,并非一種新類(lèi)型。這里之所以專(zhuān)門(mén)列出它,是因?yàn)檫@種訪問(wèn)控制列表的創(chuàng)建和引用方式不同于標(biāo)準(zhǔn)和擴(kuò)展訪問(wèn)控制列表,但功能是相同的。
創(chuàng)建訪問(wèn)控制列表后,除非將其應(yīng)用于接口,否則它不能發(fā)揮任何作用。此時(shí)訪問(wèn)控制列表確實(shí)包含在路由器配置中,但除非告訴路由器使用它來(lái)做什么,否則它處于非活動(dòng)狀態(tài)。
要將訪問(wèn)控制列表用作分組過(guò)濾器,需要將其應(yīng)用于要進(jìn)行數(shù)據(jù)流過(guò)濾的路由器接口。還必須指定要使用訪問(wèn)控制列表來(lái)過(guò)濾哪個(gè)方向的數(shù)據(jù)流,這種要求有充分的理由:對(duì)于從企業(yè)網(wǎng)絡(luò)前往因特網(wǎng)的數(shù)據(jù)流和從因特網(wǎng)進(jìn)人企業(yè)網(wǎng)絡(luò)的數(shù)據(jù)流,你可能想采取不同的控制措施。通過(guò)指定數(shù)據(jù)流的方向,可以(也經(jīng)常需要)在同一個(gè)接口上將不同的訪問(wèn)控制列表用于人站和出站數(shù)據(jù)流。
- 入站訪問(wèn)控制列表 將訪問(wèn)控制列表應(yīng)用于 入站分組時(shí),將根據(jù)訪問(wèn)控制列表對(duì)這些分組進(jìn)行處理,然后再將其路由到出站接口。遭到拒絕的分組不會(huì)被路由,因?yàn)樵谡{(diào)用路由選擇進(jìn)程前,它們已被丟棄。
- 出站訪問(wèn)控制列表 將訪問(wèn)控制列表應(yīng)用 于出站分組時(shí),分組將首先被路由到出站接口,然后再將分組排隊(duì)前根據(jù)訪問(wèn)控制列表對(duì)其進(jìn)行處理。
在路由器上創(chuàng)建和實(shí)現(xiàn)訪問(wèn)控制列表時(shí),應(yīng)遵守一些通用的指導(dǎo)原則:
- 在接口的特定方向上,每種協(xié)議只能有一個(gè)訪問(wèn)控制列表。這意味著應(yīng)用IP訪問(wèn)控制列表時(shí),每個(gè)接口上只能有一個(gè)人站訪問(wèn)控制列表和一個(gè)出站訪問(wèn)控制列表。
注意:考慮到每個(gè)訪問(wèn)控制列表末尾的隱式deny語(yǔ)句帶來(lái)的影響,不允許在接口的特定方向?qū)μ囟▍f(xié)議應(yīng)用多個(gè)訪問(wèn)控制列表是有道理的。鑒于不滿(mǎn)足第一個(gè)訪問(wèn)控制列表中任何條件的分組都將被拒絕,因此不會(huì)有任何分組需要與第二個(gè)訪問(wèn)控制列表進(jìn)行比較。
- 在訪問(wèn)控制列表中,將具體的測(cè)試條件放在前面。
- 新增的語(yǔ)句將放在訪問(wèn)控制列表的末尾。強(qiáng)烈建議使用文本編輯器來(lái)編輯訪問(wèn)控制列表。
- 不能僅刪除訪問(wèn)控制列表中的一行,如果試圖這樣做,將刪除整個(gè)訪問(wèn)控制列表。要編輯訪問(wèn)控制列表,最好先將其復(fù)制到文本編輯器中。使用命名訪問(wèn)控制列表是唯一的例外。
注意:對(duì)于命名訪問(wèn)控制列表,可編輯、添加或刪除特定行,稍后將演示這一點(diǎn)。
- 除非訪問(wèn)控制列表以permit any命令結(jié)尾,否則不滿(mǎn)足任何條件的分組都將被丟棄。訪問(wèn)控制列表至少應(yīng)包含注意一條 permit語(yǔ)句,否則它將拒絕所有的數(shù)據(jù)流。
- 創(chuàng)建訪問(wèn)控制列表后應(yīng)將其應(yīng)用于接口。如果訪問(wèn)控制列表沒(méi)有包含任何測(cè)試條件,即使其應(yīng)用于接口,它也不會(huì)過(guò)濾數(shù)據(jù)流。
- 訪問(wèn)控制列表用于過(guò)濾穿越路由器的數(shù)據(jù)流;它們不會(huì)對(duì)始發(fā)于當(dāng)前路由器的數(shù)據(jù)流進(jìn)行過(guò)濾。
- 應(yīng)將IP標(biāo)準(zhǔn)訪問(wèn)控制列表放在離目的地盡可能近的地方,這就是我們不想在網(wǎng)絡(luò)中使用標(biāo)準(zhǔn)訪問(wèn)控制列表的原因。不能將標(biāo)準(zhǔn)訪問(wèn)控制列表放在離源主機(jī)或源網(wǎng)絡(luò)很近的地方,因?yàn)樗荒芨鶕?jù)源地址進(jìn)行過(guò)濾,這將影響所有的目的地。
- 將IP擴(kuò)展訪問(wèn)控制列表放在離信源盡可能近的地方。擴(kuò)展訪向控制列表可根據(jù)非常具體的地址和協(xié)議進(jìn)行過(guò)濾,我們不希望數(shù)據(jù)流穿越整個(gè)網(wǎng)絡(luò)后,最終卻被拒絕。將這種訪問(wèn)控制列表放在離信源盡可能近的地方,可在一開(kāi)始就將數(shù)據(jù)流過(guò)濾掉,以免它占用寶貴的帶寬。
介紹如何配置標(biāo)準(zhǔn)和擴(kuò)展訪問(wèn)控制列表前,先來(lái)討論如何使用ACL緩解前面討論的安全威脅。
使用ACL緩解安全威脅:
- IP地址欺騙(人站);
- IP地址欺騙(出站);
- 拒絕服務(wù)( DoS) TCP SYN攻擊(阻斷外部攻擊);
- DoSTCPSYN攻擊(使用TCP攔截);
- DoS smurf攻擊;
- 拒絕/過(guò)濾ICMP消息(人站);
- 拒絕/過(guò)濾ICMP消息(出站);
- 拒絕/過(guò)濾traceroute。
標(biāo)準(zhǔn)訪問(wèn)控制列表
標(biāo)準(zhǔn)IP訪問(wèn)控制列表通過(guò)查看分組的源IP地址來(lái)過(guò)濾網(wǎng)絡(luò)數(shù)據(jù)流。創(chuàng)建標(biāo)準(zhǔn)IP訪問(wèn)控制列表時(shí),使用訪問(wèn)控制列表編號(hào)1~99或1300~ 1999 (擴(kuò)展范圍)。通常使用編號(hào)來(lái)區(qū)分訪問(wèn)控制列表的類(lèi)型。根據(jù)創(chuàng)建訪問(wèn)控制列表時(shí)使用的編號(hào),路由器知道輸入時(shí)應(yīng)使用什么樣的語(yǔ)法。編號(hào)1~99或1300~1999,告訴路由器要?jiǎng)?chuàng)建一個(gè)標(biāo)準(zhǔn)IP訪問(wèn)控制列表,而路由器要求只將源IP地址用作測(cè)試條件。
下面列出了過(guò)濾網(wǎng)絡(luò)數(shù)據(jù)流時(shí),可使用的眾多訪問(wèn)控制列表編號(hào)范圍(可為哪些協(xié)議指定訪問(wèn)控制列表取決于你使用的IOS版本):
下面來(lái)看創(chuàng)建標(biāo)準(zhǔn)訪問(wèn)控制列表的語(yǔ)法:
前面說(shuō)過(guò),使用訪問(wèn)控制列表編號(hào)1~99或1300~ 1999,就相當(dāng)于告訴路由器你要?jiǎng)?chuàng)建一個(gè)標(biāo)準(zhǔn)IP訪問(wèn)控制列表。
指定訪問(wèn)控制列表編號(hào)后,需要決定是要?jiǎng)?chuàng)建permit語(yǔ)句還是deny語(yǔ)句。在這個(gè)例子中,我們創(chuàng)建一條deny語(yǔ)句:
接下來(lái)的一步需要做更詳細(xì)的解釋。有3個(gè)選項(xiàng)可供選擇。可使用參數(shù)any允許或拒絕任何源主機(jī)(網(wǎng)絡(luò)),可使用一個(gè)IP地址來(lái)指定單臺(tái)主機(jī)或特定范圍內(nèi)的主機(jī),還可使用命令host指定特定的主機(jī)。命令any的含義顯而易見(jiàn),它指的是與語(yǔ)句匹配的任何源地址,因此每個(gè)分組都與該語(yǔ)句匹配。命令host比較簡(jiǎn)單,下面是一個(gè)使用它的示例:
這條語(yǔ)句拒絕任何來(lái)自172.16.30.2 的分組。默認(rèn)參數(shù)為host,換句話(huà)說(shuō),如果輸入access-1ist 10 deny 172.16.30.2, 路由器將認(rèn)為輸人的是access-1ist 10 deny host 172 .16.30.2,且在運(yùn)行配置中也這樣顯示。但還有另外一種方法可指定特定主機(jī)或特定范圍內(nèi)的主機(jī)一使用通配符掩碼。事實(shí)上,要指定任何范圍內(nèi)的主機(jī),必須在訪問(wèn)控制列表中使用通配符掩碼。什么是通配符掩碼呢?以后小編會(huì)介紹的!
通配符掩碼
在訪問(wèn)控制列表中,可使用通配符來(lái)指定特定主機(jī)、特定網(wǎng)絡(luò)或網(wǎng)絡(luò)的一部分。要理解通配符,就必須理解塊大小,它用于指定地址范圍。塊大小包括64、32、16、8和4等。
在需要指定地址范圍時(shí),可使用能滿(mǎn)足需求的最小塊大小。例如,如果需要指定34個(gè)網(wǎng)絡(luò),則需要使用塊大小64;如果需要指定18臺(tái)主機(jī),則需要使用塊大小32;如果只需指定2個(gè)網(wǎng)絡(luò),則使用塊大小4就可以了。
通過(guò)結(jié)合使用通配符和主機(jī)(網(wǎng)絡(luò))地址來(lái)告訴路由器要過(guò)濾的地址范圍。要指定一臺(tái)主機(jī),可使用類(lèi)似于下面的組合:
- 172.16.30.5 0.0.0.0
其中的4個(gè)0分別表示1B。0表示地址中的相應(yīng)字節(jié)必須與指定的地址相同。要指定某個(gè)字節(jié)可以為任意值,可使用255。例如,下面的示例演示了如何使用通配符掩碼指定一個(gè)/24子網(wǎng):
- 172.16.30.0 0.0.0.255
這告訴路由器,前3 B必須完全相同,而第4個(gè)字節(jié)可以為任意值。
這很容易。但如果要指定小范圍的子網(wǎng),該怎么辦呢?此時(shí)塊大小便可派上用場(chǎng)了。指定的范圍必須與某個(gè)塊大小相同,換句話(huà)說(shuō),不能指定20個(gè)網(wǎng)絡(luò),而只能指定與塊大小相同的范圍,即要么是16,要么是32,但不能是20。
假定要禁止網(wǎng)絡(luò)中的一部分(即172.16.8.0~ 172.16.15.0)訪問(wèn)你的網(wǎng)絡(luò)。該范圍對(duì)應(yīng)的塊大小為8,因此,在訪問(wèn)控制列表中,應(yīng)指定網(wǎng)絡(luò)號(hào)172.16.8.0 和通配符掩碼0.0.7.255。這是什么意思呢?路由器根據(jù)7.255確定塊大小。上述網(wǎng)絡(luò)號(hào)和通配符掩碼組合告訴路由器,從172.16.8.0開(kāi)始,向上數(shù)8個(gè)(塊大小)網(wǎng)絡(luò),直到網(wǎng)絡(luò)172.16.15.0。
這比看起來(lái)簡(jiǎn)單。我原本可以使用二進(jìn)制來(lái)解釋?zhuān)恍枰@樣做。實(shí)際上,只需記住,通配符掩碼總是比塊大小小1。就這個(gè)示例而言,通配符掩碼為7,因?yàn)閴K大小為8。如果使用的塊大小為16,則通配符掩碼將為15。很容易,不是嗎?
下面將通過(guò)一些示例幫助你掌握這一點(diǎn)。下面的示例告訴路由器,前3B必須完全相同,而第4個(gè)字節(jié)可以是任意值:
- Corp(config)#access-1ist 10 deny 172.16.0.0 0.0.255.255
下面的示例告訴路由器,前2 B必須完全相同,而后2 B可以是任意值:
- Corp(config)#access-1ist 10 deny 172.16.0.0 0.0.255.255
請(qǐng)嘗試配置下面一行:
- Corp(config)#access-list 10 deny 172.16.16.0 0.0.3.255
該配置告訴路由器,從網(wǎng)絡(luò)172.16.16.0 開(kāi)始,并使用塊大小4。因此范圍為172.16.16.0~ 172.16.19.255(CCNA考題與此類(lèi)似)。
接著練習(xí)。下面的配置是什么意思呢?
- Corp(config)#access-1ist 10 deny 172.16.16.0 0.0.7.255
這條語(yǔ)句指出,從網(wǎng)絡(luò)172.16.16.0開(kāi)始,向上數(shù)8個(gè)(塊大小)網(wǎng)絡(luò),到172.16.23.255結(jié)束。為掌握這項(xiàng)知識(shí),還需做更多練習(xí)。下面的語(yǔ)句指定的是什么范圍呢?
- Corp(config)#access-1ist 10 deny 172.16.32.0 0.0.15 .255
這條語(yǔ)句指出,從網(wǎng)絡(luò)172.16.32.0開(kāi)始,向上數(shù)16個(gè)(塊大小)網(wǎng)絡(luò),到172.16.47.255結(jié)束。
下面再做幾個(gè)練習(xí),然后配置一些ACL。
- Corp(config)#access-1ist 10 deny 172.16.64.0 0.0.63.255
這條語(yǔ)句指出,從網(wǎng)絡(luò)172.16.64.0開(kāi)始,向上數(shù)64個(gè)(塊大小)網(wǎng)絡(luò),到172.16.127.255結(jié)束。
來(lái)看最后一個(gè)示例:
- Corp(config)#access-1ist 10 deny 192.168.160.0 0.0.31.255
這條語(yǔ)句指出,從網(wǎng)絡(luò)192.168.160.0開(kāi)始,向上數(shù)32個(gè)(塊大小)網(wǎng)絡(luò),到192.168.191.255結(jié)束。
確定塊大小和通配符掩碼時(shí),還需牢記如下兩點(diǎn):
- 起始位置必須為0或塊大小的整數(shù)倍。例如,塊大小為8時(shí),起始位置不能是12。范圍必須是0~7、8~15、 16~23等。而塊大小為32時(shí),范圍必須是0~31、32~63、64~95等。
- 命令any與0.0.0.0 255.255.255.255等價(jià)。
注意:通配符掩碼對(duì)創(chuàng)建IP訪問(wèn)控制列表來(lái)說(shuō)很重要,必須掌握。在標(biāo)準(zhǔn)IP訪問(wèn)控制列表和擴(kuò)展IP訪問(wèn)控制列表中,其用法完全相同。
標(biāo)準(zhǔn)訪問(wèn)控制列表示例
在圖12-2中,路由器有3條LAN連接和1條到因特網(wǎng)的WAN連接。不應(yīng)讓銷(xiāo)售部LAN的用戶(hù)訪問(wèn)財(cái)務(wù)部LAN,但應(yīng)允許他們?cè)L問(wèn)因特網(wǎng)和市場(chǎng)營(yíng)銷(xiāo)部的文件。市場(chǎng)營(yíng)銷(xiāo)部的用戶(hù)需要能夠訪問(wèn)財(cái)務(wù)部LAN,以使用其應(yīng)用程序服務(wù)。
在圖中的路由器上,配置如下標(biāo)準(zhǔn)IP訪問(wèn)控制列表:
命令any與0.0.0.0 255.255.255.255等價(jià),如下所示:
- Lab_ A(config)#access-1ist 10 permit 0.0.0.0 255.255 .255.255
該通配符掩碼指出,不用考慮任何一個(gè)字節(jié),因此所有地址都滿(mǎn)足這個(gè)測(cè)試條件。這與使用關(guān)鍵字any等價(jià)。
當(dāng)前,該訪問(wèn)控制列表禁止任何來(lái)自銷(xiāo)售部LAN的分組進(jìn)人財(cái)務(wù)部LAN,但允許其他所有分組進(jìn)入。別忘了,除非將訪問(wèn)控制列表應(yīng)用于接口的特定方向,否則它不會(huì)發(fā)揮任何作用。
應(yīng)將該訪問(wèn)控制列表放在什么地方呢?如果將其作為人站訪問(wèn)控制列表應(yīng)用于接口fa0/0, 還不如
關(guān)閉這個(gè)快速以太網(wǎng)接口呢!因?yàn)檫@將導(dǎo)致銷(xiāo)售部LAN中的所有設(shè)備都無(wú)法訪問(wèn)與該路由器相連的任何網(wǎng)絡(luò)。最佳的選擇是,將其作為出站訪問(wèn)控制列表應(yīng)用于接口fa0/1:
- Lab_ A(config)#int fa0/1
- Lab_ A(config-if)#ip access-group 10 out
這就完全禁止了來(lái)自172.16.40.0 的數(shù)據(jù)流從接口fa0/1 傳輸出去。它不會(huì)影響銷(xiāo)售部LAN的主機(jī)訪向市場(chǎng)營(yíng)銷(xiāo)部LAN和因特網(wǎng),因?yàn)榍巴@些目的地的數(shù)據(jù)流不會(huì)經(jīng)過(guò)接口fa0/1。任何試圖從接口fa0/1出去的分組都將首先經(jīng)過(guò)該訪問(wèn)控制列表。如果在接口fa0/0 上應(yīng)用了入站訪問(wèn)控制列表,則任何試圖進(jìn)人該接口的分組都將首先經(jīng)過(guò)這個(gè)訪問(wèn)控制列表,然后才被路由到出站接口。
下面來(lái)看另一個(gè)標(biāo)準(zhǔn)訪問(wèn)控制列表示例。在圖12-3所示的互聯(lián)網(wǎng)絡(luò)中,有2臺(tái)路由器、3個(gè)LAN和1條串行WAN連接。
你想通過(guò)使用一個(gè)標(biāo)準(zhǔn)ACL,禁止財(cái)務(wù)部的用戶(hù)訪問(wèn)與路由器Lab_B相連的人力資源服務(wù)器,但允許其他用戶(hù)訪問(wèn)該LAN。應(yīng)該創(chuàng)建什么樣的標(biāo)準(zhǔn)訪問(wèn)控制列表?將它放在哪里呢?
準(zhǔn)確的答案是,應(yīng)該創(chuàng)建一個(gè)擴(kuò)展訪問(wèn)控制列表,并將其放在離信源最近的地方,但這里要求你使用標(biāo)準(zhǔn)訪問(wèn)控制列表。根據(jù)經(jīng)驗(yàn)規(guī)則,標(biāo)準(zhǔn)訪問(wèn)控制列表應(yīng)放在離目的地最近的地方,這里是路由器Lab_B的接口E0。下面是應(yīng)在路由器Lab_B上配置的訪問(wèn)控制列表:
為回答這個(gè)問(wèn)題,必須理解子網(wǎng)劃分、通配符掩碼以及如何配置和實(shí)現(xiàn)ACL。我想你還需多做這方面的練習(xí)。
因此,介紹如何限制以Telnet方式訪問(wèn)路由器前,再來(lái)看一個(gè)標(biāo)準(zhǔn)訪向控制列表示例,這個(gè)示例要求你更深人地思考。在圖12-4中,一臺(tái)路由器有4條LAN連接,還有1條到因特網(wǎng)的WAN連接。
編寫(xiě)一個(gè)訪問(wèn)控制列表,禁止圖中所示的4個(gè)LAN訪問(wèn)因特網(wǎng)。對(duì)于圖中的每個(gè)LAN,都列出了其中一臺(tái)主機(jī)的IP地址,據(jù)此確定在訪問(wèn)控制列表中指定每個(gè)LAN時(shí)應(yīng)使用的子網(wǎng)地址和通配符掩碼。
答案應(yīng)類(lèi)似于下面這樣(-次指定了E0~E3連接的子網(wǎng)):
當(dāng)然,也可以只使用下面一行:
- Router(config)#access-1ist 1 deny 172.16.0.0 0.0.255 .255
但這樣做有什么意思呢?
創(chuàng)建這個(gè)訪問(wèn)控制列表的目的是什么?如果在路由器上應(yīng)用這個(gè)訪問(wèn)控制列表,就等于完全禁止訪問(wèn)因特網(wǎng)了,那還要因特網(wǎng)連接做什么?.這里提供這個(gè)示例旨在讓你練習(xí)在訪問(wèn)控制列表中使用塊大小,這對(duì)你備考CCNA至關(guān)重要。
控制 VTY (Telnet/SSH) 訪問(wèn)
對(duì)于大型路由器,要禁止用戶(hù)以Telnet 或SSH方式訪問(wèn)它可能很難,因?yàn)槊總€(gè)活動(dòng)接口都允許VTY訪問(wèn)??蓜?chuàng)建一個(gè)擴(kuò)展IP訪問(wèn)控制列表,禁止訪問(wèn)路由器的每個(gè)地址。但如果真的這樣做,必須將其應(yīng)用于每個(gè)接口的人站方向,對(duì)于有數(shù)十甚至數(shù)百個(gè)接口的大型路由器來(lái)說(shuō),這種解決方案的可擴(kuò)展性太低了。另外,如果每臺(tái)路由器都對(duì)每個(gè)分組進(jìn)行檢查,以防它訪問(wèn)VTY線路,導(dǎo)致的網(wǎng)絡(luò)延遲將很大。
一種好得多的解決方案是,使用標(biāo)準(zhǔn)IP訪問(wèn)控制列表來(lái)控制對(duì)VTY線路的訪問(wèn)。
這種解決方案為何可行呢?因?yàn)閷⒃L問(wèn)控制列表應(yīng)用于VTY線路時(shí),不需要指定協(xié)議一訪問(wèn)VTY就意味著以Telnet 或SSH方式訪問(wèn)終端。也不需要指定目標(biāo)地址,因?yàn)槟悴魂P(guān)心用戶(hù)將哪個(gè)接口的地址用作Telnet會(huì)話(huà)的目標(biāo)。你只需控制用戶(hù)來(lái)自何方一他們的源 IP地址。要實(shí)現(xiàn)這項(xiàng)功能,請(qǐng)執(zhí)行如下步驟:
- 創(chuàng)建一個(gè)標(biāo)準(zhǔn)IP訪問(wèn)控制列表,它只允許你希望的主機(jī)遠(yuǎn)程登錄到路由器。
- 使用命令access-class in將該訪問(wèn)控制列表應(yīng)用于VTY線路。
下面的示例只允許主機(jī)172.16.10.3遠(yuǎn)程登錄到路由器:
- Lab_ A(config)#access-1ist 50 permit host 172.16.10.3
- Lab_ A(config)#line vty 0 4
- Lab_ A(config-line)#access-class 50 in
由于訪問(wèn)控制列表末尾有一條隱式的deny any語(yǔ)句,因此除172.16.10.3外的其他任何主機(jī)都不能遠(yuǎn)程登錄到該路由器,而不管它將路由器的哪個(gè)IP地址用作目標(biāo)。你可能想將源地址指定為管理員所屬的子網(wǎng),而不是單臺(tái)主機(jī);但下面的示例演示了如何在不增加路由器延遲的情況下確保VTY線路的安全。
真實(shí)案例:應(yīng)保護(hù)路由器的VTY線路嗎?
使用命令show users對(duì)網(wǎng)絡(luò)進(jìn)行監(jiān)視時(shí),發(fā)現(xiàn)有人遠(yuǎn)程登錄到了你的核心路由器。此時(shí),你使用命令disconnect斷開(kāi)了他到該路由器的連接,但發(fā)現(xiàn)幾分鐘后他又連接到了該路由器。因此,你想在該路由器的接口上放置一個(gè)訪問(wèn)控制列表,但又不想給每個(gè)接口增加過(guò)多的延遲,因?yàn)樵撀酚善魈幚淼姆纸M已經(jīng)很多了。你想將一個(gè)訪問(wèn)控制列表應(yīng)用于VTY線路本身,但以前沒(méi)有這樣做過(guò),不知道這種解決方案能否取得與將訪問(wèn)控制列表應(yīng)用于每個(gè)接口相同的效果。就這個(gè)網(wǎng)絡(luò)而言,將訪問(wèn)控制列表應(yīng)用于VTY線路是個(gè)好主意嗎?
絕對(duì)是個(gè)好主意,可使用本章前面介紹的命令access-class。為什么呢?因?yàn)檫@可避免使用訪問(wèn)控制列衣對(duì)進(jìn)出接口的每個(gè)分組進(jìn)行檢查,而這樣做會(huì)增加路由分組的開(kāi)銷(xiāo)。在VTY線路上配置命令access-class in時(shí),只會(huì)檢查并比較進(jìn)入路由器的Telnet分組。這提供了一種完美而又易于配置的安全解決方案。
注意:思科建議使用Secure Shell ( SSH )而不是Telnet 來(lái)訪問(wèn)路由器的VTY線路。