点击关注即到哥,带你看更深一层的IT知识!
当公司搭建了一个财务服务器,由于财务服务器比较重要。只有公司员工可以访问,当外面来的访客用户电脑,如果连接到公司网络,是不可以访问到财务服务器的,那这时我们就可以通过ACL策略来限制访客用户访问财务部服务器。
ACL讲解
一、通过ACL来制定规则
每一条规则都有拒绝deny丢弃或者允许permit通过。当电脑发送过来的数据包,通过ACL列表时,因为我们创建好的ACL列表是可以关联到交换机的一个接口的,所以数据包要通过这个接口,ACL就可以抓取通过的流量进行规则分析,一个ACL里面可以多个规则条目。
可以说ACL一个抓取工具,它可以抓取需要的数据。当电脑发送过来数据,按定义需要通过ACL来抓取,然后到ACL规则中进行匹配。可以根据网络中的五元组进行抓取。
这五元素就是源IP地址、目的IP地址、协议类型、源端口、目的端口进行ACL规则制定。
当我们创建好的ACL策略,除了可以在接口中被调用,也可以在NAT被调用,在防火墙策略中被调用等等。
ACL它是有一条或者多条的permit或者deny规则rule条目组成的。第一个条目,就是一个规则,每一个条目中,都会有对这一个条目数据的处理方式,是permit允许通过,还是deny拒绝丢弃操作。
二、ACl的写法和一些参数讲解
新创建一个acl访问控制策略,编号是2000这个ACL,那ACL中来对数据的允许还是拒绝通过,就是通过ACL中的规则,这个规则就是rule这个关键词来实现的。当然一个ACL中有多个条目,每个条目有不同的规则。
ACL怎么抓取数据呢?可以根据网络五元素去挑数据的,上面的案例就是通过源IP地址挑数据的。
rule规则中的源ip地址段中的0.0.0.255是什么?这个是ACL的反掩码,如果是ACL策略,匹配某一个网段,ip地址段后面的掩码,我们就需要反着写, 这就是ACL制定的写法,习惯就好了。
每一个条目rule规则都会有一个编号,所有rule规则配置完成之后,系统还会在ACL number 2000这个ACL下面会自动创建一条系统的默认规则rule,也就是兜底策略规则,如果数据在这条ACL中的所有规则都没有匹配上,数据包会按最后一条系统隐藏的规则进行匹配。
最后的这个隐藏规则最后执行的方案是deny,拒绝。
当这个数据包被ACL抓取之后,会按顺序逐条进行匹配,如果匹配成功,就不会再往下匹配了,如果所有rule都没有匹配成功,就执行最后一条系统隐藏的deny规则。
规则编号,在ACL中第一条规则都是有编号的,当新创建一个规则,如果没有手动定义rule的编号,它默认每一条rule规则编号就是5,下一条默认就是10,每个相邻的编辑之间差值是5,缺省配置就是5。当然了,为什么是5,如果我们每配置一条rule的时候,从1、2、3、4、5。如果现在2中间要加一条rule怎么配置呢?rule的规则编号都是整数,这个调整就后面都要调整。
三、ACL中的通配符
对于ACL中的通配符,如果我们要通过ACL抓取到192.168.1.0/24网段中所有电脑,那ACL中的通配符应该如何填写呢?也就是我们的子网掩码,反着写,也称反掩码。
反掩码,ACL通配符,它是这样工作的,当如果通配符全部都是0的时候,全是0的位就是必须是严格按照实际地址去填写,当我们是192.168.1.0/24时,如果我们通配符写成了0.0.0.255,前三个都是0,那也就对应的192.168.1,这三个数值,这三个数值就是192.168.1不能改变。通配符后面的255,也是全1,那这里的数值就是可以变的,无论你配置的是192.168.1.3,还是192.168.1.5,最后的主机位是可以随便变的,因为通配符最后全是1,就不需要匹配。
精确匹配192.168.1.1/24这个IP地址的ACL通配符就是192.168.1.1 0.0.0.0 ,当然也可以将通配符写成这样192.168.1.1 0。因为通配符全是0,那是严格匹配,IP地址32个位都必须格匹配,也就是说,要和ip地址一样。所以就是匹配的是192.168.1.1这个单独的ip地址了。
匹配所有IP地址的ACL通配符就是0.0.0.0 255.255.255.255。四个ip地址是全0,通配配符是255.255.255.255,四个255,全是1,那就相当于无论网络位,还是主机位,任何ip都不需要匹配,所有ip地址都可以。
四、基本ACL、高级ACL
ACL的编号也是有区分的,这小小的ACL居然也分等级。有基本ACL和高级ACL,那两者有什么区别呢?
基本ACL,编号范围是2000-2999,它只能匹配源ip地址段。无法匹配协议及端口,如果想匹配协议及端口规则,我们就必须创建高级ACL。
高级ACL,编号范围是3000-3999,可使用 IPv4 报文的源 IP 地址、目的 IP 地址、 IP 协议类型、 ICMP类型、 TCP 源/目的端口号、 目的端口号、 UDP源/目的端口号来定义规则。
ACL匹配规则流程:
假如现在一台电脑的ip地址是192.168.1.0/24网段进行数据转发,数据进入交换机或者路由器接口之后,查看是否有ACL来抓取192.168.1.0网段的规则,如果没有,直接放行,如果有,那就要把192.168.1.0数据通过ACL抓取过来,放到rule规则中进行匹配。
先按照ACL中的rule,逐条匹配,匹配第一条rule,如果第一条规则匹配,那就看第一条rule的动作是允许还是拒绝,如果允许,就转发,如果拒绝就丢弃。
当第一条匹配成功之后,这个数据就不会再继续往下匹配了,因为数据已经在rule中做了处理了,要么拒绝通过,要么允许通过。
如果第一条rule没有匹配,那就查看第二条rule是否匹配,如果到最后都没有匹配成功,就直接按系统隐藏rule直接deny掉。
统按照ACL规则编号从小到大的顺序进行报文匹配,规则编号越小越容易被匹配。
基中ACL中的permit和deny正确的理解是允许通行和拒绝通行。
ACL被调用位置
对于路由器接口的inbound,当电脑中的数据报文到达路由器接口,这个数据就是inbound,我们可以在这个接口上做ACL的inbound方向流量策略。
对于路由器接口的outbound,当电脑中的数据报文到达路由器接口后,这个数据就是inbound,如果在这个inbound接口上没有做任何的ACL,那数据就直接进入到这个路由器了,当数据通过路由器的路由,将数据从路由器的出接口转发去时,这个出接口就是数据的outbound,那我们也可以在这个出接口上做ACL策略,绑定到这个出接口的outbound方向策略。
当数据被ACL限制访问时,要也分清楚这个数据流量,到底是inbound数据流量还是outbound流量,因为在接口绑定ACL时,需要确定这个数据流量的方向。
实验过程
我们通过实验过程来讲解一下ACL和ACL绑定的inbound方向,还是outbound方向。
需要求:访客用户网段电脑,无法访问财务服务器网段,这个该如何实现呢?
1、首先进行网络基本配置,划分三个vlan 20 30 40 。
2、配置三个vlan的网关。
3、配置两台电脑的ip地址,和服务器的ip地址。
访客网络电脑IP地址。
员工网络电脑IP地址。
服务器IP地址。
4、将两台电脑和服务器划分到各自的vlan中。
5、当电脑连接到各自己的vlan接口后,可以看到现在的vlanif网关都已经正常可以使用了。
测试一,当我们没有配置ACL访问控制列表时,看一下情况?
现在是30网段的访客户用户也是可以访问到财务服务器的。
员工网络20网段也是可以访问到财务服务器。
配置一条高级访问策略,因为我们现在是限制源ip和目的ip,如果是标准ACL没有办法限制目的,所以创建一条源是172.16.30.0/24访问目的是172.16.40.0/24地址,动作是deny,拒绝访问。
配置完成后,将这个ACL在接口G0/0/3上调用,traffic-filter inbound acl 3000。
配置完成之后,发现acl没有生效,访客网络电脑还可以ping通财务服务器,那是什么原因呢?
我们再来看一下拓扑图,访客电脑访问服务器,如果我们在G0/0/3调用ACL策略的话,针对 于访客用户的流量,到G0/0/3时,这里的流量是outbound流量。
但是我们在g0/0/3配置的inbound流量,流量方向不对了。
对于g0/0/3的进入inbound流量,应该是服务器发过来的流量才是inbound。
更改完成之后,可以看到访客电脑无法ping通财务服务器了。
当然了,我们还有一种办法,我们把g0/0/3删除traffic-filter outbound acl 3000,在g0/0/1上添加traffic-filter inbound acl 3000。
配置如下,在g0/0/1下面,将访客电脑发送到g0/0/1的inbound进入流量,再调用ACL策略。流量方向和ACL都正确,这时也可以达到最终目的。
将ACL 3000绑定到g0/0/3 outbound方向,访客电脑无法访问服务器,将g0/0/3中的acl 3000调用删除,又可以访问,然后我们又在g0/0/1 inbound方向调用acl 3000,访客电脑也还是无法访问服务器。
当然了,当访客电脑被ACL限制访问之后,服务器也是无法访问到访客网络电脑的。因为回报已经被acl阻止掉了。
可以看到员工网络的192.168.20.2,还是可以访问到财务服务器的,因为ACL中没有对192.168.20.0/24网段做限制,所以就是默认放行了。
现在是访客网络现在是无法访问到财务服务器了,但是现在又有一个要求,访客网络也无法访问到员工办公网络,那如何操作呢?
我们看一下,172.16.30.2的访客电脑,已经无法ping通服务器了,但是它还可以访问员工网络。
那我们在添加一条ACL策略。源是访客网络,目的是员工办公网络。
在接口调用的时候,一定要分清流量方向。我们在g0/0/2绑定的是outbound方向流量。
配置完成之后,可以看到访问网络,已经无法访问到员工网络了。
那如果我将acl 3001在g0/0/2调用在inbound进口流量后。
访客网络电脑,这时就可以ping通员工电脑的172.16.20.2,因为对于源172.16.30.2电脑来说,它的流量是从G0/0/2出去的,要绑定outbound出方向的流量。
如果绑定在g0/0/2 outbound就无法ping通了。
总结:
限制访客网络访客员工网络,要么就把acl 3001绑定到g0/0/1的inbound方向,要么就绑定到g0/0/2的outbound方向。流量方向不对,就会导致 ACL限制失败。
在最后,可以看到系统默念给acl的编号的步数,默认是5。