网络的那些事之ACL

在企业网络中经常遇到这样的问题:在网络一个重要的部门的主机或服务器不允许其他部门访问,而这个部门却可以去访问其他的部门的主机或服务器。我们可以利用访问控制列表

一、ACL的概念

访问控制列表(Access Control Lists,ACL)是应用在路由器接口的指令列表。

二、ACL的作用

访问控制是网络安全防范和保护的主要策略,它的主要任务是保证网络资源不被非法使用和访问。它是保证网络安全最重要的核心策略之一。访问控制涉及的技术也比较广,包括入网访问控制、网络权限控制、目录级控制以及属性控制等多种手段。这些指令列表用来告诉路由器哪些数据包可以收、哪些数据包需要拒绝。至于数据包是被接收还是拒绝,可以由类似于源地址目的地址端口号等的特定指示条件来决定。

访问控制列表不但可以起到控制网络流量、流向的作用,而且在很大程度上起到保护网络设备、服务器的关键作用。作为外网进入企业内网的第一道关卡,路由器上的访问控制列表成为保护内网安全的有效手段。

三、ACL的分类

1、标准IP访问列表

1)、标准IP访问列表格式

 access-list[list number][permit|deny][source address]

①、 access-list

在access和list2个关键字之间必须有一个连字符"-"。

②、list number

list number的范围在0~99之间,这表明该access-list语句是一个普通的标准型IP访问列表语句。因为对于Cisco IOS,在0~99之间的数字指示出该访问列表和IP协议有关,所以list number参数具有双重功能:

1)定义访问列表的操作协议;

  2)通知IOS在处理access-list语句时,把相同的list number参数作为同一实体对待。

因扩展型IP访问列表也是通过list number(范围是100~199之间的数字)而表现其特点的此,所以在运用访问列表时,还需要补充如下重要的规则: 在需要创建访问列表的时候,需要选择适当的list number参数。

③、permit|deny

 在标准型IP访问列表中,使用permit语句可以使得和访问列表项目匹配的数据包通过接口,而deny语句可以在接口过滤掉和访问列表项目匹配的数据包。

④、source address

source address代表主机的IP地址,利用不同掩码的组合可以指定主机。

通配符掩码:通配符掩码和子网掩码一样都是32位,每位是由0或者1组成。IP子网掩码中,数字1、0用来决定网络、子网,还是相应的主机的IP地址。通配符掩码中,0表示要检查的位,掩码位设成0则表示IP地址中相对应的位必须精确匹配;1表示不需要检查的位。通配符掩码中,可以用255.255.255.255表示所有IP地址,因为全为1说明32位中所有位都不需检查,此时可用any替代。而0.0.0.0的通配符则表示所有32位都必须要进行匹配,它只表示一个IP地址,可以用host表示。

2)、标准IP访问列表实例分析

 

 

R1的配置:

Router>en

Router#conf t

Router(config)#host R1

R1(config)#int g0/0

R1(config-if)#ip add 12.1.1.1 255.255.255.0

R1(config-if)#no shut

R1(config-if)#ip route 0.0.0.0 0.0.0.0 12.1.1.2

R2的配置:

Router>en

Router#conf t

Router(config)#host R2

R2(config)#int g0/0

R2(config-if)#ip add 12.1.1.2 255.255.255.0

R2(config-if)#no shut

R2(config-if)#int g0/1

R2(config-if)#ip add 23.1.1.2 255.255.255.0

R2(config-if)#no shut

R3的配置:

Router>en

Router#conf t

Router(config)#host R3

R3(config)#int g0/0

R3(config-if)#ip add 23.1.1.3 255.255.255.0

R3(config-if)#no shut

R3(config)#ip route 0.0.0.0 0.0.0.0 23.1.1.2

R1可以PINGR3

 

R3也可以PINGR1

 

R3上创建ACL

R3(config)#access-list 1 deny host 12.1.1.1

R3(config)#access-list 1 permit any

ACL应用到路由器R3g0/0接口,方向是in,即进入的方向

R3(config)# int g0/0

R3(config-if)#ip access-group 1 in

R3(config-if)#end

R1PING R3测试


此时已经不能PING通。

 

这条标准的ACL仅仅是禁止了一个IP地址12.1.1.1,如果R1上面还有其他接口,使用高级ping命令让其他接口的IP地址作为源,去ping R3s0/1接口IP,还是可以ping通的。

标准ACL的放置位置

如果将前面创建的ACL 1配置在R1g0/0上,方向是Out,结果将不起作用,因为ACL仅对穿越流量起作用,对本路由器起源的流量不起作用。(不可行

如果将前面创建的ACL 1配置在R2g0/0上,方向是In,结果起作用,R1不能访问R3了,但同时R1也不能访问R2了,因为标准ACL只针对源地址进行过滤。(不可行

如果将前面创建的ACL 1配置在R2g0/1,方向是Out,结果正确,R1能正常访问R2,但是不能访问R3。(不可行

如果将前面创建的ACL 1配置在R3g0/0,方向是In,结果正确。(可行

经过上面四步的分析,可以得出这样的结论,标准访问控制列表要尽可能的应用在靠近目标端,因为标准ACL只针对源地址进行过滤

2、扩展IP访问列表

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


CopyR0的配置同标准访问控制中的R1

CopyR1的配置同标准访问控制中的R2

CopyR2的配置同标准访问控制中的R3

此时CopyR0CopyR2可以相互pingCopyR0CopyR2可以相互telnet

CopyR1上创建扩展访问控制列表:

CopyR1 (config)#access-list 100 deny tcp host 12.1.1.1 hsot 23.1.1.3 eq telnet

CopyR1 (config)#access-list 100 permit ip any any

扩展访问控制列表应用到CopyR1g0/0口:

CopyR1 (config)#int g0/0

CopyR1 (config)#ip access-group 100 in

此时CopyR0CopyR2可以相互ping,但是CopyR0不能telnet CopyR2,而CopyR2可以相互telnetCopyR0。这个是限制telnet而没有限制ping。对于标准控制列表,将会限制所有。

设置远程登录和管理,在CopyR2上设置:

CopyR2 (config)#line vty 0 4            //同时允许5个用户登录

CopyR2 (config-line)#login

CopyR2 (config-line)#pass Cisco        //设置密码

CopyR2 (config-line)#exit

CopyR2 (config)#enable passCisco

配置基于TCP的单向访问:

 

CopyR0的配置同标准访问控制中的R1

CopyR1的配置同标准访问控制中的R2

CopyR2的配置同标准访问控制中的R3

配置CopyR0CopyR2的远程登录,然后在CopyR1上配置:

CopyR2 (config)#access-list 100 permit tcp any any established

CopyR2 (config)#int g0/1

CopyR2 (config-if)#ip access-group 100 in

此时,CopyR0可以远程登录CopyR2,但是CopyR2不能远程登录CopyR0

3、命名的IP访问列表

所谓命名的IP访问控制列表是以列表名代替列表编号来定义IP访问控制列表,同样包括标准和扩展两种列表,定义过滤的语句与编号方式中相似。

4、标准IPX访问列表

标准IPX访问控制列表的编号范围是800-899,它检查IPX源网络号和目的网络号,同样可以检查源地址和目的地址的节点号部分。

5、扩展IPX访问列表

扩展IPX访问控制列表在标准IPX访问控制列表的基础上,增加了对IPX报头中以下几个宇段的检查,它们是协议类型、源Socket、目标Socket。扩展IPX访问控制列表的编号范围是900-999

6、命名的IPX访问列表

与命名的IP访问控制列表一样,命名的IPX访问控制列表是使用列表名取代列表编号。从而方便定义和引用列表,同样有标准和扩展之分。

注:还有基于IP的单项访问控制列表(网络防火墙)、基于时间的访问控制列表、基于上下文的访问控制列表、动态访问控制列表等(在此不做分析,学习ing)。对于3456的详细分析和配置实例以及如何配置单向访问,暂不介绍(学习ing),大家可以以此文章作为切入点深入学习。访问控制列表从概念上来讲并不复杂,复杂的是对它的配置和使用

猜你喜欢

转载自blog.csdn.net/bingjia103126/article/details/72877767