第21节 ACL(访问控制列表)原理及实验—根据设定的条件对接口上的数据包进行过滤

第21节 ACL(访问控制列表)原理及实验—根据设定的条件对接口上的数据包进行过滤,第1张

第21节 ACL(访问控制列表)原理及实验—根据设定的条件对接口上的数据包进行过滤

目录

1 ACL概述2 ACL原理3 ACL分类

3.1 标准ACL3.2 扩展ACL 4 编写ACL的步骤5 命名ACL6 实验1—基于Cisco Packet Tracer

6.1 实验要求6.2 实验步骤6.3 实验具体思路及命令 7 实验2—基于Cisco Packet Tracer

7.1 实验要求7.2 实验步骤7.3 实验具体思路及命令 8 归纳总结参考文章

1 ACL概述

(1)定义:Access Control List 访问控制列表,其实是一种包过滤技术。访问控制列表(ACL)是一种基于包过滤的访问控制技术,它可以根据设定的条件对接口上的数据包进行过滤,允许其通过或丢弃。
(2)作用:

1)访问控制列表被广泛地应用于路由器和三层交换机,借助于访问控制列表,可以有效地控制用户对网络的访问,从而最大程度地保障网络安全。2)当ACL表应用在路由器接口上时,ACL中指令用来告诉路由器哪些数据包可以收、哪些数据包需要拒绝。3)其他场合大多数起到条件匹配的功能。

(3)基于什么过滤:三层IP包头(源IP地址、目标IP地址)、四层头部(TCP、UDP端口号)、[5层数据(偶尔)]。
(4)应用场合:路由器和三层交换机、防火墙配置(一般称为策略)。本节内容主要介绍应用于路由器及三层交换机的ACL。

tips:
1)本节的ACL是对网络资源的控制。
2)为什么ACL是一种包过滤技术呢,为什么不是帧呢?由于是对IP包进行过滤。
3)防火墙不建议对5层数据进行过滤,因为会降低速度。防火墙主要是过滤网络流量,但是对病毒木马并不是专场,需要过滤病毒木马,可以买IDS和IPS。

2 ACL原理

(1)ACL表必须应用到接口的进或出方向才生效。如下图,进出(in/out)是针对路由器而言,在每个接口上都有两个方向。

(2)一个接口的一个方向(进或出)仅应用一张ACL表。
(3)应用到进还是出方向取决于流量控制的总方向。
(4)检查顺序:ACL表严格自上而下逐条检查,因此条目顺序很重要。
(5)ACL表中自上而下有多个条目,每个条目由条件与动作构成。每当有流量来时,严格自上而下逐条检查条目,①当流量完全满足条件时,执行动作;②当流量不完全满足条件时,继续检查下一条;③当所有条件都不满足时,则拒绝通过,这是隐藏在ACL表最后的。
(6)案例:

1)案例1
2)案例2

3)案例3

3 ACL分类

ACL主要分为标准ACL和扩展ACL。其中扩展ACL运用得更多。

3.1 标准ACL

(1)表号范围:1~99。只要将表号设置在这个范围内,就是标准ACL表。
(2)特点:只能基于数据包中的源IP地址对包进行过滤。
(3)配置位置:流量流经的路由器上,由于标准ACL表只能检查源IP,因此需要尽可能配置在离目标近的路由器,以避免误杀。
(4)应用于进口还是出口,取决于流量控制的总方向。
(5)要应用到哪个路由器就在哪个路由器上配置命令:

'''创建标准ACL及编写标准ACL'''
en
conf t
access-list 表号(如1) 动作 条件       	                    #每条命令均需要表明针对哪个表
access-list 表号(如1) permit/deny 源IP或源网段 反子网掩码	#每条命令均需要表明针对哪个表
#反子网掩码:将正子网掩码0和1取反,例如正子网掩码255.255.255.0对应反子网掩码为0.0.0.255
#反子网掩码的作用:用来匹配,与0对应的需要严格匹配,与1对应的忽略。
access-list 1 deny 10.1.1.1 0.0.255.255				#表示拒绝所有源IP为10.1.x.x的数据包
access-list 1 deny 10.1.0.0 0.0.255.255				#为了更方便理解且没有歧义,上一行一般写成这样
access-list 1 deny 10.1.1.1 255.255.255.255			#表示拒绝所有人
access-list 1 deny any								#上一行的简写
access-list 1 permit any							#表示允许所有数据包通行
access-list 1 deny 10.1.1.1 0.0.0.0  			    #表示拒绝源IP为10.1.1.1的主机
access-list 1 deny host 10.1.1.1					#上一行的简写

'''查看表'''
en
show ip access-list 表号(如1)		#查看表1,如果不指定表号,则查看所有ACL表。

'''删除表'''
en
conf t
no access-list 表号(如1)			#删除表,需要指定表号。

'''编辑完ACL表后,需要将ACL表应用于哪个接口哪个方向'''
en
conf t
int f0/x
ip access-group 表号(如1) in/out	#in或out二选一
exit

