赞
踩
目录
全称:Access Control List
中文:访问控制列表
ACL 是网络当中策略的一种,策略:我们之前学的内容只够我们把网络连通,但网络不仅仅是能连通那么简单,在保证网络能连通的基础上,应该还有更高一层的追求,即对网络进行一些控制。比如说:对某些人的流量进行限制、对某些人的流量做一些保障、不允许某些人访问某些网站等的控制行为。这些都需要通过策略来完成。
ACL 就是众多策略中的一种,是最简单的一种工具,可以帮助我们实现一些基本的功能,比如说:实现 访问控制列表 的功能。
企业网络中的设备进行通信时,需要保障数据传输的安全可靠和网络的性能稳定。
ACL可以定义一系列不同的规则,设备根据这些规则对数据进行分类,并针对不同类型的报文进行不同的处理,从而可以实现对网络访问行为的控制、限制网络流量、提高网络性能、防止网络攻击等等。
某些设备配置了ACL,ACL中声明了一些匹配规则,通过这个规则来匹配一些流量,对匹配到的流量再执行相应的动作,即,提前设定好了怎么处理这些流量,比如说,是让它访问还是不让访问,从而就实现了控制的功能。
ACL 在很多设备上都是可以应用的,后面主要讲在路由器上的应用,讲述在路由器上怎么配置 ACL
访问控制:在路由器流量流入或留出的接口上,匹配流量,然后执行设定好的动作。
配置位置:在路由器的接口上:把接口分为流量流入、流出的接口。
现在如果用PC1访问PC3,那么对于左边的路由器来说:g 0/0/1 是流量流入的接口,g 0/0/0 是流量流出的接口。
PC3回包的时候情况正好相反。
所以:流入、流出是一个相对的概念,不是固定的。
执行的动作
只有两种:permit 允许 , deny
抓取感兴趣流:ACL可以和其他服务结合使用。ACL只负责匹配流量,其他服务则对匹配的流量执行对应的动作0
ACL的功能很单一 --- 只有两个动作,但ACL在某些场景下,有时候我们需要做策略并不是一刀切的,即,很干净利落就两种情况:允许、拒绝。就比如说做流控,不是说不让访问,可以访问,但要对流量、速度等做一些限制,遇到这样的情况,光靠这两种动作是无法实现这个功能的,所以,ACL在某些情况下只做第一件事 --- 只抓取流量,但不去做动作。动作交给其它的服务来做,即,和其它服务去打配合。ACL 和别的服务去结合 ,就可以实现更多更丰富的功能,而不仅仅是访问控制。
eg:
流控 --- 对流量进行控制和管理
QoS(服务质量技术)
ACL 和 QoS 配合:ACL负责抓取流量,QoS负责对流量进行相应的操作
后面只讲述 ACL 的第一个作用:访问控制
自上而下,逐一匹配,如果匹配上,则按照对应的动作执行,不再向下匹配。
思科体系的设备:在ACL列表末尾隐含一条拒绝所有的规则
华为体系的设备:在ACL列表末尾隐含一条允许所有的规则 —— 不准确
实际上的默认规则:对于没有匹配上的不做处理,相当于允许。
每个ACL可以包含多个规则,RTA根据规则来对数据流量进行过滤
思科 和 华为 不一样
华为:
分类 编号范围 参数 基本ACL 2000-2999 仅关注数据包中的源IP地址 高级ACL 3000-3999 不仅关注数据包中的源IP地址,还会关注数据包中的目标IP地址,以及协议和目标端口号 二层ACL 4000-4999 源MAC地址、目的MAC地址、以太帧协议类型等 用户自定义ACL —— ——
后面只讲述前两种ACL:基本ACL、高级ACL
ACL可以通过定义规则来允许或拒绝流量的通过。
ACL可以根据需求来定义过滤的条件以及匹配条件后所执行的动作。
(疑问? 感觉应该不能执行动作,只能抓取流量)
如下给出一个场景:我们会给出一些需求,然后利用ACL来完成这些需求。
如下搭建的网络已经实现了全网可达:
配ip
配静态路由
- [r1]ip route-static 192.168.3.0 24 192.168.2.2
- [r1]
- [r2]ip route-static 192.168.1.0 24 192.168.2.1
- [r2]
ping
需求一:通过 ACL 实现PC1可以访问PC3和PC4,但是PC2不行
基本ACL的位置原则:因为基本ACL只关注数据包中的源IP地址,故调用时尽可能的靠近目标,避免对其他地址访问造成误伤。
如图有4个接口可供选择,按照上面所说的原则,我们选择接口4。
下面就开始配置ACL:
创建一张ACL列表
- [r2]acl ?
- INTEGER<2000-2999> Basic access-list(add to current using rules) -- 基本ACL
- INTEGER<3000-3999> Advanced access-list(add to current using rules) -- 高级ACL
- INTEGER<4000-4999> Specify a L2 acl group -- 二层ACL
- ipv6 ACL IPv6
- name Specify a named ACL
- number Specify a numbered ACL
- [r2]acl 2000
- [r2-acl-basic-2000]
这样就创建了一张ACL表,但只是个空表,没有规则。
在ACL列表中添加规则
按照我们的需求:实现 PC2 无法访问到 PC3,PC4,那么就有以下两种方案:
拒绝PC2,允许所有
允许PC1,拒绝所有
那么这两种选择哪一种比较好呢?
其实要取决于体系,如果是华为体系的话,就选择第一种,因为华为体系的设备在ACL列表末尾隐含一条允许所有的规则。如果是思科体系的话,就选择第二种。
下面我们开始添加规则:
拒绝PC2
- [r2-acl-basic-2000]rule ?
- INTEGER<0-4294967294> ID of ACL rule
- deny Specify matched packet deny
- permit Specify matched packet permit
- [r2-acl-basic-2000]rule deny ?
- fragment Check fragment packet
- none-first-fragment Check the subsequence fragment packet
- source Specify source address
- time-range Specify a special time
- vpn-instance Specify a VPN-Instance
- <cr> Please press ENTER to execute command
- [r2-acl-basic-2000]rule deny source ?
- IP_ADDR<X.X.X.X> Address of source
- any Any source
- [r2-acl-basic-2000]rule deny source 192.168.1.3 0.0.0.0 ---- 0.0.0.0——通配符:0代表不可变,1代表可变,统配符中0和1可以穿插使用
- [r2-acl-basic-2000]
允许所有(可以不写,默认允许)
- [r2-acl-basic-2000]rule permit source any
- [r2-acl-basic-2000]
另外还有其他有关命令:
查看 acl 2000 列表的规则
[r2]display acl 2000 Basic ACL 2000, 2 rules Acl's step is 5 rule 5 deny source 192.168.1.3 0 rule 10 permit [r2]
自定义序号添加规则
华为默认以5为步调,自动添加ACL的规则的序号。其目的在于匹配规则是从上向下按顺序匹配,这样便于在其中插入规则。
[r2-acl-basic-2000]rule 6 deny source 192.168.1.2 0.0.0.0 [r2-acl-basic-2000]q [r2]display acl 2000 Basic ACL 2000, 3 rules Acl's step is 5 rule 5 deny source 192.168.1.3 0 rule 6 deny source 192.168.1.2 0 rule 10 permit [r2]
按照序号删除规则
[r2-acl-basic-2000]undo rule 6 [r2-acl-basic-2000]q [r2]display acl 2000 Basic ACL 2000, 2 rules Acl's step is 5 rule 5 deny source 192.168.1.3 0 rule 10 permit [r2]
在接口上调用ACL列表
- [r2-GigabitEthernet0/0/1]traffic-filter ?
- inbound Apply ACL to the inbound direction of the interface —— 流入方向
- outbound Apply ACL to the outbound direction of the interface —— 流出方向
- [r2-GigabitEthernet0/0/1]traffic-filter outbound acl 2000
- [r2-GigabitEthernet0/0/1]
注意:在一个接口的一个方向上,只能调用一张ACL列表。
另外还有其他有关命令:
查看应用
[r2-GigabitEthernet0/0/1]display traffic-filter applied-record ----------------------------------------------------------- Interface Direction AppliedRecord ----------------------------------------------------------- GigabitEthernet0/0/1 outbound acl 2000 ----------------------------------------------------------- [r2-GigabitEthernet0/0/1]
删除应用
[r2-GigabitEthernet0/0/1]undo traffic-filter outbound [r2-GigabitEthernet0/0/1]display traffic-filter applied-record ----------------------------------------------------------- Interface Direction AppliedRecord ----------------------------------------------------------- ----------------------------------------------------------- [r2-GigabitEthernet0/0/1]
PC1 ping PC3
需求二:要求PC1可以访问PC3,但是不能访问PC4
高级ACL的位置原则:因为高级ACL是精准匹配,所以,在调用时应该尽可能靠近源目标,避免造成额外的链路资源浪费。所以我们选择接口1
下面就开始配置ACL:
创建一张ACL列表
- [r1]acl ?
- INTEGER<2000-2999> Basic access-list(add to current using rules)
- INTEGER<3000-3999> Advanced access-list(add to current using rules)
- INTEGER<4000-4999> Specify a L2 acl group
- ipv6 ACL IPv6
- name Specify a named ACL
- number Specify a numbered ACL
- [r1]acl name aa ?
- INTEGER<2000-2999> Basic access-list(add to current using rules)
- INTEGER<3000-3999> Advanced access-list(add to current using rules)
- INTEGER<4000-4999> Specify a L2 acl group
- advance Advanced acl
- basic Basic acl
- link Link acl
- match-order Set ACL's match order
- <cr> Please press ENTER to execute command
- [r1]acl name aa 3000 ---- 通过重命名的方式创建ACL列表
- [r1-acl-adv-aa]
在ACL列表中添加规则
拒绝PC4
- [r1-acl-adv-aa]rule deny ip source 192.168.1.2 0.0.0.0 destination 192.168.3.3 0.0.0.0
- [r1-acl-adv-aa]
在接口上调用ACL列表
- [r1-GigabitEthernet0/0/1]traffic-filter inbound acl name aa ---- 通过重命名的方式调用ACL列表
- [r1-GigabitEthernet0/0/1]
PC1 ping PC3、PC1 ping PC4
需求三:要求PC1可以ping通R2,但是不能telnet R2
在需求二中我们使用了高级ACL,但我们只用到了源IP、目标IP,而协议和端口号没用到,本实验我们就使用一下
telnet(远程登录协议)
作用:可以远程登录、控制、配置网络设备。
带外管理:不依靠网络,直接对设备进行管理
通过console接口连接console线对设备进行控制
网络工程人员一般都会随身携带一根console线,所有的路由器、交换机等设备上面都有一根专门的接口——console口,console连接console线,一端连接在设备的console口(水晶头),另外一端连接在电脑上(串线头)。设备和电脑之间就建立了联系,之后只需要在电脑上启动一些连接软件就可以对设备进行控制了。
通过miniUSB接口连接MINIUSB线对设备进行控制
原理和console线一样。
既然原理一样,那为什么有console口了,还要设置miniUSB口呢?
答:万一设备的console坏了,还可以使用miniUSB接口。
带内管理:通过网络对设备进行管理
通过telnet管理路由器
通过web界面管理路由器
通过SNMP协议进行设备管理
telnet进行管理的前提条件 1,登录设备和被登录设备之间网络必须是连通的 2,被登录设备必须开启telnet服务
telnet —— C/S架构
被登录设备充当telnet服务器的角色,登录设备充当telnet客户端的角色。
TCP 23
SPort:随机
DPort:23
路由器开启telnet服务的方法:
1,在AAA中创建用户名
进入aaa服务
作用:专门存储和管理用户名和密码的地方
目的:设置账号、密码
- [r2]aaa
- [r2-aaa]
创建用户名和密码
- [r2-aaa]local-user aa privilege level 15 password cipher 123456
- Info: Add a new user. —— 用户名:aa,密码:123456,权限:15
- [r2-aaa]
设置用户服务类型
- [r2-aaa]local-user aa service-type telnet
- [r2-aaa]
2,开启虚拟的登录端口
- [r2]user-interface vty 0 4
- [r2-ui-vty0-4]
认证
- [r2-ui-vty0-4]authentication-mode aaa
- [r2-ui-vty0-4]
telnet PC2
由于eNSP无法开启客户端telnet,所以报错。
那我们用真机作为客户端:
开启telnet客户端
真机可以telnet虚拟机中的设备,但虚拟机中设备的ip都是随便配的。
由于虚拟机中的设备都是用的虚拟网卡,所以可以telnet 127.0.0.1,但我们还要区分不同的设备,可以用串口号进行区分
我们也可以使用软件——SecureCRT
我们可以用路由器代替电脑(PC1)
- The device is running!
-
- <Huawei>sys
- Enter system view, return user view with Ctrl+Z.
- [Huawei]sys pc1
- [pc1]int g 0/0/0
- [pc1-GigabitEthernet0/0/0]ip address 192.168.1.10 24
- May 8 2023 18:17:14-08:00 pc1 %%01IFNET/4/LINK_STATE(l)[0]:The line protocol IP
- on the interface GigabitEthernet0/0/0 has entered the UP state.
- [pc1-GigabitEthernet0/0/0]q
- [pc1]ip route-static 0.0.0.0 0 192.168.1.1
- [pc1]ping 192.168.2.2
- PING 192.168.2.2: 56 data bytes, press CTRL_C to break
- Request time out
- Reply from 192.168.2.2: bytes=56 Sequence=2 ttl=254 time=70 ms
- Reply from 192.168.2.2: bytes=56 Sequence=3 ttl=254 time=50 ms
- Reply from 192.168.2.2: bytes=56 Sequence=4 ttl=254 time=50 ms
- Reply from 192.168.2.2: bytes=56 Sequence=5 ttl=254 time=30 ms
-
- --- 192.168.2.2 ping statistics ---
- 5 packet(s) transmitted
- 4 packet(s) received
- 20.00% packet loss
- round-trip min/avg/max = 30/50/70 ms
-
- [pc1]q
- <pc1>telnet 192.168.2.2
- Press CTRL_] to quit telnet mode
- Trying 192.168.2.2 ...
- Connected to 192.168.2.2 ...
-
- Login authentication
-
-
- Username:aa
- Password:
- <r2>
下面开始配置acl:
- [r1]acl 3001
- [r1-acl-adv-3001]rule deny tcp source 192.168.1.10 0.0.0.0 destination 192.168.2
- .2 0.0.0.0 destination-port eq 23
- [r1-acl-adv-3001]
- [r1-GigabitEthernet0/0/0]undo traffic-filter inbound
- [r1-GigabitEthernet0/0/0]traffic-filter inbound acl 3001
- [r1-GigabitEthernet0/0/0]
由于r2有两个网关,所以可以telnet 192.168.3.1
所以还要把r2的另一个接口搞一下
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。