访问控制列表(Access Control List,简称ACL)是根据报文字段对报文进行过滤的一种安全技术。访问控制列表通过过滤报文达到流量控制、攻击防范以及用户接入控制等功能,在现实中应用广泛。ACL根据功能的不同分为标准ACL和扩展ACL。标准ACL只能过滤报文的源IP地址;扩展ACL可以过滤源IP、目的IP、协议类型、端口号等。ACL的配置主要分为两个步骤:(1)根据需求编写ACL;(2)将ACL应用到路由器接口的某个方向。本章主要介绍各种常用ACL的编写与应用。

1.1 实验目的

(1)了解访问控制列表的工作过程

(2)掌握标准访问控制列表的配置和应用

(3)熟悉标准ACL的调试

1.2 实验原理

1. 什么是访问控制列表(Access Control List)?

访问控制列表(Access Control List)是一种路由器配置脚本,它根据从数据包报头中发现的条件来控制路由器应该允许还是拒绝数据包通过。通过接入控制列表可以在路由器、三层交换机上进行网络安全属性配置,可以实现对进入路由器、三层交换机的输入数据流进行过滤,但ACL 对路由器自身产生的数据包不起作用。

当每个数据包经过关联有 ACL 的接口时,都会与 ACL 中的语句从上到下一行一行进行比对,以便发现符合该传入数据包的模式。ACL 使用允许或拒绝规则来决定数据包的命运,通过此方式来贯彻一条或多条公司安全策略。还可以配置 ACL 来控制对网络或子网的访问。另外,也可以在VTY线路接口上使用访问控制列表,来保证telnet的连接的安全性。

默认情况下,路由器上没有配置任何 ACL,不会过滤流量。进入路由器的流量根据路由表进行路由。如果路由器上没有使用 ACL,所有可以被路由器路由的数据包都会经过路由器到达下一个网段。ACL 主要执行以下任务:

l 限制网络流量以提高网络性能。例如,如果公司政策不允许在网络中传输视频流量,那么就应该配置和应用 ACL 以阻止视频流量。这可以显著降低网络负载并提高网络性能。

l 提供流量控制。ACL 可以限制路由更新的传输。如果网络状况不需要更新,便可从中节约带宽。

l 提供基本的网络访问安全性。ACL 可以允许一台主机访问部分网络,同时阻止其它主机访问同一区域。例如,“人力资源”网络仅限选定用户进行访问。

l 决定在路由器接口上转发或阻止哪些类型的流量。例如,ACL 可以允许电子邮件流量,但阻止所有 Telnet 流量。

l 控制客户端可以访问网络中的哪些区域。

l 屏蔽主机以允许或拒绝对网络服务的访问。ACL 可以允许或拒绝用户访问特定文件类型,例如 FTP 或 HTTP。

2.访问控制列表的分类

ACL的类型主要分为IP标准访问控制列表(Standard IP ACL)和IP扩展访问控制列表(Extended IP ACL)两大类:

l IP标准访问控制列表(Standard IP ACL)。标准 ACL 根据源 IP 地址允许或拒绝流量。数据包中包含的目的地址和端口无关紧要。

l IP扩展访问控制列表(Extended IP ACL )。扩展 ACL 根据多种属性(例如,协议类型、源和 IP 地址、目的 IP 地址、源 TCP 或 UDP 端口、目的 TCP 或 UDP 端口)过滤 IP 数据包,并可依据协议类型信息(可选)进行更为精确的控制。

此外还包括一些复杂的ACL,例如命名ACL,基于时间的ACL,动态ACL,自反ACL等。

3.ACL工作原理

ACL 要么配置用于入站流量,要么用于出站流量。入站 ACL 传入数据包经过处理之后才会被路由到出站接口。入站 ACL 非常高效,如果数据包被丢弃,则节省了执行路由查找的开销。当测试表明应允许该数据包后,路由器才会处理路由工作。图1就是入站ACL的工作原理图。

图1 入站ACL工作原理

