当前位置:   article > 正文

ACL入门指南:如何使用它轻松保护网络安全

acl

数据来源

1、ACL的过滤条件:

ACL基于IP包头的IP地址、四层TCP/UDP头部的端口号、以及其他数据进行过滤,可以基于三层和四层做过滤。

2、配置位置:

ACL可以在路由器上配置,也可以在防火墙上配置(一般称为策略)。 

3、ACL主要分为两大类:标准ACL和扩展ACL。

1)标准ACL:
  • 表号范围为1-99。
  • 只能基于源IP地址对数据包进行过滤。
  • 可以使用命令进行配置,例如:access-list 表号 permit/deny 源IP或源网段 反子网掩码
  • 反子网掩码用于匹配条件,与0对应的需要严格匹配,与1(255)对应的忽略。

示例:

  1. en        # 进入特权模式
  2. conf t    # 进入全局配置模式
  3. access-list 1 deny 10.0.0.0 0.0.255.255 # 拒绝匹配10.0.0.0/16范围的IP地址
  4. access-list 1 deny 10.1.1.1 0.255.255.255 # 拒绝源IP为10开头的所有地址
  5. access-list 1 deny host 10.1.1.1 # 拒绝源IP为10.1.1.1的主机(host 可以代替反子网掩码:0.0.0.0)
  6. access-list 1 deny any # 拒绝所有流量
  7. access-list 1 permit any # 允许所有流量通过
  8. 完整的案例:(拒绝源ip为10.1.1.120.1.1.0网段的所有包通过,其他放行)
  9. conf t
  10. access-list 1 deny host 10.1.1.1
  11. access-list 1 deny 20.1.1.0 0.0.0.255
  12. access-list 1 permit any
2)扩展ACL:
  • 表号范围为100-199。
  • 可以基于源IP、目标IP、端口号、协议等对数据包进行过滤。
  • 可以使用命令进行配置,例如:access-list 表号 permit/deny 协议 源IP或源网段 反子网掩码 目标IP或目标网段 反子网掩码 [eq 端口号]
  • 常用协议有tcp、udp、icmp和ip(只有TCP/UDP协议才有端口号)。

示例:

  1. acc 100 permit tcp host 10.1.1.1 host 20.1.1.3 eq 80 # 允许源IP为10.1.1.1访问目标IP为20.1.1.3的主机的TCP协议的80端口
  2. acc 100 permit icmp host 10.1.1.1 host 20.1.1.3 # 允许源IP为10.1.1.1 ping目标IP为20.1.1.3的主机
  3. acc 100 deny ip host 10.1.1.1 20.1.1.0 0.0.0.255 # 禁止源IP为10.1.1.1的主机访问20.1.1.0/24网段
  4. acc 100 permit ip any any # 允许所有流量通过
  5. # 查看ACL表:
  6. show ip access-list 表号 # 可以查看指定表号的ACL表,不写则查看所有表
  7. # 将ACL表应用到接口:
  8. int f0/x
  9. ip access-group 表号 in/out # 将ACL表应用于接口的入方向或出方向 (in表示进入接口的流量,out表示离开接口的流量)
  10. no ip access-group 表号 in/out # 从接口上移除ACL表,注意表仍然存在并可以应用于其他接口
  11. # 例如,如果要将ACL表编号为100应用到接口的进方向,可以使用以下命令:
  12. ip access-group 100 in

如何查看ACL表和将ACL表应用到接口的方法:

  • 查看ACL表:使用命令show ip access-list 表号,可以查看指定表号的ACL表。
  • 将ACL表应用到接口:使用命令int f0/x进入接口配置模式,然后使用命令ip access-group 表号 in/out将ACL表应用到接口的入方向或出方向。取消应用则使用命令no ip access-group 表号 in/out

4、ACL原理

  1. ACL表必须应用到接口的进或出方向才能生效。

  2. 一个接口的一个方向只能应用一张ACL表。

  3. 进还是出方向的应用取决于流量控制总方向。

  4. ACL表严格自上而下检查每一条规则,因此要注意规则的书写顺序。

  5. 每一条ACL规则由条件和动作组成,如果某个数据包不满足某个条件,则继续检查下一条规则,只有满足条件的数据包才会执行相应的动作。

  6. 标准ACL应尽量靠近目标位置进行配置。

  7. wencoll小原理:

    • 首先确定ACL配置的位置(哪个路由器?哪个接口的哪个方向?)
    • 其次考虑如何编写ACL规则
    • 如何编写ACL规则:
      • 首先确定是否允许所有流量或拒绝所有流量
      • 然后按照严格控制的顺序编写规则
  8. 一般情况下,标准ACL或扩展ACL一旦创建,无法修改或删除某一条规则,只能添加新的规则。如果想要修改或删除某一条规则,需要删除整张ACL表并重新编写。

    • 删除ACL表的命令:conf t --> no access-list 表号
  9. 命名ACL:

    • 作用:可以对标准ACL或扩展ACL进行自定义命名
    • 优点:自定义命名更易于辨认和记忆,可以任意修改、删除或插入规则
    • 命令示例:
      1. en # 进入特权模式
      2. conf t # 进入全局配置模式
      3. ip access-list extended 表名 # 创建自定义的ACL表,表名为"表名"(例如:kz-80-oa)。如果表已存在,则进入该表。
      4. permit/deny 协议 源IP或源网段 反子网掩码 目标IP或目标网段 反子网掩码 [eq 端口号]
      5. # 设置一条扩展ACL过滤条目。协议指定要过滤的协议类型,源IP或源网段与反子网掩码指定源地址范围,目标IP或目标网段与反子网掩码指定目标地址范围,[eq 端口号](可选)指定端口号。
      6. exit # 退回上一级配置模式
      7. do show ip access-list 表IP # 查看ACL表的信息,表IP是可选参数,如果不指定则显示所有ACL表的信息。
      IP或目标网段 反子网掩码 [eq 端口号] exit do show ip access-list 表IP(可选)

