ACL原理与应用知识总结

一、定义:访问控制列表(ACL)是一种基于包过滤的访问控制技术,它可以根据设定的条件对接口上的数据包进行过滤,允许其通过或丢弃。

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

访问控制列表具有许多作用,如限制网络流量、提高网络性能;通信流量的控制,例如ACL可以限定或简化路由更新信息的长度,从而限制通过路由器某一网段的通信流量;提供网络安全访问的基本手段;在路由器端口处决定哪种类型的通信流量被转发或被阻塞,例如,用户可以允许E-mail通信流量被路由,拒绝所有的 Telnet通信流量等。 

如何通过ACL对数据进行过滤?各种协议框架下,传输的数据,都包含:数据头部,数据负载两部分。所做的动作有:数据封装,数据传输,数据解封装。通常情况下,对数据包的头部所包含的信息进行分析,决定其取舍和走向。

 

ACL的作用是过滤数据包,是有方向的,即入方向(inbound)和出方向 (outbound),入方向和出方向的判断,根据数据流动方向作为参照,并以实际控制需要设置相应的acl。

 

华为ACL的类型

1、基本ACL        2000-2999          针对的是:源IP地址

2、高级ACL        3000-3999          针对的是:源IP地址、目标IP地址、源端口、目标端口、协议号。

例如:(基本ACL): ACL 2001

0.0.0.255    //防止10网段通过,其中0.0.0.255是通配符,带0的表示精确匹配,1则是通配

        rule   20 permit source 192.168.20.0     0.0.0.255   //允许20网段通过 ,默认都是通的

 

二、基础acl案例:

      1. eNSP模型

acl应用到所有vlan acl如何应用_访问控制列表

 

 

      2. 相关模型基本配置

   2.1.PC端配置:IP地址192.168.1.1,192.168.2.1, 192.168.3.1

   2.2.服务器:IP地址 192.168.22.1

   2.3.交换机:

        vlan batch 10 20 30

interface Ethernet0/0/1
port link-type access
port default vlan 10
#
interface Ethernet0/0/2
port link-type access
port default vlan 20
#
interface Ethernet0/0/3
port link-type access
port default vlan 30

 

interface GigabitEthernet0/0/1
port link-type trunk
port trunk allow-pass vlan  all  //( 2 to 4094 )

2.4.路由器:      

interface GigabitEthernet0/0/1.10

dot1q termination vid 10
ip address 192.168.1.254 255.255.255.0
arp broadcast enable

interface GigabitEthernet0/0/1.20

dot1q termination vid 20
ip address 192.168.2.254 255.255.255.0
arp broadcast enable

interface GigabitEthernet0/0/1.30

dot1q termination vid 30
ip address 192.168.3.254 255.255.255.0
arp broadcast enable

interface GigabitEthernet0/0/0

ip address 192.168.22.254 255.255.255.0

      3. ACL配置 (在路由器上配置)

acl  2000

rule 10 permit source  192.168.1.0  0.0.0.255   
rule 20 deny source    192.168.2.0  0.0.0.255   //阻止192.168.2.0网段的数据通过
rule 30 permit source    192.168.3.0  0.0.0.255

rule 11 deny source 192.168.1.1     0.0.0.0   //阻止192.168.1.1这个站点的数据通过

rule 21 deny source 192.168.2.1    0.0.0.0  //阻止192.168.2.1这个站点的数据通过


acl  2001

rule 22 permit source 192.168.22.0  0.0.0.255

interface GigabitEthernet0/0/0

traffic-filter  outbound  acl  2000   //把acl 2000基本规则加到链路接口g0/0/0,控制他的出接口,即来自交换机那一侧的访问
traffic-filter  inbound  acl  2001   //把acl 2001基本规则加到链路接口g0/0/0,控制他的入接口,即来自服务器上的访问

      4. 连通性测试

 

根据acl控制,第二台PC被deny了

PC>ping 192.168.22.1

Ping 192.168.22.1: 32 data bytes, Press Ctrl_C to break

Request timeout!
Request timeout!
Request timeout!
Request timeout!
Request timeout!

--- 192.168.22.1 ping statistics ---
5 packet(s) transmitted
0 packet(s) received
100.00% packet loss

 

[Router] display acl all  //查询acl过滤的统计结果

Total quantity of nonempty ACL number is 2

Basic ACL 2000, 3 rules
Acl's step is 5
rule 10 permit source 192.168.1.0 0.0.0.255 (21 matches)
rule 20 deny source 192.168.2.0 0.0.0.255 (15 matches)
rule 30 permit source 192.168.3.0 0.0.0.255 (24 matches)

Basic ACL 2001, 1 rule
Acl's step is 5
rule 22 permit source 192.168.22.0 0.0.0.255 (180 matches)

 

三、高级acl案例:acl  3000-3999      针对的是五元素:源IP地址、目标IP地址、源端口、目标端口、协议号。

       在此需要强调的是:高级与基本从功能的区别上看:高级acl控制的更细,包括:源IP地址、目标IP地址、源端口、目标端口、协议号。而基本acl只控制源IP地址。

       从编号上看:2000-2999为低级,3000-3999。这是厂家定义的,规定的。

        当acl 2000和acl3000时,分别提示如下:

[R1]acl 2000
[R1-acl-basic-2000]  //basic即为基本,是有路由器自动提示的。


[R1]acl 3000
[R1-acl-adv-3000]   //advance即为高级,是路由器自动的提示的。

        高级ACL的控制的更精细


        [R1]acl 3000   //本acl 3000只为体现高级acl 规则,实际控制根据实际情况,其基本套路与基本acl2000类似。

 [R1-acl-adv-3000] rule 10 permit tcp source 192.168.1.1 0 destination 192.168.3.1 0 destination-port eq 8090  

 [R1-acl-adv-3000]rule 20 permit ip source 192.168.1.1 0 destination 192.168.2.0 0.0.0.255

 [R1-acl-adv-3000]rule 30 deny ip source 192.168.1.1 0 destination any     //在执行上述rule1 和rule 10两条规则后,拒绝放行192.168.1.1 发过来的IP协议包

 

interface GigabitEthernet0/0/1

traffic-filter inbound acl 3000   //在g0/0/1接口,入接口方向,执行acl 3000 。

注:acl控制列表在何处执行,是入接口还是出接口,要根据实际业务需要定。建议用Excel构建acl控制矩阵表加以分析,防止遗漏。一般而言,就近原则,即在被控制的设备最近的路由器上的接口,加以布置。

       acl只对其他设备来或者去的数据流进行控制,自己的数据控制不了。同时需要注意的是,acl是部署在接口上的,包括物理接口和虚接口。根据实际情况定控制点。

其他:ICMP,Telnet(通过协议号控制),VRRP(通过协议号控制),FTP等等控制类似。

rule 40 deny icmp source 192.168.1.1 0.0.0.0  destination 192.168.2.1 0.0.0.0

telnet可在远程虚接口vty上执行:rule 50  deny source 192.168.1.253  0.0.0.0 

 //即拒绝来自网关的数据,或者同TCP 的23号端口来控制

rule 60 permit tcp source 192.168.1.253 destination 192.168.3.253 0.0.0.0  destination-port eq 23

 

从以上这些情况来看,基本ACL和高级ACL的命令相对是简单的,难在确认控制接口所在位置,通过TCP/IP协议原理以及数据包结构,编制合适的ACL控制命令。