ACL访问控制列表

 

 

一、ACL概述

 

1ACL是应用在路由器接口的指令列表,在路由器上读取OSI七层模型的第三四层包 

    头中的信息;如源地址、目的地址、源端口、目的端口等。 

2ACL可分为两种基本类型:

     标准访问控制列表:检查数据包的源地址。其结果基于源网络/子网/主机IP,来决定

允许还是拒绝转发数据包。它使用1~99之间的数字作为表号。

     扩展访问控制列表:对数据包的源地址与目标地址均与进行检查。它也能检查特定的      

协议、端口号及其他参数。它使用100~199之间的数字作为表号。

(3)ACL的工作原理:

         ACL是一组规则的集合,应用在路由器的某个接口上。

         ACL的两个方向:

         出,已经进过路由器出来,正离开路由器接口的数据包

         入,已到达路由器接口的数据包,将被路由器处理。

         ACL,检查如果不匹配将继续往下检查,如果有任何一条匹配路由器将允许该数据包  

         通过不在检查,如果没有任何一条匹配则丢弃。要注意ACL的顺序。

 

二、访问控制类表的类型及配置

1、 标准访问控制列表

 

根据数据包的原IP地址来允许或拒绝数据包,表号1~99

  (1)创建ACL

Rconfig#access-list access-list-number {

permit|denysource [source-wildcard]

access-list-number:访问控制列表表号,1~99.

permit|deny:允许|拒绝通信流量。

Source:数据包的源地址,可以是主机也可是网络地址。

source-wildcard:子网掩码的反码。

例:Rconfig#access-list 1 permit 192.168.1.1  0.0.0.0

    R(config)#access-list 1 permit 192.168.1.0  0.0.0.255

2)关键字

Host:用来表示单个ip       any:用来表示整个网段

    (3)删除已建立的标准ACL

Rconfig#no ip access-list access-list-number   在命令前加一个no,只需写列表号

    (4)将ACL应用于接口

Rconfig-if#ip access-group access-list-number {in|out}

在接口上取消ACL,在命令前叫no

例:R(config)#access-list 1 deny host 192.168.10.1

R(config)#access-list 1 permit  any

R(config)#int  f0/0

R(config)#ip access-group 1 in

查看配置:show access-lists

 

注:每个方向上只能有一个ACL,也就是每个接口做多只能有两个ACL:一个入方向,一个出

2、扩展访问控制类表配置

1)创建ACL

R(config)#access-list access-list-number {

permit|denyprotocol

{

sourcesource-wildacrddestinationdestination-widcard} [perator opran]

access-list-number:控制访问列表好,扩展ACL100~199之间。

permit|deny:允许|拒绝通信流量。

Sourcedestination:源和目的,用来表实源地址和目的地址。

source-wildacrddestination-widcard:子网掩码的反面。

perator opranlt(小于)gt(大于)、eq(等于)、neq(不等于)和一个端口号。   Echo

:R(config)#access-list 101 deny tcp 192.168.1.0 .0.0.0.255 host 192.168.2.2 eq 21

拒绝1.0网段访问FTP服务器192.168.2.2

R(config)#access-list 101 deny icmp192.168.1.0 .0.0.0.255 host 192.168.2.2 echo

禁止1.0网段中的主机ping服务器192.168.2.2

   (2)删除已建立的扩展ACL

Rconfig#no access-list acces-list  

扩展ACL与标准ACL一样,不能删除单条ACL语句,只能删除整个ACL

3)将ACL应用于接口

4)将ACL应用于接口

Rconfig-if#ip access-group access-list-number {in|out}

 

3、命名控制访问列表配置

     (1)创建ACL

R(config)#access-list {

standard | extendedaccess-list-name

standard | extended:标准|扩展

access-list-name:可以使用字母、数字组合的字符串。

标准命名ACL

R(config-std-nacl)#[Sequnce-Number] {

permit | deny} source [source-wildcard]

 扩展命名ACL

R(config-std-nacl)#[Sequnce-Number] {

permit | deny} protocol 

                {source source-wildcard destination destination-widacard} [ooperator operan]

Sequnce-Number:表明配置的ACL语句在命令ACL所处的位置,默认情况第一条为10,第二条   

               为20,一次类推。如果不选择Sequnce-Number,参数就会添加到ACL列表末    

               尾序列号加10

1:允许1.1流量通过,拒绝其他。

    R(config)#ip access-list standard cisco

R(config-std-nacl)#permit  host  192.168.1.1

R(config-std-nacl)#deny dney

更改需求,出允许来自1.1的外,也允许来自2.1的通过

R(config-std-nacl)#ip access-list standard cisco

R(config-std-nacl)#15 permit  host 192.168.2.1

 

2:拒绝1.0访问FTP服务器2.2的流量,允许其他任何流量,扩展ACL

    R(config)#ip access-list exrended cisco

R(config-std-nacl)#deny tcp 192.168.1.0 0.0.0.255 host 192.168.2.2 eq 21

R(config-std-nacl)#permit ip any any

     (2)删除已建立的命名ACL

 R(config)#no ip access-list {

standard | extended} access-list-name

        删除某个ACL语句

R(config)#no Sequnce-Number  

也可用 

R(config)#ip access-list standard cisco

R(config-std-nacl)#no  15 permit  host 192.168.2.1

 

注:对命名ACL来说,可删除单条ACL,而不必删除整个ACL。并ACL语句可有选择的插入到列表中的某个位置,使得ACL配置更加灵活。

 

4、定时控制访问列表配置

配置定时ACL,需要建立一个时间范围,然后使用扩展ACL或命名扩展ACL引用这个时间范围。

 

         (1)配置时间范围的名称

   1>定义时间范围的名称

Rconfig#time-range time-range-name

   2>指定该时间范围何时生效

定义一个时间周期

Rconfig-time-range#periodic days-of-the-week hh:mm to [days-of-the-week] hh:mm

days-of-the-week :取值表Monday(一)、Tuesday(二)、Wednesday(三)、Thursday(四)、Friday(五)、Saturday(六)、Sunday(日)、Daily(每天)Weekdays(z周一到五)Weekend(周六日)

定义一个绝对时间

Rconfig-time-range#absolute [start hh:mm day month year] [end hh:mm day month year]

          (2)在扩展ACL中引入时间范围

Rconfig#access-list access-list-number {permit|deny} protocol {

source source-wildcard destination destination-wildcard} [operator operan] time-range time-range-name

3)将ACL应用与接口

Rconfig-if#ip access-group accesslist-number {in|out}

 

例:定义时间范围

    每周一到五8:3017:30,允许所有IP通过

Rconfig#time-range mytime

Rconfig-time-range#periodic weekdays 8:30 to 17:30

Rconfig-time-range#exit

Rconfig#access-list 101 permit ip any any time-range mytime

Rconfig#int f0/0

Rconfig-if#ip access-group 101 in

例:定义绝对时间

20095108:002018:00,允许所有IP通过。

Rconfig#time-range mytime

Rconfig-time-range#absolute start 8:00 10 may 2009 end 18:00 20 may 2009

Rconfig-time-range#exit

Rconfig#access-list 101 permit ip any any time-range mytime

Rconfig#int f0/0

Rconfig-if#ip access-group 101 in