所在的單位有一臺路由器將兩個以太網(wǎng)段連到了internet上,路由器是通過串行端口0連到internet上的,而以太網(wǎng)分別通過端口E 0和E 1連到路由器上。假設我們希望答應任何用戶都能通過I P訪問1 98.78.46.12服務器,并答應2 0 5.131.175.0網(wǎng)絡上的用戶通過We b瀏覽(h t t p)和F T P訪問I n t e r n e t。 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 established 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 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
首先,我們注重到訪問表被應用到了串行端口上。將擴展訪問表應用到離過濾源最近的 地方,這是一種很好的方法。在本例中,我們的目的是要過濾I n t e r n e t上的主機,所以串行端口是路由器上離被過濾主機最近的端口。訪問表應用的方向是向內(nèi)的,因為從路由器的角度看來, I n t e r n e t來的報文是流向路由器的。假如我們將訪問表應用成向外的訪問,則過濾的報文將是離開串行接口而通往I n t e r n e t的報文,而這并非我們所希望的。另外,我們還建立了一個用戶名“ t e s t”,它可以用來訪 問路由器。在實際應用中,我們應該為每個用戶建立一對用戶名和口令。現(xiàn)在,讓我們再分析訪問表的每一個表項。
第一個表項答應從任何源I P地址來的報文到達主機1 7 5 . 1 0 . 1 . 1,假如其目標端口為t e l n e t(2 3)的話。這樣,我們實際上答應了向內(nèi)的t e l n e t連接到路由器的串行接口。我們可以答應向內(nèi)的t e l n e t,連接到路由器的其他I P地址,但只答應向內(nèi)訪問路由器的串行接口是一種最佳的選擇。
第三和第四個表項答應具有如下特征的報文進入:源端口為W W W(TCP 80 )或F T P(TCP 21),目標位于2 0 5 . 1 3 1 . 1 7 5 . 0 / 2 4網(wǎng)絡,目標端口大于1 0 2 3,且T C P頭中設置了A C K和R S T位。這兩個表項答應由內(nèi)部主機發(fā)起的W W W和F T P會 話的返回報文。指定源端口和目的端口的原因與第二個表項相同。使用e s t a b l i s h e d意味著只有設置了應答位( A C K)和復位位(R S T)的報文才能夠匹配并答應通過訪問表項。只有那些已經(jīng)建立了T C P會話的報文才會設置這些位,這樣增加了訪問表的安全層次。值得注重的是,攻擊者很輕易在向內(nèi)的報文中手工設置這些位,所以這種檢測是十分簡單的。但是,假如內(nèi)部網(wǎng)絡采用正確的T C P / I P協(xié)議棧,它們就會忽略這些帶A C K和R S T位的向內(nèi)報文,因為它們不是主機上合法的T C P會話的一部分,這就是為什么e s t a b l i s h e d要害字仍然十分重要的原因。注重,這 種檢驗對U D P報文是無用的,這就是為什么在第二個訪問表項中沒有該要害字的原因。
第五個表項答應那些從源端口為2 0的任何主機向內(nèi)報文到達網(wǎng)絡2 0 5 . 1 3 1 . 1 7 5 . 0 / 2 4的主機,假如其目的端口大于1 0 2 3的話,答應了那些由內(nèi)部主機發(fā)起的F T P部分數(shù)據(jù)的報文連接到內(nèi)部主機。F T P協(xié)議實現(xiàn)的標準實現(xiàn)需要F T P服務器發(fā)回一個到源F T P客戶機連接。該連接的初始報文沒有設置A C K或R S T位,所以我們在表項中不能使用esta b l i s h e d要害字。有一種版本的F T P稱為被動模式( passive mode)的F T P,或稱為PA S C,它不需要服務器發(fā)起一個向源F T P客戶機的連接。在這種模式的FTP中,客戶機需要發(fā)起到FTP服務器非2 0端口的另一個連接。該端口是大于1 0 2 3的一種隨機選擇。我們答應所有大于1023 TCP端口的報文通過,是因為我們不能進一步確定F T P服務器會選擇哪一個端口(被動模式F T P服務器的數(shù)據(jù)端口不為2 0,這與普通模式F T P是不同的)。盡管我們不能讓該表項如我們所希望的那樣確切,established要害字仍能使該表項比答應外部發(fā)起向內(nèi)部網(wǎng)絡的會話要安全一些。
第六個表項(也是最后一個表項)為動態(tài)訪問表項,它答應來自被認證主機的報文到達服務器1 9 8 . 7 8 . 4 6 . 1 2。我們定義的絕對超時時間為3小時( 1 8 0分鐘),并對該表項進行了日志記錄(我們還開啟了路由器緩沖區(qū)的日志)。通過將匹配動態(tài)表項的報文進行記錄,我們可以跟蹤用戶的行為,并建立一個普通的基線。這樣,我們可以發(fā)現(xiàn)不正常的行為,并由此判定這是否是由攻擊者產(chǎn)生的。我們還將動態(tài)訪問表項的空閑時間設置成了1 0分鐘,這是在v t y線配置中通過a u t o c o m m a n d設置的。 最好是將這兩個值都設上,這樣我們能減少動態(tài)表項處于活躍狀態(tài)的時間,因此也減少了攻擊者沖破動態(tài)表項的可能性。