当前位置: 首页 > article >正文

使用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后:


http://www.kler.cn/a/543370.html

相关文章:

  • 新一代SCADA: 宏集Panorama Suite 2025 正式发布,提供更灵活、符合人体工学且安全的应用体验
  • Golang GORM系列:GORM 高级查询教程
  • Wiki文档转换为Word技术
  • 【Vue中BUG解决】npm error path git
  • 8.大规模推荐系统的实现
  • JVM 类加载子系统在干什么?
  • 深度剖析观察者模式:从理论到实战的Java实现
  • Prompt 工程优化方
  • 如何本地部署DeepSeek集成Word办公软件
  • Java开发实战:使用IntelliJ IDEA 开发Spring Boot + MyBatis + MySQL的详细实现步骤
  • 【大数据安全分析】安全告警关联相关安全分析场景
  • 国际版宝塔面板安装教程(Centos7)
  • DeepSeek的大模型介绍
  • 深入 JVM 虚拟机:字符串常量池演变与 intern() 方法工作原理解析
  • 使用stm32控制esp01s
  • Hive的数据库操作和表操作
  • 未来替代手机的产品,而非手机的本身
  • SpringBoot服务器的采购上,服务器的数量和性能配置如何取舍【无标题】
  • 【vue3】入门基础知识点
  • PHP 中的除以零错误
  • 深度学习实战基础案例——卷积神经网络(CNN)基于DenseNet的眼疾检测|第4例
  • 基于Python flask-sqlalchemy的SQLServer数据库管理平台
  • WinForm 防破解、反编译设计文档
  • 2025年3月一区SCI-真菌生长优化算法Fungal growth optimizer-附Matlab免费代码
  • Citus的TPCC、TPCH性能测试
  • 时间敏感和非时间敏感流量的性能保证配置