我要投搞

标签云

收藏小站

爱尚经典语录、名言、句子、散文、日志、唯美图片

当前位置:六合特肖 > 访问控制列表 >

中小企业网络管理:ACL访问控制列表

归档日期:06-12       文本归类:访问控制列表      文章编辑:爱尚语录

  现在网络是越来越复杂,网络数据也呈现出多样化,作为网络管理员必须能够拒绝不良的访问,同时又要允许正常的访问。当然现在有很多技术都可以实现,我们今天来看在企业网络管理中怎么利用Cisco路由ACL来实现访问控制。

  路由器为了过滤数据包,需要配置一系列的规则,以决定什么样的数据包能够通过,什么样的数据包不应该通过;这些规则就是通过ACL来定义的。

  ACL全称是:Access Control List,中文就是访问控制列表。ACL是由permit或deny语句组成的一系统有顺序的规则组成,这些规则根据数据包的源地址、目标地址、端口号等来描述。ACL通过这些规则对数据包进行分类,并将规则应用到路由器的某个接口上,这样路由器就可以根据这些规则来判断哪些数据包可以接收,哪些数据包需要拒绝。从而实现网络的安全性,因此我们总结ACL主要目的很简单就是允许、拒绝数据包通过路由器;允许或拒绝Telnet会话的建立。

  当然路由器上默认是没有ACL的也就是说默认情况下任何数据包都可以通过。就像如果你们单位没有保安,那么任何人的出入都不会受到限制。那么就会给单位的财产带来不安全的因素。因此,可以在单位门口设置一个保安部,那么这个保安就会看如果是本单位的人进入,直接通过,如果不是就要盘问一番,如果是“良民”就大大的放行,如果是“日军”,就统统的“八个牙路”那么同理我们也可以在路由器的某个接口上设置这么一个保安,检查通过该接口上的每一个数据包,符合某个条件的通过,或者是符合某个条件的不允许通过。从而实现对数据包过滤的作用。

  大家从图中可以看出,标准ACL只检查数据包中的源地址,至于数据帧头是HDLC,数据报头是TCP,标准ACL统统不管,就认一个源IP头,也就是说标准ACL只会检查IP数据包的源地址,然后根据是否满足条件来决定是允许还是拒绝整个协议集。

  扩展ACL比标准ACL检查的东西要多,检查源地址、目的地址、协议以及相应端口;即扩展ACL可以结合这四个参数来决定是允许还是拒绝某个特殊的协议如TCP,UDP,ICMP等等。所以扩展ACL的功能比标准ACL的功能要强!

  ACL的定义可以分为两类:1 使用数字号码范围来定义 2 使用名字来定义

  在此为什么使用扩展范围呢,主要是因为现在的网络规模和网络的复杂性都在增加,原来的号码范围可能已经不能满足需要,所以推出扩展范围。

  我们前面所介绍的标准ACL还是扩展ACL有一个使用起来很不方便的地方,就是如果在设置ACL的时候,如果发现中间有某个设置的不正确,希望删除某一条,是做不到的,那么就可以使用命名ACL,可以为每个ACL定义一个形象的名字。好处是可以对ACL中的每一个具体的规则进行处理,但如果是使用数字的话,只能是删除全部规则,不能删除其中一个规则。这样的话在大型网络中就不是很方便,而使用命名ACL可以解决这个问题:语法也很简单:

  那如果我们希望删除其中一个如 第一个,则使用 no permit 10.10.10.10 0.0.0.0即可,其他的仍然存在。

  访问控制列表还涉及到一个进站和出站的问题,也就是数据包的流向是进方向还是出方向。当然是进还是出要看具体情况,有的时候可以应用在任何一个上面。有的时候就必须唯一确定。

  1 数据包通过入站接口进入路由器,此时开始查找路由表中是否有匹配的路由条目,如果 没有,则直接将其丢弃。这一步和ACL还没有任何关系,只是没有相应路由,就无法转发数据包,所以在此也需要说明一点,ACL也必须在数据包能够被路由的基础之上才起作用。

  3 查看该接口是否有ACL的配置,如果没有则立即被转发,如果设置了ACL,则检查该数据包是否匹配ACL规则。如果匹配并规则中明确该数据包可以正常转发。否则丢弃!注意:如果ACL测试规则中没有明确指定数据包通过,则说明此数据包没有与相关的规则匹配,那么还有一个隐含的规则就是deny all,这一点和微软的ISA是一样的,安装好防火墙就有一个默认规则拒绝一切,可以说是“六亲不认”!

  如图所示,在ACL中可以有多个规则。如图:假设在ACL中有三个明确规则,则数据包进入后首先匹配第一个规则,如果数据包匹配该规则并设置为permit,则数据包被转发,如果数据包也匹配该规则,但却被设置为deny,则数据包直接被丢弃。

  如果第一个规则不匹配则该数据包继续向前走,此时再检查是否匹配第二个规则,如果匹配并设置为permit,则该数据包被转发,如果匹配但被设置为deny则被丢弃。

  如果第二个规则也不匹配则继续向前走,此时遇到第三个规则,同时还是检查是否匹配,如果匹配并设置为permit,同样也可以被转发,如果被设置为deny,则被丢弃。如果第三个是规则是最后一个,该数据包都没有匹配,

  2 在此还需要注意,Cisco的ACL规则完全是按照规则编写的顺序进行的。所以最精确的规则应当写在最上方,否则将被大范围的规则所覆盖而导致设置失效。如拒绝一台主机访问外网,必须先写拒绝这一台,然后再写运行所有,那如果顺序错了,运行所有在上面,拒绝一台在下面,系统会检查一个数据包,发现任何一个数据包都可以通过,就直接转发了,下面的一条就不起作用了!

  ACL理论东西没有太多,也很简单,下面咱们来看一下标准控制列表的配置过程,其实不论是标准还是扩展ACL的配置主要就是两个命令

  这里可以是某个接口,也可以是VTY,Qos等应用中。其中in代表是入站方向,out代表的是出站方向。

  Mask 掩码,但需要注意的是ACL支持的是反掩码,所以在设置的时候一定要注意。

  但我们有时候可能会在source前面加上host或是any,这又是什么用意呢?

  Host不是必须的,但是当匹配一个特定的主机地址时是非常有用的。也就是使用host的时候是匹配的某一个具体的主机,是一个精确匹配,此时的反掩码则0.0.0.0

  Any 也不是必须的,但是如果是匹配所有报文时是非常有用的,表示匹配所有的地址,是0.0.0.0 255.255.255.255的简写

  大家可以看到和192.168.20.0网段通讯没有问题,但是和192.168.30.0网段就不行,这就是对某一台机器进行精确匹配,那么如果我们把192.168.10.10的IP改为192.168.10.100又如何呢?

  同时我们也是通过几个实例来具体看一下扩展ACL的配置,关于标准ACL与扩展ACL的区别,我们在前面已经做了介绍,在此不再累述,下面看具体的匹配命令;

  大家一看就觉得比标准ACL要复杂点,这要可以指定源地址,目标地址,使用的协议以及使用的端口号等,当然还可以使用log来指定日志服务器,在此不作讲解!

  查看某上端口上应用的访问控制列表,我们可以使用命令:show ip interface 接口,如图:

  反向访问控制列表属于ACL的一种高级应用。一般使用在源访问对方可以,但反之不行。如A访问B节点可以,但是B不能访问A节点。如我们在Router1上可以telnet到Router2,但Router2不能telnet1上。那有人可能要问这是怎么实现的,在这里我们就以ping为例讲一下其中的原理,我们知道Ping使用的是icmp协议,但同样是icmp协议,它所使用的类型是不同的,简单说我们ping对方,是发出一个icmp request类型的数据包,但是对方回来的是则是携带了我们request标志的reply类型的包,所以我们如果只希望A ping B,不让B ping A,就可以这么判断,如果A ping B,发现回来的ICMP包是携带了A的request标签则允许通过,否则拒绝,就OK了!也可以用于保护网络的安全性,如我们只能由内部网络始发的,外部网络的响应流量可以进入,由外部网络始发的流量如果没有得到一个明确的允许,是禁止进入的。说白了,就是内网可以访问外网,但外网不能访问内网,如图所示:

  如,咱们看一个实例:我们希望内网的192.160.10.0网段可以访问(ping)外网的192.160.20.0,但是外网不能ping内网。这里需要使用Reflexive ACL技术,基中包含两个部分,一部分是outbound的配置,另一部分是inbound的配置。工作流程:由内网始发的数据到达路由器后,路由器会生成一个三层和四层的临时访问表,在此会将其中的一些参数作一些更改,如源IP和目标IP,源端口和目标端口适当作些对调操作。这样的话,当数据包从外网再进入内网的时候会检查此表,如果匹配上,则路由器才会允许此数据进入内网。

  标准的ACL的应用位置应该是离目的近的地方,而扩展的ACL则应该是离源近的地方对于标准的ACL来说,仅定义了它的源,如果你把它放在离源近的地方,那么它会把所有该源的流量给阻断,或者产生其他的效果.为了避免这种情况产生,所以将标准的ACL放置在离目标较近的地方,也就是远源端.但是对于扩展的来说,我们定义了它的源IP,目标IP,源端口,目标端口,以及协议,这种完全可以进行精确的匹配,所以不用担心它会对不需要控制的流量产生影响,而将其放在近源端口,这样也可以在一定程度上面节约带宽。

  顾名思义是根据时间对ACL进行配置,如我们单位规定禁止在上网班时间使用QQ,MSN等等操作。如:我们禁止在上午9:00 下午17:00访问互联网上的Web站点即(http:80/https:443)

  基于时间的访问控制列表由两部分组成,第一部分是定义时间段,第二部分是用扩展访问控制列表定义规则。这里我们主要讲解下定义时间段,具体格式如下:

  当然也可以使用Periodic:为周期性重复使用的时间范围的定义。完整格式为periodic 日期关键字 开始时间 结束时间

  意思是定义了一个时间段,名称为dufei,并且设置了这个时间段的起始时间为2009年5月1日9点,结束时间为2010年5月1日中午9点。我们通过这个时间段和扩展ACL的规则结合就可以指定出针对自己公司时间段开放的基于时间的访问控制列表了。当然我们也可以定义工作日和周末。下面看一个小例子:

  目的:我们部分规定只允许192.168.15.0网段的用户在周末访问192.168.10.10(娱乐服务器)上的FTP资源,工作时间不能下载该FTP资源。

  我们可以利用ACL来控制对VTY的访问,ACL可以用在VTY上,我们在第二节中介绍过VTY,其实也就是对Cisco设备的Telnet操作,一般我们说可以将ACL应用在5个VTY虚拟终端上。但是要注意的是Cisco是否仅支持5个VTY,这要根据路由器的版本和内存和决定,所以在设置ACL的时候一定要先弄清楚VTY的数量)

  将ACL应用在VTY上,可以实现不考虑路由器的物理接口的拓扑来实现对路由器的远程控制。但是要注意的是在此只能使用标准ACL。

  那么具体设置命令也很简单:我们前面是在某个接口上设置ACL,所以必须使用interface命令进行接口模式,而在此需要进入vty线路模式。在应用的时候是使用access-class 而不是ip access-group;我们来具体看一下:

  在此可以一个具体终端或指定的一个地址范围,一定要注意事先查清VTY的数量

  然后R3再次Telnet到R1上, 见到下图,我就恭喜你了!嘻。。。。。成功了!

  至此,实验完毕,ACL的基本应用就这么简单。我们这一节课程也结束了,休息,休息一会吧!

本文链接:http://shawntierney.com/fangwenkongzhiliebiao/536.html