网络访问控制列表ACL(读懂这篇就基本够了,后面有配置案例)[通俗易懂]

网络访问控制列表ACL(读懂这篇就基本够了,后面有配置案例)[通俗易懂]一、访问控制列表是什么?访问控制列表(ACL)是一种基于包过滤的访问控制技术,它可以根据设定的条件对接口上的数据包进行过滤,允许其通过或丢弃。访问控制列表被广泛地应用于路由器和三层交换机,借助于访问

大家好,又见面了,我是你们的朋友全栈君。

一、访问控制列表是什么?
访问控制列表(ACL)是一种基于包过滤的访问控制技术,它可以根据设定的条件对接口上的数据包进行过滤,允许其通过或丢弃。访问控制列表被广泛地应用于路由器和三层交换机,借助于访问控制列表,可以有效地控制用户对网络的访问,从而最大程度地保障网络安全。(抄自百度)
工作原理
  • 当一个数据包进入一个端口,路由器检查这个数据包是否可路由。
  • 如果是可以路由的,路由器检查这个端口是否有ACL控制进入数据包。
  • 如果有,根据ACL中的条件指令,检查这个数据包。
  • 如果数据包是被允许的,就查询路由表,决定数据包的目标端口。
  • 路由器检查目标端口是否存在ACL控制流出的数据包。
  • 若不存在,这个数据包就直接发送到目标端口
  • 若存在,就再根据ACL进行取舍。然后在转发到目的端口。(抄自百度)

 

二、访问控制列表有哪些类型?
访问控制类别可以分为标准ACL,拓展ACL,标准命名ACL,拓展命名ACL;
  • access-list 是用数字来定义 acl (标准ACL和扩展ACL)
  • ip access-list 是用名字来定义 acl(标准命名ACL和扩展命名ACL)
 
1、标准ACL
配置要点:
 1) ACL默认最后有一条deny any,故允许(permit)的ACL应该写在上面。若是禁止某网段访问,其他网段均放通,则应该在最后加一条permit any。
 2)标准的ACL只匹配源IP地址(不写掩码只是匹配单个ip,可以写掩码);
 3)标准的ACL号是从1-99和1300-1999;
 4)如果是单个IP地址,可写为access-list 1 permit host 192.168.1.1
 
2、扩展ACL
三、配置要点:
   1)扩展ACL可匹配源地址、目的地址、IP协议,tcp、udp、icmp、igmp待协议; 如要允许所有目的端口是tcp80端口的流量:access-list 100 per tcp any any eq 80
   2)扩展ACL号为100-199和2000-2699
 
3、标准命名ACL
配置要点和标准acl基本一致,就是多了可以删除特定规则;
 
4、扩展命名ACL
配置要点和标准acl基本一致,就是多了可以删除特定规则,配置起来更加灵活;
 
三、如何确定ACL的IN还是OUT方向?
首先要明确IN和OUT方向是相对的,要根据数据流的方向判断,以路由器为中心,数据流进入的方向是IN方向,数据流经过路由器转发出去的方向是OUT方向。以下图为例子,当数据经过e0/0到达R4,再经过e0/1转发,则对于该路由器而已,该数据的e0/0口是IN方向,e0/1口是OUT方向,若对该数据进行做ACL,可以选择在IN方向或者OUT方向上做都可以,后面有例子解析。
网络访问控制列表ACL(读懂这篇就基本够了,后面有配置案例)[通俗易懂]
 
四、配置案例
拓扑如图所示;拓扑说明:SWITCH3有PC1和PC2的网关,分别是192.168.3.254和192.168.2.254,SWITCH默认路由指向R4,R4和R5是路由器,运行OSPF协议,并将相应网段发布至OSPF中,R4将静态路由重发布至OSPF中,从而实现全网互通,此拓扑自行搭建,如有需要可联系本人;
网络访问控制列表ACL(读懂这篇就基本够了,后面有配置案例)[通俗易懂]0
 
再次通过拓扑说明访问控制列表的方向,以192.168.2.1访问5.5.5.5为例子,对于R4来说,eth0/0就是IN;eth0/1就是OUT方向;千万不要把做访问控制列表时候的IN和OUT方向做反了;一个访问控制策略,可以在数据包进来之前做(in);也可以再数据包出去的时候做访问控制列表(out)。
 
注:本次测试标准acl在路由器R4上做测试
 
