访问控制列表

目录

ACL

ACL原理

ACL包过滤方式

ACL通用命令

查看ACL表命令

删除整张表命令

接口配置ACL

ACL分类

标准ACL

标准ACL的动作与条件

通配符掩码

扩展ACL

扩展ACL的动作与条件

命名ACL

前言

书写方式

ACL

**含义:**访问控制列表,其是一种包过滤技术,主要实现了对访问资源的控制。

注意:

  • ACL基于IP包头中的IP地址、四层TCP/IP头部的端口号(这里路由器破例可以参与四层工作)
  • ACL在路由器上的接口处配置,也可以在防火墙上配置(在防火墙上配置的一般称为策略)

ACL原理

  • ACL表必须应用到接口的进或出方向才能生效
  • 一个接口的一个方向(进口/出口)仅能应用一张ACL表
  • 进出方向的配置取决于流量控制的总方向
  • ACL表是严格按照自上而下检查每一条策略,所以要注意书写顺序
  • 每一条ACL条目由条件和动作组成,当某流量没有满足某条件,则继续检查下一条
  • 所有ACL策略的末端默认有一条隐藏的拒绝所有策略,这个策略我们不用写。

ACL包过滤方式

当一个包来了之后,该包的特征若和条件特征完全吻合,那么就不会往后继续检查进而执行后面动作(放行或阻止),若有一丁点不吻合,则该条策略不起作用,进而检查下一条策略。

**总结:**层层过滤,层层放行。

ACL通用命令

查看ACL表命令

进入特权模式

show ip access-list [表号]

**注意:**这里面可以看到表条目的编号,该编号在命名ACL里面会有用。

删除整张表命令

进入全局模式

no access-list 表号

接口配置ACL

进入接口配置模式

**在接口配置ACL:**ip access-group 表号 in/out

**将ACL从接口取出:**no ip access-group 表号 in/out

**注意:**最后的in/out指明了该表应用在接口的进口还是出口方向上

ACL分类

前言

  • 我们想要在路由器上过滤时,首先我们要在路由器上创建一张ACL表
  • 当在路由器上创建一个标准ACL时,必须要首先指定标准ACL表的名字(表号)
  • ACL表主要有标准ACL和扩展ACL
  • 标准ACL的表号范围为1-99;扩展ACL表号范围为100-199
  • 在一个路由器上表号不能相同,在多个路由器上表号可以相同

进入全局配置模式

**ACL语法:**access-list 表号 动作与条件

注意:

  • 上面着个语法适用于所有种类ACL
  • 不同ACL编写语法的不同也就是后面的动作与条件书写方式的不同
  • 若路由器没有ACL表则执行以上命令会创建一张表并为表增加该条目,若有了该表,则执行以上命令就会为该表添加一个表条目

标准ACL

**前言:**标准ACL只能基于源IP对包进行过滤,其表号范围为1-99.

标准ACL的动作与条件

**语法:**动作 源IP/源网段范围

动作

  • **允许:**permit
  • **否决:**deny

源IP/源网段范围

  • **host IP地址:**仅对某一个主机的源IP进行匹配(类似于------IP地址 0.0.0.0)
  • **源IP/源网段 通配符掩码:**匹配某一网段的范围或IP地址的数据包
  • **any:**所有的范围的源IP进行匹配(类似于------IP地址 255.255.255.255)

通配符掩码

**通配符掩码作用:**用来匹配网段或IP地址,与0对应的需要严格匹配,与1对应的忽略,其主要用于控制该网段或IP地址包的过滤。

具体案例

**源IP为10.1网段的包都进行阻止:**access-list 1 deny 10.1.3.1 0.0.255.255

源IP为10.1.3.1IP地址的包都进行放行

  • **普通写法:**access-list 1 permit 10.1.3.1 0.0.0.0
  • **简化写法:**access-list 1 permit host 10.1.3.1

所有数据包都进行阻止

  • **普通写法:**access-list 1 deny 10.1.3.1 255.255.255.255
  • **简化写法:**access-list 1 deny any

扩展ACL

