zoukankan      html  css  js  c++  java
  • ACL 包过滤技术

    一、ACL基本概念

      1、ACL 全称:Access Control List

      2、ACL是一种包过滤技术

      3、APL是基于IP包头的IP地址、四层TCP/UDP头部的端口号、[五层数据]。  (基于三层和四层顾虑)

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

     二、ACL分类:

      ACL主要分为 标准ACL扩展ACL

      1、标准ACL:

        表号:1 — 99

        特点:只能基于源IP对包进行过滤。

      2、扩展ACL:

         表号:100 — 199

        特点:可以基于源IP、目标IP、端口号、协议等对包进行过滤。

    三、ACL原理:

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

      2、一个接口的一个方向只能应用一张表;

      3、进还是出方向应用?取决于流量控制的总方向;

      4、ACL表是严格自上而下检查每一条,所以要注意书写顺序;

      5、每一条是由条件和动作组成的,当流量完全满足条件时,执行动作,当某流量没有满足某条件时,则继续检查下一条;

      6、标准ACL尽量写在靠近目标的地方

     经验总结:

      1)做流量控制,首先要先判断ACL写的位置(哪个路由器?哪个接口的那个方向?);

      2)再考虑怎么写ACL;

      3)如何写?

       首先要判断最终要允许所有还是拒绝所有;

       然后写的时候要注意:将严格地控制写在前面;

     一般情况下,标准或扩展ACL一旦编写好,无法修改某一条,也无法删除某一条,也无法修改顺序,也无法往中间插入新的条目,只能一直在最后添加新的条目,如果修改或插入或删除,只能删除整张表重新写。

      删除表的命令:

        config terminal

        no access-list 表号      删除某张表

    四、命令:

      1、标准ACL:

        config terminal

        access-list  表号  permit/deny  源IP或源网段  反子网掩码

         注释:反子网掩码:将正子网掩码的0和1倒置。如:255.0.0.0 --> 0.255.255.255

            发子网掩码的作用:用来匹配条件,与0对应的需要严格匹配,与1对应的忽略!

        例如:access-list  1  deny  10.0.0.0  0.255.255.255       该条目用来拒绝所有源IP为10开头的。

           access-list  1  deny  10.1.1.1  0.0.0.0     该条目用来拒绝所有源IP为10.1.1.1的主机。

              可简写为:access-list  1  deny  host  10.1.1.1

          access-list  1  deny  0.0.0.0  255.255.255.255    该条目用来拒绝所有人

          可简写为:access-list  1  deny  any

       标准ACL一般不用于做流量控制来使用,有其他的用途。

      2、扩展ACL:

        config terminal

        access-list  表号  permit/deny  协议  源IP或源网段  反子网掩码  目标IP或目标网段  反子网掩码  [ eq 端口号 ]

       注释:1)协议有:TCP、UDP、IP、ICMP;

          2)中括号内的为可选项,其他的都是必须的;

          3)当命令中写端口号时,前面的协议只能是TCP或UDP(端口号对应);

          4)当不需要写端口号时,前面的协议可以是TCP、UDP、IP、ICMP中的一个。

          5)如果协议是IP,则表示几乎对所有类型的数据进行相应的操作,因为TCP、UDP、ICMP都得经过IP协议。

      举例:

       1)acc  100  permit  tcp  host  10.1.1.1  host  20.1.1.2  eq  80    表示允许主机10.1.1.1访问20.1.1.2的80端口(TCP协议)

       2)acc  100  permit  icmp  host  10.1.1.1  host  20.1.1.0  0.0.0.255  echo-replay    表示允许主机10.1.1.1向20.1.1.0网段发送ICMP协议的replay回应包

       3)acc  100  deny  ip  host  10.1.1.1  host  20.1.1.0  0.0.0.255     表示拒绝主机10.1.1.1向20.1.1.0网段发送IP协议类型的数据(几乎大多数数据都被拒绝了)。

       4)acc  100  permit  ip any  any      表示任何IP协议的数据都通过。(一般写在最后)

     所有的ACL表的最后都有隐藏的一条 acc  表号  deny  any  表示没有匹配前面的任何一条,则拒绝通过

    五、命名ACL

      作用:可以对标准ACL或扩展ACL进行自定义命名。(命名ACL其实是在标准ACL和扩展ACL的基础上的提升,可以是标准ACL也可以是扩展ACL,所以严格的来说并不是第三类。)

      优点:1)自定义命名更容易辨认,也便于记忆;

           2)可以任意修改、或删除表中的某一条,也可以往中间插入某一条;

           3)

      命令:

        config terminal

        ip access-list  standard/extended  xxoo     定义一张名为xxoo的标准(或扩展)ACL表

          开始从deny或permit编写ACL条目         进入这张命名好的表编写条目不再需要在前面写 access-list  表号

          exit         退出该表

         删除某一条:

        ip access-list  standard/extended  xxoo      进入该表

          no 条目ID       (所有的ACL的每一条策略前面都会有对应的编号,no 10  表示删除 编号为30的这一条。)

        插入某一条:

        ip access-list  standard/extended  xxoo      进入该表

          条目ID  动作  条件          

          exit          

        (想要插入在什么位置,就根据ID的大小自定义一个ID号,ACL表的ID号按从小到大排列,即ID越小越靠前。)

        提前定义好某一条的条目ID:

        如:1000 permit ip any any     这条的编号就是1000,再写其他的条目只要ID小于1000的都会排在它的前面。

      对于标准或扩展ACL也可用以上操作,表号即可当做表名。

    六、补充:

      查看ACL表的命令:

        show ip access-list [表号或表名]         如果后面写了表号表示查看某一张表,如果不写表示查看所有表。

      将ACL表应用到接口:

        interface f0/x    进入接口f0/x

            ip access-group 表号  in/out       in表示将该表应用在进入方向,对进入该接口的数据进行检查,out表示接口的出方向。

          no ip access-group 表号          表示取下该接口上的该表,与上一条相反    (但是该表并没有被删除)

      查看接口和应用于该接口的ACL表:

        show running-config

  • 相关阅读:
    pyecharts学习
    反爬
    pandas
    用 pymongo 操作 MongoDB 数据库
    数据库隔离级别---读未提交,读已提交,重复读,序列化
    vscode 配置c++和python编译和调试环境
    sublime Text3 配置c++编译环境并设置快捷键
    GIT学习笔记
    redis单节点部署
    二元多项式求逆中的小坑
  • 原文地址:https://www.cnblogs.com/qvpenglou/p/12573778.html
Copyright © 2011-2022 走看看