1、标准ACL配置案例
不做ACL前,PC1和PC2都可以ping通5.5.5.5
(1)做个标准访问控制列表,允许192.168.2.2访问5.5.5.5;用于IN方向
access-list 1 permit 192.168.2.2
interface Ethernet0/0
ip access-group 1 in
结果PC1和PC2都ping不通5.5.5.5,因为访问控制类别都没有允许他们通过
网络访问控制列表ACL(读懂这篇就基本够了,后面有配置案例)[通俗易懂]0
(2)添加个access-list 1 permit 192.168.2.0 0.0.0.255
结果就是PC2(192.168.2.1)通5.5.5.5了,但是PC1(192.168.3.1)不通,原因是PC2的ip在允许的访问控制列表里面
show access-lists 1可以查看命中次数
网络访问控制列表ACL(读懂这篇就基本够了,后面有配置案例)[通俗易懂]0
(3)测试配置错了ACL方向,把关键字由in变成了out
即从把interface Ethernet0/0 ;ip access-group 1 in;变成了interface Ethernet0/0 ;ip access-group 1 out 则PC1(192.168.3.1)和PC2(192.168.2.1)都不通5.5.5.5
网络访问控制列表ACL(读懂这篇就基本够了,后面有配置案例)[通俗易懂]0
因为此刻对于路由器R4而言,这个访问控制类别的逻辑变成了从ETH0/0口出去的数据,允许源ip是192.168.2.0/24这个段,所以5.5.5.5的回包会被阻拦;导致不通;
 
(4)做个OUT方向的访问控制列表;做测试前需要先去掉之前配置的访问控制列表,以免造成实验干扰
interface Ethernet0/1
ip access-group 1 out
测试结果也是PC1(192.168.3.1)不通5.5.5.5;PC2(192.168.2.1)通5.5.5.5
 
2、扩展ACL配置案例
(1)配置扩展ACL,允许192.168.2.1访问5.5.5.5,在IN方向测试
access-list 100 permit ip host 192.168.2.1 host 5.5.5.5
interface Ethernet0/0
ip access-group 100 in
因为扩展ACL可以指定源地址,目的地址,就可以做的更细的匹配,比如这个acl就指定只有192.168.2.1才可以访问5.5.5.5;所以结果就是PC2(192.168.2.1)可以通5.5.5.5,不通4.4.4.4;PC1(192.168.3.1)都不通4.4.4.4和5.5.5.5
网络访问控制列表ACL(读懂这篇就基本够了,后面有配置案例)[通俗易懂]0
网络访问控制列表ACL(读懂这篇就基本够了,后面有配置案例)[通俗易懂]0

3、标准命名ACL配置案例
标准命名ACL其实就是把ACL的数字用字符来表示,优点就是可以随意删除指定的permit或者deny语句,但是还是只能对源地址做限制,不够灵活
配置标准命名ACL,允许192.168.2.1访问所有目标ip,配置在in方向
ip access-list standard standtest1
permit 192.168.2.1
interface Ethernet0/0
ip access-group standtest1 in
测试结果就是PC2(192.168.2.1)可以通5.5.5.5和4.4.4.4;PC1(192.168.3.1)都不通5.5.5.5和4.4.4.4
网络访问控制列表ACL(读懂这篇就基本够了,后面有配置案例)[通俗易懂]0

网络访问控制列表ACL(读懂这篇就基本够了,后面有配置案例)[通俗易懂]0

同理,在OUT方向做策略,删掉IN方向策略,结果一致;不过PC1(192.168.3.1)会ping得通4.4.4.4,因为4.4.4.4在R4上,不需要经过eth0/1出去;但是PC1不通5.5.5.5
 
4、扩展命名ACL
扩展命名列表是我认为做好用的,可以随意删除permit或者deny下面的策略,也可以对ip或者其他协议做策略,颗粒度很细,最适合日常使用;还是使用原图拓扑,删除做在接口上的旧的ACL
(1)配置拓展命名ACL,允许192.168.3.0/24网段ping4.4.4.4,允许192.168.2.0/24网段访问5.5.5.5,应用在IN的方向
ip access-list extended extendtest1
50 permit icmp 192.168.3.0 0.0.0.255 host 4.4.4.4
60 permit ip 192.168.2.0 0.0.0.255 host 5.5.5.5
interface Ethernet0/0
ip access-group extendtest1 in
 
这个ACL比较有意思,第一条的意思是只允许192.168.3.0/24这个段去ping4.4.4.4,除了ping其他服务都不通,ping的目标地址除了4.4.4.4以外的也不通;第二条意思是只允许192.168.2.0/24这个段对5.5.5.5这个地址进行任意访问,这里面就可以看出扩展ACL好用多了;测试结果就是PC1(192.168.3.1)通4.4.4.4,不通5.5.5.5;PC2(192.168.2.1)不通4.4.4.4,通5.5.5.5

网络访问控制列表ACL(读懂这篇就基本够了,后面有配置案例)[通俗易懂]0
网络访问控制列表ACL(读懂这篇就基本够了,后面有配置案例)[通俗易懂]0
同理,在OUT方向做策略也是可以的;但是PC1(192.168.3.1)和PC2(192.168.2.1)ping4.4.4.4根本不会命中ACL,PC2可以通4.4.4.4和5.5.5.5;
 