**前言:**扩展ACL可以基于源IP、目标IP、目标端口号、协议等来对包进行过滤,其表号范围为100-199

扩展ACL的动作与条件

**语法:**动作 协议 源IP/源网段范围 目标IP/目标网段范围 [逻辑符号 目标端口号]

动作

  • **允许:**permit
  • **否决:**deny

IP/网段范围

  • **host IP地址:**仅对某一个主机的IP进行匹配(类似于------IP地址 0.0.0.0)
  • **IP/网段 通配符掩码:**匹配某一网段的范围或IP地址的数据包
  • **any:**所有的范围的IP进行匹配(类似于------IP地址 255.255.255.255)

注意:

  • 协议类型:tcp/udp/icmp/ip(若后面加端口号,则前面协议仅有2个选择------tcp/udp)
  • 逻辑符号:(eq:等于、gt:大于:lt:小于)主要用来匹配范围端口
  • 目标端口号可以不写,但其他的条件必须写
  • 若只满足其中的一点条件,那么不叫满足这个条件,只有来的数据包所有特征和这里面的条目完全吻合,才被称为满足条件,才会执行相应的动作

具体案例

10.1.1.1访问20.1.1.3中80端口的tcp数据都放行

access-list 100 permit tcp host 10.1.1.1 host 20.1.1.3 eq 80

放行所有ip数据包

access-list 100 permit ip any any

命名ACL

前言

  • 一般情况下,标准或扩展ACL一旦编写好,那么就无法修改某一条,也无法删除某一条,甚至无法修改顺序,只能一直在最后添加新的条目。
  • 在标准或扩展ACL中若想修改、插入、删除,只能删除整张表
  • 之前我们通过表号对ACL进行命名,但是当我们在一台设备上起的表非常多的时候,我们不能很快的通过表号判断该表的作用,这就用到了命名ACL

**命名ACL作用:**可以对标准/扩展ACL进行自定义命名,也可以通过命名ACL对标准/扩展ACL进行条目的增删改操作。

优点:

  • ACL自定义命名更容易辨认,也便于记忆
  • 可以任意修改某一条,或删除某一条,也可以往中间插入某一条

书写方式

进入全局配置模式

**创建/进入一张ACL表:**ip access-list 表类型 ACL表名称

进入了扩展ACL配置模式

在扩展ACL配置模式下书写动作与条件

**删除ACL条目:**no ACL条目编号

**插入ACL条目:**ACL条目编号 动作与条件

表类型

  • **standred:**标准ACL
  • **extended:**扩展ACL

ACL条目编号

**前言:**下面的10、20、30就是ACL条目编号(在其中可以插入个位级的条目编号)

注意:

  • 在创建ACL表时,表名称可以随意书写。
  • 在特定的表类型的情况下仅能书写特定的动作与条件
  • 命名ACL可以修改已经创建好ACL表的标准或扩展ACL,只需要通过表号作为表名称进入该表即可
  • 命名ACL不属于ACL分类中的一种
相关推荐
ZachOn1y2 小时前
计算机网络:网络层 —— 软件定义网络 SDN
网络·计算机网络·sdn·软件定义网络·openflow协议
QQ_7781329742 小时前
各种网络设备的工作原理
计算机网络
UestcXiye3 小时前
《TCP/IP网络编程》学习笔记 | Chapter 4:基于TCP的服务器端/客户端(1)
c++·计算机网络·tcp
C++忠实粉丝4 小时前
计算机网络socket编程(1)_UDP网络编程实现echo server
linux·服务器·网络·c++·网络协议·计算机网络·udp
qq_421833678 小时前
计算机网络——路由器构成
计算机网络
qq_4218336721 小时前
计算机网络——网络层导论
计算机网络
前端白袍1 天前
计算机网络:简述LAN口模式下NAT和代理的区别
网络·计算机网络·php
爱蜜莉雅丶Emilia1 天前
计算机网络 TCP/IP体系 数据链路层
网络·tcp/ip·计算机网络
Hello Dam1 天前
【计算机网络】概述
计算机网络