图中显示了入站 ACL 的逻辑。如果数据包报头与某条 ACL 语句匹配,则会跳过列表中的其它语句,由匹配的语句决定是允许还是拒绝该数据包。如果数据包报头与 ACL 语句不匹配,那么将使用列表中的下一条语句测试数据包。此匹配过程会一直继续,直到抵达列表末尾。最后一条隐含的语句适用于不满足之前任何条件的所有数据包。这条最后的测试条件与这些数据包匹配,并会发出“拒绝”指令。此时路由器不会让这些数据进入或送出接口,而是直接丢弃它们。最后这条语句通常称为“隐式 deny any 语句”或“拒绝所有流量”语句。由于该语句的存在,所以 ACL 中应该至少包含一条 permit 语句,否则 ACL 将阻止所有流量。出站 ACL 传入数据包路由到出站接口后,由出站 ACL 进行处理。

图2 出站ACL工作原理

图2中显示了出站 ACL 的逻辑。在数据包转发到出站接口之前,路由器检查路由表以查看是否可以路由该数据包。如果该数据包不可路由,则丢弃它。接下来,路由器检查出站接口是否配置有 ACL。如果出站接口没有配置 ACL,那么数据包可以发送到输出缓冲区。

4. 3P原则

在路由器上应用 ACL 的一般规则我们简称为3P原则。即我们可以为每种协议 (per protocol)、每个方向 (per direction)、每个接口 (per interface) 配置一个 ACL:

l 每种协议一个 ACL: 要控制接口上的流量,必须为接口上启用的每种协议定义相应的 ACL。

l 每个方向一个 ACL:一个 ACL 只能控制接口上一个方向的流量。要控制入站流量和出站流量,必须分别定义两个 ACL。

l 每个接口一个 ACL:一个 ACL 只能控制一个接口(例如快速以太网 0/0)上的流量。

5. ACL的放置位置

每一个路由器接口的每一个方向,每一种协议只能创建一个ACL;在适当的位置放置 ACL 可以过滤掉不必要的流量,使网络更加高效。ACL 可以充当防火墙来过滤数据包并去除不必要的流量。ACL 的放置位置决定了是否能有效减少不必要的流量。例如,会被远程目的地拒绝的流量不应该消耗通往该目的地的路径上的网络资源。每个 ACL 都应该放置在最能发挥作用的位置。基本的规则是:

l 将扩展 ACL 尽可能靠近要拒绝流量的源。这样,才能在不需要的流量流经网络之前将其过滤掉。

l 因为标准 ACL 不会指定目的地址,所以其位置应该尽可能靠近目的地。

6. 标准ACL的配置命令

标准访问控制列表是通过使用IP包中的源IP地址进行过滤,使用的访问控制列表号1到99来创建相应的ACL。标准ACL占用路由器资源很少,是一种最基本最简单的访问控制列表格式。应用比较广泛,经常在要求控制级别较低的情况下使用。

要配置标准ACL,首先在全局配置模式中执行以下命令:

Router(config)#access-list access-list-number {remark | permit | deny} protocol source source-wildcard [log]

参数说明:

参数

参数含义

access-list-number

标准ACL号码,范围从0-99,或1300-1999

remark

添加备注,增强ACL的易读性

permit

条件匹配时允许访问

deny

条件匹配时拒绝访问

protocol

指定协议类型,eg:IP,TCP,UDP,ICMP等

source

发送数据包的网络地址或者主机地址

source-wildcard

通配符掩码,和源地址对应

log

对符合条件的数据包生成日志消息,该消息将发送到控制台

其次,配置标准 ACL 之后,可以在接口模式下使用 ip access-group 命令将其关联到具体接口:

Router(config-if)#ip access-group access-list-number  {in | out}

参数

参数含义

ip access-group

标准ACL号码,范围从0-99,或1300-1999

access-list-number

标准ACL号码,范围从0-99,或1300-1999

in

参数in限制特定设备与访问列表中地址之间的传入连接

out

参数out限制特定设备与访问列表中地址之间的传出连接

7.标准ACL的配置实例

