访问控制列表ACL原理与配置(包过滤防火墙)

知识改变命运,技术就是要分享,有问题随时联系,免费答疑,欢迎联系! 

  • 企业网络中的设备进行通信时,需要保障数据传输的安全可靠和网络的性能稳定。
  • 访问控制列表ACLAccess Control List)可以定义一系列不同的规则,设备根据这些规则对数据包进行分类,并针对不同类型的报文进行不同的处理,从而可以实现对网络访问行为的控制、限制网络流量、提高网络性能、防止网络攻击等等。

 ACL应用场景

  •  ACL可以通过定义规则来允许或拒绝流量的通过。
  • ACL是由一系列规则组成的集合。设备可以通过这些规则对数据包进行分类,并对不同类型的报文进行不同的处理。
  • 本示例中,网关RTA允许192.168.1.0/24中的主机可以访问外网,也就是Internet;而192.168.2.0/24中的主机则被禁止访问Internet。对于服务器A而言,情况则相反。网关允许192.168.2.0/24中的主机访问服务器A,但却禁止192.168.1.0/24中的主机访问服务器A

 

  •  ACL可以根据需求来定义过滤的条件以及匹配条件后所执行的动作。
  • 设备可以依据ACL中定义的条件(例如源IP地址)来匹配入方向的数据,并对匹配了条件的数据执行相应的动作。在本示例所述场景中,RTA依据所定义的ACL而匹配到的感兴趣流量来自192.168.2.0/24网络,RTA这些感兴趣流量进行加密(虚拟局域网VPN中会进行介绍)之后再转发

ACL分类 

  •  根据不同的划分规则,ACL可以有不同的分类。最常见的三种分类是基本ACL、高级ACL和二层ACL
1. 基本 ACL 可以使用报文的源 IP 地址、分片标记和时间段信息来匹配报文,其编号取值范围是 2000-2999
2. 高级 ACL 可以使用报文的源 / 目的 IP 地址、源 / 目的端口号以及协议类型等信息来匹配报文。高级 ACL 可以定义比基本 ACL 更准确、更丰富、更灵活的规则,其编号取值范围是 3000-3999
3. 二层 ACL 可以使用源 / 目的 MAC 地址以及二层协议类型等二层信息来匹配报文,其编号取值范围是 4000-4999

 ACL规则

 

  •  每个ACL可以包含多个规则,RTA根据规则来对数据流量进行过滤。
  • 一个ACL可以由多条“deny | permit”语句组成,每一条语句描述了一条规则。设备收到数据流量后,会逐条匹配ACL规则,看其是否匹配。如果不匹配,则匹配下一条。一旦找到一条匹配的规则,则执行规则中定义的动作,并不再继续与后续规则进行匹配。如果找不到匹配的规则,则设备不对报文进行任何处理。需要注意的是,ACL中定义的这些规则可能存在重复或矛盾的地方。规则的匹配顺序决定了规则的优先级,ACL通过设置规则的优先级来处理规则之间重复或矛盾的情形。
  • ARG3系列路由器支持两种匹配顺序:配置顺序和自动排序。
  • 配置顺序按ACL规则编号(rule-id)从小到大的顺序进行匹配。设备会在创建ACL的过程中自动为每一条规则分配一个编号,规则编号决定了规则被匹配的顺序。例如,如果将步长设定为5,则规则编号将按照51015…这样的规律自动分配。如果步长设定为2,则规则编号将按照2468…这样的规律自动分配。通过设置步长,使规则之间留有一定的空间,用户可以在已存在的两个规则之间插入新的规则。路由器匹配规则时默认采用配置顺序。另外,ARG3系列路由器默认规则编号的步长是5
  • 自动排序使用“深度优先”的原则进行匹配,即根据规则的精确度排序。
  • 本示例中,RTA收到了来自两个网络的报文。默认情况下,RTA会依据ACL的配置顺序来匹配这些报文。网络172.16.0.0/24发送的数据流量将被RTA上配置的ACL2000的规则15匹配,因此会被拒绝。而来自网络172.17.0.0/24的报文不能匹配访问控制列表中的任何规则,因此RTA对报文不做任何处理,而是正常转发。

