1. 程式人生 > >第10章 網路安全(5)_訪問控制列表ACL

第10章 網路安全(5)_訪問控制列表ACL

6. 訪問控制列表ACL

6.1 標準訪問控制列表

(1)標準ACL

  ①標準ACL是基於IP資料包的源IP地址作為轉發或是拒絕的條件。即,所有的條件都是基於源IP地址的。

  ②基本不允許或拒絕整個協議組。它不區分IP流量型別。如Telnet、UDP等服務。

(2)實戰:只允許部分計算機訪問Internet

  ①目標: 在Router0上定義標準ACL,只允許市場部(PC7例外)和財務部的計算機能夠訪問Internet。而伺服器組中的計算機拒絕訪問Internet

  ②在Router0的S3/0介面的出站訪問控制

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/24、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)#

  ③測試,分別從PC3、PC4、PC7和伺服器組的ftp主機去ping 10.0.0.2。會發現PC3、PC4是會通的,但PC7和ftp主機ping不通。可見ACL列表己經完全起作用了。

6.2 擴充套件訪問控制列表

(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:儘可能放置在靠近源地址的位置。它可以過濾每個特定的地址和協議,所以我們不希望流量穿過整個網路後再被拒絕,它可在使用有限的頻寬之前過濾掉此流量。