zoukankan      html  css  js  c++  java
  • 11、ACL



    IP访问控制列表
    标准ACL 1)检查源地址 2)不能对协议簇作限定
    扩展ACL 1)检查源和目标地址 2)能容许或拒绝特定的协议和应用(端口号)
    区别列表类型: 1)ACL号 : 1-99,1300-1999标准ACL ;100-199,2000-2699扩展ACL
    2) 命名ACL用描述性的名字或号码标识
     
     
    1.访问列表的编号指明了使用何种协议的访问列表
    2.每个端口,每个方向,每个协议只能对应于一条访问列表
    3.访问列表内容决定了数据控制顺序,具有严格限制条件的语句放在所有语句最上面
    4.访问列表最后一条是隐含拒绝,所有每个访问控制列表至少有一条permit语句(否则所有流量不通过)
    5.访问控制列表需要应用在进出接口上,如何过滤流量,取决于怎么应用
    6.放置访问控制列表
    1)扩展访问列表应用在靠近源
    2)标准访问列表应用靠近目标





    acl作用:
    A:作为一种流量过滤工具,过滤进入或者离开路由器的流量
       1、对进入接口的流量进行过滤
       2、对离开接口的流量进行过滤
       3、控制对路由器的访问 telnet (vty)
       4、控制路由协议的发布和更新

    B、acl在QOS中的应用
      1、区分流量
      2、实施QOS策略
      3、绑定接口

    C、定义感兴趣流量
      1、DDR,也就是ISDN定义感兴趣的拨号流量
      2、VPN中的应用:IPSEC VPN、GRE、L2TP




    ACL分类:
    A: 标准ACL:是根据源IP地址匹配,用于限制到路由器的访问 1-99

    B:扩展ACL:可以根据源IP、目的IP、源端口、目的端口、协议号进行匹配,
       来过滤特定的流量。100-199

    C:基于时间的ACL:是一种扩展ACL,可以于在特定的时间范围内起作用来对
        数据流量进行控制

    D:命名ACL:包括命名标准ACL和命名扩展ACL,用来解决号码不足的问题
        优点:可以自由添加和删除ACL,同时
    可以对ACL定义一个有意义的名字,方便记忆和使用


    应用位置:
    1、入口ACL

     2、出口ACL

     路由器操作过程:
    1、数据进入路由器

    2、在接口对数据进行拆除二层帧,如果目标MAC地址是自身接口地址或者
    是一个广播地址就接收,并进入第三步,否则丢弃。如果在入接口使用了ACL,则在此步骤进行ACL处理
     
    3、查看目标ip,看是否为本路由器上的接口IP地址,如果是则立即交给CPU进
    程的上层应用协议进行处理,如果不是,则查询路由表

    4、若路由表中存在相应条目,则在相应的出口进行二层再次封装,如果没有相
    应路由条目,则丢弃数据,并报ICMP回应数据,如果在出接口使用了ACL,则在此步骤进行ACL处理

    5、从出接口发出数据

    实验演示:

     

     1、标准访问列表:在R2的S1/0的出方向应用ACL,使192.168.2.0网段不能上互联网
    (注意ACL只能过滤穿越路由器的流量,对于路由器本身接口产生的流量不能过滤,
       例如R2的F0/1接口发往互联网的流量就不能被过滤)
    access-list 1 deny   192.168.2.0 0.0.0.255
    access-list 1 permit any

    2、扩展访问列表:在R2的S1/0的出方向使用ACL,使PC2的ICMP流量可以出去,但是telnet流量不能出去。
    access-list 100 deny   tcp host 192.168.2.2 any eq telnet
    access-list 100 permit icmp host 192.168.2.2 any

    3、单向访问:使用ACL实现PC1 ping PC2没问题 ,PC2 ping PC1不行
    access-list 100 permit icmp host 192.168.2.2 host 192.168.1.2 echo-reply
    access-list 100 deny   icmp host 192.168.2.2 host 192.168.1.2
    access-list 100 permit ip any any

    4、基于TCP established单向访问:使用ACL实现 PC1 telnet PC2没问题,PC2 telnet PC1不成功
    access-list 100 permit tcp host 192.168.2.2 host 192.168.1.2 eq telnet established
    access-list 100 deny   tcp host 192.168.2.2 host 192.168.1.2 eq telnet
    access-list 100 permit ip any any

    5、基于时间的ACL:实现192.168.1.0 和2.0网段每天上班时间的8:00 - 17:30不能上网
        一、定义时间范围

      定义时间范围又分为两个步骤。

      1.使用Time-range命令来正确地指定时间范围。

      格式:time-range time-range-name

      Time-range-name 用来标志时间范围的,以便在访问表中进行引用。

      2.使用Absolute或者一个或多个Periodic语句来定义时间范围,每个时间范
         围只能有一个Absolute语句,但它可以有多个Periodic语句。

      (1)格式:absolute [start time date] [end time date]

      Time以小时和分钟方式(hh:mm)输入时间。

      Date以日、月、年方式输入日期。

      如:absolute start 8:00 end 18:00

      (2)格式:periodic days-of-the-

      week hh:mm to [days-of-the-week] hh:mm

      Days-of-the-week产生作用的某天或某几天;参数可以是单一的一天
    (如 Monday)某几天(Monday到Friday)或Daily、Weekday或Weekend。

      Daily从星期一到星期天。

      Weekday从星期一到星期五。

      Weekend星期六和星期日。

      如:从星期六早上8∶00到星期天晚上18∶00

      periodic weekend 8:00 to 18:00

      一周中的每天8∶00到18∶00

      periodic daily 8:00 to 18:00

      从星期三的15∶00到星期六的8∶00

      periodic wednesday 15:00 to saturday 8:00

      二、在访问表中用Time-range引用刚刚定义的时间范围

      如:ip access-list 101 permit any any eq 80 time-range time-range-name

      Time-range-name是用Time-range定义的名称。



    time-range internet
     periodic weekdays 8:00 to 18:00

    access-list 100 deny ip 192.168.0.0 0.0.255.255 any time-range internet
    access-list 100 permit ip any any
       


    注意的地方:
    1、每一条ACL语句只有一个条件和操作
    2、所有ACL后有一条deny all的隐性操作,在一个ACL里面必须得有一个permit语句
    3、ACL的顺序一定要合理,最细化的具体的条目要放在最前面,粗略的条目放在后面   
        (1、顺序得当可以降低CPU负担  
        (2、如果粗略条目在细化的条目前面,就有可能导致细化条目无效)
      access-lis 1 permit 192.168.1.0 0.0.0.255
      access-lis 1 deny host 192.168.1.100
    4、每个方向、每个接口、每种协议只允许一个ACL`
    5、ACL可以控制穿过路由器的流量,但是不能控制自身产生的流量

    应用时应注意:
    1、标准ACL离目标更近,优点是配置简单,缺点效率低
    2、扩展ACL离源更近,效率高,控制数据更加的细化



    可控VTY访问
    access-list 1 permit 192.168.1.2
    !         
    line vty 0 4
     access-class 1 in  //应用标准访问列表1
     password 123

    命名访问列表
    ip access-list standard vty-access   //命名访问列表的配置
     permit 192.168.1.2
    !
    line vty 0 4
     access-class vty-access in   //应用命名访问列表
     password 123

    单向访问应用:
    1、A主机可以ping通B主机,但是B主机不能ping通A主机
    access-list 100 permit icmp host 192.168.2.2 host 192.168.1.2 echo-reply
    access-list 100 deny   icmp host 192.168.2.2 host 192.168.1.2
    access-list 100 permit ip any any

    2、带有established选项的扩展访问列表
    access-list 100 permit tcp host 192.168.2.2 host 192.168.1.2 eq telnet established
    access-list 100 deny   tcp host 192.168.2.2 host 192.168.1.2 eq telnet
    access-list 100 permit ip any any





  • 相关阅读:
    leetcode Move Zeroes
    leetcode Same Tree
    leetcode range sum query
    leetcode Invert Binary Tree
    leetcode【sql】 Delete Duplicate Emails
    mac编译PHP报错 configure: error: Please reinstall the libcurl distribution
    Linux添加系统环境变量的两种方法
    Mysql获取去重后的总数
    MySQL查询order by相减select相减的Sql语句
    修改maven本地仓库路径
  • 原文地址:https://www.cnblogs.com/zhongguiyao/p/8007147.html
Copyright © 2011-2022 走看看