• HCIA 访问控制列表ACL


    一、前言

    ACL又称访问控制列表,其实这个东西在很多地方都有用,可能名字不太一样但原理和功能都差不太多,比如服务器、防火墙,都有类似的东西,功能其实也就是“过滤”掉不想收到的数据包。为什么不想收到一些数据包呢?为了安全啊。

    比如你有一台对外提供web服务的服务器,所以你需要开放80端口,但是服务器内部可能还跑了一些其他的业务,使用的是6666端口。不做任何限制的话,外面的坏人就会来尝试连6666端口并试图通过这个端口获取到额外你不想对外提供的信息。ACL就是干这个的,基本操作是把所有对外端口都封闭了,然后只开80端口对外。

    二、ACL概述

    从名字上看ACL访问控制列表就是一张表,表里列了一行行的控制条件,其特性是在进行某个访问时就来查看这张表,先从第一条开始看,如果满足条件就执行这个控制条件然后结束,如果不满足这个条件就继续看下一条,直到把表内所有控制条件都看完。

    基于这样的特性,ACL的使用有两种思路,一是默认开启所有访问权限,然后将不想要的访问都拒绝了。二是默认拒绝所有访问权限,然后将需要开放的访问打开。一般来说都是采用第二种思路,第一种方式你可能写几千几万条规则不一定写的完,但对外提供的服务总是有限的。

    接着需要说的是,由于ACL这样的特性,每次有访问都需要看ACL控制表,那问题就来了,如果你写的规则特别多,可能就会直接影响路由器的效率,这也就是为什么路由器有ACL的功能我们还是需要防火墙。

    三、ACL规则

    一个简单的ACL控制条件如下:

    system-view

    acl 3500 #创建一个编号为3500的规则

    rule deny icmp source 3.3.3.2 0 destination 2.2.2.2 0 icmp-type echo #写一条控制指令

    quit

    interface GigabitEthernet 0/0/0 #进入端口

    traffic-filter inbound acl 3500 #绑定规则

    其效果是,在路由器的G0/0/0端口会按acl规则进行过滤,当发现源地址为2.2.2.2的IP,同时目的地址为3.3.3.2的包,会拒绝其icmp报文。

    所以具体流程是:

    (1)创建某个编号的规则

    (2)在规则里写控制指令

    (3)将规则绑定到路由器端口

    关于编号的一些约定如下,不同大小的编号会影响你写控制指令,比如acl 2001这样的规则就不能对目的IP进行筛选,必须要使用大于3000的编号。

     

    四、ACL实例

    考虑下面的网络结构。

     

    免ping示例

    其实就是前面的示例,因为我们需要用到源IP和目的IP,所以acl编号必须大于3000。同时这里我们要禁止所有IP的ping,所以还是有小小的修改。

    system-view

    acl 3500 #创建一个编号为3500的规则

    rule deny icmp source any destination 2.2.2.2 0 icmp-type echo #写一条控制指令

    quit

    interface GigabitEthernet 0/0/0 #进入端口

    traffic-filter inbound acl 3500 #绑定规则

    效果是任何设备的ping包都无法通过AR1的G0/0/0端口,换句话说,如果这个包不经过这个特定端口,那么是不受限的。

    五、回顾

    ACL访问控制列表如其名字那样,就是一张表,通过表里的控制指令来控制外来的访问。需要注意的是,路由器中可以自定义多个列表,不同的表编号还决定了它的功能特性。最后将表编号与端口绑定则控制策略生效。

  • 相关阅读:
    【数据结构-树】哈夫曼树及其应用
    维格云短信模板入门教程
    SIMULIA|Abaqus 2022x新功能介绍第三弹
    操作系统教程第六版——第六章笔记(1)
    C. To Add or Not to Add
    (笔记整理未完成)【图论】无向图求割点、割边
    在麒麟V10操作系统上安装MySQL数据库
    编写递归SQL的思路
    单元测试覆盖率
    【复盘】记录一次锁库的生产故障
  • 原文地址:https://blog.csdn.net/weixin_40402375/article/details/128044120