目录
案例1-----拒绝源IP为192.168.10.1的数据包
案例2------拒绝源IP在192.168.10.0/24整个网段的所有数据包
案例3------拒绝源IP为192.168.10.0/24所有奇数主机发送的数据包
1、ACL的产生背景及概述
- 当需要针对数据流量或者报文进行一些过滤的时候,需要一个抓取要过滤的工具。类似于过滤石灰粉和石子的过程,那么我们是需要一个滤网或者其他的过滤工具来进行筛选。经过筛选获取到的石子,是丢弃还是用作其他用途,并不是过滤工具来决定的,它是取决于调用工具的时候,来判断,是否需要这些石子,或者丢弃。
- ACL(访问控制列表)就提供了类似于滤网的功能,它可以精准匹配到想要抓取的报文或者流量,然后在不同的场景下,去应用ACL的功能。
- 它由一系列规则(即描述报文匹配条件的判断语句)组成。这些条件通常被称为五元组-分别是报文的源地址、目的地址、源端口、目的端口、端口号等。
- 通过ACL可以实现对网络中报文流的精确识别和控制,达到控制网络访问行为、防止网络攻击和提高网络带宽利用率的目的,从而切实保障网络环境的安全性和网络服务质量的可靠性。
2、ACL的应用
-
应用在接口的ACL-----过滤数据包(原目ip地址,原目 mac, 端口 五元组)
-
应用在路由协议-------匹配相应的路由条目( )
-
NAT、IPSEC VPN、QOS-----匹配感兴趣的数据流(匹配上我设置的 数据流的)
3、ACL的分类
编号2000-2999---基本ACL----依据依据数据包当中的源IP地址匹配数据(数据时从哪个IP地址过来的)
---尽量用在靠近目的点
编号3000-3999---高级ACL----依据数据包当中源、目的IP;源、目的端口;协议号匹配数据
---尽量用在靠近源的地方(可以保护带宽和其他资源)
编号4000-4999---二层ACL,MAC、VLAN-id、802.1q
4、ACL的组成
- ACL是由多条不同的规则组成的,这些规则组成了一个滤网的功能,通过permit/deny的动作,来决定是抓取还是不抓取。
acl 2000
#新建表格, 将你设置的 过滤条件放入 这个表格
rule 5 permit | deny source 匹配的条件(ip地址) 通配符掩码
- 上面是ACL的一条规则,rule是规则关键字,后面的数字5是规则编号,这个编号在配置的时候可以指明也可以不指明,但是一条规则就是一个编号,编号不能重复。
- 如果不指明编号,默认第一条规则的编号是5,后面每增加一条规则,编号就会加5,也就是说默认的编号是从5开始,步长是5,即每增加一个编号,编号就会在上一条规则编号的基础上加5。
- 之所以留出编号的间隔,是为了能够适应各种应用场景,方便在规则之间,插入新的规则。ACL在进行匹配的时候,是根据编号的顺序,从小到大一条条往下进行的,一旦由匹配到的规则,则不会继续向下匹配,如果匹配到最后都没有,则命中默认规则,默认是deny所有。
- 规则编号的默认步长可以修改,修改了步长以后,所有的规则根据新的步长重新自动排号,为新步长的整倍数,顺序不会改变。
- ACL有两个动作,permit和deny,permit是允许通过;deny是不允许通过。
- source是指根据源来进行过滤的,是过滤的条件,当然也可以有其他的一些过滤条件。后面跟的是匹配的条件(ip地址)和通配符掩码(作用:精准匹配要控制的范围 )
- 通配符为0则表示不可变,为1表示可变。举例如下:
命令: rule 5 permit source 192.168.1.1 0.0.0.255 IP地址 192.168.1.0000 0001 通配符掩码 0. 0 .0.1111 1111 表示范围 192.168.1.0--192.168.1.255
5、ACL的匹配位置
6、ACL的案例
案例1-----拒绝源IP为192.168.10.1的数据包
acl 2000
rule deny source 192.168.10.1 0.0.0.0
案例2------拒绝源IP在192.168.10.0/24整个网段的所有数据包
acl 2000
rule deny source 192.168.10.0 0.0.0.255
案例3------拒绝源IP为192.168.10.0/24所有奇数主机发送的数据包
acl 2000
rule deny source 192.168.10.1 0.0.0.254
7、ACL的配置实验
①建立拓扑图
②配置路由器的端口ip地址和子网掩码,然后用Client1和2去ping任意服务器,通则正确。
③建立普通acl,建立规则,并作用在路由器的g0/0/1端口
1.建立acl 2调用acl
acl 2000
#基本acl 列表
rule 5 deny source 192.168.1.1 0
#默认编号5 拒绝 来自192.168.1.1 的流量
int g0/0/1
traffic-filter outbound acl 2000
#数据流向
在接口下调用acl 分为两个方向
inbound方向--------当接口收到数据包时执行ACL
outbound方向-------当设备从特定接口向外发送数据时执行ACL
-----------------------
没有被acl匹配数据默认采用permit动作
-----------------------
基本acl需要调用在离目的设备最近的接口上
此时client1再访问server1,就会失败。
④建立高级 acl,不让192.168.1.1去访问192.168.2.1的tcp80端口,但可以访问21端口。
高级 acl
acl number 3000
rule 5 deny tcp source 192.168.1.1 0 destination 192.168.2.1 0 destination-port eq www(80)
[R1-GigabitEthernet0/0/0]traffic-filter inbound acl 3000
再次访问192.168.2.1的http服务,失败。但ftp服务正常。