学习
实践
活动
专区
工具
TVP
写文章
专栏首页小手冰凉浅谈ACL(访问控制列表)

浅谈ACL(访问控制列表)

ACL(访问控制列表)是应用在路由器接口的指令列表。这些指令列表用来告诉路由器,那些数据包可以接收,那些数据包需要拒绝。 基本原理为:ACL使用包过滤技术,在路由器上读取OSI七层模型的第三层及第四层包头中的信息,如源地址、目的地址、源端口、目的端口等,根据预先定义好的规则,对包进行过滤,从而达到访问控制的目的。 ACL通过在路由器接口处控制数据包是转发还是丢弃来过滤通信流量。 路由器根据ACL中指定的条件来检测通过路由器的数据包,从而决定是转发还是丢弃数据包。 ACL有三种类型: 1、标准ACL:根据数据包的源IP地址来允许或拒绝数据包。标准ACL的访问控制列表号是1~99。 2、扩展ACL:根据数据包的源IP地址、目的IP地址、指定协议、端口和标志来允许或拒绝数据包。扩展ACL的访问控制列表号是100~199. 3、命名ACL允许在标准ACL和扩展ACL中使用名称代替表号。 ACL依靠规则对数据包执行检查,而这些规则通过检查数据包中的指定字段来允许或拒绝数据包。ACL通过五个元素来执行检查,这些元素位于IP头部和传输层头部中。他们分别是源IP地址、目标IP地址、协议、源端口及目标端口。

如果对接口应用了ACL,也就是说该接口应用了一组规则,那么路由器将对数据包应用该组规则进行检查

1、如果匹配了第一条规则,则不再往下检查,路由器将决定该数据包允许通过或拒绝通过。 2、如果不匹配第一条规则,则依次往下检查,直到有任何一条规则匹配,路由器将决定该数据包允许通过或拒绝通过。 3、如果最后没有任何一条规则匹配,则路由器根据默认规则将丢弃数据包。 所以,数据包要么被允许,要么被拒绝。 在ACL中,各规则的放置顺序也是很重要的。一旦找到了某一匹配规则,就结束比较过程,不再检查以后的其他规则。 创建标准ACL语法: Router(config)#access-list 1~99 { permit | deny } 源网段地址或网段(若源地址为主机,则在地址前面需要加“host”;若源地址为网段,则要在网段地址后面加反掩码,如/24的反掩码就是0.0.0.255。

例如:Router(config)#access-list 1 permit 192.168.1.0 0.0.0.255 #表示为允许192.168.1.0/24网段地址的流量通过

Router(config)#access-list 1 permit host 192.168.2.1 #表示为允许主机192.168.2.1的流量通过。

每一个ACL都有一条隐含的拒绝语句,可以拒绝所有流量,所以在做ACL规则时建议以拒绝某个网段或主机的流量通过,然后再允许所有流量通过,如下:

Router(config)#access-list 1 deny host 192.168.1.2 #拒绝192.168.1.2网段的流量通过

Router(config)#access-list 1 permit any #允许所有主机的流量通过

当以上ACL规则应用到接口上时,效果为除了192.168.1.2的流量外都可以通过。

源地址可以用 “any”来表示为所有主机。

删除ACL的规则时,在规则前加“no”即可,如:Router(config)# no access-list 1 #删除表号为1的规则

一个ACL可以配置多条规则,但是一个接口,一个方向只能应用一个ACL。

配置好的ACL规则应用到接口上的语法如下:

Router(config)#int f0/1 Router(config-if)# ip access-list 1 in/out #把表号1的规则应用到进站(in)或出站(out)方向

扩展ACL的配置语法: 语法1: Router(config)# access-list 101 permit ip 192.168.1.0 0.0.0.255 192.168.2.0 0.0.0.255 #创建一个表号为101的ACL,规则为允许192.168.1.0访问192.168.2.0网段的流量通过

Router(config)# access-list 101 deny ip any any #拒绝所有流量通过

以上规则最终应用到接口上的效果为拒绝除了192.168.1.0访问192.168.2.0的数据包以外的所有数据包通过

