ACL

ACL

ACL(Access Control List):访问控制列表


ACL是一种包过滤技术,可过滤掉一些报文。

基于三层和四层过滤。

一般配置在三层端口上,一个端口有进(进入网络设备)和出(从网络设备出去)两种情况。


用途:流量控制,匹配条目(NAT)。

ACL原理

1)ACL表必须应用到接口的进或出方向,建表+应用才完整。

2)一个接口的一个方向(进/出)只能应用一张ACL表!

3)ACL表是严格自上而下检查每一条,所以要注意书写顺序。

4)ACL表中每一条记录是由条件和动作(即允许permit和拒绝deny)组成,当数据帧满足执行条件时(无论被允许还是被拒绝),就不会再看下面的记录,直接执行动作,不满足时才匹配下面的记录。末尾隐含一条deny所有报文的指令。也就是说,当接收到的数据包和ACL所有的明细条目都不匹配的时候,则就会触发这条隐藏的指令,直接将报文丢弃。

5)书写顺序一般由小范围到大范围,自行琢磨。

6)一般情况下,标准或扩展ACL一旦编写,无法修改某一条,也无法删除某一条,也无法往中间插入新的条目,只能一直在最后添加新的条目如想修改插入或删除,只能删除整张表,重新写。后面有不一般的!


标准ACL

ACL表号(范围1-99)

标准ACL只能基于源IP地址进行过滤。

access-list 表号 permit/deny 源IP或源网段 反子网掩码    #设置标准ACL的配置
注:本文设备命令是cisco的设备命令

表号就是ACL 的ID。


反子网掩码

将正子网掩码0和1倒置

255.0.0.0 -> 0.255.255.255

255.255.0.0 -> 0.0.255.255

255.255.255.0 -> 0.0.0.255

作用:用来匹配条件,与0对应的需要严格匹配,与1对应的忽略

如:access-list 1 deny 10.0.0.0 0.255.255.255

255对应的位置是谁无所谓,10.1.0.0,10.1.0.1,这些都是一样的,与0对应的10,20.0.0.0和10.0.0.0就不一样(这里的一样/不一样是指匹配条件上),所以这条命令意思就是拒绝源IP为10.x.x.x(即10 网段)的数据包通过。

tips:反子网掩码全为0就是具体IP(host),全为255就是全部人(any)。


扩展ACL

可以基于源IP、目标IP、端口号、协议对包进行过滤

access 表号 permint/deny 协议 源IP或源网段 反子网掩码 目标IP 或源网段 反子网掩码 [eq 端口号]([]号代表可有可无)

协议部分可以有:tcp/udp/icmp/ip......等协议,后面的端口号与前面的协议对应

注:当有端口号时,拒绝/接受该应用该协议的端口号。

无端口号时,拒绝/接受 基于上面协议的全部端口号。


eq是等于号

类似:neq(不等于)lt(小于)le(小于等于)gt(大于)ge(大于等于)


如:access 100 permit tcp 10.1.1.1 0.0.0.0 20.1.1.3 0.0.0.0 eq 80

这条命令就是允许10.1.1.1访问20.1.1.3的80端口,当去掉80时,就允许10.1.1.1访问20.1.1.3的基于tcp协议的全部端口号。


命名ACL

可以对标准或扩展ACL进行自定义命名(本身拥有标准/扩展ACL的功能)

特点:可以任意修改某一条,或删除某一条,也可以往中间插入某一条

ip access-list standard/extended 自定义表名

这里的standard和extended就是选择设定为标准或扩展ACL。


命令可参考里面的40、ACL部分:参考

posted @ 2023-08-15 23:44  ^cyi^  阅读(54)  评论(0编辑  收藏  举报