例子:

        如果要删除某一条目 

              ip access-list extended kz-80-oa   # 进入要删除的表kz-80-oa

              no  20   # 删除ID为20的条目

              exit    # 退到上一级

              do show  ip access-list   表IP   #   表IP 是可选的,不写就查看所有表

         向ACL表插入条目

            ip access-list extended kz-80-oa   # 进入要修改的表kz-80-oa

            15 permit tcp 192.16.0.0 0.0.255.255 host 10.1.1.1 eq 80  # 在ID为15的位置插入条目

 

5、实验

实验要求:(使用标准ACL实现) 

  1. 要求10网段禁止访问整个50网段,访问其他不受影响
  2. 要求40.1.1.1PC禁止访问50网段,其他访问不受影响
  3. 要求10.1.1.1禁止访问40网段,其他不受影响

步骤:
1)让设备能够互通(配置IP和路由) 

配置路由器端口IP命令

         en                                                       # 进入特权模式

        conf t                                                   # 进入全局配置模式

        int  Fa0/x​​                                             # 进入需要配置的端口

        ip add IP 子网掩码                              # 配置IP,如:  ip add 30.1.1.254 255.255.255.0

        no shut                                                # 开启端口

配置路由表 

        en                                                       # 进入特权模式

        conf t                                                  # 进入全局配置模式

        ip route IP 子网掩码   下一跳IP         # 配置路由,这里的下一跳IP就是下一个路由器接口的IP

        最后测试网络连通性,命令:ping 目标ip

 2)实现10网段禁止访问整个50网段,访问其他不受影响

配置ACL表思路,因为是使用标准的ACL只能根据源ip进行过滤,无法根据目标IP之类的过滤,又不能影响访问其他的,所以这里的ACL表最后要应用在里50网段最近路由器的出接口。

        创建ACL表1 

                en                                                       # 进入特权模式

                conf t                                                   # 进入全局配置模式

                acc 1 deny 10.0.0.0  0.255.255.255  # 过滤10网段的包,只检查ip的第一位数字

                acc 1 permit  any                             # 其他放行,注意这一句放行所有如果不加,其他网段的包也会被拦截

                show  ip access-list   1                   #  查看表1,非特权模式命令最前面要加 do

        将ACL表应用到接口: 

                int fa1/0

                ip access-group 1  out                    #  out 接口出方向

 测试

  路由器回馈的错误信息是哪个接口出去的就是哪个接口回包,所以这下图中显示的是20.1.1.1回馈的错误包:“目标主机不可达” 

 3)实现40.1.1.1PC禁止访问50网段,其他访问不受影响

        注意:一个接口的一个方向只能应用一张表, 所以按照现在的网络规划图最好的方法是往ACL表1的过滤10网段后面加过滤40.1.1.1的条件。

        但是一般情况下,标准或扩展acl一旦编写号,无法修改/删除某一条,只能不断的往后添加新的条目,如想修改或删除,只能删除整张表,重新写,所以先删除表1

                en                                                       # 进入特权模式

                conf t                                                  # 进入全局配置模式

                no access-list  1                                # 删除除指定的表

                acc 1 deny 10.0.0.0  0.255.255.255  # 过滤10网段的包,只检查ip的第一位数字

                acc 1 deny 40.1.1.1 0.0.0.0              # 过滤40.1.1.1的包,检查全部ip

                简写:access-list   1   deny    host   40.1.1.1

                acc 1 permit  any                              # 其他放行

                show  ip access-list                     #  查看表1,非特权模式命令最前面要加 do

        将ACL表应用到接口: 

                int fa1/0

                ip access-group 1  out    #  out 接口出方向

 测试

4)实现10.1.1.1禁止访问40网段,其他不受影响

        创建ACL表2

                en                                                 # 进入特权模式

                conf t                                          # 进入全局配置模式

                acc  2  deny 10.1.1.1  0.0.0.0     # 过滤10.1.1.1的包,检查全部IP

                acc  2  permit  any                      # 其他放行,注意这一句放行所有如果不加,其他网段的包也会被拦截

                show  ip access-list   2            #  查看表1,非特权模式命令最前面要加 do

        将ACL表应用到接口: 

                int fa0/0

                ip access-group 2  in    #  in 接口入方向,直接在第3个路由器的fa0/0接口的入方向实现拦截因为后面都是40网段的,没必要让10.1.1.1的数据数据包进入路由器

 测试

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

闽ICP备14008679号