6. 訪問控制列表ACL安全
6.1 標準訪問控制列表服務器
(1)標準ACL網絡
①標準ACL是基於IP數據包的源IP地址做爲轉發或是拒絕的條件。即,全部的條件都是基於源IP地址的。tcp
②基本不容許或拒絕整個協議組。它不區分IP流量類型。如Telnet、UDP等服務。ide
(2)實戰:只容許部分計算機訪問Internet測試
①目標: 在Router0上定義標準ACL,只容許市場部(PC7例外)和財務部的計算機可以訪問Internet。而服務器組中的計算機拒絕訪問Internet網站
②在Router0的S3/0接口的出站訪問控制spa
Router>en Router#config t //進入全局配置模式 Router(config)#access-list ? <1-99> IP standard access list //標準ACL的編號範圍是1-99 <100-199> IP extended access list //擴展ACL的編號範圍是100-199 //1. 在Router0上建立標準ACL,列表編號爲10(能夠是1-99之間的任何值)。 // A.容許192.168.2.0/2四、192.168.1.0/24兩個網段的數據包經過,注意使用 // 的是反轉掩碼 // B.控制列表的any與反轉掩碼0.0.0.0等價 // C.路由器在應用訪問控制列表的規則時順序很重要,它會從上到下檢查,如 // 果匹配就再也不檢查ACL後面的設置。其原則是更加具體的地址放最前面。因 // 此被拒絕的主機要放前面,容許的放後面。ACL的最後一條會默認爲拒絕全部! // D.刪除某個10號列表:Router(config)#no access-list 10 Router(config)#access-list 10 deny host 192.168.2.2 //第1條,要先寫! Router(config)#access-list 10 permit 192.168.2.0 0.0.0.255 //第2條 Router(config)#access-list 10 permit 192.168.1.0 0.0.0.255 //第3條 Router(config)#exit Router#show access-list 10 //查看ACL的10號列表 Standard IP access list 10 deny host 192.168.2.2 //第1條 permit 192.168.2.0 0.0.0.255 //第2條 permit 192.168.1.0 0.0.0.255 //第3條 Router(config)#access-list 10 permit 192.168.2.0 0.0.0.255 Router(config)#access-list 10 permit 192.168.1.0 0.0.0.255 //2. 將ACL10綁定到Router0的S3/0出口 Router(config)#interface serial 3/0 Router(config-if)#ip access-group 10 ? in inbound packets //in 表示進入接口時檢查 out outbound packets //out 表示出接口時檢查 Router(config-if)#ip access-group 10 out //將列表綁定到S3/0出口 //取消綁定:no ip access-group 10 out Router(config-if)#
③測試,分別從PC三、PC四、PC7和服務器組的ftp主機去ping 10.0.0.2。會發現PC三、PC4是會通的,但PC7和ftp主機ping不通。可見ACL列表己經徹底起做用了。code
6.2 擴展訪問控制列表blog
(1)擴展ACL
①基於IP數據包的源地址、目標地址、協議和端口這些條件來決定是否轉發數據包。
②比標準ACL的控制粒度更細。
③擴展ACL的語法:
access-list 編號{permit | deny} {TCP | UDP} 源地址 目標地址 eq 目標端口
access-list 編號{permit | deny} {IP | ICMP} 源地址 目標地址 //沒目標端口!
【說明】若是協議是IP或ICMP,則後面沒有目標端口;若是容許IP協議,就等同於允了全部TCP、UDP以及ICMP協議的流量。
(2)實驗環境:
①目標:在Router0定義擴展ACL,使得市場部能訪問Internet,財務部只能訪問Internet上的Web服務器。服務器組中的計算機能ping通Internet中任何計算機。
②路由器上設置ACL
//1. 在Router0上建立擴展ACL Router#conf t Router(config)#access-list 101 permit ip 192.168.2.0 0.0.0.255 any //市場部容許訪問Internet Router(config)#access-list 101 permit tcp 192.168.1.0 0.0.0.255 10.0.0.0 0.255.255.255 eq ? <0-65535> Port number ftp File Transfer Protocol (21) pop3 Post Office Protocol v3 (110) smtp Simple Mail Transport Protocol (25) telnet Telnet (23) www World Wide Web (HTTP, 80) //eq後面能夠是端口或應用層協議名稱! //財務部計算機只容許訪問10.0.0.0/8網段的Web服務器 Router(config)#access-list 101 permit tcp 192.168.1.0 0.0.0.255 10.0.0.0 0.255.255.255 eq 80 //服務器組的計算機只能ping internet的計算機 Router(config)#access-list 101 permit icmp 192.168.0.0 0.0.0.255 any //2. 將擴展ACL綁定到Router0的S3/0接口 Router(config)#interface serial 3/0 Router(config-if)#ip access-gr Router(config-if)#ip access-group 101 out Router(config-if)#exit
③驗證擴展ACL。市場部的PC7能ping通Internet上的任何計算機(包括訪問WebServer的網頁)。財務部的PC2不能ping通Internet上的任何計算機,但能訪問WebServer網站。服務器組的計算機能ping通Internet上任何計算機,但不能訪問WebServer。
6.3 使用ACL保護路由
(1)保護路由器安全
①路由器通常都開啓telnet功能,以便遠程管理。
②路由器的任一接口都容許telnet,不可能爲每一個接口的入口都綁定ACL,可使用標準ACL來控制訪問VTY線路。
(2)實戰:使用ACL保護路由器安全(要事先設置Router的telnet密碼和enable密碼)
①目標:只容許ITG部門的計算機可以telnet中路由器Router0。
②在Router0上建立標準ACL,並綁定到VTY線路。
Router#conf t Router(config)#access-list 12 permit 192.168.1.0 0.0.0.255 //定義ACL,只容許192.168.1.0/24網段 Router(config)#line vty 0 15 //進入VTY虛接口,0和15分別表示起始和結束的vty的0-15號接口。 Router(config-line)#access-class 12 in //將編號爲12的ACL綁定到vty Router(config-line)#
③驗證:在PC7上telnet 192.168.2.1會失敗。但PC3上telnet 192.168.1.1會成功,只要輸入正確的telnet密碼和enable密碼。
6.4 訪問控制列表的位置
(1)標準ACL:儘量靠近目的地址的位置。這是由於咱們並不真正的要在本身的網絡內使用表內的控制規則。不能將標準ACL放置在靠近源主機的位置,由於這樣會過濾基於源地址的流量,而致使不能轉發任何流量。
(2)擴展ACL:儘量放置在靠近源地址的位置。它能夠過濾每一個特定的地址和協議,因此咱們不但願流量穿過整個網絡後再被拒絕,它可在使用有限的帶寬以前過濾掉此流量。