##########################注意###############################
(1)做ACL最好是在连接外部的路由器上做,因为那样比较好区分内外网服务,不要在内外的核心交换机做了,又去外联路由器做,那样比较难排查问题;
(2)ACL可以在接口上应用,包括物理接口和SVI接口等;
(3)在show run上看不到命名ACL的序列号的话,可以使用show access-lists 查看,在用no seq进行删除特定的ACL;
(4)交换机标准访问控制列表不能使用no删除部分访问策略,比如存在配置
access-list 1 permit 192.168.1.1
access-list 1 permit 192.168.1.2
使用no access-list 1 permit 192.168.1.2并不会删除指定一条,而是全部都删了;通过敲命令可以发现,命令只输入到no access-list 1就没了,意味着这条命令是删除了1这个访问控制列表;要修改只能复制一份访问控制列表做修改,删除旧的再新建,存在局限性
(5)最好用的是拓展命名ACL
 
 
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/155015.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 什么是数据治理?什么是数据安全治理?两者关系如何?[通俗易懂]

    什么是数据治理?什么是数据安全治理?两者关系如何?[通俗易懂]企业信息化建设是随着企业战略、业务形态、预算等多个方面不断迭代及变化的,所以在建设过程中难免出现阶段鸿沟,跨阶段整合难的现象,当企业以数据为中心的战略考量时,就需要通过数据治理方法对以往问题纠偏,对未来形态建设。本文通过理清数据治理与数据安全治理关系,寄希望帮助读者对两者有所清晰的认识。一、数据治理与数据安全治理关系数据治理简单来讲是通过对数据的梳理整合,利用数据驱动业务,实现企业增值。…

    2022年5月11日
    75
  • verilog调用vhdl模块_verilog和vhdl哪个更好

    verilog调用vhdl模块_verilog和vhdl哪个更好初学FPGA,记录一些个人的探索历程和心得。本文的初衷是为了验证VHDL和Verilog文件互相调用功能。以一个简单的二选一选择器为例,分别用两种方法实现功能。一、用Verilog文件调用VHDL以Verilog文件为顶层文件,调用VHDL模块,testbench为Verilog文件。1、新建project2、编写.vhd文件,FPGA_VHDL.vhd,文件名与模块名称一致;3、编写FPGA_Verilog.v文件,文件名与模块名称一致,且设为top文件。4、编写testbench文件

    2022年9月21日
    4
  • JS之在Vue对象内部获取vue对象的索引(箭头函数的闭包导致this代表的是函数本身)「建议收藏」

    JS之在Vue对象内部获取vue对象的索引(箭头函数的闭包导致this代表的是函数本身)「建议收藏」es6过后引入了箭头函数(=>),使用this的时候,无法访问data中的内容。特此记录方法:<script>letvue=newVue({el:”#app”,data:{message:”helloworld!”},methods:{…

    2022年6月29日
    51
  • HTML/CSS面试题(收集)[通俗易懂]

    HTML/CSS面试题(收集)[通俗易懂]1、目前主流的浏览器以及其内核名有哪些?点这里查看2、内元素和块级元素的区别?行内元素:不会独立出现在一行,单独使用的时候后面不会有换行符的元素。eg:span,strong,img,a等。这些元素,默认的高宽,总是其内容的高宽。并且,margin和padding值,只有左右有效。块级元素:独立在一行的元素,他们后面会自动带有换行符。eg:di

    2022年5月20日
    32
  • Antd的table筛选,表头columns的filters过滤清空

    Antd的table筛选,表头columns的filters过滤清空Form+Table实现了自定义筛选菜单的功能。具体可以参考https://ant.design/components/table-cn/#components-table-demo-custom-filter-panel。但是此功能会有bug:选择相应的搜索条件后,点击“搜索”按钮,Table会渲染相应的数据,且Table表头也有自带的过滤功能(实际上是column的filters属性起的作用);然后再点击“清除”按钮,所有的搜索条件和表头里filters过滤的条件都要被清除。但是Ta.

    2022年5月21日
    49
  • LoRa学习:LoRa关键参数(扩频因子,编码率,带宽)的设定及解释

    LoRa学习:LoRa关键参数(扩频因子,编码率,带宽)的设定及解释LoRa学习:LoRa关键参数(扩频因子,编码率,带宽)的设定及解释1、扩频因子(SF)2、编码率(CR)3、信号带宽(BW)4、LoRa信号带宽BW、符号速率Rs和数据速率DR的关系5、LoRa信号带宽、扩频因子和编码率的设定6、空中速率针对特定应用,开发人员可通过调制扩频因子、调制带宽、纠错编码率这三个关键设计参数,对LoRa调制解调技术进行优化。。…

    2022年10月10日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号