地址表:

设备

接口

IP地址

子网掩码

R1

Fa 0/0

192.168.1.1

255.255.255.0

S 0/0/0

172.16.1.2

255.255.255.252

R2

S 0/0/0

172.16.1.1

255.255.255.252

S 0/0/1

172.16.1.5

255.255.255.252

Fa 0/0

192.168.1

255.255.255.0

R3

S 0/0/1

172.16.1.6

255.255.255.252

Fa 0/0

192.168.20.1

255.255.255.0

PC1

NIC

192.168.1.10

255.255.255.0

PC2

NIC

192.168.10

255.255.255.0

PC3

NIC

192.168.20.10

255.255.255.0

表1 IP地址表

本实验案例要求只允许PC1通过telnet方式登录路由器R1,R2和R3。只允许PC1所在网段访问PC3所在网段。整个网络可以配置RIP或者OSPF路由协议保证整个网络的畅通。

(1) 步骤1:配置路由器R1

R1(config-if)#inter fa 0/0

R1(config-if)#ip add 192.168.1.1 255.255.255.0

R1(config-if)#no shut

R1(config-if)#inter s 0/0/0

R1(config-if)#ip add 172.16.1.2 255.255.255.252

R1(config-if)#clock rate 64000

R1(config-if)#no shut

R1(config-if)#exit

R1(config)#enable secret cisco  //配置enable密码

R1(config)#router ospf 1

R1(config-router)#network 172.16.1.0 0.0.0.3 area 0

R1(config-router)#network 192.168.1.0 0.0.0.255 area 0  //以上3条为配置ospf路由协议,保证网络正常联通

R1(config)#access-list 2 permit 192.168.1.10  //定义ACL2,允许源IP地址为192.168.1.10的数据包通过

R1(config-if)#line vty 0 4

R1(config-line)#access-class 2 in  //在接口下应用定义的ACL2,允许IP地址为192.168.1.10的主机通过TELNET连接到路由器R1

R1(config-line)#password cisco   //配置TELNET远程登录密码为cisco

R1(config-line)#login

(2)步骤2:配置路由器R2

R2(config)#inter s0/0/0

R2(config-if)#ip add 172.16.1.1 255.255.255.252

R2(config-if)#clock rate 64000

R2(config-if)#no shut

R2(config-if)#exit

R2(config)#inter s0/0/1

R2(config-if)#ip add 172.16.1.5 255.255.255.252

R2(config-if)#clock rate 64000

R2(config-if)#no shut

R2(config-if)#exit

R2(config)#inter fa 0/0

R2(config-if)#ip add 192.168.1 255.255.255.0

R2(config-if)#no shut

R2(config-if)#exit

R2(config)#enable secret cisco   //配置enable密码

R2(config)# router ospf 1

R2(config-router)#network 172.16.1.0 0.0.0.3 area 0

R2(config-router)#network 172.16.1.4 0.0.0.3 area 0

