ACL管理網(wǎng)絡(luò)利器
配置如下:
useranme test password cisco
!
int serial 0
IP add 175.10.1.1 255.255.255.0
IP access-group 100 in
!
access-list 100 permit TCP any host 175.10.1.1 eq telnet
access-list 100 permit udp any eq 53 205.131.175.0 0.0.0.255 gt 1023
access-list 100 permit TCP any eq 21 205.131.175.0 0.0.0.255 gt 1023 established
access-list 100 permit TCP any eq 80 205.131.175.0 0.0.0.255 gt 1023 established
access-list 100 permit TCP any eq 20 205.131.175.0 0.0.0.255 gt 1023
access-list 100 dynamic test timeout 180 permit IP any host 198.76.46.12 log
!
logging buffered 64000
!
line vty 0 2
login local
autocommand access-enable host timeout 10
line vty 3 4
login local
rotary 1
注意:訪問(wèn)表被應(yīng)用到了串行端口上,將擴(kuò)展訪問(wèn)表應(yīng)用到距離過(guò)濾源最近的地方,這是一種很好的方法。
在本例中,我們的目的是要過(guò)濾Internet上的主機(jī),所以串行端口是路由器上距離被過(guò)濾主機(jī)最近的端口,訪問(wèn)表應(yīng)用的方向是向內(nèi)的,因?yàn)閺穆酚善鞯慕嵌?看來(lái), 從Internet來(lái)的報(bào)文是流向路由器的,如果我們將訪問(wèn)列表應(yīng)用成向外的訪問(wèn),則過(guò)濾的報(bào)文將是離開(kāi)串行接口而通往Internet的報(bào)文,而這并非 我們所希望的。另外,我們還建立了一個(gè)用戶名"test",它可以用來(lái)訪問(wèn)路由器。在實(shí)際應(yīng)用中,我們應(yīng)該為每個(gè)用戶建立一對(duì)用戶名和口令,F(xiàn)在,讓我們 分析訪問(wèn)列表的每一個(gè)表項(xiàng):
第一個(gè)表項(xiàng)允許從任何源I P地址來(lái)的報(bào)文到達(dá)主機(jī)175.10.1.1,如果其目標(biāo)端口為telnet的話,我們實(shí)際上允許了向內(nèi)的telnet連接到路由器的串行接口。我們可以 允許向內(nèi)的telnet連接到路由器的其他IP地址,但只允許向內(nèi)訪問(wèn)路由器的串行接口是一種最佳的選擇。
第二個(gè)表項(xiàng)允許從任何源I P地址來(lái)的報(bào)文,如果其源端口是域名系統(tǒng),且目標(biāo)網(wǎng)絡(luò)位于205.131. 175.0/24,目的端口大于1023的話,這將允許DNS應(yīng)答到達(dá)202.131.175.0/24網(wǎng)絡(luò)。所有有效DNS請(qǐng)求的源端口應(yīng)該為1024 或更大,因此有效DNS的應(yīng)答就應(yīng)發(fā)送到此1024或更高的端口。如果我們不指定目的端口大于1023,則攻擊者可以從源端口53發(fā)送UDP報(bào)文到達(dá)我們 的網(wǎng)絡(luò),從而導(dǎo)致對(duì)內(nèi)部服務(wù)器的拒絕服務(wù)(denia l-of-service, DOS)攻擊。大量的服務(wù)器端口都處于小于1024的保留區(qū)間內(nèi),所以我們應(yīng)阻塞目的端口小于1024的報(bào)文,以關(guān)閉潛在的安全漏洞。
第三和第四 個(gè)表項(xiàng)允許具有如下特征的報(bào)文進(jìn)入:源端口為www或FTP,目標(biāo)位于205.131.175.0/24網(wǎng)絡(luò),目標(biāo)端口大于1023,且TCP頭中設(shè)置了 ACK和RST位。這兩個(gè)表項(xiàng)允許由內(nèi)部主機(jī)發(fā)起的WWW和FTP會(huì)話的返回報(bào)文。指定源端口和目的端口的原因與第二個(gè)表項(xiàng)相同。使用 established意味著只有設(shè)置了應(yīng)答位(ack)和復(fù)位位(est)的報(bào)文才能夠匹配并允許通過(guò)訪問(wèn)表項(xiàng)。只有那些已經(jīng)建立了TCP會(huì)話的報(bào)文才 會(huì)設(shè)置這些位,這樣增加了訪問(wèn)表的安全層次。值得注意的是,攻擊者很容易在向內(nèi)的報(bào)文中手工設(shè)置這些位,所以這種檢測(cè)是十分簡(jiǎn)單的。但如果內(nèi)部網(wǎng)絡(luò)采用正確的TCP/IP協(xié)議棧,它們就會(huì)忽略這些帶ack和est位的向內(nèi)報(bào)文,因?yàn)樗鼈儾皇侵鳈C(jī)上合法TCP會(huì)話的一部 分,這就是為什么established關(guān)鍵字仍然十分重要的原因。
注意:這種檢驗(yàn)對(duì)UDP報(bào)文是無(wú)用的,這就是為什么在第二個(gè)訪問(wèn)表項(xiàng)中沒(méi)有該關(guān)鍵字的原因。
第五個(gè)表項(xiàng)允許那些源端口為20的任何主機(jī)向內(nèi)報(bào)文到達(dá)網(wǎng)絡(luò)205.131.175.0/24的主機(jī),如果其目的端口大于1023的話,允許那些由內(nèi)部主機(jī) 發(fā)起的FTP部分?jǐn)?shù)據(jù)的報(bào)文連接到內(nèi)部主機(jī)。FTP協(xié)議實(shí)現(xiàn)的標(biāo)準(zhǔn)實(shí)現(xiàn)需要FTP服務(wù)器發(fā)回一個(gè)到源FTP客戶機(jī)連接。該連接的初始報(bào)文沒(méi)有設(shè)置ack或 rst位,所以我們?cè)诒眄?xiàng)中不能使用established關(guān)鍵字。有一種版本的FTP稱為被動(dòng)模式(passive mode)的FTP,它不需要服務(wù)器發(fā)起一個(gè)向源FTP客戶機(jī)的連接。在這種模式的FTP中,客戶機(jī)需要發(fā)起到FTP服務(wù)器非20端口的另一個(gè)連接,該端 口是大于1023的一種隨機(jī)選擇。我們?cè)试S所有大于1023TCP端口的報(bào)文通過(guò),是因?yàn)槲覀儾荒苓M(jìn)一步確定FTP服務(wù)器會(huì)選擇哪一個(gè)端口(被動(dòng)模式 FTP服務(wù)器的數(shù)據(jù)端口不為20,這與普通模式FTP是不同的)。盡管我們不能讓該表項(xiàng)如我們所希望的那樣確切,established關(guān)鍵字仍能使該表 項(xiàng)比允許外部發(fā)起向內(nèi)部網(wǎng)絡(luò)的會(huì)話要安全一些。
第六個(gè)表項(xiàng)(也是最后一個(gè)表項(xiàng))為動(dòng)態(tài)訪問(wèn)表項(xiàng),它允許來(lái)自被認(rèn)證主機(jī)的報(bào)文到達(dá)服務(wù)器 198.78.46.12.我們定義的絕對(duì)超時(shí)時(shí)間為3小時(shí)(180分鐘),并對(duì)該表項(xiàng)進(jìn)行了日志記錄(我們還開(kāi)啟了路由器緩沖區(qū)的日志)。通過(guò)將匹配動(dòng) 態(tài)表項(xiàng)的報(bào)文進(jìn)行記錄,我們可以跟蹤用戶的行為,并建立一個(gè)普通的基線。這樣,我們可以發(fā)現(xiàn)不正常的行為,并由此判斷這是否是由攻擊者產(chǎn)生的。我們還將動(dòng) 態(tài)訪問(wèn)表項(xiàng)的空閑時(shí)間設(shè)置成了10分鐘,這是在vty線配置中通過(guò)autocommand設(shè)置的。最好是將這兩個(gè)值都設(shè)上,這樣我們能減少動(dòng)態(tài)表項(xiàng)處于活 躍狀態(tài)的時(shí)間,因此也減少了攻擊者沖破動(dòng)態(tài)表項(xiàng)的可能性。
空閑計(jì)時(shí)器在沒(méi)有一個(gè)報(bào)文匹配動(dòng)態(tài)訪問(wèn)表項(xiàng)時(shí)進(jìn)行復(fù)位,而絕對(duì)計(jì)時(shí)器是不復(fù)位的,即使一個(gè)會(huì)話仍然處于活躍狀態(tài),如果絕對(duì)超時(shí)達(dá)到,動(dòng)態(tài)表項(xiàng)就會(huì)被刪除, 用戶需要再經(jīng)過(guò)一個(gè)認(rèn)證過(guò)程。如果他們有經(jīng)過(guò)路由器的活躍會(huì)話,這些會(huì)話將被終止。因此,建議將絕對(duì)超時(shí)設(shè)置得相對(duì)大一些,一般為一個(gè)小時(shí)或更長(zhǎng)一些時(shí) 間。但我們應(yīng)該將空閑時(shí)間設(shè)置得小一些,一般為10分鐘或更短的時(shí)間。筆者認(rèn)為,不應(yīng)將空閑時(shí)間的設(shè)置大于30分鐘。