语法2: Router(config)# access-list 101 deny tcp 192.168.1.0 0.0.0.255 host 192.168.2.2 eq 21 #拒绝网络192.168.1.0访问主机192.168.2.2,tcp端口号21的流量通过

Router(config)# access-list 101 permit ip any any #允许所有流量通过

以上扩展ACL的规则为:拒绝网络192.168.1.0访问主机192.168.2.2,tcp端口号21的流量通过,而允许其他任何流量通过。其中命令最后的“eq”为等于XX端口号还有 lt (小于)、gt(大于)、neq(不等于)几个选项。

扩展ACL与标准ACL的区别就是扩展ACL可以基于端口号、目标地址、协议,来更加精准的控制流量是允许还是拒绝通过。 删除扩展ACL的规则的语句和删除标准ACL一致。如:Router(config)# no access-list 101 #删除表号为101的扩展ACL规则

命名ACL的配置 命名ACL在管理及维护方面更加方便,同时也支持友好的名称作为ACL名称,而不局限于使用ACL编号。 配置命名ACL的语法如下: 1、创建命名ACL:

Router(config)# ip access-list { standard | extended } access-list-name

2、如果是标准命名ACL,命令语法如下:

Router(config-std-nacl)# [ Sequence-Number ] { permit | deny } source [ source-wildcard ]

上述语法中Sequence-Number决定ACL语句在ACL列表中的位置

例如:配置规则,允许来自主机192.168.1.1/24的流量通过,而拒绝其他流量,标准命名ACL命令如下: R1(config)#ip access-list standard test #创建名为test的标准命名ACL R1(config-std-nacl)#permit host 192.168.1.1 #允许主机192.168.1.1的流量通过 R1(config-std-nacl)#deny any #拒绝其他流量 若退出后还要继续修改规则,可直接在全局模式下执行:Router(config)# ip access-list standard test进入ACL命名ACL组,继续写入如: Router(config-std-nacl)#15 permit host 192.168.2.1 然后查看: Standard IP access list cisco 10 permit 192.168.1.1 15 permit 192.168.2.1 20 deny any

若要删除ACL中某条规则的可以执行“no+规则编号”,如想删除上面规则编号为10 的可以执行“no 10” 若要删除上面已建立的命名ACL,命令语法如下: R1(config)# no ip access-list standard test 创建扩展命名的ACL语法如下:

R1(config)#ip access-list extended test #创建名为test的扩展命名ACL

Router(config-ext-nacl)# deny tcp 192.168.1.0 0.0.0.255 host 192.168.2.2 eq 21 #禁止网络192.168.1.0访问主机192.168.2.2的21端口。其中以上命令最后的“eq”命令字的作用是等于XX端口号还有 lt (小于)、gt(大于)、neq(不等于)几个选项。

Router(config-ext-nacl)# permit ip any any #允许所有流量通过

以上规则的作用是禁止192.168.1.0网络访问主机192.168.2.2的21端口,而允许其他任何流量通过。

本文参与 腾讯云自媒体分享计划 ,欢迎热爱写作的你一起参与!
本文分享自作者个人站点/博客:https://blog.51cto.com/14227204复制
如有侵权,请联系 cloudcommunity@tencent.com 删除。
登录 后参与评论
0 条评论

