ACL(Access Control List,访问控制列表)
ACL(Access Control List,访问控制列表)
- ACL概述
ACL的作用:ACL是一种包过滤技术!
ACL应用场景:路由器、防火墙上
路由器上称为ACL!
防火墙上称为策略!
策略就是升级版的ACL,策略可以基于IP、端口、协议、应用层数据进行各种过滤!
- ACL怎么过滤IP包
ACL是基于数据包中的IP地址、端口号来对数据包进行过滤!
- ACL的分类
3.1标准ACL
标准——Standard
表号:1-99或1300-1999
特点:只能基于源IP地址对包进行过滤。
3.2扩展ACL
扩展——Extended
表号:100-199或2000-2699
特点:可以基于源IP地址、目标IP地址、目标端口号、协议等对包进行过滤。(扩展ACL要求必须有基于源IP和目标IP的判断)
- ACL的过滤原理
注意:
- ACL的in和out是相对于路由器来说的,数据流进路由器端口为in,数据流出路由器端口为out。
- ACL与NAT地址映射参照物不同:
端口/方向 |
NAT |
ACL |
连接内网的端口 |
ip nat inside |
------------- |
连接公网的端口 |
ip nat outside |
------------- |
数据流入端口 |
----------- |
in |
数据流出端口 |
----------- |
out |
4.1配置ACL的小技巧
- 先判断要控制的数据流源IP还是目标IP,并画出控制数据流的方向!进而判断ACL可以配置在哪些路由器上!
- 写规则的时候,最好先判断是拒绝的流量多,还是允许的多!
情况 |
编写 |
拒绝的少,允许的多! |
先写拒绝,再写允许所有 |
允许的少,拒绝的多! |
先写允许,再写拒绝所有 |
- 对选中的路由器,开始编写ACL过滤规则!
- 最后将ACL表应用到某个接口的某个方向(in 或 out)才能生效!
4.2 ACL的原理
-
-
ACL表配置完毕后,必须应用到接口的in或out方向上,才能生效!
- 一个接口的一个方向上只能应用一张表。
- 在所有ACL表的最后都隐藏着一条的拒绝所有的条目。
- 在匹配ACL时,是严格自上而下的匹配每一条的!匹配成功则完成动作,没匹配成功则继续匹配下一条。如全部不匹配,则直接丢弃拒绝通过!(!!!一定要注意书写的先后顺序!!!)
- 标准ACL因为只能基于源IP对包进行过滤,所以建议写在靠近目标端的地方!(视频讲解链接)
- 一个ACl表编写完成后,默认情况下不能删除某一条,也不能往中间插入新的条目,只能继续往后追加新的条目。(删除任意某一条都会删除整个ACL表)
- ACL的命令
5.1标准ACL
Router(config)#access-list 表号 permit/deny 条件
#表号:1-99 1300-1999
#条件:源IP+反子网掩码
反子网掩码:0.0.0.255 #0代表严格匹配255代表不需要匹配!
例如:
Router(config)#access-list 1 deny 192.168.1.0 0.0.0.255
#拒绝源IP为192.168.1.0网段的流量
Router(config)#access-list 1 peimit 0.0.0.0 255.255.255.255
#允许所有网段
Router(config)#access-list 1 deny 192.168.2.1 0.0.0.0
#拒绝一台主机/拒绝一个人
简化:
原命令 |
简化 |
0.0.0.0 255.255.255.255 |
any |
192.168.2.1 0.0.0.0 |
host |
简化后:
Router(config)#access-list 1 deny 192.168.1.0 0.0.0.255
#拒绝源IP为192.168.1.0网段的流量
Router(config)#access-list 1 peimit any
#允许所有网段
Router(config)#access-list 1 deny host 192.168.2.1
#拒绝一台主机/拒绝一个人
5.2扩展ACL命令
Router(config)#access-list 表号permit/deny协议 源IP反掩码 目标IP反掩码 [eq端口号]
表号:100-199 2000-2699
协议:TCP/UDP/IP/ICMP(当写了端口号,必须写TCP或UDP)
[ ]: 代表可选
注释:ICMP协议就是ping命令所使用的协议,ICMP协议是网络探测协议,ping别人,就是生成ICMP探测包发给对方,然后对方给我回应一个ICMP探测包,代表ping通了!
案例一:
Router(config)#access-list 101 permit tcp 192.168.1.0 0.0.0.255 192.168.6.1 0.0.0.0 eq 80
#若去掉eq 80 表示允许访问所有基于TCP的端口
#若去掉eq 80,将tcp换为ip 代表允许1.0网段访问6.0网段的所有端口
Router(config)#access-list 101 deny ip 192.168.1.0 0.0.0.255 192.168.6.0 0.0.0.255
#禁止1.0网段访问6.0网段的所有端口
Router(config)#access-list 101 permit ip any any
#允许全部网段间通信
案例二:
Router(config)#access-list 102 deny icmp 192.168.1.0 0.0.0.255 192.168.6.0 0.0.0.255
#禁止1.0网段ping 6.0网段
Router(config)#access-list 102 permit ip any any
案例三:
Router(config)#access-list 103 deny tcp 192.168.1.0 0.0.0.255 host 192.168.6.1 eq 23
#拒绝1.0网段Telnet 主机192.168.6.1
Router(config)#access-list 103 permit ip 192.168.1.0 0.0.0.255 host 192.168.6.1
#允许1.0网段访问主机192.168.6.1基于IP(=全部服务)的所有端口
Router(config)#access-list 103 deny ip any any
#禁止网段间任何服务
案例四:
Router(config)#access-list 104 deny ip host 192.168.1.1 any
#禁止主机192.168.1.1与任何其他网段通信
Router(config)#access-list 104 permit ip any any
#允许所有网段间通信
5.3 将ACL表应用到接口上
Router#int f0/1
Router(config)#ip access-group 102 in/out #102是扩展ACL表号
Router(config)#exit
5.4查看所有ACL表
Router#show ip access-list
- 命名ACL
6.1 用命名ACl创建
R1(config)#ip access-list extended 表名
R1(config-ext-nacl)#[15] permit/deny
#从peimit/deny开始编辑每一条
#前面不加数字则追加到表中已有条目,最后一条的后面
#[ ]代表可选
R1(config-ext-nacl)#no 20
R1(config-ext-nacl)#exit
6.2 命名ACL的好处
使用命名ACL格式可以任意删除某一条,也可以插入某一条!
例如:
R1(config)#do show ip acess-list
Extended IP access list 120
10 deny icmp any any
20 deny udp 192.168.1.0 0.0.0.255 any eq domain
30 permit ip any any
可以删除某一条,如需要删除第二条,做如下操作:
R1(config)#ip access-list extended 120 #进入ACL表120
R1(config-ext-nacl)#no 20
R1(config-ext-nacl)#15 deny tcp 192.168.2.0 0.0.0.255 host 192.168.4.2 eq 80
R1(config-ext-nacl)#exit
结果如下:
R1(config)#do sh ip ace
Extended IP access list 120
10 deny icmp any any
15 deny tcp 192.168.2.0 0.0.0.255 host 192.168.4.2 eq 80
30 permit ip any any
R1(config)#
注释:如需要插入某一条目,需要在条目前加数字即可!
- 访问控制列表(Access Control List,ACL)
- 访问控制列表(Access Control List,ACL)
- ACL(Access Control list)访问控制列表(二)
- ACL(Access Control List)访问控制列表(一)
- ACL(access control list)访问控制列表(理论篇)
- access control list (ACL)
- Oracle ACL(Access Control List)
- ACL(Access Control List)访问控制列表:可以基于3层、4层的数据做过滤
- Zookeeper - ACL(Access Control List)
- acl access control listadd
- Windows Azure Virtual Network (10) 使用Azure Access Control List(ACL)设置客户端访问权限
- Phalcon 访问控制列表 ACL(Access Control Lists ACL)
- ORA-24247:network access denied by access control list (ACL) 的处理方法
- Phalcon 访问控制列表 ACL(Access Control Lists ACL)
- Acl(Access Control List)访问控制列表
- Video 28-29 第十四章 IP访问控制列表 IP Access Control List(ACL)
- ACL管理:Access Control List
- ORA-24247: network access denied by access control list (ACL)
- oracle 发送邮件(job,ORA-24247: network access denied by access control list (ACL))