R2(config-router)#network 192.168.20.0 0.0.0.255 area 0  //以上4条为配置ospf路由协议,保证网络正常联通
R2(config)#access-list 2 permit 192.168.1.10  //定义ACL2,允许源IP地址为192.168.1.10的数据包通过
R2(config-if)#line vty 0 4
R2(config-line)#access-class 2 in   //在接口下应用定义的ACL2,允许IP地址为192.168.1.10的主机通过TELNET连接到路由器R2
R2(config-line)#password cisco    //配置TELNET远程登录密码为cisco
R2(config-line)#login
(3)步骤3:配置路由器R3
R3(config)#inter s 0/0/1
R3(config-if)#ip add 172.16.1.6 255.255.255.252
R3(config-if)#clock rate 64000
R3(config-if)#no shut
R3(config-if)#exit
R3(config)#inter fa 0/0
R3(config-if)#ip add 192.168.20.1 255.255.255.0
R3(config-if)#no shut
R3(config-if)#exit
R3(config)#enable secret cisco    //配置enable密码
R3(config)# router ospf 1
R3(config-router)#network 172.16.1.4 0.0.0.3 area 0
R3(config-router)#network 192.168.20.0 0.0.0.255 area 0     //以上3条为配置ospf路由协议,保证网络正常联通
R3(config)#access-list 1 permit 192.168.1.0  0.0.0.255  //定义ACL1,允许源IP地址为192.168.1.0/24的数据包通过
R3(config)#access-list 1 deny any
R3(config)#interface fa 0/0
R3(config-if)#ip access-group 1 out   //在接口下应用ACL1, 允许IP地址为192.168.1.0/24的IP包从fa 0/0接口离开路由器R3
R3(config)#access-list 2 permit 192.168.1.10     //定义ACL2,允许源IP地址为192.168.1.10的数据包通过
R3(config-if)#line vty 0 4
R3(config-line)#access-class 2 in   //在接口下应用定义的ACL2,允许IP地址为192.168.1.10的主机通过TELNET连接到路由器R3
R3(config-line)#password cisco    //配置TELNET远程登录密码为cisco
R3(config-line)#login
【说明】
①ACL定义好后可以在很多地方应用,接口上应用只是其中之一,其他的常用应用包括在vty下用”access-class”命令调用,用来控制Telnet的访问,“access-class”命令只对标准ACL有效。
②访问控制列表表项的检查按自上而下的顺序进行,并且从第一个表项开始,所以必须考虑在访问控制列表中定义语句的次序;访问控制列表最后一条是隐含的拒绝所有deny any;
③路由器不对自身产生的IP数据包进行过滤;
④我们另外,尽量使标准的访问控制列表靠近目的,由于标准访问控制列表只使用源地址,如果将其靠近源会阻止数据包流向其他端口
⑤对于编号标准ACL,新添加的ACL条目只能加到最后,不能插到原来ACL条目中间,所以如果想在原来的编号标准ACL中插入某条条目,只能删掉原来的ACL内容,重新编写。
(4)实验调试
R3#show ip access-lists  //该命令用来查看所定义的IP访问控制列表
 Standard IP access list 1
   10 permit   192.160.1.0,wildcard bits 0.0.0.3(11 matches)
   20 deny any (405 matches)
Standard IP access list 2
   10 permit 192.168.1.10(2 matches)
以上输出表明路由器R2上定义的标准访问控制列表为”1”和”2”,括号中的数字表示匹配条件的数据包的个数,可以用”clear access-list counters”命令将访问控制列表计数器清零。
R3#show ip interface fa 0/0
FastEthernet0/0 is up, line protocol is up (connected)
  Internet address is 192.168.20.1/24
  Broadcast address is 255.255.255.255
  Address determined by setup command
  MTU is 1500
  Helper address is not set
  Directed broadcast forwarding is disabled
  Outgoing access list is 1
Inbound  access list is not set  ......
***省略后面输出***
以上输出表明在接口fa 0/0的出方向应用了访问控制列表1

