- ACL:Access Control List访问控制列表
- ACL是一种包过滤技术
- ACL基于IP包头的IP地址、四层TCP/UDP头部的端口号、[5层数据] 进行过滤
- ACL在路由器上配置,也可以在防火墙上配置(一般称为策略)
- ACL分类:
- 标准ACL
- 扩展ACL:XACL
标准ACL:
- 表号:1-99
- 特点:只能基于源IP地址对包进行过滤
- 命令
Router(config)#access-list 表号 peimit/deny 源IP或源网段 反子网掩码#反子网掩码用来匹配,与0对应的需要严格匹配,与1对应的忽略,例如:Router(config)#access-list 1 deny 10.1.1.1 0.0.0.0 拒绝所有源IP为10.1.1.1的主机Router(config)#access-list 1 deny 0.0.0.0 255.255.255.255 拒绝所有人
Router(config)#no access-list 表号
Router(config)#do sh access-list 表号
Router(config-if)#ip access-group 表号 in/out
扩展ACL:
- 表号:100-199
- 特点:可以基于源IP、目标IP、端口号、协议等对包进行过滤
命令
Router(config)access-list 100 permit/deny 协议 源IP或源网段 反子网掩码 目标IP或目标网段 反子网掩码 [eq 端口号]
注释:协议TCP/UDP/ICMP/IP
- ACL原理
- ACL表必须应用到接口的进或出方向才能生效
- 一个接口的方向只能应用一张表
- 进还是出的方向应用取决于流量控制总方向
- ACL表是严格自上而下检查每一条,所以要注意书写顺序
- 每一条是由条件和动作组成,当某流量未满足某条件,则继续检查下一条
- 标准ACL尽量写在靠近目标的地方才不会剔除一些多余的流量
- 书写规则:
- 做流量控制,首先要判断ACL写在哪个路由器的哪个接口的什么方向
- 具体写的时候首先判断最后一条是允许所有还是拒绝所有,将严格的控制写在前面
- 一般情况下,标准或扩展ACL一旦编写好,无法修改某一条,无法删除某一条,无法修改顺序,也无法在中间插入新的条目,只能一直在最后添加新条目,如想修改或者插入或者删除,只能删除整张表重新写
- 命名ACL:
- 作用:可以对标准或扩展ACL进行自定义命名
- 优点:自定义命名更容易辨认,也便于记忆,可以任意修改某一条,或删除某一条,也可以往中间插入某一条
- 标准ACL实验
- 要求:(以下全部使用标准ACL实现)
- 要求10网段禁止访问50网段,访问其他不受限制
- 2.要求40.1.1.1禁止访问50网段,其他访问不受限制
- 3.要求10.1.1.1禁止访问40网段,其他不受限制

