ACL配置

ACL访问控制列表
   我们知道访问控制列表(ACL)是为了对路由器处理的流量进行过滤而在路由器上建立的规则,在今天路由的世界里它在改善网络性能和加强网络安全等方面已经发挥出越来越重要的作用。但这个玩意是如何发挥作用的?教材上已经有详细的描述,我们这里简单的说一下。

   我们来看看ACL的本质,ACL是访问控制列表的英文缩写,顾名思义,这个是在访问中加于控制而建立的一张列表。现在,很多企业内部都在使用路由的NAT技术进行地址转换,而NAT技术中就包含了ACL的应用。在中高端的路由中,通过ACL,我们可以控制哪些私有地址能上外网,哪些只能上内网。然后把这些过滤好的数据,进行NAT转换。同时,企业内部也需要对服务器的资源访问进行控制,通过ACL过滤出哪些用户能完全访问,哪些用户只能限制访问,哪些用户不能访问。

   在从实际应用中,我们可以这样理解ACL的本质其实是一种流量分类技术,它是人为定义的一组或几组规则策略,目的是通过网络设备对数据流分类,以便执行用户规定的动作。换句话说,ACL本身不能直接达到访问控制的目的,它间接辅助特定的用户策略,达到人们所需效果的一种技术手段(区分不同的数据流)。

   理解的ACL的本质后我们再来看访问控制列表的作用
      1.提供网络访问的基本安全手段
      2.访问控制列表可用于QOS,对数据流量进行控制

      3.提供对通信流量的控制

访问控制列表应用不同决定了路由不同的处理过程
     1.路由器对进入的数据包先检查入访问控制列表,对允许传输的数据包才查询路由表
     2.而对于外出的数据包则先查询路由表,确定目标接口后才查看出访问控制列表


接一下再来看访问控制列表的工作原理:
    ACL使用包过滤技术,在路由器上读取第三层及第四层包头中的信息,根据预先定义好的规则,对包进行过滤,从而达到访问控制的目的。ACL适用于所有的路由器协议:如IP、IPX、AppleTalk,可以在路由器或多层交换机来配置来控制来自特定网络资源的访问。
    ACL的两种类型
      1.标准访问控制列表:检查被路由数据包的源地址,使用1到99,1300至1999之间的数字作为表号,应该把标准列表放在离目标地址近的地方。
      2.扩展访问控制列表:对数据包的源地址与目标地址都进行检查,也能进行协议、端口号,使用100到199,2000至2699之间的数字来作为表号,根据源和目的IP地址、源和目的端口、协议类型等信息作出过滤,应该把扩展列表放在离源地址近的地方。

     实例讲解:
     

     在访问控制列表中使用反码来标记一个或多个地址是被允许还是拒绝。0表示要检查的位,1代表不检查要忽略的位。通配符any可以替代0.0.0.0 255.255.255.255,host可代表反码位全0的情况即0.0.0.0
     通过命名访问控制列表可以对已有的语名进行删除、添加等操作,而不必去掉整个条目,在IOS11.2以后的版本上支持
     一些访问控制语句例子,我们来看:
     标准ACL配置
     r(config)#access-list access-list-number{permit | deny | remark}  source [widcard-mask]

                  编号      允许 | 拒绝 | 注释      通配符掩码
     

     省略通配符掩码,则默认为0.0.0.0,这仅限于表转ACL
     remark  为ACL添加注释
     no access-list access-list-number   通过这条删除整个ACL

     根据ACL两种类型可以分为如下二种
     基本:Switch#access-list access-list-number(1~99) {permit|deny}{anyA|source[source-wildcard-mask]}{any|destination[destination-mask]}
     扩展:Switch#access-list access-list-number(100~199) {permit|deny} protocol{any|source[source-mask]}{any|destination[destination-mask]}[port-number]


基本式的:
access-list 10  permit 192.168.10.0   0.0.0.255         允许192.168.10.0这个网段访问
ip access-group 1 in                把标准访问控制列表1应用到接口上
access-list 20 deny 172.16.0.0 0.0.255.255              禁止172.16.0.0网络上的主机访问
access-list 30 permit 0.0.0.0 255.255.255.255          允许所有IP的访问
access-list 40 deny 192.168.10.5 0.0.0.0                   禁止192.168.10.5主机的通信



再来看一下扩展式实例
access-list 100 deny tcp any any eq ftp      禁止网上FTP下载  any(可以替代0.0.0.0 255.255.255.255)
access-list 110 permit tcp any any eq www            允许www上网
access-list 120 permit tcp host 192.168.0.10 host 192.168.0.20  eq telnet        
   允许192.168.0.10这台主机通过telnet访问192.168.0.20主机
