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.2IP,同时目的地址为3.3.3.2的包,会拒绝其icmp报文。

 

所以具体流程是:

1)创建某个编号的规则

2)在规则里写控制指令

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

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

 

 

 

四、ACL实例

考虑下面的网络结构。

 

 

 

ping示例

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

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包都无法通过AR1G0/0/0端口,换句话说,如果这个包不经过这个特定端口,那么是不受限的。

五、回顾

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

 

posted @ 2022-11-25 20:33  布兰姥爷  阅读(28)  评论(0编辑  收藏  举报