理论 + 配置
ACL控制访问列表,按照顺序从最先输入的条目开始执行,一直按照顺序往下执行到结尾。cisco的 ACL 执行到最后,会有一条拒绝全部流量通过的条目;华为的 ACL 最后有一条允许全部流量通过的条目。当一旦匹配了某一个条目时,便立马执行,不再往下执行条目。假设配置了针对同一网段的两条控制条目,目的是禁用该网段的100 - 120IP,如果先输入允许全部流量通过的条目,而禁止100 - 120的条目输入在了后面,则该网段的所有流量都能全部通过,因为它们匹配到了第一个输入的条目:允许全部通过。所以,需要把真正需要用来控制流量的条目打在前面。
思科 的 ACL控制列表还有一条默认规则就是:在你所有条目后默认有一个deny any,当没有配置时则不会生效,一旦配置了,就需要在所有条目最后加上一个permit any any
一、ACL ( Access Control List )访问控制列表
ACL是一种包过滤技术。
ACL基于IP包头的IP地址、四层TCP/UDP头部的端口号、[5层数据]
基于三层和四层过滤
ACL在路由器上配置,也可以在防火墙上配置(一般称为策略)
ACL主要分为2大类:
1)标准ACL2)扩展ACL
标准ACL:
表号:1-99,可以写99张表特点:只能基于源IP对包进行过滤命令: conf t access-list [列表号] permit/deny [源IP或源网段] [反子网掩码]
注释:反子网掩码:将正子网掩码0和1倒置
255.0.0.0 -- 0.255.255.255
255.255.0.0 -- 0.0.255.255
255.255.255.0 -- 0.0.0.255
反子网掩码作用:用来匹配条件,与0对应的需要严格匹配,与1对应的忽略!
通配符、反掩码的计算
例如:access-list 1 deny 10.0.0.0 0.255.255.255解释:该条目用来拒绝所有源IP为10开头的!access-list 1 deny 10.1.1.1 0.0.0.0解释:该条目用来拒绝所有源IP为10.1.1.1的主机简写: access-list 1 deny host 10.1.1.1access-list 1 deny 0.0.0.0 255.255.255.255解释:该条目用来拒绝所有所有人简写: access-list 1 deny any
完整的案例:
conf tacc 1 deny host 10.1.1.1acc 1 deny 20.1.1.0 0.0.0.255acc 1 permit any查看ACL表:show ip access-list [表ID]将ACL应用到接口:int f0/x ip access-group 表号 in/out exitsh run
扩展ACL:
表号:100-199特点:可以基于源IP、目标IP、端口号、协议等对包进行过滤命令:acc 100 permit/deny [协议] [源IP或源网段] [反子网掩码] [目标IP或源网段] [反子网掩码] [eq 端口号]注释:协议:tcp/udp/icmp/ip案例:acc 100 permit tcp host 10.1.1.1 host 20.1.1.3 eq 80acc 100 permit icmp host 10.1.1.1 20.1.1.0 0.0.0.255acc 100 deny ip host 10.1.1.1 20.1.1.0 0.0.0.255acc 100 permit ip any any
ACL原理
ACL表必须应用到接口的进或出方向才生效!一个接口的一个方向只能应用一张表!进还是出方向应用?取决于流量控制总方向ACL表是严格自上而下检查每一条,所以要注意书写顺序每一条是由条件和动作组成,当流量完全满足条件当某流量没有满足某条件,则继续检查下一条标准ACL尽量写在靠近目标的地方
做流量控制,首先要先判断ACL写的位置(那个路由器?那个接口的哪个方向?)再考虑怎么写ACL。如何写?
首先要判断最终要允许所有还是拒绝所有
然后写的时候要注意:将严格的控制写在前面
一般情况下,标准或扩展ACL一旦编写号,无法修改某一条,也无法删除某一条,也无法修改顺序,也无法往中间插入新的条目,只能一直在最后添加新的条目。 如想修改或插入或删除,只能删除整张表,重新写!
conf t no access-list 表号
命名ACL:
作用:可以对标准或扩展ACL进行自定义命名
优点:自定义命名更容易辨认,也便于记忆!
可以任意修改某一条,或删除某一条,也可以往中间插入某一条
命令:
conf tip access-list standard/extended 自定义表名 开始从deny或permit编写ACL条目 exit删除某一条:ip access-list standard/extended 自定义表名 no 条目ID exit插入某一条:ip access-list standard/extended 自定义表名 条目ID 动作 条件 exit