(6)完整案例:

#禁止源IP10.1.1.1的通过,禁止20.1.1.0网段的通过,其他所有都放行
conf t
acc 1 deny host 10.1.1.1
acc 1 deny 20.1.1.0 0.0.0.255
acc 1 permit any
3.2 扩展ACL

(1)表号范围:100~199。
(2)特点:可以基于源IP地址、目标IP地址、端口号、协议等对IP包进行过滤。
(3)配置位置:流量流经的路由器上,由于扩展ACL表条件丰富,因此尽可能配置在离源IP近的路由器,以减少路由器负担。
(4)应用于进口还是出口,取决于流量控制的总方向。
(5)要应用到哪个路由器就在哪个路由器上配置命令:

'''创建标准ACL及新增条目'''
en
conf t
#标准命令,要满足所有条件才执行动作。
#协议一般写tcp/udp/ip/icmp,当有写端口号时,必须写对应的协议TCP或UDP。注意tcp/udp/icmp均需要流经ip。
#当需求为拒绝某IP/网段访问某目标IP/网段的所有服务时,协议写IP。
#[]表示可选项,即除了端口号其余的都要写,eq表示等于。
acc 表号 permit/deny 协议 源IP或源网段 反子网掩码 目标IP或目标网段 反子网掩码 [eq 端口号] 

# 表示允许主机10.1.1.1访问主机20.1.1.3的TCP80端口
acc 100 permit tcp host 10.1.1.1 host 20.1.1.3 eq 80

# 表示禁止主机10.1.1.1访问任何服务器的UDP53端口,该主机将无法进行DNS解析。
acc 100 deny udp host 10.1.1.1 any eq 53

#表示禁止主机10.1.1.1访问网段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基于TCP的服务,一般很少这样用
acc 100 deny tcp host 10.1.1.1 20.1.1.0 0.0.0.255 

#表示禁止主机10.1.1.1ping20.1.1.0网段
acc 100 deny icmp host 10.1.1.1 20.1.1.0 0.0.0.255 

# 表示允许所有通过
acc 100 permit ip any any

'''查看表'''
en
show ip access-list 1		#查看表1,如果不指定表号,则查看所有ACL表。

'''删除表'''
en
conf t
no access-list 1			#删除表,需要指定表号。

'''编辑完ACL表后,需要将ACL表应用于哪个接口哪个方向'''
en
conf t
int f0/x
ip access-group 标号(如100) in/out	#in或out二选一
exit
4 编写ACL的步骤

(1)ACL表编辑及应用应该在整个网络已经能做正常ping通后再考虑。
(2)由于ACL表是用于过滤IP包,因此首先要根据流量的流向和使用的ACL表类型,判断ACL写的位置(哪个路由器、哪个接口、哪个方向上)
(3)再考虑如何写

1)开始编写时先判断大部分流量是拒绝通过还是允许通过,决定ACL表最后一行如何编写。2)写的时候要注意:越往上一般条件限制越严格。
(4)一般情况下,标准或扩展ACL表一旦编写好,无法修改某一条、无法删除某一条、也无法修改顺序、也无法插入某一条,只能一直在最后添加新的条目。如果要修改/删除/调整顺序,只能删除整张表,重新写。 5 命名ACL

(1)是对标准ACL和扩展ACL的功能完善,不是第三类ACL表。
(2)作用:可以对标准或扩展ACL进行自定义命名。
(3)优点:(1)自定义命名更容易辨认,也便于记忆。(2)可以任意修改/删除/插入某一条。
可以理解为进入ACL表配置模式才能修改/删除/插入条目,在全局配置模式就只能删除整个表。
(4)相关命令:

1)创建并编写标准和扩展ACL

en
conf t
'''创建并编写标准和扩展ACL'''
acc 1 deny host 10.1.1.1							
acc 1 deny host 20.1.1.1
acc 1 permit any
acc 100 deny ip host 10.1.1.1 20.1.1.0 0.0.0.255 
acc 100 permit ip any any
do sh ip acc

2)创建并编写命名ACL

'''创建并编写命名ACL'''
#需求:希望内网的人都可以访问网站服务器、外网都不能访问网站服务器
ip access-list extended/standard 自定义表名  #创建命名ACL表,其中ex表示扩展、stan表示标准。该命令会进入扩展ACL表配置模式,不用每一句均以“access+表号”开头
ip access-list ex kongzhi-80-oa                             #创建命名ACL表kongzhi-80-oa
    permit tcp 192.168.0.0 0.0.255.255 host 10.1.1.1 eq 80  #允许内网192.168网段访问主机10.1.1.1的tcp80端口。
    permit tcp 172.16.0.0 0.0.255.255 host 10.1.1.1 eq 80	#允许内网172.16网段访问主机10.1.1.1的tcp80端口。		
    deny ip 192.168.0.0 0.0.255.255 host 10.1.1.0           #禁止内网192.168网段访问主机10.1.1.1的其他所有服务