access-list 130 permit icmp any any        允许icmp数据包从任何地址到任何地址
access-list 140 permit tcp 192.168.10.0 0.0.0.255 172.16.1.0 0.0.0.255 eq 80            
        允许192.168.10.0网络通过WEB80端口访问172.16.1.0的服务器

访问控制列表(ACL)是应用在路由器接口上的指令列表。这些指令列表用来告诉路由器哪些数据包可以收、哪些数据包需要拒绝。至于数据包是被接收还是拒绝,可以由类似于源地址、目的地址、端口号等的特定指示条件来判断决定。

将数据包和访问列表进行比较时应遵循的重要规则:

1.数据包到来,则按顺序比较访问列表的每一行。

2.按顺序比较访问列表的各行,直到找到匹配的一行,一旦数据包和某行匹配,执行该行规则,不再进行后续比较。

3.最后一行隐含“deny”的意义。如果数据包与访问列表中的所有行都不匹配,将被丢弃。

4.IP访问控制列表会发送一个ICMP主机不可达的消息到数据包的发送者,然后丢弃数据包。

5.如果某个列表挂接在实际接口上,删除列表后,默认的deny any 规则会阻断那个接口的所有数据流量。

有两种类型的ACL:标准的访问列表和扩展的访问列表

标准访问控制列表控制基于过滤源地址的信息流。编号范围1-99,举例:

router(config)#access-list 10 permit 172.16.0.0 0.0.255.255

router(config)#access-list 20 deny 192.168.1.0 0.0.0.255

router(config)#access-list 20 permit any  //注意这个编号20ACL的顺序,如果调换顺序,就不起任何作用。

router(config)#access-list 30 deny host 192.168.1.1  //host表精确匹配,默认掩码为0.0.0.0,指定单个主机。

注意:在访问列表的最后默认定义了一条deny any any 语句。

扩展访问控制列表比标准访问控制列表具有更多的匹配项,包括协议类型、源地址、目的地址、源端口、目的端口、IP优先级等。编号范围是从100199,格式一般为:

access-list ACL号 [permit|deny] [协议] [定义过滤源主机范围 [定义过滤源端口] [定义过滤目的主机访问] [定义过滤目的端口]

access-list 100 permit ip 172.16.0.0 0.0.255.255 192.168.1.0 0.0.0.255

access-list 101 deny tcp any host 192.168.1.1 eq www  //这句命令是将所有主机访问192.168.1.1上网页服务(WWWTCP连接的数据包丢弃。

access-list 101 permit tcp any host 198.78.46.8 eq smtp  //允许来自任何主机的TCP报文到达特定主机198.78.46.8smtp服务端口(25)

注意:这里eq 就是等于的意思。端口号的指定可以用几种不同的方法。可以用数字或一个可识别的助记符。可以使用80httpwww来指定Web的超文本传输协议。对于使用数字的端口号,还可以用"<"">""="以及不等于来进行设置。 

命名访问列表只是创建标准或扩展访问列表的另一种方法而已。所谓命名是以列表名代替列表编号来定义IP访问控制列表的。举例如下:

Router(config)#ip access-list extended http-not

Router(config-ext-nacl)#deny tcp 172.16.10.0 0.0.0.255 host 172.16.1.2 eq 23

Router(config-ext-nacl)# permit ip any any

Router(config-ext-nacl)#exit

入口访问列表和出口访问列表:通过上面方法创建的访问列表,要应用到路由器的一个要进行过滤的接口上,并且指定将它应用到哪一个方向的流量上时,才真正的被激活而起作用。

访问列表的调用:在接口下使用:

router(config)#interface s0/1

router(config-if)# ip access-group 10 in

router(config-if)# ip access-group 20 out

ACL可在VTY下调用,但只能用标准列表:

R1(config)#access-list 10 permit 192.168.1.1

R1(config)#line vty 0 4

R1(config-line)#access-class 10 in

下面是通用的ACL配置规则:

1.每个接口、每个协议或每个方向上只可以应用一个访问列表。(因为ACL末尾都隐含拒绝的语句,经过第一个ACL的过滤,不符合的包都被丢弃,也就不会留下任何包和第二个ACL比较)。

2.除非在ACL末尾有permit any命令,否则所有和列表条件不符的包都将丢弃,所以每个ACL至少要有一个运行语句,以免其拒绝所有流量。

3.要先创建ACL,再将其应用到一个接口上,才会生效。

4.ACL过滤通过路由器的流量,但不过滤该路由器产生的流量。

5.IP标准访问列表尽可能的应用在靠近目的地的接口上,因为他是基于源地址过滤的,放在源端没有意义。

6.IP扩展访问列表尽可能的应用在靠近源地址的接口上,因为它可以基于目的地址、协议等过滤,放在源端过滤,免得需要过滤的数据包还被路由到目的端才被过滤,以节省带宽。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值