一、ACL技術
1、定義
訪問控制列表訪問控制列表使用包過濾技術,在路由器上讀取第三層及第四層包頭中的信息如源地址,目的地址,源端口,目的端口等,根據預先定 義好的規則對包進行過濾,從而達到訪問控制的目的。
1.1訪問控制列表的原理:
入:已經到達路由器接口的數據包,但是還沒有被路由器處理。
出:已經 經過路由器的處理,正要離開路由器接口的數據包
1.2匹配順序:
“自上而下,依次匹配”。默認為拒絕
1.3訪問控制列表的類型:
- 標準訪問控制列表:一般應用在out出站接口。建議配置在離目標端最近的路由上
- 擴展訪問控制列表:配置在離源端最近的路由上,一般應用在入站in方向
- 命名訪問控制列表:允許在標準和擴展訪問列表中使用名稱代替表號
1.4訪問控制列表使用原則:
- 1)、最小特權原則
只給受控對象完成任務所必須的最小的權限。也就是說被控制的總規則是各個規則的交集,只滿足部分條件的是不容許通過規則的。
- 2)、默認丟棄原則
在CISCO路由交換設備中默認最后一句為ACL中加入了DENY ANY ANY,也就是丟棄所有不符合條件的數據包。這一點要特別注意,雖然我們可以修改這個默認,但未改前一定要引起重視。
- 3)、最靠近受控對象原則
所有的網絡層訪問權限控制。也就是說在檢查規則時是采用自上而下在ACL中一條條檢測的,只要發現符合條件了就立刻轉發,而不繼續檢測下面的ACL語句。
- 4)、IP 訪問控制列表是一個連續的列表,至少由一個“permit(允許)”語句和一個或多個“deny(拒絕)”語句組成。
- 5)、IP 訪問控制列表用名字(name)或表號(number)標識和引用;
- 6)、數據包只有在跟第一個判斷條件不匹配時,才能被交給 ACL 中下一個條件語句進行比較;
二、 ACL的配置
1、思科的ACL分類
1)標準的acl : 范圍號 1-99,標準acl應用在out出站接口。建議配置在離目標端最近的路由上2) 擴展的acl : 范圍號100-199,為提高網絡性能,建議將擴展acl配置在離源端最近的路由上,一般應用在入站in方向3) 命名的acl :{標準的命名acl}:{擴展的命名acl}
Router(config)#access-list ?<1-99> IP standard access list 標準ACL<100-199> IP extended access list 擴展ACL
2、ACL配置
- 配置 IP 訪問控制列表使用“access-list”或“ip access-lint”命令,定義一個訪問控制列表;
- access-list 命令要求只能使用表號標識列表,而 ip access-list 命令可以使用表號或者名字標識列表;
- 在通配符掩碼位中,0 表示“檢查數據包的 IP 地址相對應的比特位”,1 表示“不檢查(忽略)數據包中的
3、配置標準ACL
標準acl的表號范圍是1-99,因此在配置標準acl時,表號的范圍不能超出1-99.
為提高網絡性能,將標準acl應用在out出站接口。建議配置在離目標端最近的路由上
3.1 accees-list
access-list access-list-number(1-99) [permit | deny ] [sourceaddress][wildcard-mask]
wildcard-mask:網絡掩碼的反碼,例:255.255.0.0的反碼是0.0.255.255
Router(config)# access-list 1 deny 192.168.10.1 0.0.0.0 #表示拒絕某個IP
Router(config)# access-list 10 permit 192.168.22.0 0.0.0.255 #表示允許22.0網段
Router(config)# access-list 10 deny host 192.168.1.1 #表示拒絕主機通過
3.2 ip access-list standard
ip access-list 配置默認以10開始,步長為10,需要注意acl語句的執行順序
ip access-list 有extended(擴展)和standard(標準)可選
ip access-list standard 表名/表號
(num) permit | deny 協議+源地址+源反碼
Router(config)#ip access-list ?extended Extended Access List #擴展standard Standard Access List #標準
#配置案例如下
Router(config)#ip access-list standard acl1
Router(config-std-nacl)#permit host 192.168.1.2
Router(config-std-nacl)#permit host 192.168.1.1
Router(config-std-nacl)#deny 192.168.1.0 0.0.0.255
Router(config-std-nacl)#exit
Router(config)#int g0/0/0
Router(config-if)#ip access-group acl1 in
Router(config-std-nacl)#end
Router#show access-lists #檢查配置
Standard IP access list acl110 permit host 192.168.1.2 (4 match(es))20 permit host 192.168.1.130 deny 192.168.1.0 0.0.0.255 (3 match(es))
# 注意執行順序
可以使用在語句最前面增加一個數字來配置語句的順序
Router(config)#ip access-list standard acl2
Router(config-std-nacl)# 1 permit host 192.168.1.1
Router(config-std-nacl)# 2 permit host 192.168.1.2
Router(config-std-nacl)# 7 deny any#拒絕所有主機
Router(config-std-nacl)# end
Router#show access-lists
Standard IP access list acl21 permit host 192.168.1.12 permit host 192.168.1.27 deny any
應用標準ACL至接口
Router(config-if)#ip access-group 10 in|out
Router(config-if)#ip access-group acl1 in|out
#in為入口,out為出口,在通信過后源ip與目的ip會發生翻轉,因此少數情況下需要注意in|out的配置,可以將一個acl表同時配置在出口與入口
4、配置擴展ACL
擴展acl的表號范圍是100-199
為提高網絡性能,建議將擴展acl配置在離源端最近的路由上,一般應用在入站in方向
4.1 access-list
access-list {100-199} {permit/deny} protocol source-ip source-wildcard [operator port] destination-ip destination-wildcard [operator port] [established] [log]access-list 表號{permit | deny}協議+源地址+源反碼+目的地址+目的反碼+操作+端口號
其中,operator(操作)有 lt(小于)、gt(大于)、eq(等于)、neq(不等于)幾種;port指的是端口號。
4.2配置案例
Router(config)#access-list 100 deny icmp any any
#any any 第一個any表示的是源的所有主機,第二個any表示的是目的的所有主機
Router(config)#access-list 100 deny udp any any eq 134
#any any表示源與目的的所有主機
Router(config)#access-list 100 deny ip 172.16.0.0 0.0.255.255 192.168.1.0 0.0.0.255
4.3 ip access-list extended
extended表示此acl表為拓展acl表
ip access-list 配置默認以10開始,步長為10,需要注意acl語句的執行順序。
ip access-list extended 表名/表號
(num) permit | deny 協議+源地址+源反碼+目的地址+目的反碼+操作+端口號
Router(config)#ip access-list extended acl1
Router(config-ext-nacl)#deny tcp any any
Router(config-ext-nacl)#permit ip any any
Router(config-ext-nacl)#do show access-list
Extended IP access list acl110 deny tcp any any20 permit ip any any
Router(config)#ip access-list extended acl1
Router(config-ext-nacl)#deny tcp any any eq 8080
可以使用在語句最前面增加一個數字來配置語句的順序
Router(config)#ip access-list extended test
Router(config-ext-nacl)#2 permit ip host 192.168.1.1 host 192.168.1.2
Router(config-ext-nacl)#3 permit ip host 192.168.13.13 host 192.168.13.2
Router(config-ext-nacl)#1 permit ip host 192.168.8.9 host 192.168.13.2
Router(config-ext-nacl)#do show access-list
Extended IP access list test1 permit ip host 192.168.8.9 host 192.168.13.22 permit ip host 192.168.1.1 host 192.168.1.23 permit ip host 192.168.13.13 host 192.168.13.2
應用擴展acl至接口
Router(config-if)#ip access-group 100 in|out
Router(config-if)#ip access-group acl1 in|out
#in為入口,out為出口,在通信過后源ip與目的ip會發生翻轉,因此少數情況下需要注意in|out的配置,可以將一個acl表同時配置在出口與入口
5、刪除ACL
R1(config)#no ip access-list standard acl1
R1(config)#no ip access-list standard acl1
二、標準ACL配置案例
案例1-標準ACL的配置-access-list
網絡拓撲
需求
PC0可以ping訪問服務器PC1不可以ping訪問服務器
配置
接口配置
Router>enable
Router#configure terminal
Router(config)#hostname R1
R1(config)#int g0/0
R1(config-if)#ip address 192.168.10.254 255.255.255.0
R1(config-if)#no shutdownR1(config-if)#int g0/1
R1(config-if)#ip address 192.168.20.254 255.255.255.0
R1(config-if)#no shutdown
R1(config-if)# int g0/2
R1(config-if)#ip address 192.168.100.254 255.255.255.0
R1(config-if)#no shutdown
標準ACL的配置,配置允許,其他的默認是拒絕所有
R1(config)#access-list 10 permit 192.168.10.0 0.0.0.255
# 調用ACL,在g0/2的出接口上調用
R1(config-if)#ip access-group 10 out
抓包,pc1的數據包到g0/2口被攔截
案例2-標準ACL的配置-ip access-list
網絡拓撲
需求
PC0可以ping訪問服務器PC1不可以ping訪問服務器
配置
接口配置
Router>enable
Router#configure terminal
Router(config)#hostname R1
R1(config)#int g0/0
R1(config-if)#ip address 192.168.10.254 255.255.255.0
R1(config-if)#no shutdownR1(config-if)#int g0/1
R1(config-if)#ip address 192.168.20.254 255.255.255.0
R1(config-if)#no shutdown
R1(config-if)# int g0/2
R1(config-if)#ip address 192.168.100.254 255.255.255.0
R1(config-if)#no shutdown
標準ACL的配置,配置允許,其他的默認是拒絕所有
R1(config)#ip access-list standard 10
R1(config-std-nacl)#permit host 192.168.10.1
# 調用ACL,在g0/2的出接口上調用
R1(config-if)#ip access-group 10 out
抓包,pc1的數據包到g0/2口被攔截
案例3-標準ACL的配置
** 網絡拓撲**
需求:
pc6不能訪問服務器1 ,其他pc都可以訪問服務器1
配置
- **R1配置**
R1(config)# interface g0/0
R1(config)# ip address 192.168.10.254 255.255.255.0
R1(config)# no shutdown
R1(config)# interface g0/1
R1(config)# ip address 192.168.20.254 255.255.255.0
R1(config)# no shutdown
R1(config)# access-list 10 deny host 192.168.10.1
R1(config)# access-list 10 permit 192.168.10.0 0.0.0.255
R1(config)# interface g0/0
R1(config)# ip access-group 10 in
查詢命令:
R1#show ip access-lists
三、 擴展ACL配置案例
案例1-擴展ACL配置
#### 網絡拓撲
#### 需求允許pc1訪問服務器2的www服務,但拒絕pc1訪問服務器的其他服務允許pc2可以訪問服務器的所有服務,沒有限制#### 配置- R1的配置
Router>enable
Router#configure terminal
Router(config)#hostname R1
R1(config)#int g0/0
R1(config-if)#ip address 192.168.10.254 255.255.255.0
R1(config-if)#no shutdown
R1(config-if)#int g0/1
R1(config-if)#ip address 192.168.12.1 255.255.255.0
R1(config-if)#no shutdown
#靜態路由配置
R1(config)#ip route 192.168.23.0 255.255.255.0 192.168.12.2
R1(config)#ip route 192.168.100.0 255.255.255.0 192.168.12.2
- R2的配置
Router>enable
Router#configure terminal
Router(config)#hostname R2
R2(config)#int g0/0
R2(config-if)#ip address 192.168.12.2 255.255.255.0
R2(config-if)#no shutdown
R2(config-if)#int g0/1
R2(config-if)#ip address 192.168.23.2 255.255.255.0
R2(config-if)#no shutdown
#配置靜態路由
R2(config)#ip route 192.168.10.0 255.255.255.0 192.168.12.1
R2(config)#ip route 192.168.100.0 255.255.255.0 192.168.23.3
- R3的配置
Router>enable
Router#configure terminal
Router(config)#int g0/0
Router(config-if)#ip address 192.168.23.3 255.255.255.0
Router(config-if)#no shutdown
Router(config-if)#int g0/1
Router(config-if)#ip address 192.168.100.254 255.255.255.0
Router(config-if)#no shutdown
#配置靜態路由
Router(config)#ip route 192.168.0.0 255.255.0.0 192.168.23.2
- 擴展ACL的配置,距離源目標較近的設備
R1(config)#access-list 100 permit tcp host 192.168.10.1 host 192.168.100.100 eq 80
R1(config)#access-list 100 deny ip host 192.168.10.1 host 192.168.100.100
R1(config)#access-list 100 permit ip 192.168.10.0 0.0.0.255 host 192.168.100.100
R1(config)#int g0/0
R1(config-if)#ip access-group 100 in
#### 驗證-http服務
#### 驗證ping,不通
案例2-擴展ACL配置
### 1、網絡拓撲
### 2、需求--允許pc9訪問服務器2的www服務,但拒絕pc9訪問服務器2的其他服務--pc10和pc11可以訪問服務器2的所有服務,沒有限制### 3、配置- **R1配置**
R1(config)#interface g0/0
R1(config-if)#ip address 192.168.10.254 255.255.255.0
R1(config-if)#no shutdown
R1(config-if)#exit
R1(config)#interface g0/1
R1(config-if)#ip address 192.168.20.10 255.255.255.0
R1(config-if)#no shutdown
R1(config-if)#exit
R1(config)#router rip
R1(config-router)#no auto-summary
R1(config-router)#version 2
R1(config-router)#network 192.168.10.0
R1(config-router)#network 192.168.20.0
R1(config-router)#exit
- **R2配置**
R2(config)#interface g0/0
R2(config-if)#ip address 192.168.20.20 255.255.255.0
R2(config-if)#no shutdown
R2(config-if)#exit
R2(config)#interface g0/1
R2(config-if)#ip address 192.168.30.20 255.255.255.0
R2(config-if)#exit
R2(config)#router rip
R2(config-router)#version 2
R2(config-router)#no auto-summary
R2(config-router)#network 192.168.20.0
R2(config-router)#network 192.168.30.0
- **R3配置**
R3(config)# interface g0/1
R3(config-if)#ip address 192.168.30.10 255.255.255.0
R3(config-if)#no shutdown
R3(config-if)#exit
R3(config)#interface g0/0
R3(config-if)#ip address 192.168.40.254 255.255.255.0
R3(config-if)#no shutdown
R3(config-if)#exit
R3(config)#router rip
R3(config-router)#version 2
R3(config-router)#no auto-summary
R3(config-router)#network 192.168.30.0
R3(config-router)#network 192.168.40.0
- **擴展ACL的配置**
R1(config)#access-list 100 permit tcp host 192.168.10.1 host 192.168.40.10 eq 80R1(config)#access-list 100 deny ip host 192.168.10.1 host 192.168.40.10R1(config)#access-list 100 permit ip 192.168.10.0 0.0.0.255 host 192.168.40.10R1(config)#interface g0/0
R1(config-if)#ip access-group 100 in