技术从来都是一把双刃剑,网络应用和互连网的普及在大幅提高企业的生产经营效率的同时,也带来了诸如数据的安全性,员工利用互连网做和工作不相干事等负面影响。如何将一个网络有效的管理起来,尽可能的降低网络所带来的负面影响就成了摆在网络管理员面前的一个重要课题。

  A公司的某位可怜的网管现在就面临了一堆这样的问题。A公司建设了一个企业网,并通过一台路由器接入到互连网。在网络核心使用一台基于IOS的多层交换机,任何的二层交换机也为可管理的基于IOS的交换机,在公司内部使用了VLAN技术,按照功能的不同分为了6个VLAN。分别是网络设备和网管 (VLAN1,10.1.1.0/24)、内部服务器(VLAN2)、Internet连接(VLAN3)、财务部(VLAN4)、市场部 (VLAN5)、研发部门(VLAN6),出口路由器上Fa0/0接公司内部网,通过s0/0连接到Internet。每个网段的三层设备(也就是客户机上的缺省网关)地址都从高位向下分配,任何的其他节点地址均从低位向上分配。该网络的拓朴如下图所示:  

  自从网络建成后麻烦就一直没断过,一会儿有人试图登录网络设备要捣乱;一会儿领导又在抱怨说互连网开通后,员工成天就知道泡网;一会儿财务的人又说研发部门的员工看了不该看的数据。这些抱怨都找这位可怜的网管,搞得他头都大了。那有什么办法能够解决这些问题呢?答案就是使用网络层的访问限制控制技术―― 访问控制列表(下文简称ACL)。

  那么,什么是ACL呢?ACL是种什么样的技术,他能做什么,又存在一些什么样的局限性呢?
ACL的基本原理、功能和局限性

  网络中常说的ACL是Cisco IOS所提供的一种访问控制技术,初期仅在路由器上支持,近些年来已扩展到三层交换机,部分最新的二层交换机如2950之类也开始提供ACL的支持。只但是支持的特性不是那么完善而已。在其他厂商的路由器或多层交换机上也提供类似的技术,但是名称和配置方式都可能有细微的差别。本文任何的配置实例均基于 Cisco IOS的ACL进行编写。

  基本原理:ACL使用包过滤技术,在路由器上读取第三层及第四层包头中的信息如源地址、目的地址、源端口、目的端口等,根据预先定义好的规则对包进行过滤,从而达到访问控制的目的。

  功能:网络中的节点资源节点和用户节点两大类,其中资源节点提供服务或数据,用户节点访问资源节点所提供的服务和数据。ACL的主要功能就是一方面保护资源节点,阻止非法用户对资源节点的访问,另一方面限制特定的用户节点所能具备的访问权限。

  配置ACL的基本原则:在实施ACL的过程中,应当遵循如下两个基本原则:

   最小特权原则:只给受控对象完成任务所必须的最小的权限

   最靠近受控对象原则:任何的网络层访问权限控制

  局限性:由于ACL是使用包过滤技术来实现的,过滤的依据又仅仅只是第三层和第四层包头中的部分信息,这种技术具备一些固有的局限性,如无法识别到具体的人,无法识别到应用内部的权限级别等。因此,要达到end to end的权限控制目的,需要和系统级及应用级的访问权限控制结合使用。

  ACL基本配置

  ACL配置技术详解

  “说那么多废话做什么,赶快开始进行配置吧。”,A公司的网管说。呵呵,并不是我想说那么多废话,因为理解这些基础的概念和简单的原理对后续的配置和排错都是相当有用的。说说看,您的第一个需求是什么。

  “做为一个网管,我不期望普通用户能telnet到网络设备”――ACL基础

  “补充一点,需要能够从我现在的机器(研发VLAN的10.1.6.66)上telnet到网络设备上去。”。hamm,是个不错的主意,谁都不希望有人在自己的花园中撤野。让我们分析一下,在A公司的网络中,除出口路由器外,其他任何的网络设备段的是放在Vlan1中,那个我只需要在到VLAN 1的路由器接口上配置只允许源地址为10.1.6.66的包通过,其他的包通通过滤掉。这中只管源IP地址的ACL就叫做

  标准IP ACL:
我们在SWA上进行如下的配置:

  access-list 1 permit host 10.1.6.66

  access-list 1 deny any

  int vlan 1

  ip access-group 1 out

  这几条命令中的相应关键字的意义如下:

  access-list:配置均ACL的关键字,任何的ACL均使用这个命令进行配置。

  access-list后面的1:ACL号,ACL号相同的任何ACL形成一个组。在判断一个包时,使用同一组中的条目从上到下逐一进行判断,一碰到满足的条目就终止对该包的判断。1-99为标准的IP ACL号,标准IP ACL由于只读取IP包头的源地址部分,消耗资源少。

  permit/deny:操作。Permit是允许通过,deny是丢弃包。

  host 10.1.6.66/any:匹配条件,等同于10.1.6.66 0.0.0.0。刚才说过,标准的ACL只限制源地址。Host 10.1.6.66(10.1.6.66 0.0.0.0)的意思是只匹配源地址为10.1.6.66的包。0.0.0.0是wildcards,某位的wildcards为0表示IP地址的对应位必须符合,为1表示IP地址的对应位不管是什么都行。简单点说,就是255.255.255.255减去子网掩码后的值,0.0.0.0的 wildcards就是意味着IP地址必须符合10.1.6.66,能够简称为host 10.1.6.66。any表示匹配任何地址。

  注意:IOS中的ACL均使用wildcards,并且会用wildcards对IP地址进行严格的对齐,如您输入一条access-list 1 permit 10.1.1.129 0.0.0.31,在您show access-list看时,会变成access-list 1 permit 10.1.1.128 0.0.0.31,PIXOS中的ACL均使用subnet masks,并且不会进行对齐操作。

  int vlan1///ip access-group 1 out:这两句将access-list 1应用到vlan1接口的out方向。其中1是ACL号,和相应的ACL进行关联。Out是对路由器该接口上哪个方向的包进行过滤,能够有in和out两种选择。

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!