弄它!!!2020年了你还不懂ACL嘛,小编带你走进ACL的世界,分分钟搞定!!!
为了更安全的公司网络环境,可以使用ACL提供的基本通信流量过滤能力来实现。
一,ACL概述
1.流量过滤
常用的流量过滤器 ①集成路由器内置的防火墙 ②专用的安全设备 ③服务器 企业路由器能够识别有害流量并阻止它访问和破坏网络,几乎所有的路由器都可以根据数据包的源IP地址和目的IP地址来过滤流量,它还可以根据特定的应用和协议来过滤流量,例如TCP,HTTP,FTP,和Telnet
2.访问控制列表
访问控制列表是应用在路由器接口的指令列表,这些指令列表用来告诉路由器哪些数据包可以接收、哪些数据包需要拒绝。 访问控制是网络安全防范和保护的主要策略,它的主要任务是保证网络资源不被非法使用和访问。它是保证网络安全最重要的核心策略之一。访问控制涉及的技术也比较广,包括入网访问控制、网络权限控制、目录级控制以及属性控制等多种手段。 访问控制列表(Access Control Lists,ACL)是应用在路由器接口的指令列表。这些指令列表用来告诉路由器哪些数据包可以收、哪些数据包需要拒绝。至于数据包是被接收还是拒绝,可以由类似于源地址、目的地址、端口号等的特定指示条件来决定。 访问控制列表不但可以起到控制网络流量、流向的作用,而且在很大程度上起到保护网络设备、服务器的关键作用。作为外网进入企业内网的第一道关卡,路由器上的访问控制列表成为保护内网安全的有效手段。
3.ACL的分类
根据不同的划分规则,ACL可以有不同的分类。
(1)按照创建ACL时的命令方式分为数字型ACL和命名型ACL
①创建ACL时指定一个编号,称为数字型ACL。即编号为ACL功能的标识,如基本ACL为2000~2999, 高级ACL为3000~3999. ②创建ACL时指定一个名称,称为命名型ACL
(2)按照ACL的功能分类,ACL可以分为:基本ACL,高级ACL,二层ACL,用户ACL,其中应用最为广泛的是基本ACL和高级ACL
ACL分类 分类 编号范围 参数 基本ACL 2000~2999 源IP地址等 高级ACL 3000~3999 源IP地址,目的IP地址,源端口,目的端口,协议类型等 二层ACL 4000~4999 源MAC地址,目的MAC地址,以太帧协议类型等 用户ACL 6000~6031 源IP地址,目的IP地址,源端口,目的端口,协议类型等
4、ACL的工作原理
基本原理:ACL使用包过滤技术,在路由器上读取第三层及第四层包头中的信息如源地址、目的地址、源端口、目的端口等,根据预先定义好的规则对包进行过滤,从而达到访问控制的目的。 功能:网络中的节点有资源节点和用户节点两大类,其中资源节点提供服务或数据,用户节点访问资源节点所提供的服务与数据。ACL的主要功能就是一方面保护资源节点,阻止非法用户对资源节点的访问,另一方面限制特定的用户节点所能具备的访问权限。
(1)ACL的方向
ACL是一组规则的集合,它应用在路由器的某个接口,对路由器接口而言,ACL有两个方向。 ①出:已经过路由器的处理,正离开路由器的数据包。 ②入:已到达路由器接口的数据包,将被路由器处理,
(2).ACL语句(语句太多这里做简单介绍)
一个ACL语句通常由若干条deny I permit 语句组成,每条就是该ACL的一条规则。
(3)ACL步长
步长是指在交换机自动为ACL规则分配编号的时候,每个相邻规则编号之间的差值。例如,如果将步长设定为5,规则编号分配是按照0、5、10、15…这样的规律分配的。缺省情况下,步长为5。 当步长改变后,ACL中的规则编号会自动重新排列。例如,原来规则编号为0、5、10、15,当通过命令把步长改为2后,则规则编号变成0、2、4、6。 当使用命令将步长恢复为缺省值后,交换机将立刻按照缺省步长调整ACL规则的编号。例如:ACL 3001,步长为2,下面有4个规则,编号为0、2、4、6。如果此时使用命令将步长恢复为缺省值,则ACL规则编号变成0、5、10、15,步长为5。 设置适当的步长,有助于用户对ACL的管理,如方便在规则之间插入新的规则。例如配置好了4个规则,规则编号为:0、5、10、15。此时如果用户希望能在第一条规则之后插入一条规则,则可以使用命令在0和5之间插入一条编号为1的规则。 另外,在定义一条ACL规则的时候,用户可以不指定规则编号,这时,系统会从0开始,按照步长,自动为规则分配一个大于现有最大编号的最小编号。假设现有规则的最大编号是28,步长是5,那么系统分配给新定义的规则的编号将是30。
二、3P原则
在路由器上应用 ACL 的一般规则我们简称为3P原则。即我们可以为每种协议 (per protocol)、每个方向 (per direction)、每个接口 (per interface) 配置一个 ACL:
1、每种协议一个 ACL:
要控制接口上的流量,必须为接口上启用的每种协议定义相应的 ACL。
2、每个方向一个 ACL:
一个 ACL 只能控制接口上一个方向的流量。要控制入站流量和出站流量,必须分别定义两个 ACL。
3、每个接口一个 ACL:
一个 ACL 只能控制一个接口(例如快速以太网 0/0)上的流量。
三、ACL匹配顺序
ACL支持两种匹配顺序: l 配置顺序:按照用户配置规则的先后顺序进行规则匹配。 l 自动排序:按照“深度优先”的顺序进行规则匹配。
1、基本IPv4 ACL的“深度优先”顺序判断原则如下
(1) 先看规则中是否带***实例,带***实例的规则优先; (2) 再比较源IP地址范围,源IP地址范围小(反掩码中“0”位的数量多)的规则优先; (3) 如果源IP地址范围相同,则先配置的规则优先。
2、高级IPv4 ACL的“深度优先”顺序判断原则如下
(1) 先看规则中是否带***实例,带***实例的规则优先; (2) 再比较协议范围,指定了IP协议承载的协议类型的规则优先;ip协议的范围为1—255,承载在ip上的其他协议有各自的协议号。协议范围小或协议号小的优先。如承载在ip上的协议如OSPF和GRE的协议号分别为89和47,那么GRE的优先级将高于ospf,承载在ip上的其他协议都优于ip。 (3) 如果协议范围相同,则比较源IP地址范围,源IP地址范围小(反掩码中“0”位的数量多)的规则优先; (4) 如果协议范围、源IP地址范围相同,则比较目的IP地址范围,目的IP地址范围小(反掩码中“0”位的数量多)的规则优先; (5) 如果协议范围、源IP地址范围、目的IP地址范围相同,则比较四层端口号(TCP/UDP端口号)范围,四层端口号范围小的规则优先; (6) 如果上述范围都相同,则先配置的规则优先。
3、二层ACL的“深度优先”顺序判断原则如下
(1) 先比较源MAC地址范围,源MAC地址范围小(掩码中“1”位的数量多)的规则优先; (2) 如果源MAC地址范围相同,则比较目的MAC地址范围,目的MAC地址范围小(掩码中“1”位的数量多)的规则优先; (3) 如果源MAC地址范围、目的MAC地址范围相同,则先配置的规则优先。
四、具体配置
1、实验目的
1、全网互通 2、用acl标准列表禁止vlan10 和vlan20通信 3、用acl扩展列表禁止ar3访问ftp服务器
2、实验思路
1、AR3配置单臂路由 2、pc1pc3 设置vlan10 pc2和pc4配置vlan20 3、通过AR3配置ac标准l策略 使得 vlan10 不能喝vlan20 通信 4、通过AR4配置acl扩展列表使得原本可以连接serverftp服务器 的AR3不能通信
3、实验配置如下
第一个需求 因为通信是双向的只要组织一个方向就可以完成不能通信的目的 第一步 在r1 上设置策略 第二步在接口上设置 接收
[r1]acl 2000 设置acl策略编号标准列表是2000-2999
[r1]int g0/0/0.20
[r1-acl-basic-2000]rule deny source 192.168.10.0 0.0.0.255 deny拒绝通过
[r1-acl-basic-2000]rule permit source any
[r1-GigabitEthernet0/0/0.20]traffic-filter outbound acl 2000 进入到vlan20运行策略使其生效
需求2
<r2>ftp 202.10.100.200 首先连接一下ftp服务 正常连接
Trying 202.10.100.200 ...
Press CTRL+K to abort
Connected to 202.10.100.200.
220 FtpServerTry FtpD for free
User(202.10.100.200:(none)):ftp
331 Password required for ftp .
Enter password:
230 User ftp logged in , proceed
[r2-ftp]ftp 202.10.100.200
^
Error: Unrecognized command found at '^' position.
[r2-ftp]ls
200 Port command okay.
150 Opening ASCII NO-PRINT mode data connection for ls -l.
6.30.txt
7.2.txt
一次性计划任务默写.txt
不会的.txt
默写.txt
226 Transfer finished successfully. Data connection closed.
FTP: 65 byte(s) received in 0.200 second(s) 325.00byte(s)/sec.
[r1]q
<r1>ftp 202.10.100.200
Trying 202.10.100.200 ...
Press CTRL+K to abort
Error: Unrecognized host or wrong IP address.
通过这四要素 tcp报头 原地址目的地址 源端口 目的端口
[r2-acl-adv-3000]rule deny tcp source 12.0.0.20 0.0.0.0 destination 202.10.100.1 0 0.0.0.0 des
[r2-acl-adv-3000]rule deny tcp source 12.0.0.20 0.0.0.0 destination 202.10.100.1 0 0.0.0.0 destination-port eq 20
[r2-acl-adv-3000]rule permit ip source any destination any
- 非主流域名 “汽车”auto.io结拍
- 武哥自学Python笔记(一)
- 机器学习VS放射科医生
- python学习手册-环境安装和配置
- 全球最大家谱网站Ancestry.com意外泄露了30万名用户的登录凭证
- 摸金Redis漏洞
- 机器人越来越像人,你会担心你的工作被人工智能取代吗?
- 一句代码实现批量数据绑定[上篇]
- 机器学习-从高频号码中预测出快递送餐与广告骚扰
- MS Windows 下基于Atom的LaTeX编译环境的配置
- WCF中的Binding模型之一: Binding模型简介
- WCF中的Binding模型之一: Binding模型简介
- 2017最火的五篇深度学习论文 总有一篇适合你
- SplashScreenSource的妙用
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 【java设计模式系列】3. 抽象工厂模式(Abstract Factory)
- 解决jar包冲突的简单办法
- 【Java8新特性】01 函数式接口和Lambda表达式你真的会了吗
- 只出现一次的元素
- 【排序】堆排序
- redis灵魂拷问:怎样搭建一个哨兵主从集群
- 是时候给你的鼠标指针更换样式换下风格体验了!如何卸载与安装鼠标指针?
- Linux设置虚拟内存
- SSM 单体框架 - 教育平台后台管理系统:接口文档
- java学习应用篇|使用环境变量做一些工具
- 【Java8新特性】06 新的日期和时间:LocalDate LocalTime LocalDateTime
- UNSAFE和Java 内存布局
- 【玩转Redis面试第1讲】Redis数据结构和常用命令速记
- SSM 单体框架 - 教育平台后台管理系统:课程模块
- 【玩转Redis面试第2讲】面试官再问Redis事务把这篇文章扔给他