1. 程式人生 > >思科ACL訪問控制列表常規配置

思科ACL訪問控制列表常規配置

一、ACL概述

ACL (Access Control List,訪問控制列表)是一系列運用到路由器介面的指令列表。這些指令告訴路由器接收哪些資料包、拒絕哪些資料包,接收或者拒絕根據一定的規則進行,如源地址、目標地址、埠號等。ACL使得使用者能夠管理資料流,檢測特定的資料包。
  路由器將根據ACL中指定的條件,對經過路由器埠的資料包進行檢査。ACL可以基於所有的Routed Protocols (被路由協議,如IP、IPX等)對經過路由器的資料包進行過濾。ACL在路由器的埠過濾資料流,決定是否轉發或者阻止資料包。ACL應該根據路由器的埠所允許的每個協議來制定,如果需要控制流經某個埠的所有資料流,就需要為該埠允許的每一個協議分別建立ACL。例如,如果埠被配置為允許IP、AppleTalk和IPX協議的資料流,那麼就需要建立至少3個ACL, 本文中僅討論IP的訪問控制列表。針對IP協議,在路由器的每一個埠,可以建立兩個ACL:—個用於過濾進入

(inbound)埠的資料流,另一個用於過濾流出(outboimd)埠的資料流。
  順序執行:—個ACL列表中可以包含多個ACL指令,ACL指令的放置順序很重要。當路由器在決定是否轉發或者阻止資料包的時候,Cisco的IOS軟體,按照ACL中指令的順序依次檢査資料包是否滿足某一個指令條件。當檢測到某個指令條件滿足的時候,就執行該指令規定的動作,並且不會再檢測後面的指令條件。
  ACL作用:
   * 限制網路流量,提高網路效能。
   * 提供資料流控制。
   * 為網路訪問提供基本的安全層。

二、ACL 型別

  1. 標準ACL: access-list-number編號1~99之間的整數,只針對源地址進行過濾。
  2. 擴充套件ACL: access-list-number編號100~199之間的整數,可以同時使用源地址和目標地址作為過濾條件,還可以針對不同的協議、協議的特徵、埠號、時間範圍等過濾。可以更加細微的控制通訊量。
  3. 動態ACL
  4. 自反ACL
  5. 基於時間的ACL

三、標準ACL

 3.1 萬用字元掩碼

使用萬用字元掩碼與源或目標地址一起分辨匹配的地址範圍。
掩碼位匹配含義:設定為“1”表示忽略IP地址中對應位(IP取0或1都可以匹配);設定為“0”表示IP地址中對應位必須精確匹配
例如:(1)192.168.1.0 0.0.0.255 匹配的是192.168.1.0~192.168.1.255
   (2)192.168.1.0 0.0.0.254

匹配192.168.1.0網段中所有偶數IP
   (3)192.168.1.1 0.0.0.254 匹配192.168.1.0網段中所有奇數IP
any關鍵字: 代替地址掩碼對0.0.0.0 255.255.255.255,匹配任何IP
host關鍵字: 代替萬用字元掩碼0.0.0.0,精確匹配某個IP。例如:要實現匹配IP地址192.168.1.2,則可以寫成192.168.1.2 0.0.0.0或者寫成host 192.168.1.2。(注:標準ACL中沒有萬用字元掩碼預設該掩碼為 0.0.0.0,host也可以省略;擴充套件ACL中萬用字元 0.0.0.0或 host關鍵字不可以省略

 3.2 配置標準ACL的方法

  3.2.1 配置步驟

配置標準ACL需要兩步,一是建立訪問控制列表,二是將列表繫結到特定埠。

  Step 1 建立ACL

全域性模式下配置ACL。
建立標準ACL的基本格式: access-list access-list-number { deny | permit } { 源地址 [ 源地址萬用字元掩碼 ] | any } [ log ]
其中,access-list-number是1~99的ACL編號;deny拒絕,permit允許;log是日誌選項,匹配的條目資訊顯示在控制檯上,也可以輸出到日誌伺服器。
例如:在某路由器R3上建立一組ACL配置如下:
  R3 (config) #access-list 1 deny 12.1.1.1    拒絕R1的IP地址12.1.1.1,萬用字元掩碼 0.0.0.0 可以省略。
  R3 (config) #access-list 1 permit any     允許其餘所有IP

注意:訪問控制列表最後隱含一條deny any 規則;ACL從上往下匹配,規則順序不能改變。

  Step 2 應用ACL

建立好列表後,要將ACL繫結到每個它想應用的接口才能實現訪問控制功能。
例如:將上述列表應用到R3的S1/0介面,配置為:
  R3 (config) #interface s1/0    
  R3 (config-if) #ip access-group 1 in  在介面下呼叫ACL 1,針對的是從s1/0介面進入路由器R3的流量

 3.2.2 編輯修改標準ACL

  1)刪除ACL

