使用EVE-NG-锐捷实现ACL访问控制
一、ACL基础知识
ACL(Access Control List,访问控制列表)是网络安全和访问控制领域的重要概念
1.定义与基本原理
- ACL是网络设备(如路由器、交换机等)中用于控制网络流量和访问权限的机制,由一系列规则组成。设备根据这些规则对经过的网络数据包进行检查和匹配,依据匹配结果决定是允许还是拒绝数据包通过。
- 匹配条件通常包括源IP地址、目的IP地址、端口号、协议类型、MAC地址等。
2.分类
- 标准ACL:主要依据源IP地址来过滤数据包,编号范围一般是1-99或1300-1999。
- 扩展ACL:可根据源IP地址、目的IP地址、端口号、协议等多个条件进行过滤,编号范围通常是100-199或2000-2699。
3.工作原理
- 自上而下匹配:设备按照ACL中规则的顺序依次检查数据包,一旦数据包与某条规则匹配,就执行该规则指定的操作,不再检查后续规则。
- 隐含规则:每个ACL末尾都有一条隐含的“deny all”规则,即如果数据包不匹配任何显式规则,将被拒绝。
4.应用场景
- 网络访问控制:限制特定用户或设备访问网络资源,如允许公司内部员工访问办公系统,禁止外部用户访问。
- 流量管理:根据业务需求,限制某些类型的流量,如限制P2P下载流量,保障关键业务的网络带宽。
- 安全防护:阻止恶意流量和非法访问,如防止黑客攻击、病毒传播等,保护网络安全。
5.配置要点
- 规则编写:需准确设置匹配条件和操作,如配置扩展ACL时,要明确源和目的IP地址、端口号及协议。
- 顺序安排:合理安排规则顺序,确保先匹配更具体、更严格的规则。
- 应用接口:将ACL正确应用到相应的接口和方向,如入方向用于过滤进入设备的流量,出方向用于过滤离开设备的流量。
6.标准ACL配置
- 创建标准ACL: access-list access-list-number {permit | deny} source [wildcard-mask] ,如 access-list 1 deny 192.168.1.0 0.0.0.255 表示拒绝源IP为192.168.1.0/24网段的所有流量。access-list 1 deny host 192.168.1.10 表示拒绝源IP为192.168.1.10主机的所有流量。
- 应用ACL到接口: interface interface-type interface-number 进入接口配置模式,
- ip access-group access-list-number {in | out} 将ACL应用到接口
- 如 ip access-group 1 in 表示在入方向应用编号为1的ACL。
- 一个接口只可以应用一个ACL
7. 扩展ACL配置
- 创建扩展ACL: access-list access-list-number {permit | deny} protocol source source-wildcard destination destination-wildcard [operator port]
- 如 access-list 101 deny tcp 192.168.1.0 0.0.0.255 192.168.2.0 0.0.0.255 eq 80 表示拒绝192.168.1.0/24网段到192.168.2.0/24网段的HTTP流量。
- 应用扩展ACL到接口:与标准ACL应用方式类似,在接口配置模式下使用 ip access-group access-list-number {in | out} 。
- 一个接口只可以应用一个ACL
8.ACL限制范围
- 标准ACL:针对源IP地址做限制
- 扩展ACL:针对源IP地址,目的IP地址,源端口号,目的端口号,协议号
9.ACL的限制形式
- 针对网段做限制:IP地址段+子网掩码形式
- 针对一台主机:针对特定的某一个IP的形式
- 针对所有数据:any任何来源
二、项目案例
1.标准ACL
(1)项目拓扑
(2)项目实现
- PC1配置
配置PC1IP地址为192.168.1.10/24网关192.168.1.1
ip 192.168.1.10 255.255.255.0 192.168.1.1显示IP信息
show ip查看是否可与192.168.1.20通信
ping 192.168.1.20查看是否可与192.168.1.1通信
ping 192.168.1.1
配置ACL前:
配置ACL后:
- PC2配置
配置PC2IP地址为192.168.1.20/24网关192.168.1.1
ip 192.168.1.20 255.255.255.0 192.168.1.1显示IP信息
show ip查看是否可与192.168.1.10通信
ping 192.168.1.10查看是否可与192.168.1.1通信
ping 192.168.1.1
配置ACL前:
配置ACL后:
- R1配置
进入特权模式
enable进入全局模式
configure terminal 更改名称为R1
hostname R1进入g0/0接口
interface g0/0将g0/0接口IP地址配置为192.168.1.1/24
ip address 192.168.1.1 255.255.255.0退出到上一级
exit创建标准访问控制列表ACL1
access-list 1 拒绝 主机 192.168.1.10的数据
access-list 1 deny host 192.168.1.10创建标准访问控制列表ACL1
access-list 1 允许 任何 数据通过
access-list 1 permit any 给ACL1添加备注
access-list 1 remark deny-PC1进入g0/0接口
interface g0/0将ACL1应用到g0/0接口入方向
ip access-group 1 in退出到上一级
exit退出到上一级
exit显示正在运行的配置信息
show run显示ACL信息
show access-lists
- 基于ACL的特性,上方的配置可以简化为:access-list 1 permit host 192.168.1.20
- 只需要写一条:access-list 1 permit host 192.168.1.20就可以,因为默认ACL拒绝所有数据通过
2.扩展ACL
(1)扩展ACL实验一:
项目拓扑
项目实现
- R1配置
进入特权模式
enable进入全局模式
configure terminal 更改名称为R1
hostname R1进入g0/0接口
interface g0/0将g0/0接口IP地址配置为192.168.1.1/24
ip address 192.168.1.1 255.255.255.0退出到上一级
exit进入环回接口0
interface loopback 0配置环回接口0IP地址为123.1.1.1/24
ip address 123.1.1.1 255.255.255.0退出到上一级
exit创建扩展ACL100
ping命令基于ICMP请求的包叫做echo包,回复的包叫做echo-reply包
拒绝源地址192.168.1.10访问目的地址123.1.1.1.1(192.168.1.10请求的包不可以到达123.1.1.1)
access-list 100 拒绝 协议 源IP 目的IP
access-list 100 deny icmp host 192.168.1.10 host 123.1.1.1 echo允许其他的数据通过
access-list 100 permit ip any any 进入g0/0接口
interface g0/0将ACL100应用到g0/0接口入方向
ip access-group 100 in退出到上一级
exit退出到上一级
exit显示正在运行的配置信息
show run显示ACL信息
show access-lists
- PC1配置
配置PC1IP地址为192.168.1.10/24网关192.168.1.1
ip 192.168.1.10 255.255.255.0 192.168.1.1显示IP信息
show ip查看是否可与192.168.1.20通信
ping 192.168.1.20查看是否可与192.168.1.1通信
ping 192.168.1.1查看是否可与123.1.1.1通信
ping 123.1.1.1
开启ACL前:
开启ACL后:
- PC2配置
配置PC2IP地址为192.168.1.20/24网关192.168.1.1
ip 192.168.1.20 255.255.255.0 192.168.1.1显示IP信息
show ip查看是否可与192.168.1.10通信
ping 192.168.1.10查看是否可与192.168.1.1通信
ping 192.168.1.1 查看是否可与123.1.1.1通信
ping 123.1.1.1
开启ACL前:
开启ACL后:
(2)扩展ACL实验二:
项目拓扑
项目实现
- R1配置
进入特权模式
enable进入全局模式
configure terminal 更改名称为R1
hostname R1进入g0/0接口
interface g0/0将g0/0接口IP地址配置为192.168.1.1/24
ip address 192.168.1.1 255.255.255.0退出到上一级
exit开启telnet远程登陆,同一时间最多5个人同时登录
line vty 0 4设置密码为1234
password 1234开启认证
login退出到上一级
exit创建扩展ACL100
禁止源地址192.168.1.10通过tcp协议下的的telnet协议与目的地址192.168.1.1通信
access-list 100 拒绝 协议 源地址 目的地址 端口号(eq后也可以写协议的名称)
access-list 100 deny tcp host 192.168.1.10 host 192.168.1.1 eq 23创建扩展ACL100
允许其他的数据通过
access-list 100 允许 任意源地址 任意目的地址
access-list 100 permit ip any any 进入g0/0接口
interface g0/0将ACL100应用到g0/0接口的入方向
ip access-group 100 in退出到上一级
exit退出到上一级
exit显示正在运行的配置信息
show run显示ACL配置信息
show access-lists
- PC1配置
进入特权模式
enable进入全局模式
configure terminal 更改名称为PC1
hostname PC1进入g0/0接口
interface g0/0将g0/0接口IP地址配置为192.168.1.10/24
ip address 192.168.1.10 255.255.255.0退出到上一级
exit退出到上一级
exit查看是否可与192.168.1.20通信
ping 192.168.1.20查看是否可与192.168.1.1通信
ping 192.168.1.1 使用telnet登录到192.168.1.1
telnet 192.168.1.1
开启ACL前:
开启ACL后:
- PC2配置
进入特权模式
enable 进入全局模式
configure terminal 更改名称为PC2
hostname PC2进入g0/0接口
interface g0/0将g0/0接口IP地址配置为192.168.1.20/24
ip address 192.168.1.20 255.255.255.0退出到上一级
exit退出到上一级
exit查看是否可与192.168.1.20通信
ping 192.168.1.10查看是否可与192.168.1.1通信
ping 192.168.1.1 使用telnet登录到192.168.1.1
telnet 192.168.1.1
开启ACL前:
开启ACL后: