当前位置:   article > 正文

ACL详解_acl策略

acl策略

目录

ACL

介绍

工作原理

ACL 的作用

ACL的匹配规则

ACL分类

ACL应用场景

基本ACL配置

配置确认

高级ACL配置

应用


ACL

全称:Access Control List

中文:访问控制列表

介绍

ACL 是网络当中策略的一种,策略:我们之前学的内容只够我们把网络连通,但网络不仅仅是能连通那么简单,在保证网络能连通的基础上,应该还有更高一层的追求,即对网络进行一些控制。比如说:对某些人的流量进行限制、对某些人的流量做一些保障、不允许某些人访问某些网站等的控制行为。这些都需要通过策略来完成。

ACL 就是众多策略中的一种,是最简单的一种工具,可以帮助我们实现一些基本的功能,比如说:实现 访问控制列表 的功能。

企业网络中的设备进行通信时,需要保障数据传输的安全可靠和网络的性能稳定。

ACL可以定义一系列不同的规则,设备根据这些规则对数据进行分类,并针对不同类型的报文进行不同的处理,从而可以实现对网络访问行为的控制、限制网络流量、提高网络性能、防止网络攻击等等。

工作原理

某些设备配置了ACL,ACL中声明了一些匹配规则,通过这个规则来匹配一些流量,对匹配到的流量再执行相应的动作,即,提前设定好了怎么处理这些流量,比如说,是让它访问还是不让访问,从而就实现了控制的功能。

ACL 在很多设备上都是可以应用的,后面主要讲在路由器上的应用,讲述在路由器上怎么配置 ACL

ACL 的作用

  1. 访问控制:在路由器流量流入或留出的接口上,匹配流量,然后执行设定好的动作。

    • 配置位置:在路由器的接口上:把接口分为流量流入、流出的接口。

      现在如果用PC1访问PC3,那么对于左边的路由器来说:g 0/0/1 是流量流入的接口,g 0/0/0 是流量流出的接口。

      PC3回包的时候情况正好相反。

      所以:流入、流出是一个相对的概念,不是固定的。

    • 执行的动作

      只有两种:permit 允许 , deny

  2. 抓取感兴趣流:ACL可以和其他服务结合使用。ACL只负责匹配流量,其他服务则对匹配的流量执行对应的动作0

    • ACL的功能很单一 --- 只有两个动作,但ACL在某些场景下,有时候我们需要做策略并不是一刀切的,即,很干净利落就两种情况:允许、拒绝。就比如说做流控,不是说不让访问,可以访问,但要对流量、速度等做一些限制,遇到这样的情况,光靠这两种动作是无法实现这个功能的,所以,ACL在某些情况下只做第一件事 --- 只抓取流量,但不去做动作。动作交给其它的服务来做,即,和其它服务去打配合。ACL 和别的服务去结合 ,就可以实现更多更丰富的功能,而不仅仅是访问控制。

eg:

流控 --- 对流量进行控制和管理

QoS(服务质量技术)

ACL 和 QoS 配合:ACL负责抓取流量,QoS负责对流量进行相应的操作

后面只讲述 ACL 的第一个作用:访问控制

ACL的匹配规则

自上而下,逐一匹配,如果匹配上,则按照对应的动作执行,不再向下匹配。

  • 思科体系的设备:在ACL列表末尾隐含一条拒绝所有的规则

  • 华为体系的设备:在ACL列表末尾隐含一条允许所有的规则 —— 不准确

    • 实际上的默认规则:对于没有匹配上的不做处理,相当于允许。

  • 每个ACL可以包含多个规则,RTA根据规则来对数据流量进行过滤

ACL分类

思科 和 华为 不一样

华为:

分类编号范围参数
基本ACL2000-2999仅关注数据包中的源IP地址
高级ACL3000-3999不仅关注数据包中的源IP地址,还会关注数据包中的目标IP地址,以及协议和目标端口号
二层ACL4000-4999源MAC地址、目的MAC地址、以太帧协议类型等
用户自定义ACL————

后面只讲述前两种ACL:基本ACL、高级ACL

ACL应用场景

  • ACL可以通过定义规则来允许或拒绝流量的通过。

     

  • ACL可以根据需求来定义过滤的条件以及匹配条件后所执行的动作。

    (疑问? 感觉应该不能执行动作,只能抓取流量)

 

基本ACL配置

 

配置确认

高级ACL配置

应用

如下给出一个场景:我们会给出一些需求,然后利用ACL来完成这些需求。

如下搭建的网络已经实现了全网可达:

 

配ip

 

 

 

 

配静态路由

  1. [r1]ip route-static 192.168.3.0 24 192.168.2.2
  2. [r1]
  1. [r2]ip route-static 192.168.1.0 24 192.168.2.1
  2. [r2]

ping

 

需求一:通过 ACL 实现PC1可以访问PC3和PC4,但是PC2不行

基本ACL的位置原则:因为基本ACL只关注数据包中的源IP地址,故调用时尽可能的靠近目标,避免对其他地址访问造成误伤。

 

