使用访问控制列表(ACLS)进行包过滤
由于传入和传出的不需要的和危险的流量,网络往往很脆弱(存在安全风险)。需要一个安全机制来控制流量,并提供一个安全的远程管理访问。我们可以通过限制、允许和拒绝不必要的流量来做到这一点。
本文将介绍如何利用访问控制列表(ACL)通过过滤所有传入和传出的数据包来控制流量。我们使用各种类型的控制列表,我们将介绍如何使用它们来配置路由器接口上的ACL。
前提条件
要继续学习本教程,读者应该。
- 对如何使用任何网络模拟工具配置网络及其组件有良好的了解。
- 对基本的网络概念有初步的了解。
- 知道如何操作Cisco数据包追踪器。
术语
- 访问控制列表(ACL)是指一组允许/允许或拒绝任何通过路由器的流量的规则。它在第三层工作,通过过滤和控制从一个路由器到另一个路由器的流量来提供安全。
默认情况下,ACL没有配置在路由器上,所以网络用户必须配置每个路由器的接口。
- 访问控制条目(ACE)是指用于允许或拒绝流量的规则的集合。创建ACL时,必须考虑这些规则的顺序。
- 流入路由器的流量被称为入口。
- 出口指的是流出路由器的流量。
- 包过滤是指通过分析流经网络的入口和出口数据包,根据给定的标准转发或丢弃这些数据,从而控制对网络的访问。它发生在
OSI model的第3和第4层。
访问控制列表操作
一旦在一个接口上配置了特定的ACL,它就会遵循一个操作程序来过滤流向路由器的流量。
-
路由器首先从数据包头中提取源IP地址。
-
从ACL的顶部开始,路由器将地址与每个访问控制条目(ACE)依次进行比较。
-
如果发现匹配,路由器就执行允许或阻止该数据包的指令。其他控制条目则不作分析。
-
如果在控制条目中没有找到匹配项,数据包将被丢弃,因为总有一个隐含的拒绝控制条目自动应用于所有访问控制列表。
访问控制列表类型
有两种类型的访问控制列表:编号的和命名的ACL。
-
编号的指的是那些用数字指定的ACL。
-
命名的是使用名称配置的ACL。
命名的和编号的ACL都被分为两类。
-
标准ACL - 这种类型只根据源IP地址过滤流量。它们的范围是1-99,在最接近目的地的地方实施,以阻止所有的服务,如FTP、HTTP、Telnet。
-
扩展ACL - 根据源IP、目标IP、协议类型和端口号进行数据包过滤。
它们的范围是100-199,在最接近源头的地方实施,以阻止网络管理员指定的选定数量的服务。
命令访问列表是用来显示可以在路由器接口上配置的可用ACL的。
R1(config)# access-list ?
<1-99> IP standard access list
<100-199> IP extended access list
<1100-1199> Extended 48-bit MAC address access list
<1300-1999> IP standard access list (expanded range)
<200-299> Protocol type-code access list
<2000-2699> IP extended access list (expanded range)
<700-799> 48-bit MAC address access list
rate-limit Simple rate-limit specific access list
template Enable IP template acls
Router(config)# access-list
访问控制列表任务
路由器使用ACL来执行以下任务。
- 通过限制网络流量来提高网络性能。
- 对某些网络流量进行优先排序。
- 定义网络安全访问规则。
- 流量控制。
访问控制列表的配置
接下来,我们将学习如何创建和配置标准IPv4 ACL,以及它们如何过滤流量。要创建一个命名的标准ACL,我们使用以下全局配置命令。
Router(config)# ip access-list standard access-list-name
例如,我们有一个名为PERMIT-ACCESS的标准类型的访问列表。
R1(config)# ip access-list standard PERMIT-ACCESS
R1(config-std-nacl)# remark ACE permits host 192.168.10.10
R1(config-std-nacl)# permit host 192.168.10.10
R1(config-std-nacl)#
对于编号的ACL,我们使用。
Router(config)# access-list access-list-number {deny | permit | remark text} source [source-wildcard] [log]
例如,我们创建了ACL 10,它允许一个特定的主机进入互联网。
R1(config)# access-list 10 remark ACE permits ONLY host 192.168.10.10 to the internet
R1(config)# access-list 10 permit host 192.168.10.10
R1(config)# do show access-lists
Standard IP access list 10
10 permit 192.168.10.10
R1(config)#
让我们考虑一下下面的局域网。

我们将创建一个编号的ACL,ACL 20,拒绝主机192.168.10.10,但允许网络192.168.10.0/24上的所有其他主机。
首先配置ACL 20 ACE,使用host 关键字拒绝192.168.10.10的主机,然后创建允许所有其他主机的ACL。
R1(config)#access-list 20 deny host 192.168.10.10
R1(config)#access-list 20 permit 192.168.10.0 0.0.0.255
由于ACL 20只适用于来自LAN 1的流量,因此可以将ACL应用于G0/0/0 R1的接口的传入流量。进入接口G0/0/0模式,应用ACL 20入站,并返回到全局配置模式。
R1(config)#interface g0/0/0
R1(config-if)#ip access-group 20 in
R1(config-if)#exit
然后我们将创建一个命名的标准ACL,允许主机192.168.10.10,但拒绝网络192.168.20.0/24上的所有其他主机。首先,创建一个名为LAN2-FILTER的标准ACL。
R1(config)#ip access-list standard LAN2-FILTER
创建一个ACE,允许主机192.168.10.10,并使用any 关键字拒绝所有其他主机。
R1(config-std-nacl)#permit host 192.168.10.10
R1(config-std-nacl)#deny any
R1(config-std-nacl)#exit
LAN2-FILTER将被应用到LAN2的出站流量上。进入接口G0/0/1模式,应用ACL LAN2-FILTER出站,并返回到全局配置模式。
R1(config)#interface g0/0/1
R1(config-if)#ip access-group LAN2-FILTER out
R1(config-if)#exit
注意:在创建和配置ACL后,你可以在priviledge exec模式下使用
show access-lists或show run | section ip access-list命令来验证你的配置。
要删除一个ACL,请使用
no access-list命令,后面跟上访问列表的名称或编号。例如,no access-list 10来删除ACL 10。
总结
正如我们所看到的,访问控制列表在流量控制和整个网络的安全方面起着关键作用。这使得网络不容易受到不需要的和危险的流量影响。
综上所述,我们已经。
- 了解了什么是访问控制列表,它们的操作,以及如何创建和配置它们。
- 探讨了用于包过滤的不同类型的ACL。
- 配置了一个网络,创建并配置了标准的命名和编号的ACL。
- 了解了配置的ACL如何用于允许或拒绝流量。