【网络】访问控制列表 ACL

起序:本文是在本人学习后总结的,如果你是第一次接触,还是有点难度的,希望可以帮助你。

需要的知识:

  • 路由器常用命令
  • 路由器配置路由表

一、概述

访问控制列表 ACL(Access Control List),是一种包过滤技术,基于三层和四层过滤:

  • 三层: IP 地址(基于 IP 包头IP 地址
  • 四层 :端口(基于 TCP/UDP 头部的端口号)

ACL 可以在 路由器 上配置,也可以再 防火墙 上配置(一般称为策略)

ACL 主要分为 2 大类:

  • 标准 ACL
  • 扩展 ACL

二、分类

1、标准 ACL

  • 作用:只能基于 源 IP 地址 对包进行过滤
  • 表号:1~99 and 1300~1999

命令:access-list 表号 permit/deny 源IP地址或网段 反子网掩码

# 表示匹配 10.1.1 开头的网段
access-list 1 deny 10.1.1.0 0.0.0.255

反子网掩码的作用:用来匹配的。0:严格匹配 1:不需要匹配 例如:

  • 10.1.1.1 0.0.0.255 匹配 10.1.1 开头的网段
  • 10.1.1.1 0.255.255.255 匹配 10 开头的网段
  • 10.1.1.1 0.0.0.0 匹配 1 个主机 IP
  • 0.0.0.0 255.255.255.255 匹配所有人(any)

可简化的

# 匹配一个主机 IP
access-list 1 deny 10.1.1.1 0.0.0.0		-->>	access-list 1 deny host 10.1.1.1
# 匹配所有人
access-list 1 permit 0.0.0.0 255.255.255.255	-->>	access-list 1 permit any

配置好之后,还是不能起作用,还需要将 ACL 表 应用到接口上:

# 将新建的 ACL 表绑定在 路由器 的 入口/出口 上
ip access-group 表号 in/out

查看配置的 ACL 表:

show ip access-lists

删除配置的指定 表号 的 ACL 表:

# no access-list 表号
no access-list 1

2、扩展 ACL

  • 作用:可用基于 源 IP 地址目的 IP 地址目标端口号协议 等对包进行过滤
  • 表号:100~199 and 2000~2699

命令:access-list 表号 permit/deny 协议 源IP地址或网段 反子网掩码 目标IP地址或网段 反子网掩码 [eq 端口号]

协议:常用的有 TCP / UDP / IP / ICMP

# 禁止 10.1.1 网段的所有 IP地址 访问 30.1.1.1 的 80 端口号 
access-list 100 deny tcp 10.1.1.0 0.0.0.255 host 30.1.1.1 eq 80
# 允许 10.1.1 网段的所有 IP地址 访问 30.1.1.1 的所有应用服务
access-list 100 permit ip 10.1.1.0 0.0.0.255 host 30.1.1.1

三、编写及应用原理

  1. ACL 表 必须应用到接口的某个方向才能生效,实现包过滤
  2. 一个接口的一个方向只能应用一张表
  3. 在任何一张 ACL 表 中,最后都有一条隐含的拒绝所有的条目
  4. ACL 表 在匹配数据包时,是严格自上而下匹配每一个条目
  5. 标准 ACL 尽量写在靠近目标端的位置
  6. 默认情况下,一张 标准 ACL扩展 ACL 一旦写成,将不能删除某一条,也不能插入某一条,只能往最后追加新的条目。如果需要修改,只能删除整张 ACL 表,重新写入。

小贴士:

  1. 首先判断写 ACL 表 的位置及 应用接口 :依据先判断需求的 源 IP 地址目标 IP 地址,然后就确定了控制方向
  2. 开始编写 ACL:建议从下往上写,先判断最后应该是允许所有的拒绝所有

四、实例

1、网络拓扑图

实例一张图,下面全靠编。此时的 网络拓扑图 是已经配置好的,都是互通的。

【网络】访问控制列表 ACL_第1张图片

ping 一 ping,10.1.1.1 ping 60.1.1.1,看,ping 通了。

【网络】访问控制列表 ACL_第2张图片


2、需求及解答方式

要求 10.1.1.1 禁止访问 60 网段,其他所有流量正常放行。

1)、标准 ACL

分析:标准 ACL 尽量写在靠近目标端的位置,根据 网络拓扑图路由器 的位置,ACL 表 最佳编写的位置是 路由器 R3接口 Fa0/0、Fa0/1

# 进入 `特权模式`
R3>en
# 进入 `全局配置模式`
R3#conf t
# 禁止 10.1.1.1 访问
R3(config)#access-list 1 deny host 10.1.1.1
# 允许所有访问
R3(config)#access-list 1 permit any
# 查看配置的 ACL 表
R3(config)#do show ip access-lists
# 进入 `接口配置模式`
R3(config)#int f0/1
# 将表号为 100 的 ACL表 绑定在接口编号为 1 的入口方向
R3(config-if)#ip access-group 100 in

【网络】访问控制列表 ACL_第3张图片

ping 一 ping,10.1.1.1 ping 60.1.1.1,看,显示目标主机不可达。

【网络】访问控制列表 ACL_第4张图片

2)、扩展 ACL

分析:扩展 ACL 有丰富的条件选择,所以 最佳路由器 的选择也比较多,可以是 路由器 R1、R2、R3,这里还是选择 R3

# 因为我这是在同一 路由器上配置的,所以为了使用干净的环境,先删除配置的 标准 ACL 表
R3(config)#no access-list 1
# 进入 `特权模式`
R3>en
# 进入 `全局配置模式`
R3#conf t
# 禁止 10.1.1.1 访问
R3(config)#access-list 100 deny icmp 60.1.1.0 0.0.0.255 host 10.1.1.1
R3(config)#access-list 100 permit ip 60.1.1.0 0.0.0.255 any
# 查看配置的 ACL 表
R3(config)#do sh ip access-lists
# 进入 `接口配置模式`
R3(config)#int f0/0
# 将表号为 100 的 ACL表 绑定在接口编号为 0 的出口方向
R3(config-if)#ip access-group 100 out

【网络】访问控制列表 ACL_第5张图片

ping 一 ping,10.1.1.1 ping 60.1.1.1,看,显示目标主机不可达。

【网络】访问控制列表 ACL_第6张图片

如果对您有帮助,点个赞再走吧。

你可能感兴趣的:(网络)