思科ACL訪問控制列表常規配置
一、ACL概述
ACL (Access Control List,訪問控制列表)是一系列運用到路由器介面的指令列表。這些指令告訴路由器接收哪些資料包、拒絕哪些資料包,接收或者拒絕根據一定的規則進行,如源地址、目標地址、埠號等。ACL使得使用者能夠管理資料流,檢測特定的資料包。
路由器將根據ACL中指定的條件,對經過路由器埠的資料包進行檢査。ACL可以基於所有的Routed Protocols (被路由協議,如IP、IPX等)對經過路由器的資料包進行過濾。ACL在路由器的埠過濾資料流,決定是否轉發或者阻止資料包。ACL應該根據路由器的埠所允許的每個協議來制定,如果需要控制流經某個埠的所有資料流,就需要為該埠允許的每一個協議分別建立ACL。例如,如果埠被配置為允許IP、AppleTalk和IPX協議的資料流,那麼就需要建立至少3個ACL, 本文中僅討論IP的訪問控制列表。針對IP協議,在路由器的每一個埠,可以建立兩個ACL:—個用於過濾進入
順序執行:—個ACL列表中可以包含多個ACL指令,ACL指令的放置順序很重要。當路由器在決定是否轉發或者阻止資料包的時候,Cisco的IOS軟體,按照ACL中指令的順序依次檢査資料包是否滿足某一個指令條件。當檢測到某個指令條件滿足的時候,就執行該指令規定的動作,並且不會再檢測後面的指令條件。
ACL作用:
* 限制網路流量,提高網路效能。
* 提供資料流控制。
* 為網路訪問提供基本的安全層。
二、ACL 型別
- 標準ACL: access-list-number編號1~99之間的整數,只針對源地址進行過濾。
- 擴充套件ACL: access-list-number編號100~199之間的整數,可以同時使用源地址和目標地址作為過濾條件,還可以針對不同的協議、協議的特徵、埠號、時間範圍等過濾。可以更加細微的控制通訊量。
- 動態ACL
- 自反ACL
- 基於時間的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
(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。