exit
#查看所有表
do sh ip acc

3)删除或插入命名ACL的条目

'''删除某一条'''
ip access-list extended/standard 自定义表名   #进入某ACL表
     no 条目ID                               #删除某一条
     exit
     
'''插入某一条'''
ip access-list extended/standard 自定义表名   #进入某ACL表
     条目ID  动作 条件                        #条目ID位于需要插入的两条条目之间。
     exit

'''具体例子'''          
ip access-list ex kongzhi-80-oa #再次进入命名ACL表,进行条目调整
    no 20                   #删除该表中表号为20的条目,也可以写“no 动作 条件”,但为了方便,一般写条目
    15 permit tcp 172.16.0.0 0.0.255.255 host 10.1.1.1 eq 80  #插入条目,先写条目ID。
    exit
do sh ip acc                                            #查看所有表

4)利用命名ACL的方式删除或插入标准ACL和扩展ACL的条目

ip access-list ex 100
    no 10
    15 deny ip host 10.1.1.1 20.1.1.0 0.0.0.255 
      exit
do sh ip acc                                            #查看所有表

6 实验1—基于Cisco Packet Tracer 6.1 实验要求

搭建以下网络拓扑图,并要求以下全部使用标准ACL表实现:
(1)要求10网段禁止访问整个50网段,访问其他不受限制;
(2)要求40.1.1.1PC禁止访问50网段,其他访问均不受影响;
(3)要求10.1.1.1禁止访问40网段,其他不受影响。

6.2 实验步骤

ACL表编辑及应用应该在整个网络已经能做正常ping通后再考虑,因此需要先让整个网络ping通。
(1)首先给PC配IP地址
(2)给路由器各接口配置IP
(3)给路由器配置路由
(4)考虑ACL表写在哪个路由器哪个接口的哪个方向上,开始编写ACL表

6.3 实验具体思路及命令

(1)(2)(3)步骤及命令详见《路由实验演示》(4)考虑ACL表写在哪个路由器哪个接口的哪个方向上
根据实验要求可知,需要写两张表,表1写在R2的F1/0接口的出方向(用于满足第一二条实验要求),表2写在R3的F0/0接口的出方向((用于满足第三条实验要求)。开始编写ACL表,具体命令如下:

#在R2上配置
en
conf t
ho R2
access-list 1 
access-list 1 deny 10.1.1.0 0.0.0.255
access-list 1 deny host 40.1.1.1
access-list 1 permit any
int f1/0
ip acess-group 1 out
exit
do show ip acess-list
do wr
#在R3上配置
en
conf t
ho R3
access-list 1 
access-list 1 deny host 10.1.1.1
access-list 1 permit any
int f0/0
ip acess-group 1 out
exit
do show ip acess-list
do wr
7 实验2—基于Cisco Packet Tracer 7.1 实验要求

7.2 实验步骤

(1)二层交换部分:

第1步:配置trunk接口模式第2步:配置VTP域及创建虚拟局域网—VLAN第3步:划分接口到对应VLAN

(2)三层路由部分:

第1步:核心交换机开启三层路由并创建虚拟接口,然后给网关配置IP并开启第2步:核心交换机与路由器相连的接口升级为三级接口并配置IP第3步:路由器接口配置IP第4步:配置路由表

(3)创建并编写ACL表
考虑ACL表写在哪个路由器哪个接口的哪个方向上,开始编写ACL表

7.3 实验具体思路及命令

(1)(2)步骤及命令详见[《三层交换机实验演示——基于Cisco Packet Tracer》(3)创建并编写ACL表
根据实验要求,需要在三层交换机上配置ACL表。开始编写ACL表,具体命令如下:

'''在三层交换机的出接口配置这张表'''
conf t
ip access-list ex kongzhi-shangwang 
deny ip 192.168.1.0 0.0.0.255 0.0.0.0 0.0.0.0
permit ip 192.168.0.0 0.0.255.255 0.0.0.0 0.0.0.0
exit
do show ip acc b
int f0/3
ip acess-group kongzhi-shangwang out
exit


'''在三层交换机中财务部的网关这张表'''
conf t
ip access-list ex kongzhi-caiwu 
deny ip 192.168.0.0 0.0.255.255 192.168.3.0 0.0.0.255
permit ip any any
exit
do show ip acc
int vlan 30
ip acess-group kongzhi-caiwu in
exit
8 归纳总结

(1)NTFS权限列表也是ACL表,不过那是对用户的控制,而本节与之无关,本节是对网络流量的控制。
(2)理解ACL表应配置在哪个路由器、哪个接口、哪个方向上。
(3)掌握ACL的原理、条目的执行规律以及根据需要编写ACL条目。
(4)熟悉相关命令。

参考文章

[1]《访问控制列表百科》
[2] 《ACL——控制路由器上接口大门的进出规则》
[3] 视频传送门

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5720418.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-18

发表评论

登录后才能评论

评论列表(0条)

保存