基本ACL配置 

[RTA]acl 2000

[RTA-acl-basic-2000]rule deny source 192.168.1.0 0.0.0.255

[RTA]interface GigabitEthernet 0/0/0

[RTA-GigabitEthernet 0/0/0]traffic-filter outbound acl 2000

  •  acl [ number ] 命令用来创建一个ACL,并进入ACL视图。
  • rule [ rule-id ] { deny | permit }  source { source-address source-wildcard | any } 命令用来增加或修改ACL的规则。deny用来指定拒绝符合条件的数据包,permit用来指定允许符合条件的数据包,source用来指定ACL规则匹配报文的源地址信息,any表示任意源地址。
  • traffic-filter { inbound | outbound }aclacl-number }命令用来在接口上配置基于ACL对报文进行过滤。
  • 本示例中,主机A发送的流量到达RTA后,会匹配ACL2000中创建的规则rule deny source 192.168.1.0 0.0.0.255
  • 因而将被拒绝继续转发到Internet。主机B发送的流量不匹配任何规则,所以会被RTA正常转发到Internet

配置确认

[RTA]display acl 2000

 Basic ACL 2000, 1 rule

 Acl's step is 5

  rule 5 deny source 192.168.1.0 0.0.0.255

 [RTA]display  traffic-filter applied-record

 -----------------------------------------------------------

 Interface                   Direction  AppliedRecord      

 -----------------------------------------------------------

 GigabitEthernet0/0/0        outbound   acl 2000

 -----------------------------------------------------------

  • 执行display acl <acl-number>命令可以验证配置的基本ACL
  • 本例中,所配置的ACL只有一条规则,即拒绝源IP地址在192.168.1.0/24范围的所有IP报文。
  • 执行display traffic-filter applied-record命令可以查看设备上所有基于ACL进行报文过滤的应用信息,这些信息可以帮助用户了解报文过滤的配置情况并核对其是否正确,同时也有助于进行相关的故障诊断与排查。

 高级ACL配置

 

[RTA]acl 3000

[RTA-acl-adv-3000]rule deny tcp source 192.168.1.0 0.0.0.255 destination 172.16.10.1 0.0.0.0 destination-port eq 21

[RTA-acl-adv-3000]rule deny tcp source 192.168.2.0 0.0.0.255 destination 172.16.10.2 0.0.0.0

[RTA-acl-adv-3000]rule permit ip

[RTA-GigabitEthernet 0/0/0]traffic-filter outbound acl 3000

  •  基本ACL可以依据源IP地址进行报文过滤,而高级ACL能够依据源/目的IP地址、源/目的端口号、网络层及传输层协议以及IP流量分类和TCP标记值等各种参数(SYN|ACK|FIN等)进行报文过滤。
  • 本示例中,RTA上定义了高级ACL3000,其中第一条规则“rule deny tcp source 192.168.1.0 0.0.0.255 destination 172.16.10.1 0.0.0.0 destination-port eq 21”用于限制源地址范围是192.168.1.0/24,目的IP地址为172.16.10.1,目的端口号为21的所有TCP报文;第二条规则“rule deny tcp source 192.168.2.0 0.0.0.255 destination 172.16.10.2 0.0.0.0 ”用于限制源地址范围是192.168.2.0/24,目的地址是172.16.10.2的所有TCP报文;第三条规则“rule permit ip”用于匹配所有IP报文,并对报文执行允许动作。

配置验证 

[RTA]display acl 3000

Advanced ACL 3000, 3 rules

Acl's step is 5

rule 5 deny tcp source 192.168.1.0 0.0.0.255 destination 172.16.10.1 0 destination-port eq sftp

rule 10 deny tcp source 192.168.2.0 0.0.0.255 destination 172.16.10.2 0

