1 技术背景
在网络数据传输过程中,我们经常会经历这样的情况:在传输过程中,有的数据是我们想要的,而有的数据我们并不需要,如果没有ACL技术,我们传输数据的时候,发送方就得小心小心再小心的先去做数据整理,避免发到对方不想要的报文。这样不仅影响收发效率,万一不小心被别有用心的人在发送的数据中“加点料”,还会引起更大的安全隐患。为了能够对发送的报文进行过滤控制,访问控制列表(Access Control List)技术应运而生。访问控制列表(ACL)是一种基于包过滤的访问控制技术,它可以根据设定的条件对接口上的数据包进行过滤,允许其通过或丢弃。访问控制列表被广泛地应用于路由器和三层交换机,借助于访问控制列表,可以有效地控制用户对网络的访问,从而最大程度地保障网络安全。
2 工作原理
2.1主要原理
ACL使用包过滤技术,在路由器上读取OSI七层模型的第3层和第4层包头中的信息。如源地址,目标地址,源端口,目标端口等,根据预先定义好的规则,对包进行过滤,从而达到访问控制的目的。
ACL是一组规则的集合,它应用在路由器的某个接口上。对路由器接口而言,访问控制列表有两个方向。出:已经过路由器的处理,正离开路由器的数据包。
入:已到达路由器接口的数据包。将被路由器处理。
路由器检查这个端口是否有ACL控制进入数据包。如果有,根据ACL中的条件指令,检查这个数据包。如果数据包是被允许的,就查询路由表,决定数据包的目标端口。路由器检查目标端口是否存在ACL控制流出的数据包。若不存在,这个数据包就直接发送到目标端口。若存在,就再根据ACL进行取舍。然后在转发到目的端口。
2.2配置遵循的条件
ACL 指令需要应用于入站数据流或者应用于出站数据流。入站 ACL 是指对到来的分组进行处理后在路由到主站接口,效率高。出站 ACL 是指将分组路由到出站接口,然后根据 ACL 对其进行处理。一般配置不会这样,会增加路由器的工作量。特殊情况下需要计算机进行内网访问服务器。ACL 的运行顺序一般是从上到下,每次一条语句。当外来的信息进入路由器接口时,在 ACL 中会对于相应的条件进行指令设置, 指令满足进行立即执行,指令不满足自动跳转到下一行指令。ACL 配置的命令要将限制条件明确的指令放在前面, 限制条件宽泛的指令放在后面, 否则会影响相关条件的判断。
2.3 ACL 访问列表
ACL 访问列表是 ACL 实现功能的基本条件。信息通过对比 ACL 控制列表来进行数据拒绝还是通过的判断,基本的配置内容如下:
(1)访问控制列表的编号指明了使用何种协议的访问列表。
(2)每个端口、 每个方向、 每条协议只能对应于一条访问列表。
(3)访问列表的内容决定了数据的控制顺序。
(4)具有最严格限制条件的语句应放在访问控制列表的最上面。
(5)在访问列表的最后有一条隐含声明:deny any-(拒绝所有)每一条正确的访问列表都至少应该有一条允许语句。
(6)先创建访问列表, 然后应用到端口上。
(7)访问列表不能过滤路由器自己产生的数据。
3 ACL的基本原则和实现方式
3.1标准网络控制列表
1-99 和 1300-1999 基于源 IP 地址过滤,也就是说只考虑信号发出端 IP 地址的形式,不考虑其他的形式。
3.2扩展网络控制列表
100-199 和 2000-2699 (基于源、 目的 IP 地址 :源、目的 TCP/UDP 端口、 协议类型)。标准网络控制列表和扩展网络控制列表的区别:标准网络控制列表由于只能拒绝固定端源 IP 发出的信息, 所以应用的时候具有一定的局限性。 而扩展网络控制列表既可以控制信息的源发出,又可以控制信息送的方向。 例如:如果要控制一台办公计算机只可以访问办公网站,不能访问游戏等娱乐网站, 就要利用扩展网络控制列表对于信息的源和目的都进行限制,才能准确地完成先关的操作。另一方面, 扩展访问控制列表的限制手段较为灵活。对于信息的限制, 扩展网络控制列表可以根据协议等不同的特性将某一类的网址进行限制, 但是不影响源计算机对于其他网址的访问, 灵活地对于上网工作进行规范。
3.3配置原则
ACL 访问控制列表在配置的过程当中一定要包含一下几种内容:基于每一种协议配置一个 ACL(数据通过某种形式来的),即指数据进入路由器时遵守哪一种网络访问协议;于每一个方向配置一个 A-CL (数据在网络中的流向), 要将数据是进入路由器还是从路由器向外发送标记清楚, 即分清信息的内外;基于一个接口配置一个 ACL( ACL 在哪一个接口上进行加载实现);ACL 的指令不能直接在路由器中进行使用, 必须要将指令放在路由器的端口处才能正常地工作。
4 应用领域
业务分类 | 应用场景 | 涉及业务模块 |
登录控制 | 对交换机的登录权限进行控制,允许合法用户登录,拒绝非法用户登录,从而有效防止未经授权用户的非法接入,保证网络安全性。例如,一般情况下交换机只允许管理员登录,非管理员用户不允许随意登录。这时就可以在Telnet中应用ACL,并在ACL中定义哪些主机可以登录,哪些主机不能。 | Telnet、SNMP、FTP、 TFTP、SFTP、HTTP |
对转发的报文进行过滤 | 对转发的报文进行过滤,从而使交换机能够进一步对过滤出的报文进行丢弃、修改优先级、重定向、IPSEC保护等处理。例如,可以利用ACL,降低P2P下载、网络视频等消耗大量带宽的数据流的服务等级,在网络拥塞时优先丢弃这类流量,减少它们对其他重要流量的影响。 | QoS流策略、NAT、IPSEC |
对上送CPU处理的报文进行过滤 | 对上送CPU的报文进行必要的限制,可以避免CPU处理过多的协议报文造成占用率过高、性能下降。例如,发现某用户向交换机发送大量的ARP攻击报文,造成交换机CPU繁忙,引发系统中断。这时就可以在本机防攻击策略的黑名单中应用ACL,将该用户加入黑名单,使CPU丢弃该用户发送的报文。 | 黑名单、白名单、用户自定义流 |
路由过滤 | ACL可以应用在各种动态路由协议中,对路由协议发布和接收的路由信息进行过滤。例如,可以将ACL和路由策略配合使用,禁止交换机将某网段路由发给邻居路由器 | BGP、IS-IS、OSPF、 OSPFv3、RIP、RIPng、组播协议 |
5 仿真实验
要求R1和R2不能互访,PC1也不能访问PC4,其他可以互相访问
5.1 配置详情
R1:
R2:
5.2 在R1上ping仿真测试
6 结束语
结束了对于ACL访问控制列表的自学,我对网络安全和数据保护的重要性有了更深的理解。通过学习和实践,我了解到ACL不仅是一种技术手段,更是一种理念,它帮助我们构建更加安全、可靠的信息环境。
同时,我也意识到,随着科技的发展,网络安全问题将越来越复杂,我们需要不断学习新的知识和技术,以应对未来的挑战。因此,我会把这次学习作为一个起点,继续深化我的网络安全知识,提高我在这一领域的专业能力。