刪除編號即可刪除ACL。
命令格式:R3 (config) #no access-list 1

  2)取消ACL在介面的應用

命令格式:R3 (config) #int s1/0
     R3 (config-if) #no ip access-group 1 in

  3)編輯ACL

標準ACL不支援插入或刪除一行操作,可以將現有ACL拷貝到記事本里修改,然後貼上到路由器的命令列中。

  4)檢視ACL

命令格式:R3#show access-lists
     R3#show access-lists 1

 3.3 配置標準命名ACL的方法

標準命名ACL指使用字串代替數字來標識ACL。其優點包括:

  • 可以在不刪除整個ACL情況下修改。
  • 字串直觀標識ACL用途。
  • 可以配置超過99個標準ACL。
    注意:命名不能相同。
    建立標準命名ACL格式:Router (config)# ip access-list standard access-list name
     例如:
       R3 (config)# ip access-list standard deny-R1
       R3 (config-std-nac1)#deny 12.1.1.1
       R3 (config-std-nac1)#permit any
       R3 (config-std-nac1)#exit
       R3 (config)#int s1/0
       R3 (config-if)#ip access-group deny-R1 in
可區域性修改:

1)刪除某一句:
R3 (config)# ip access-list standard deny-R1
R3 (config-std-nac1)#no deny 12.1.1.1
2)使用行號刪除某一句:
R3 (config)# ip access-list standard deny-R1
R3 (config-std-nac1)#no 20           刪除第20行內容
3)刪除整個ACL:
R3 (config)#no ip access-list standard deny-R1

 3.4 標準ACL放置的位置

  • ACL僅對穿越路由器的資料包進行過濾,對本路由器起源的資料包不做過濾(詳細案例見《CCNA學習與實驗指南》崔北亮著,訪問控制列表一章)
  • 儘量應用在靠近目標端。

四、擴充套件ACL

 4.1 配置擴充套件ACL

  Step 1 建立擴充套件ACL

基本格式:access-list access-list-number {deny | permit | remark} 協議型別 source [source-wildcard] [operator operand] [port port-number or name] destination destination-wildcard [operator operand] [port port-number or name] [established]
例項:配置實現拒絕R1去往R3的Telent通訊,允許其他服務。
在這裡插入圖片描述
R2 (config) # access-list 100 deny tcp host 12.1.1.1 host 23.1.1.3 eq Telent
R2 (config) # access-list 100 permit ip any any
解釋:Telent流量使用的是TCP協議,目標埠23
因此此處拒絕TCP協議,源地址是R1,源埠任意;目標地址R3,目標埠23(配置語句中Telent表示23)。

  Step 2 應用ACL

將列表應用於R2的S1/0介面,當資料包進入R2的時候判斷,配置為:
R2 (config) # int s1/0
R2 (config) # ip access-group 100 in

 4.2 配置擴充套件命名ACL

類似於標準命名ACL:
ip access-list extended tcp-firewall

 4.3 擴充套件ACL放置的位置

儘量應用在靠近源端,這樣可以使一些非法流量儘早丟棄,節省中間裝置頻寬和CPU資源。

五、反射ACL

 5.1 概念

提供真正意義上的單向訪問控制。

 5.2 應用

六、動態ACL

可以根據使用者驗證過程建立特定的臨時的ACL。

七、基於時間的ACL