引言
在网络中会区分三个区域:(Trust)内网,(UnTrust)外网,(DM2)非军事化区域
防火墙在网络中可以阻止DM2对Trust的访问。同理,从Trust到UnTrust或者UnTrust到Trust都过不去。
我们通过ACL可把路由器当防火墙使用。
ACL(Access Control List)访问控制列表工具,多用在三层设备。这里主要针对IPV4的ACL。ACL是可以对发来的数据进行访问控制的,它由匹配规则和匹配顺序的编号组成,不同的ACL访问控制的范围也不一样。它的用处是阻止某些流量向我们发送数据或者过滤一部分流量。
ACL分类
ACL分为基本ACL和高级ACL。
基本ACL:编号范围在2000-2999之间仅能关心流量是谁发的?比如A发出任何流量全部过滤。(因此抓取流量经常使用基本ACL)
(基本ACL主要针对IP报文的源IP地址进行匹配)
高级ACL:编号范围在3000-3999可通过选择性进行过滤(访问某些设备的某些访问),我可通过源目流量的来源和流量类型进行识别。
(高级ACL主要针对源IP地址、目的报文IP地址、协议类型和TCP或UDP的源目端口号进行匹配)
ACL由数个ACE组成,ACE(Access Control Entry 访问控制条目),ACE在ACL中属于一个策略语句。
除他们之外还有其它的ACL,但是比较常用或着说有代表意义的就是它们两个。
ACL规则编号
每一个ACL中的每一个规则都有一个规则编号
默认的匹配规则编号顺序是由序列号决定(Sequence)默认以5为一个长度:5,10,15,20等等。小的在前,大的在后,自顶而下匹配流程,一经匹配立刻执行策略。
步长
系统自动为ACL规则分配编号的时候,每个相邻的规则编号之间的差值就是步长,默认为长度5。这样方便在后续就规则中向其中插入新规则
分配原则:首条未指定的编号规定为5,也就是起始值。为后续规则分配编号的时候,使用当前ACL内最大的规则编号且是步长整数倍的最小整数作为规则编号
步长可以调整,如果值设为2,那么后续就是:2,4,6,8。。。。。
ACL匹配机制
配置ACL的设备接收到报文后,会将该报文与ACL中的规则逐条进行匹配,如果匹配不上,就会继续尝试去匹配下一条规则。一旦匹配上,则设备会对该报文执行这条规则中定义的处理动作,并且不再继续尝试与后续规则匹配。
大概就是这样的逻辑:
如果ACL不存在,则返回ACL匹配结果为:不匹配。
如果ACL存在,则查找设备是否配置了ACL的规则。
如果规则不存在,则返回匹配结果:不匹配。
如果规则存在,则系统会从ACL编号中的最小编号开始查找。
如果查找到,匹配后执行结束。
ACL使用
ACL可以进行流量的过滤放行或者进行一些数据报文的抓取。
ACL由一系列的Permit/deny语句组成的有序规则的列表。ACL为一个匹配工具,可对保温进行匹配和区分。Permit(放行),deny(拒绝)。我们抓取流量时就是根据前面两个字段进行操作的。
ACL可对IP Header与TCP/UDP Header的内容进行操作。
例:acl number 2000
rule 5 permit source 1.1.1.0 0.0.0.255 //规则编号为5,动作为放行,匹配项为(源ip地址)
注:这样的标准ACL太粗略了,应该尽可能地靠近流量目的地进行部署
例如:阻止PC1----R1----R2----R3----PC2的访问。那么我可以在R1,R2,R3的两侧进行入项调用或者出项调用。但是最好在R3右侧调用,因为可以保障R1,R2能够访问(代表中途设备可以访问)但是目的地址PC2无法访问。
注:我们在ACL配置的时候需要使用反码(通配符掩码 wild mark)高位为0,低位为1。反码的0为精准匹配,1是任意匹配。比如:10.0.0.0 0.0.0.255代表可匹配的范围是10.0.0.0 10.0.0.255都可以匹配。反码在网络中确定了地址的IP范围
因为可以让流量通过其他设备,所以基本ACL最好在目的地址处进行配置,而因为为了节约资源,所以高级ACL最好在信源处配置。
ACL不能过滤自己配置所在的路由器的流量,只能过滤其他的。
后续
ACL没有太多好说的,主要还是实际应用,无论是网络安全还是路由交换对ACL的掌握是必须的,到时候我会在实验中进行ACL配置