【笔记】ACL学习笔记
前言
ACL包过滤技术学习笔记
ACL主要基于三层IP地址和四层端口号进行过滤
ACL可以在路由器上配置,也可以在防火墙上配置
ACL的原理
- ACL表必须应用到接口的进或出方向才生效
- 一个接口的一个方向只能应用一张表
- 进还是出方向取决于流量控制的总方向
- ACL表是严格自上而下检查每一条,所以要注意书写顺序
- 每一条策略是由条件和动作组成,当某流量没有满足某条件,则继续检查下一条
- 标准ACL尽量写在靠近目标的地方
- 扩展ACL尽量写在靠近起始的地方
- 一般情况下,标准ACL和扩展ACL一旦写好,无法修改某一条,也无法删除某一条,也无法修改顺序,也无法在中间插入新的项目,只能一直在最后添加新的条目。如想修改、插入、删除,只能删除正常表,重新写
基本命令
标准ACL
只能基于源IP对包进行过滤
在全局配置模式下
<num>
:表号,范围:1-99<status>
:允许还是拒绝
permit
:允许deny
:拒绝
<ip>
:源IP地址或者网段<mask>
:反子网掩码
1 | access-list <num> <status> <ip> <mask> |
简写
当
<ip> <mask>
为<ip> 0.0.0.0
时,可以简写为host <ip>
当
<ip> <mask>
为0.0.0.0 255.255.255.255
时,可以简写为any
扩展ACL
可以基于源IP、目标IP、端口号、协议等对包进行过滤
在全局配置模式下
<num>
:表号,范围:100-199<protocol>
:协议,tcp/udp/icmp/ip。如果不过滤端口号,协议通常为icmp/ip<ip_source>
:源IP地址或网段<mask_source>
:对应源IP的反子网掩码<ip_target>
:目标IP地址或网段<mask_target>
:对应目标IP的反子网掩码
1 | access-list <num> <status> <protocol> <ip_source> <mask_source> <ip_target> <mask_target> |
过滤端口号
- 如果过滤端口号,协议为tcp或者udp
<protocol>
:协议,tcp/udp/icmp/ip。如果过滤端口号,协议通常为tcp/udp<port>
:端口号<scope>
:范围
eq
:等于gt
:大于lt
:小于ge
:大于等于le
:小于等于
1 | access-list <num> <status> <protocol> <ip_source> <mask_source> <ip_target> <mask_target> <scope> <port> |
简写
当
<ip> <mask>
为<ip> 0.0.0.0
时,可以简写为host <ip>
当
<ip> <mask>
为0.0.0.0 255.255.255.255
时,可以简写为any
删除整张表
1 | no access-list <num> |
查看所有表
1 | show ip access-list |
查看单张表
1 | show ip access-list <num> |
应用到指定接口
- 进入到接口配置模式
<status>
:进规则或出规则
in
:进规则out
:出规则
1 | ip access-group <num> <status> |
反子网掩码
概念
- 将正子网掩码二进制的0和1倒置
正子网掩码 | 反子网掩码 |
---|---|
255.255.255.255 | 0.0.0.0 |
255.255.255.0 | 0.0.0.255 |
255.255.0.0 | 0.0.255.255 |
255.0.0.0 | 0.255.255.255 |
作用
- 用来匹配源IP地址或者网段,与0对应的位置需要严格匹配,与1对应的位置忽略匹配