一、ACL
访问控制列表ACL(Access Control List)是由一条或多条规则组成的集合。所谓规则,是指描述报文匹配条件的判断语句,这些条件可以是报文的源地址、目的地址、端口号等。
ACL本质上是一种报文过滤器,规则是过滤器的滤芯。设备基于这些规则进行报文匹配,可以过滤出特定的报文,并根据应用ACL的业务模块的处理策略来允许或阻止该报文通过。
基于ACL规则定义方式,可以将ACL分为基本ACL、高级ACL、二层ACL等种类。基本ACL根据源IP地址、分片信息和生效时间段等信息来定义规则,对IPv4报文进行过滤。如果只需要根据源IP地址对报文进行过滤,可以配置基本ACL。
二、应用规则
1.“3P”原则
在路由器上应用ACL时,可以为每种协议(Per Protocol)、每个方向(Per Direction)
和每个接口(Per Interface)配置一个ACL,一般称为“3P原则”。
(1)一个ACL只能基于一种协议,因此每种协议都需要配置单独的ACL。
(2)经过路由器接口的数据有进(ln)和出(Out)两个方向,因此在接口上配置访问控制列表也有进(In)和出(Out)两个方向。每个接口可以配置进方向的ACL,也可以配置出方向的ACL,或者两者都配置,但是一个ACL只能控制一个方向。
(3)一个ACL只能控制一个接口上的数据流量,无法同时控制多个接口上的数据流量。
2.语句顺序决定了对数据的控制顺序
ACL的语句是一种自上而下的逻辑排列关系。数据匹配过程中是依次对语句进行比较,一旦匹配成功则按照当前语句控制策略处理,不再与之后的语句进行比较。因此,正确的语句顺序才能得到所需的控制效果。
3.至少有一条允许(Permit)语句
所有ACL的最后一条语句都是隐式拒绝语句,表示当所有语句都无法匹配时,将拒绝数据通过并自动丢弃数据,以防数据意外进入网络。因此,在写“拒绝(deny)”的ACL时,一定至少要有一条允许(Permit)语句,否则配置ACL的接口将拒绝任何数据通过,影响正常的网络通信。
4.最有限制性的语句应该放在ACL的靠前位置
最有限制性的语句放在ACL的靠前位置,可以首先过滤掉很多不符合条件的数据,节省后面语句的比较时间,从而提高路由器的工作效率。
三、ACL案例
1.华为的acl 列表范围
华为与思科的访问控制列表序号有所不同,如下
acl 访问控制列表,对匹配的数据进行限制.
基本acl 2000~2999 可以对源ip限制
高级acl 3000~3999 可以对源ip,目标ip,协议,端口限制
2.案例1-------拒绝某台机器访问
按照图-2所示拓扑结构,禁止主机pc2与pc1通信,而允许所有其他流量
配置思路:
①在路由器上配置两个端口,设置好ip地址
②配置好主机的ip/子网掩码/网关
③在路由器上添加一条访问控制权限,基本acl 2000
④把这条acl限制规则应用到g0/0/1的端口上(可以称作监听端口)
R1配置:
[Huawei]interface GigabitEthernet 0/0/0 //为0端口配置ip
[Huawei-GigabitEthernet0/0/0] ip address 192.168.1.254 24
[Huawei]acl 2000 //进入acl 2000 列表
[Huawei-acl-basic-2000]rule deny source 192.168.2.1 0 //定义一条规则 deny代表拒绝 source代表来源 0代表仅此一台
[Huawei]interface GigabitEthernet 0/0/1
[Huawei-GigabitEthernet0/0/1]ip address 192.168.2.254 24
[Huawei-GigabitEthernet0/0/1]traffic-filter inbound acl 2000 //用端口1来监听这条规则
测试:
1) pc1 ping pc3 , 通信成功
2) pc1 ping pc2, 通信失败
3) pc2 ping pc3, 通信成功
3.案例2------拒绝所有机器访问
还是刚才的案例,将[Huawei-acl-basic-2000]rule deny source 192.168.2.1 0更改为
[Huawei-acl-basic-2000]rule deny any 即可
4.案例3-------仅允许某台机器访问
实验要求:仅允许pc2访问pc1
根据acl规则4:最有限制性的语句应该放在ACL的靠前位置 和规则3: 至少有一条允许(Permit)语句
配置如下:
[Huawei]interface GigabitEthernet 0/0/0 //为0端口配置ip
[Huawei-GigabitEthernet0/0/0] ip address 192.168.1.254 24
[Huawei]acl 2000 //进入acl 2000 列表
[Huawei-acl-basic-2000]rule permit source 192.168.2.1 0 //定义一条规则 permit代表拒绝 source代表来源 0代表仅此一台
[Huawei-acl-basic-2000]rule deny any // 拒绝所有访问
[Huawei]interface GigabitEthernet 0/0/1
[Huawei-GigabitEthernet0/0/1]ip address 192.168.2.254 24
[Huawei-GigabitEthernet0/0/1]traffic-filter inbound acl 2000 //用端口1来监听这条规则
5.案例4----------拒绝访问ftp或者http服务
实验要求: 禁止pc2访问pc1的ftp服务,禁止pc3访问pc1的www服务,所有主机的其他服务不受限制
tcp与http都是基于tcp协议的,所以我们可以拒绝tcp协议来限制
R1配置:
[Huawei]acl 3000 //拒绝tcp为高级控制,所以3000起
[Huawei-acl-adv-3000]rule deny tcp source 192.168.2.1 0 destination 192.168.1.1 //destination代表目的地地址
[Huawei-acl-adv-3000]rule deny tcp source 192.168.2.2 0 destination 192.168.1.1
[Huawei]interface g0/0/1
[Huawei-GigabitEthernet0/0/1]traffic-filter inbound acl 3000 //在接口中应用acl