访问控制列表--标准ACL相关推荐

  1. 访问控制列表(ACL)

    更多文章请移步:www.yanjun.pro 1.访问控制列表(ACL)简介 1.1.ACL 概述 访问控制列表 ACL(Access Control List)是由一条或多条规则组成的集合.所谓规则 ...

  2. H3C交换机典型访问控制列表(ACL)配置实例

    H3C交换机典型访问控制列表(ACL)配置实例 2010-02-02 22:41:18     一      组网需求: 1.通过配置基本访问控制列表,实现在每天8:00-18:00时间段内对源IP为 ...

  3. 访问控制列表--扩展ACL、命名的ACL

    2.1 实验目的 (1)理解扩展ACL和标准ACL的区别 (2)掌握扩展ACL的配置和应用 (3)熟悉扩展ACL的调试 2.2 实验原理 1.扩展ACL配置命令 为了更加精确地控制流量过滤,我们可以使 ...

  4. 允许其它网段访问centos服务器_访问控制列表-ACL

    在企业网络通信时,要保证网络的安全可靠性和稳定性.访问控制列表ACL(Access Control List)可以定义一系列不同的规则,设备根据这些规则对数据包进行分类,并针对不同类型的报文进行不同的 ...

  5. Vs2019 C# .net core 将证书添加到受信任的根证书存储失败,出现以下错误:访问控制列表(ACL)结构无效...

    https://www.cnblogs.com/xiyuan/p/10632579.html 使用 vs2017 创建一个 ASP.NET Core Web 应用程序 -> Ctrl + F5 ...

  6. HCIA 第七天 ACL访问控制列表

    文章目录 ACL 访问控制列表 标准ACL 扩展ACL telnet 远程登录 ACL 访问控制列表 访问限制:在路由器流量进或出的接口上匹配流量,之后对其进行控制 定义感兴趣流量 匹配规则 自上而下 ...

  7. ACL访问控制列表【笔记|实验】

    一.访问控制列表概述 1.访问控制列表(ACL):读取第三层.第四层包头信息,根据预先丁含义好的规则对包进行过滤. 2.访问控制列表的处理过程:如果匹配第一条规则,则不再往下检查,路由器将决定该数据包 ...

  8. 0基础学RS(二十七)ACL访问控制列表

    一.概述 访问控制列表(ACL)是一种基于包过滤的访问控制技术,它可以根据设定的条件对接口上的数据包进行过滤,允许其通过或丢弃. ACL分为基本ACL和高级ACL. 二.基本ACL 基本ACL针对网络 ...

  9. 网络安全技术——ACL技术(访问控制列表)

    想看华为[ENSP]ACL配置实验的朋友,可以移步我的这一篇文章: https://blog.csdn.net/weixin_62594100/article/details/123942609htt ...

最新文章

  1. 【JZOJ5064】【GDOI2017第二轮模拟day2】友好城市 Kosarajo算法+bitset+ST表+分块
  2. plot参数详解python_30行Python代码实现3D数据可视化
  3. 基于Salmon的转录组定量流程
  4. 计算机视觉:目标检测的发展历程与基础概念
  5. 12306订票候补是个坑_还在加钱抢票?12306已屏蔽多个抢票软件渠道!
  6. php输出PDF的文件流_怎么用PHP在HTML中生成PDF文件
  7. 101个免费的VMware工具
  8. python读取hdf5文件_科学网—python读hdf5文件 - 钱磊的博文
  9. 光纤接口怎么接 图解_视频光端机怎么连接,视频光端机接法图解
  10. 【luogu P2831 愤怒的小鸟】 题解
  11. Date 当前程序日期格式 参数设置 DecimalSeparator
  12. 【2018百度之星程序设计大赛初赛】degree
  13. linux环境变量大全,Linux环境变量总结
  14. 【附源码】计算机毕业设计java学生网上请假系统设计与实现
  15. CNC:CNC计算机数控系统技术之数控仿真宏程序代码讲解、案例应用集合之详细攻略
  16. matlab生成轨道不平顺谱程序,用于轨道不平顺复现试验的驱动试验谱生成方法
  17. PyQt5实战之二维码生成器(一):基本界面设计
  18. 小米手机页面显示android,小米手机连接电脑不显示文件怎么办?
  19. redis安装Windows
  20. CentOS7 yum方式安装MySQL 5.7

热门文章

  1. <论文阅读>LVI-SAM: Tightly-coupled Lidar-Visual-Inertial Odometry via Smoothing and Mapping
  2. 使用JavaScript设置闹钟
  3. 部署项目到云服务器上所遇到的困难
  4. 学霸养成记:日常学习必备的8款高效软件
  5. 【已解决】有关 xmind 8 U9 序列号一直失效的问题
  6. 猫猫学iOS之微博国际版的一个关于线程调用的异常修复Main Thread Checker: UI API called on a background thread 异常
  7. windows下cmd中切换路径与目录查看
  8. 【EMC电磁兼容】01.01——缘由及认证
  9. iOS 14 Termius [No route to host] 解决方案
  10. 关于在线提供产品3D CAD模型的九问九答?