zoukankan      html  css  js  c++  java
  • CCNA2.0笔记_ACL

    要点:
      1、按顺序执行,一旦某条语句匹配,后续语句不再处理.
      2、默认ACL 结尾语句是deny any,所以你要记住的是在ACL 里至少要有1 条permit 语句.
      3、记得创建了ACL 后要把它应用在需要过滤的接口上.
      4、每个接口,每个方向,每种协议,你只能设置1 个ACL(每个接口只能有一个 acl in 和一个 acl out).
      5、你不可能从ACL 从除去1 行,除去1 行意味你将除去整个ACL,命名访问列表(named access lists)例外.
      6、ACL 是用于过滤经过router 的数据包,它并不会过滤router 本身所产生的数据包.
      7、尽可能的把IP 标准ACL 放置在离目标地址近的地方;尽可能的把IP 扩展ACL 放置在离源地址近的地方。

    ACL的工作原理
      •读取第三层及第四层包头中的信息
      •根据预先定义好的规则对包进行过滤

      

    ACL的两大主要功能:
      •流量控制
      •匹配感兴趣流量

    ACL的类型:
      •标准访问控制列表
       –只能根据 源地址 做过滤
       –针对整个协议采取相关动作(允许或禁止)
      

      •扩展访问控制列表
       –能根据 源、目的地地址、端口号 等等进行过滤
       –能允许或拒绝 特定 的协议
      

      •入站及出站
      

      需要把ACL应用到接口上,而且还要定义过滤的方向:
      1.in ACL(进方向ACL):先路由,再处理
      当访问列表被应用到从接口输入的包时,那些包在被路由到输出接口之前要经过访问列表的处理。不能路由任何被拒绝的包,因为在路由之前这些包就会被丢弃掉。
      2.out ACL(出方向ACL):先处理,再路由
      当访问列表被应用到从接口输出的包时,那些包首先被路由到输出接口,然后在进入该接口的输出队列之前经过访问列表的处理。

      •access-list
      

      •通配符掩码
      通配符和访问列表一起用来指定一台主机、一个网络、一个网络或几个网络内的某个范围
      由0到255的4个8位位组组成的。0代表必须精确匹配,255代表任意,比如:172.16.30.0 0.0.0.255,它表示前3个8位位组必须精确匹配,后1个8位位组可以为任意值;

      如果你想指定172.16.8.0 到172.16.15.0,则通配符掩码为0.0.7.255 (15-8=7)
      表示192.168.1.0-192.168.1.31用通配符掩码网段表示为 192.168.1.0 0.0.0.31

      
      

      •通配符缩写
      

      •标准访问控制列表的配置:

    access-list access-list-number {permit|deny} source [wildcard mask]

      •编号选择1 – 99 以及 1300~1999之间的数字作为表号。
      •通配符若无,默认0.0.0.0 (精确匹配)
      •执行“no access-list access-list-number” 将会删除整个ACL列表

    ip access-group access-list-number { in | out }

      •在接口中应用
      •应用时关联入或出站方向
      •默认用于出站

      标准ACL尽可能用在靠近目的地址的地方

    //允许172.17.31.222通过,其他主机禁止
    access-list 1 permit host 172.17.31.222   //可以省去输入host命令
    
    //禁止172.17.31.222通过,其他主机允许
    access-list 1 deny host 172.17.31.222   //可以省去输入host命令
    access-list 1 permit any
    
    //允许172.17.31.0/24通过,其他主机禁止
    access-list 1 permit 172.17.31.0 0.0.0.255
    
    //禁止172.17.31.0/24通过,其他主机允许
    access-list 1 deny 172.17.31.0 0.0.0.255
    access-list 1 permit any

       举例:
      
      要求:销售部不允许访问金融部,但允许访问市场部和Internet:

    (config)#access-list 10 deny 172.16.40.0 0.0.0.255
    (config)#access-list 10 permit any
    (config)#interface E1
    (config-if)#ip access-group 10 out      //尽量把标准ACL放在离目标近的地方,所以应用在E1口,方向为out.
    

      
      禁止172.16.4.0/24网段中除172.16.4.13这台服务器访问172.16.3.0/24的计算机

    (config)#access-list 1 permit host 172.16.4.13    //允许172.16.4.13的数据包通过
    (config)#int e 0     //进入E0端口(因为标准ACL尽量放在离目标地址近的地方)
    (config-if)#ip access-group 1 out     //应用到接口E0的出方向
    

      禁止172.16.4.13对172.16.3.0/24网段的访问,而172.16.4.0/24中的其他计算机可以正常访问。

    (config)#access-list 1 deny host 172.16.4.13    //禁止172.16.4.13的数据包通过
    (config)#access-list 1 permit any     //允许其他所有计算机数据包通过
    (config)#int e 0    //进入E0端口
    (config-if)#ip access-group 1 out    //将ACL1宣告,同理可以进入E1端口后使用ip access-group 1 in来完成宣告

      •扩展访问控制列表的配置:

    access-list access-list-number {permit | deny} protocol source source-wildcard [operator port] destination destination-wildcard [operator port]
    
    //中文: access-list ACL号 [permit|deny] [协议] [定义源主机范围][定义源端口][ 定义目的主机范围] [定义目的端口]

      •编号选择100 – 199 以及 2000~2699之间的数字作为表号。
      •执行“no access-list access-list-number” 将会删除整个ACL列表

    ip access-group access-list-number { in | out }
    

      •在接口中应用 
      •应用时关联入或出站方向

    [operator port]
      

      扩展ACL尽可能用在靠近源地址的地方 

      举例:
      
      禁止172.16.3.0的计算机访问172.16.4.0的计算机,惟独可以访问172.16.4.13上的WEB服务

    (config)#access-list 101 permit tcp any host 172.16.4.13 eq www   //设置ACL101,容许源地址为任意IP,目的地址为主机172.16.4.13的80端口即web服务
    (config)#int e 0    //进入E0端口(因为扩展ACL尽量放在离源地址近的地方)
    (config-if)#ip access-group 101 in    //应用到接口E0的入方向
    

      拒绝来自172.16.3.0去往172.16.4.0的FTP流量,允许其他所有流量

    (config)#access-list 101 deny tcp 172.16.3.0  0.0.0.255 172.16.4.0 0.0.0.255 eq 21
    (config)#access-list 101 permit ip any any
    (config)#int e 0
    (config-if)#ip access-group 101 in
    

      拒绝来自172.16.3.5去往172.16.4.13的所有流量,允许其他所有流量

    (config)#access-list 101 deny ip host 172.16.3.5 host 172.16.4.13
    (config)#access-list 101 permit ip any any
    (config)#int e 0
    (config-if)#ip access-group 101 in
    

      

    (config)#access-list 101 permit tcp host 192.168.33.3 host 172.22.242.23 eq www
    (config)#access-list 101 deny tcp any host 172.22.242.23 eq www
    (config)#access-list 101 permit ip any any
    (config)#interface FastEthernet0/0
    (config-if)ip access-group 101 in
    

      •命名访问控制列表:

      不论是标准ACL还是扩展ACL都存在一个弊端:当配置好ACL规则后,希望对某条进行修改或删除只能将整条ACL信息都删除。可以用基于名称的访问控制列表来解决这个问题。

      标准命名ACL命令:

    (config)#ip access-list standard name 
    (config-std-nacl)#{permit /deny} source-ip source-wildcard
    (config-if)#ip access-group standard name { in | out }
    

      •在接口中应用 
      •应用时关联入或出站方向

      

      建立标准ACL命名为test:允许10.1.1.101和103通过,其他主机禁止

    (config)#ip access-list standard test
    (config-std-nacl)#permit host 10.1.1.101
    (config-std-nacl)#permit host 10.1.1.103
    (config)#int fa0/0
    (config-if)#ip access-group test out    //接口应用(靠近目标,出方向)
    

      当需要将"permit host 10.1.1.103"删除时,非命名ACL只能删除整个ACL信息。正是因为使用了基于名称的访问控制列表,我们进入ip access-list standard test后,可使用"no permit host 10.1.1.103"删除.

      命名扩展ACL命令:

    (config)#ip access-list extended name 
    (config-ext-nacl)#{permit /deny} protocol [source-ip source-wildcard destination-ip destination-wildcard] [operator port]
    
    ip access-group extended name { in | out }
    

      •在接口中应用 
      •应用时关联入或出站方向  

      仅允许10.1.1.0网段的主机访问主机209.165.202.196的web服务

    (config)#ip access-list extended web_only
    (config-ext-nacl)#permit tcp 10.1.1.0 0.0.0.255 host 209.165.202.196 eq www

      仅允许10.1.1.101访问所有主机80端口,其他所有主机禁止

    (config)#ip access-list extended test01
    (config-ext-nacl)#permit tcp host 10.1.1.101 any eq www

      禁止所有主机访问209.165.202.197主机的23、26口,但允许访问其他端口

    (config)#ip access-list extended test02
    (config-ext-nacl)#deny tcp any host 209.165.202.197 eq 23
    (config-ext-nacl)#deny tcp any host 209.165.202.197 eq 26
    (config-ext-nacl)#permit tcp any any

      接口应用(靠近源,入方向)

    (config)#int fa1/0
    (config-if)#ip access-group web_only in
    

      命名ACL还有一个优点就是可以调整语句的顺序:
      每新增一条语句,顺序号默认加10

      例:

    Router#show ip access-lists     //显示ACL
    Extended IP access list test
    10 deny tcp any host 209.165.202.197 eq telnet
    20 permit tcp any any

      如果要在前面插入:

    Router#conf terminal
    Router(config)#ip access-list extended test
    Router(config-ext-nacl)#5 deny tcp any host 209.165.202.197 eq 8080

      结果:
      Router#show ip access-lists
      Extended IP access list test
      5 deny tcp any host 209.165.202.197 eq 8080
      10 deny tcp any host 209.165.202.197 eq telnet
      20 permit tcp any any

      如果要在中间插入:

    Router#conf terminal
    Router(config)#ip access-list extended test
    Router(config-ext-nacl)#15 deny tcp any host 209.165.202.197 eq 7070

      结果:
      Router#show ip access-lists
      Extended IP access list test
      5 deny tcp any host 209.165.202.197 eq 8080
      10 deny tcp any host 209.165.202.197 eq telnet
      15 deny tcp any host 209.165.202.197 eq 7070
      20 permit tcp any any

      ------------------------------------------------------------------------------------------------------------

      补充: 
      可使用IP 标准ACL 来控制VTY 线路的访问.步骤如下:
      1.创建个IP 标准ACL 来允许某些主机可以telnet
      2.使用access-class 命令来应用ACL 到VTY 线路上
      配置如下: 

    Router(config)#access-list 50 permit 172.16.10.3    //仅允许172.16.10.3访问
    Router(config)#line vty 0 4     //进入VTY 线路模式
    Router(config-line)#access-class 50 in    //应用ACL,方向为in
    

     一些验证ACL 的命令:
      1.show access-list:显示router 上配置了的所有的ACL 信息,但是不显示哪个接口应用了哪个 ACL 的信息
      2.show access-list [number]:显示具体第几号ACL 信息,也不显示哪个接口应用了这个ACL
      3.show ip access-list:只显示IP 访问列表信息
      4.show ip interface:显示所有接口的信息和配置的ACL 信息
      5.show ip interface [接口号]:显示具体某个接口的信息和配置的ACL 信息
      

  • 相关阅读:
    自定义Response
    并发编程之进程
    并发编程知识储备
    正则表达式和re模块
    Scrapy框架
    http协议和Chrome抓包工具
    requests库
    Beautifulsoup
    xpath
    Mysql一些操作
  • 原文地址:https://www.cnblogs.com/airoot/p/4650438.html
Copyright © 2011-2022 走看看