相关文章

  • [NetWork] ACL访问控制列表

    访问控制列表:ACL+Packet-filter 用ACL搭配包过滤 路由控制:ACL+Route-policy 用ACL将要匹配的数据提取出来,在配合路由策略...

    BreezeCloud
  • ACL-访问控制列表

    点击启动,在1号终端上ping服务器地址,然后填入服务器地址,点击登录,即可看到服务器上的目录,这里可以上传或者下载文件

    全栈程序员站长
  • 什么是访问控制列表ACL?

    在网络世界中ACL这个名词经常遇见,ACL就是访问控制列表的意思,那么本文瑞哥就带大家好好了解一下ACL。

    网络技术联盟站
  • 聊一聊ACL 访问控制列表

    访问控制列表:ACL 企业网络中的设备进行通信时,需要保障数据传输的安全可靠和网络的性能稳定,ACL是用来实现数据包识别功能的,通过定义一系列不同的规则,设备根...

    Ponnie
  • 通配符掩码的应用 ACL 访问控制列表

    ACL(Access Control List) 访问控制列表在作为数据包的过滤器以及在对指定的某种类型的数据包的优先级,起到了对某些数据包的优先级起到了限制...

    全栈程序员站长
  • 访问控制列表ACL配置规则_路由交换

    定义一系列不同的规则对数据包进行分类,针对不同的报文进行不同的处理,实现对网络访问行为的控制、限制网络流量、提高网络性能、防止网络攻击等。

    张旭博客
  • 使用 setfacl 管理文件的访问控制列表ACL

    如果你是在一个大型组织,你运行了 NFS 或者 Samba 服务给不同的用户,你将会需要灵活的挑选并设置很多复杂的配置和权限去满足你的组织不同的需求。Linux...

    Debian中国
  • ZooKeeper 笔记(5) ACL(Access Control List)访问控制列表

    zk做为分布式架构中的重要中间件,通常会在上面以节点的方式存储一些关键信息,默认情况下,所有应用都可以读写任何节点,在复杂的应用中,这不太安全,ZK通过ACL机...

    菩提树下的杨过
  • 你必须要知道的访问控制列表ACL

    为了过滤数据包,需要配置一些规则,规定什么样的数据包可以通过,什么样的数据包不能通过。这些规则就是通过访问控制列表(Access Control List)体现...

    网络技术联盟站
  • 访问控制列表(ACL)基本的配置以及详细讲解「建议收藏」

    网络时代的高速发展,对网络的安全性也越来越高。西安凌云高科技有限公司因为网络建设的扩展,因此便引入了访问控制列表(ACL)来进行控制,作为网络管理员我们应该怎...

    全栈程序员站长
  • 图解网络:访问控制列表 ACL,功能堪比防火墙!

    在计算机网络世界中,ACL是最基本的安全组件之一,是一种监视传入和传出流量并将其与一组定义的语句进行比较的功能。

    网络技术联盟站
  • Squid服务的ACL访问控制

    简介: squid服务提供了强大的访问控制功能,通过定义各种ACL(Access Control List,访问控制列表),这些列表中包含了一定的过滤和控制条件...

    星哥玩云
  • Tailscale ACL 访问控制策略完全指南!

    前面几篇文章给大家给介绍了 Tailscale 和 Headscale,包括 ?Headscale 的安装部署和各个平台客户端的接入,以及如何打通各个节点所在的...

    米开朗基杨
  • 网络访问控制列表ACL(读懂这篇就基本够了,后面有配置案例)[通俗易懂]

    访问控制列表(ACL)是一种基于包过滤的访问控制技术,它可以根据设定的条件对接口上的数据包进行过滤,允许其通过或丢弃。访问控制列表被广泛地应用于路由器和三层...

    全栈程序员站长
  • 访问控制列表(一)入门

    传输层两个重要协议TCP和UDP,本章将详细介绍其首部格式,TCP连接建立与终止的过程。

    网络豆
  • 华为路由交换技术 | 访问控制列表ACL(Access Control List )详解与配置案例

    高级ACL(3000-3999):可以匹配源ip、目标ip、源端口、目标端口等三层和四层的字段。

    网络技术联盟站
  • DNS访问控制的实现(ACL+View)

    在某些场景下,我们可能需要针对同一个网站,不同地域或不同类别的用户得到不同的解析结果,这时候,就需要通过借助DNS的访问控制功能来实现。下面就让我们一起来一探究...

    用户1456517
  • 浅谈 Apache 的访问控制配置

    为了更好地控制对网站资源的访问,所以需要为特定的网站目录添加访问授权。 客户机地址限制: 通过 Require 配置项,可以根据主机的主机名或IP地址来决定是否...

    小手冰凉

扫码关注腾讯云开发者

领取腾讯云代金券