rule 15 permit ip

  [RTA]display  traffic-filter applied-record

 -----------------------------------------------------------

 Interface                   Direction  AppliedRecord      

 -----------------------------------------------------------

 GigabitEthernet0/0/0        outbound   acl 3000

 -----------------------------------------------------------

  •  执行display acl <acl-number>命令可以验证配置的高级ACL
  • 显示信息表明:RTA上一共配置了3条高级ACL规则。第一条规则用于拒绝来自源IP地址192.168.1.0/24,目的IP地址为172.16.10.1,目的端口为21SFTP)的TCP报文;第二条规则用于拒绝来自源IP地址192.168.2.0/24,目的IP地址为172.16.10.2的所有TCP报文;第三条规则允许所有IP报文通过。

 ACL应用-NAT

 

  •  本例要求通过ACL来实现主机A和主机B分别使用不同的公网地址池来进行NAT转换。
  •  ACL还可用于网络地址转换操作,以便在存在多个地址池的情况下,确定哪些内网地址是通过哪些特定外网地址池进行地址转换的。例如,某企业网络作为客户连接到多个服务供应商网络,企业网络内的用户位于不同的网段/子网,他们期望分别通过某个特定的地址组进行地址转换来实现报文转发。这种情况极有可能发生在连接不同服务供应商网络的路由器上行端口。
  • 本示例中,要求192.168.1.0/24中的主机使用地址池1中的公网地址进行地址转换,而192.168.2.0/24中的主机使用地址池2中的公网地址进行地址转换。

ACL应用-NAT 

[RTA]nat address-group 1 202.110.10.8 202.110.10.15

[RTA]nat address-group 2 202.115.60.1 202.115.60.30

[RTA]acl 2000

[RTA-acl-basic-2000]rule permit source 192.168.1.0 0.0.0.255

[RTA-acl-basic-2000]acl 2001

[RTA-acl-basic-2001]rule permit source 192.168.2.0 0.0.0.255

[RTA-acl-basic-2001]interface GigabitEthernet0/0/0

[RTA-GigabitEthernet0/0/0]nat outbound 2000 address-group 1

[RTA-GigabitEthernet0/0/0]nat outbound 2001 address-group 2

  •  执行nat outbound <acl-number> address-group <address-group number>命令,可以将NATACL绑定。
  • 本示例中,私网192.168.1.0/24将使用地址池220.110.10.8-220.110.10.15进行地址转换,私网192.168.2.0/24将使用地址池202.115.60.1-202.115.60.30进行地址转换。

本章总结

问:高级ACL可以基于哪些条件来定义规则?

答:高级ACL可以基于源/目的IP地址,源/目的端口号,协议类型以及IP流量分类和TCP标记值(SYN|ACK|FIN等)等参数来定义规则。

  • 19
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
ACL(Access Control List)是一种用于控制网络流量的技术,可以根据设定的条件对数据进行过滤和控制。思科设备(如路由器和交换机)支持ACL配置,以实现网络安全和流量控制。 以下是一个示例ACL配置的方法: 1. 首先,进入思科设备的特权模式(Privileged EXEC mode)。 2. 进入全局配置模式(Global Configuration mode),使用以下命令: ``` configure terminal ``` 3. 创建一个ACL,可以选择创建标准ACL或扩展ACL。例如,创建一个标准ACL,使用以下命令: ``` access-list <ACL号> {permit | deny} <源地址> [掩码] ``` 其中,ACL号是一个唯一的标识符,用于区分不同的ACL规则。permit表示允许匹配的数据通过,deny表示拒绝匹配的数据通过。源地址和掩码用于指定要匹配的数据的源IP地址。 例如,创建一个标准ACL,拒绝源IP地址为192.168.1.0/24的数据通过,使用以下命令: ``` access-list 1 deny 192.168.1.0 0.0.0.255 ``` 4. 将ACL应用到接口上,使用以下命令: ``` interface <接口> ip access-group <ACL号> {in | out} ``` 其中,接口是要应用ACL的接口,ACL号是之前创建的ACL的标识符。in表示应用ACL到接口的入方向,out表示应用ACL到接口的出方向。 例如,将ACL 1应用到接口GigabitEthernet0/1的入方向,使用以下命令: ``` interface GigabitEthernet0/1 ip access-group 1 in ``` 5. 完成ACL配置后,保存配置并退出配置模式,使用以下命令: ``` end write memory ``` 以上是一个简单的思科ACL配置的示例。根据实际需求,可以根据不同的条件和规则创建和应用ACL来实现网络流量的控制和安全保护。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值