ACL概述
Access Control List——-访问控制列表
ACL重要级别:高!
ACL的作用
ACL是一种包过滤技术(可以理解为数据包传递途中的安保系统),是防火墙的重要组成部分之一!
ACL的应用场景
1、路由器:就叫ACL技术
2、防火墙:一般不叫ACL,一般称为策略
ACL和策略的区别
1、策略就是升级版的ACL。
2、ACL可以基于源ip,目的ip,端口号(源和目的),协议等对数据包做过滤。
3、策略可以基于mac地址,源ip,目的ip,端口,协议,应用层数据等对数据包做过滤。
ACL的分类
标准ACL
标准—Standard
表号:1-99或1300-1999
特点:只能基于源ip地址对包进行过滤。
扩展ACL
扩展—Extended
表号:100-199或2000-2699
特点:可以基于源IP地址,目的IP地址,目标和源端口号,协议等对包进行过滤。
ACL表的组成:
表号
条件1(过滤依据),动作1(允许通过或者拒绝通过)
条件2(过滤依据),动作2(允许通过或者拒绝通过)
条件3(过滤依据),动作3(允许通过或者拒绝通过)
当一个数据包通过的时候,会从上往下检查每一个条件,匹配到条件就停止检查,否则就一直向下匹配到最后一个条件为止。
ACL的过滤原理
ACL的原理
1、一个接口有2个方向,in和out,ACL表必须应用到接口的某个方向,才能生效!
2、一个接口的一个方向只能应用一张表!
3、如果使用标准ACL控制过滤流量,必须写在靠近目标端的端口!扩展ACL写流量的路径中的任意地方都可以,具体需要看通信需求!
4、在所有的ACL表中,最后永远有一条默认的隐藏的”拒绝所有“条目!
5、ACL在匹配规则时,是严格自上而下匹配每一条!如匹配成功某一条,则完成指定动作;如没有匹配成功某一条,则继续匹配下一条;如匹配完所有条件但依然没有匹配成功,则选择拒绝,丢弃该数据包(因为默认隐藏的拒绝所有规则生效)。(所以写好ACL条目的顺序是完成访问控制的关键)
6、 默认情况下,一张ACL表一旦创建后,不能删除某一条,也不能往中间插入新的条目,只能继续在表的后方追加新的条目!(所以如果ACL需要做修改时需要删除ACL重新编写一个新的ACL表,使用no access-list {表号}可以完成删除。)
扩展ACL编写要领
1、定位访问的源头和目标都是什么对象;
2、确定访问需求中,允许通过的数据流多还是不允许通过的数据流多,如果允许流量多,就最后一条设置全部允许规则,在最上方定制化拒绝的规则。如果拒绝流量多,就最后一条设置全部拒绝规则,在最上方定制化允许的规则。
3、最后需要将ACL表应用到指定路由器的指定接口的某个方向上,才能生效。
问题:公司所有人禁止访问财务部所有PC,只能访问服务器70.1.1.100,但是不能访问该服务器的445端口,ACL表当中的规则应该如何编写?
两条acl规则:
第一条—源:any,目标:70.1.1.100,目标端口:445,动作:拒绝
第二条—源:any,目标:70.1.1.100,动作:允许
ACL命令
基本命令
将ACL表应用到接口某个方向上
int f0/1
ip access-group {表号} in/out
查看ACL表
show ip access-list
删除ACL表
no access-list {表号}
标准ACL命令
conf t
access-list {表号} permit/deny 条件
如:access-list 1 deny 192.168.1.0 0.0.0.255 #表号:1-99 条件内容:源ip和反子网掩码 反子网掩码:0.0.0.255 0代表严格匹配,255代表不需要匹配
例如1:
access-list 1 deny 192.168.1.0 0.255.255.255 #丢弃所有源ip是192开头的数据包
例如2:
access-list 1 deny 0.0.0.0 255.255.255.255 #丢弃所有数据包
例如3:
access-list 1 deny 192.168.1.88 0.0.0.0 #丢弃源ip为192.168.1.88的数据包
厂商支持简写:
简化1:
access-list 1 deny 0.0.0.0 255.255.255.255
access-list 1 deny any
简化2:
access-list 1 deny 192.168.1.88 0.0.0.0
access-list 1 deny host 192.168.1.88
扩展ACL命令
conf t
access-list {表号} permit/deny {条件}
命令细化参数如下:
access-list {表号} permit/deny {协议} 源ip 反子网掩码 目标ip 反子网掩码 [eq 端口号]
#表号为100-199,协议为TCP/UDP/IP/ICMP,eq:等于,gt:大于,lt:小于,ge:大于等于,le:小于等于
案例:
acc 100 deny tcp 10.1.1.0 0.0.0.255 70.1.1.0 0.0.0.255 eq 80 #丢弃10.1.1.0网段发出的访问70.1.1.0网段80端口服务的数据包(http访问控制)
acc 100 deny icmp 10.1.1.0 0.0.0.255 70.1.1.0 0.0.0.255 #禁止10.1.1.0网段ping70.1.1.0网段
acc 100 permit ip any any #允许所有数据包
错误案例:
acc 100 deny ip 10.1.1.0 0.0.0.255 70.1.1.0 0.0.0.255 eq 80 #端口号只能和TCP/UDP协议搭配使用,不能搭配其他协议,因为端口号只存在于传输层
扩展ACL100
1、源:any 目标:70.1.1.100 目标端口:80 动作:permit
2、源:any 目标:70.1.1.100 动作:deny
3、源:any 目标:any 动作:permit
acc 100 permit tcp 0.0.0.0 255.255.255.255 70.1.1.100 0.0.0.0 eq 80
acc 100 deny ip 0.0.0.0 255.255.255.255 70.1.1.100 0.0.0.0
acc 100 permit ip 0.0.0.0 255.255.255.255 0.0.0.0 255.255.255.255
简化后的写法:
acc 100 permit tcp any host 70.1.1.100 eq 80
acc 100 deny ip any host 70.1.1.100
acc 100 permit ip any any
命名ACL
命名ACL优点1:
作用:可以为标准和扩展两种ACL进行自定义命名,也就是可以用字母当做表名,不用非得用数字来表达。
方法:
conf t
ip access-list standard/extended {自定义表名}
暂无评论内容