如图有4个接口可供选择,按照上面所说的原则,我们选择接口4。

下面就开始配置ACL:

  1. 创建一张ACL列表

    1. [r2]acl ?
    2. INTEGER<2000-2999> Basic access-list(add to current using rules) -- 基本ACL
    3. INTEGER<3000-3999> Advanced access-list(add to current using rules) -- 高级ACL
    4. INTEGER<4000-4999> Specify a L2 acl group -- 二层ACL
    5. ipv6               ACL IPv6
    6. name               Specify a named ACL
    7. number             Specify a numbered ACL
    8. [r2]acl 2000
    9. [r2-acl-basic-2000]

    这样就创建了一张ACL表,但只是个空表,没有规则。

  2. 在ACL列表中添加规则

    按照我们的需求:实现 PC2 无法访问到 PC3,PC4,那么就有以下两种方案:

    1. 拒绝PC2,允许所有

    2. 允许PC1,拒绝所有

    那么这两种选择哪一种比较好呢?

    其实要取决于体系,如果是华为体系的话,就选择第一种,因为华为体系的设备在ACL列表末尾隐含一条允许所有的规则。如果是思科体系的话,就选择第二种。

    下面我们开始添加规则:

    1. 拒绝PC2

      1. [r2-acl-basic-2000]rule ?
      2. INTEGER<0-4294967294> ID of ACL rule
      3. deny                   Specify matched packet deny
      4. permit                 Specify matched packet permit
      5. [r2-acl-basic-2000]rule deny ?
      6. fragment             Check fragment packet
      7. none-first-fragment Check the subsequence fragment packet  
      8. source               Specify source address
      9. time-range           Specify a special time
      10. vpn-instance         Specify a VPN-Instance
      11. <cr>                 Please press ENTER to execute command
      12. [r2-acl-basic-2000]rule deny source ?
      13. IP_ADDR<X.X.X.X> Address of source
      14. any               Any source
      15. [r2-acl-basic-2000]rule deny source 192.168.1.3 0.0.0.0 ---- 0.0.0.0——通配符:0代表不可变,1代表可变,统配符中01可以穿插使用
      16. [r2-acl-basic-2000]

    2. 允许所有(可以不写,默认允许)

      1. [r2-acl-basic-2000]rule permit source any
      2. [r2-acl-basic-2000]

    另外还有其他有关命令:

    查看 acl 2000 列表的规则

    1. [r2]display acl 2000
    2. Basic ACL 2000, 2 rules
    3. Acl's step is 5
    4. rule 5 deny source 192.168.1.3 0
    5. rule 10 permit
    6. [r2]

    自定义序号添加规则

    华为默认以5为步调,自动添加ACL的规则的序号。其目的在于匹配规则是从上向下按顺序匹配,这样便于在其中插入规则。

    1. [r2-acl-basic-2000]rule 6 deny source 192.168.1.2 0.0.0.0
    2. [r2-acl-basic-2000]q
    3. [r2]display acl 2000
    4. Basic ACL 2000, 3 rules
    5. Acl's step is 5
    6. rule 5 deny source 192.168.1.3 0
    7. rule 6 deny source 192.168.1.2 0
    8. rule 10 permit
    9. [r2]

    按照序号删除规则

    1. [r2-acl-basic-2000]undo rule 6
    2. [r2-acl-basic-2000]q
    3. [r2]display acl 2000
    4. Basic ACL 2000, 2 rules
    5. Acl's step is 5
    6. rule 5 deny source 192.168.1.3 0
    7. rule 10 permit
    8. [r2]

  3. 在接口上调用ACL列表

    1. [r2-GigabitEthernet0/0/1]traffic-filter ?
    2. inbound   Apply ACL to the inbound direction of the interface —— 流入方向
    3. outbound Apply ACL to the outbound direction of the interface —— 流出方向
    4. [r2-GigabitEthernet0/0/1]traffic-filter outbound acl 2000
    5. [r2-GigabitEthernet0/0/1]

注意:在一个接口的一个方向上,只能调用一张ACL列表。

另外还有其他有关命令:

查看应用

  1. [r2-GigabitEthernet0/0/1]display traffic-filter applied-record
  2. -----------------------------------------------------------
  3. Interface Direction AppliedRecord
  4. -----------------------------------------------------------
  5. GigabitEthernet0/0/1 outbound acl 2000
  6. -----------------------------------------------------------
  7. [r2-GigabitEthernet0/0/1]

删除应用

  1. [r2-GigabitEthernet0/0/1]undo traffic-filter outbound
  2. [r2-GigabitEthernet0/0/1]display traffic-filter applied-record
  3. -----------------------------------------------------------
  4. Interface Direction AppliedRecord
  5. -----------------------------------------------------------
  6. -----------------------------------------------------------
  7. [r2-GigabitEthernet0/0/1]

PC1 ping PC3

 

需求二:要求PC1可以访问PC3,但是不能访问PC4

高级ACL的位置原则:因为高级ACL是精准匹配,所以,在调用时应该尽可能靠近源目标,避免造成额外的链路资源浪费。所以我们选择接口1

