ACL技术(访问控制列表)
• Access Control List
• 访问控制列表
• 是一种包过滤技术
• ACL基于IP包头的IP地址、四层TCP/UDP头部的端口号、[五层数据]进行过滤
• ACL主要分为两大类:
○ 标准ACL
■ 表号范围:1-99
■ 特点:只能基于源IP对包进行过滤
○ 扩展ACL
■ 表号范围:100-199
■ 特点:可以基于源IP、目标IP、端口号、协议等对包进行过滤。
• ACL原理:
○ 路由器的每一个端口都视为一个门
○ 门可以进可以出,两个方向,in、out
○ ACL表就是贴在门上的名单,谁能进谁能出看门上的表就知道了
○ 但是表不能贴反了,门也有两个面呢,要贴在数据包能看到的那个面上
○ 要将表应用到接口上
○ 一个接口的一个方向只能贴一张表
• ACL表
○ 可以有多条限制,严格自上而下匹配执行。
○ 由两部分组成,条件和动作。
○ 如果没有满足条件,动作就不会生效,继续检查下一条。
○ 如果满足条件,就执行对应动作,并且不再继续向下检查。
■ 示例:
■ 这样就能过滤掉长得不帅的了。
■ 因为不满足第一条就会向下继续查找,直到找到满足条件的然后执行对应的动作。
○ 先后顺序很重要!!越细的流量越要写在最上面!!
○ 如果表里没有就干掉不让过!
• ACL命令(写ACL时会自动创建和更改对应ACL表):
○ 标准ACL:
■ conf t
■ access-list 表号 permit/deny 源IP或网段 反子网掩码
□ 反子网掩码:将正子网掩码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.1.0.0 0.0.255.255
◆ 过滤掉源IP是10.1.xxx.xxx的包(与子网掩码对应,只严格限制0对应的位)
◆ access-list 1 deny 10.1.1.2 0.0.0.0
◆ 简写:access-list 1 deny host 10.1.1.2
◆ 过滤掉源IP是10.1.1.2的包
◆ access-list 1 deny 0.0.0.0 255.255.255.255
◆ 过滤掉所有
◆ 简写:access-list 1 deny any
○ 一般情况下,access表写好不能更改,只能在末尾添加。,或者选择删除重写。
■ no access-list 表号
○ 查看ACL表
■ show ip access-list [表ID]
○ 将ACL应用到接口:
■ int fax/x
■ ip access-group 表号 in/out
■ exit
○ 将ACL应用到三层交换机要进入对应的vlan
• 怎么写不容易出错?
○ 先判断ACL位置
○ 判断最终允许还是最终拒绝
○ 将严格的控制写在前面
○ 标准ACL
■ 标准ACL尽量写在靠近目标的接口上,否则可能会误杀。
○ 扩展ACL
■ 扩展ACL尽量写在靠近源目标的接口上,以免造成其他网络设备的资源浪费。
■ 同一个网段写在一起!
■ 最上面应该是最详细的!从上到下应该是 协议 端口 单独ip 网段 any
• 扩展ACL
○ 表号:100-199
○ 特点:可以基于源IP、目标IP、端口号、协议等进行过滤
○ 案例:
■ acc 100 permit tcp host 10.1.1.1 host 20.1.1.3 eq 80
□ 允许10.1.1.1通过tcp协议访问20.1.1.3的80端口
■ acc 100 permit icmp host 10.1.1.1 20.1.1.0 0.0.0.255
□ 允许10.1.1.1通过icmp协议访问20.1.1.0网段
■ acc 100 deny ip host 10.1.1.1 20.1.1.0 0.0.0.255
□ 拒绝 10.1.1.1 访问 20.1.1.0网段
■ acc 100 permit ip any any
□ 允许所有流量通过
• 命名ACL
○ 作用:可以对标准或扩展ACL进行自定义命名
○ 优点:
■ 自定义命名更容易辨认,也便于记忆!
■ 可以任意修改、插入、删除某一条。
○ 命令:
■ 创建
■ conf t
■ ip access-list standard/extended 自定义表名
■ 开始从deny 或 permit 编写ACL条目
■ exit
■ 删除某一条
■ ip access-list standard/extended 自定义表名
■ no 条目ID
■ exit
■ 插入
■ ip access-list standard/extended 自定义表名
■ 条目ID 动作 条件
■ exit