R2(config)#access-list 2 deny 10.1.1.0 0.0.0.255R2(config)#access-list 2 deny host 40.1.1.1R2(config)#access-list 2 permit anyR2(config)#int f1/0R2(config-if)#ip access-group 2 outR3(config)#access-list 2 deny host 10.1.1.1R3(config)#access-list 2 permit anyR3(config)#int f0/1R3(config-if)#ip access-group 2 out
- 命名ACL演示 ```clojure Router(config)#acc 1 deny host 10.1.1.1 Router(config)#acc 1 deny host 20.1.1.1 Router(config)#acc 1 permit any
Router(config)#acc 100 deny ip host 10.1.1.1 20.1.1.0 0.0.0.255 Router(config)#acc 100 deny tcp host 30.1.1.1 host 20.1.1.3 eq 23 Router(config)#acc 100 permit ip any any Router(config)#do sh ip acc Standard IP access list 1 10 deny host 10.1.1.1 20 deny host 20.1.1.1 30 permit any Extended IP access list 100 10 deny ip host 10.1.1.1 20.1.1.0 0.0.0.255 20 deny tcp host 30.1.1.1 host 20.1.1.3 eq telnet 30 permit ip any any
创建命名ACL
Router(config)#ip access-list extended control-80-oa Router(config-ext-nacl)#permit tcp 192.168.0.0 0.0.255.255 host 10.1.1.1 eq 80 Router(config-ext-nacl)#permit tcp 172.16.0.0 0.0.255.255 host 10.1.1.1 eq 80 Router(config-ext-nacl)#deny ip 192.168.0.0 0.0.255.255 host 10.1.1.0 Router(config-ext-nacl)#exit Router(config)#do sh ip acc Standard IP access list 1 10 deny host 10.1.1.1 20 deny host 20.1.1.1 30 permit any Extended IP access list 100 10 deny ip host 10.1.1.1 20.1.1.0 0.0.0.255 20 deny tcp host 30.1.1.1 host 20.1.1.3 eq telnet 30 permit ip any any Extended IP access list control-80-oa 10 permit tcp 192.168.0.0 0.0.255.255 host 10.1.1.1 eq www 20 permit tcp 172.16.0.0 0.0.255.255 host 10.1.1.1 eq www 30 deny ip 192.168.0.0 0.0.255.255 host 10.1.1.0
删除命名ACL中的条目
Router(config)#ip access-list extended control-80-oa Router(config-ext-nacl)#no 20 Router(config-ext-nacl)#exit Router(config)#do sh ip acc Standard IP access list 1 10 deny host 10.1.1.1 20 deny host 20.1.1.1 30 permit any Extended IP access list 100 10 deny ip host 10.1.1.1 20.1.1.0 0.0.0.255 20 deny tcp host 30.1.1.1 host 20.1.1.3 eq telnet 30 permit ip any any Extended IP access list control-80-oa 10 permit tcp 192.168.0.0 0.0.255.255 host 10.1.1.1 eq www 30 deny ip 192.168.0.0 0.0.255.255 host 10.1.1.0
在命名ACL中插入条目
Router(config)#ip access-list extended control-80-oa Router(config-ext-nacl)#15 permit tcp 172.16.0.0 0.0.255.255 host 10.1.1.1 eq 80 Router(config-ext-nacl)#exit Router(config)#do sh ip acc Standard IP access list 1 10 deny host 10.1.1.1 20 deny host 20.1.1.1 30 permit any Extended IP access list 100 10 deny ip host 10.1.1.1 20.1.1.0 0.0.0.255 20 deny tcp host 30.1.1.1 host 20.1.1.3 eq telnet 30 permit ip any any Extended IP access list control-80-oa 10 permit tcp 192.168.0.0 0.0.255.255 host 10.1.1.1 eq www 15 permit tcp 172.16.0.0 0.0.255.255 host 10.1.1.1 eq www 30 deny ip 192.168.0.0 0.0.255.255 host 10.1.1.0
对于标准ACL和扩展ACL也可以删除其中的条目
Router(config)#ip access-list extended 100 Router(config-ext-nacl)#no 20 Router(config-ext-nacl)#exit Router(config)#do sh ip acc Standard IP access list 1 10 deny host 10.1.1.1 20 deny host 20.1.1.1 30 permit any Extended IP access list 100 10 deny ip host 10.1.1.1 20.1.1.0 0.0.0.255 30 permit ip any any Extended IP access list control-80-oa 10 permit tcp 192.168.0.0 0.0.255.255 host 10.1.1.1 eq www 15 permit tcp 172.16.0.0 0.0.255.255 host 10.1.1.1 eq www 30 deny ip 192.168.0.0 0.0.255.255 host 10.1.1.0
- 综合实验:```clojureCORE(config)#do sh ip accStandard IP access list 210 deny 10.1.1.0 0.0.0.255 (12 match(es))30 permit any (21 match(es))Extended IP access list 11110 deny ip 10.1.1.0 0.0.0.255 30.1.1.0 0.0.0.255 (37 match(es))20 deny ip 20.1.1.0 0.0.0.255 30.1.1.0 0.0.0.25530 deny ip 40.1.1.0 0.0.0.255 30.1.1.0 0.0.0.25540 permit ip any any