下面就开始配置ACL:

  1. 创建一张ACL列表

  1.   [r1]acl ?
  2.     INTEGER<2000-2999> Basic access-list(add to current using rules)
  3.     INTEGER<3000-3999> Advanced access-list(add to current using rules)
  4.     INTEGER<4000-4999> Specify a L2 acl group
  5.     ipv6               ACL IPv6
  6.     name               Specify a named ACL
  7.     number             Specify a numbered ACL
  8.   [r1]acl name aa ?
  9.     INTEGER<2000-2999> Basic access-list(add to current using rules)
  10.     INTEGER<3000-3999> Advanced access-list(add to current using rules)
  11.     INTEGER<4000-4999> Specify a L2 acl group
  12.     advance             Advanced acl
  13.     basic               Basic acl
  14.     link               Link acl
  15.     match-order         Set ACL's match order
  16.     <cr>               Please press ENTER to execute command
  17.   [r1]acl name aa 3000 ---- 通过重命名的方式创建ACL列表
  18.   [r1-acl-adv-aa]
  1. 在ACL列表中添加规则

    1. 拒绝PC4

  1. [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
  2. [r1-acl-adv-aa]
  1. 在接口上调用ACL列表

    1. [r1-GigabitEthernet0/0/1]traffic-filter inbound acl name aa ---- 通过重命名的方式调用ACL列表
    2. [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中创建用户名

  1. 进入aaa服务

    作用:专门存储和管理用户名和密码的地方

    目的:设置账号、密码

    1. [r2]aaa  
    2. [r2-aaa]

  2. 创建用户名和密码

    1. [r2-aaa]local-user aa privilege level 15 password cipher 123456
    2. Info: Add a new user. —— 用户名:aa,密码:123456,权限:15
    3. [r2-aaa]

  3. 设置用户服务类型

    1. [r2-aaa]local-user aa service-type telnet
    2. [r2-aaa]

2,开启虚拟的登录端口

  1. [r2]user-interface vty 0 4
  2. [r2-ui-vty0-4]

认证

  1. [r2-ui-vty0-4]authentication-mode aaa
  2. [r2-ui-vty0-4]

telnet PC2

 

由于eNSP无法开启客户端telnet,所以报错。

那我们用真机作为客户端:

开启telnet客户端

 

 

真机可以telnet虚拟机中的设备,但虚拟机中设备的ip都是随便配的。

由于虚拟机中的设备都是用的虚拟网卡,所以可以telnet 127.0.0.1,但我们还要区分不同的设备,可以用串口号进行区分

 

 

 

我们也可以使用软件——SecureCRT

 

我们可以用路由器代替电脑(PC1)

  1. The device is running!
  2. <Huawei>sys
  3. Enter system view, return user view with Ctrl+Z.
  4. [Huawei]sys pc1
  5. [pc1]int g 0/0/0
  6. [pc1-GigabitEthernet0/0/0]ip address 192.168.1.10 24
  7. May 8 2023 18:17:14-08:00 pc1 %%01IFNET/4/LINK_STATE(l)[0]:The line protocol IP
  8. on the interface GigabitEthernet0/0/0 has entered the UP state.
  9. [pc1-GigabitEthernet0/0/0]q
  10. [pc1]ip route-static 0.0.0.0 0 192.168.1.1
  11. [pc1]ping 192.168.2.2
  12. PING 192.168.2.2: 56 data bytes, press CTRL_C to break
  13.   Request time out
  14.   Reply from 192.168.2.2: bytes=56 Sequence=2 ttl=254 time=70 ms
  15.   Reply from 192.168.2.2: bytes=56 Sequence=3 ttl=254 time=50 ms
  16.   Reply from 192.168.2.2: bytes=56 Sequence=4 ttl=254 time=50 ms
  17.   Reply from 192.168.2.2: bytes=56 Sequence=5 ttl=254 time=30 ms
  18. --- 192.168.2.2 ping statistics ---
  19.   5 packet(s) transmitted
  20.   4 packet(s) received
  21.   20.00% packet loss
  22.   round-trip min/avg/max = 30/50/70 ms
  23. [pc1]q
  24. <pc1>telnet 192.168.2.2
  25. Press CTRL_] to quit telnet mode
  26. Trying 192.168.2.2 ...
  27. Connected to 192.168.2.2 ...
  28. Login authentication
  29. Username:aa
  30. Password:
  31. <r2>

下面开始配置acl:

  1. [r1]acl 3001
  2. [r1-acl-adv-3001]rule deny tcp source 192.168.1.10 0.0.0.0 destination 192.168.2
  3. .2 0.0.0.0 destination-port eq 23
  4. [r1-acl-adv-3001]
  1. [r1-GigabitEthernet0/0/0]undo traffic-filter inbound
  2. [r1-GigabitEthernet0/0/0]traffic-filter inbound acl 3001
  3. [r1-GigabitEthernet0/0/0]

由于r2有两个网关,所以可以telnet 192.168.3.1

所以还要把r2的另一个接口搞一下

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/143399
推荐阅读
相关标签
  

闽ICP备14008679号