访问控制列表(AccessControlList,ACL)是由器接口的指令列表,用来控制端口进出的数据包。ACL适用于所有的被由协议,如IP、IPX、AppleTalk等。 ACL的定义也是基于每一种协议的。如果由器接口配置成为支持三种协议(IP、AppleTalk以及IPX)的情况,那么,用户必须定义三种ACL来分别控制这三种协议的数据包。 ACL可以网络流量、提高网络性能。例如,ACL可以根据数据包的协议,指定数据包的优先级。 ACL提供对通信流量的控制手段。例如,ACL可以限定或简化由更新信息的长度,从而通过由器某一网段的通信流量。 ACL是提供网络安全访问的基本手段。如图1所示,ACL允许主机A访问人力资源网络,而主机B访问。 ACL可以在由器端口定哪种类型的通信流量被转发或被阻塞。例如,用户可以允许E-mail通信流量被由,所有的Telnet通信流量。 ACL的执行过程 一个端口执行哪条ACL,这需要按照列表中的条件语句执行顺序来判断。如果一个数据包的报头跟表中某个条件判断语句相匹配,那么后面的语句就将被忽略,不再进行检查。 ACL具体的执行流程见图2。 在图2中,数据包只有在跟第一个判断条件不匹配时,它才被交给ACL中的下一个条件判断语句进行比较。如果匹配(假设为允许发送),则不管是第一条还是最后一条语句,数据都会立即发送到目的接口。如果所有的ACL判断语句都检测完毕,仍没有匹配的语句出口,则该数据包将视为被而被丢弃。 这里要注意,ACL不能对本由器产生的数据包进行控制。 目前有两种主要的ACL:标准ACL和扩展ACL。 这两种ACL的区别是,标准ACL只检查数据包的源地址;扩展ACL既检查数据包的源地址,也检查数据包的目的地址,同时还可以检查数据包的特定协议类型、端口号等。 网络管理员可以使用标准ACL来自某一网络的所有通信流量,或者允许来自某一特定网络的所有通信流量,或者某一协议簇(比如IP)的所有通信流量。 扩展ACL比标准ACL提供了更广泛的控制范围。例如,网络管理员如果希望做到“允许外来的Web通信流量通过,外来的FTP和Telnet等通信流量”,那么,他可以使用扩展ACL来达到目的,标准ACL不能控制这么精确。 在由器配置中,标准ACL和扩展ACL的区别是由ACL的表号来体现的,上表指出了每种协议所允许的表号的取值范围。 假设在图3所示的一个运行TCP/IP协议的网络中,网络只想从RouterA的T0接口连接的网络到RouterD的E1接口连接的网络的访问,即从网络1到网络2的访问。 根据减少不必要通信流量的通行准则,网管员应该尽可能地把ACL放置在靠近被的通信流量的来源处,即RouterA上。如果网管员使用标准ACL来进行网络流量,因为标准ACL只能检查源IP地址,所以实际执行情况为:凡是检查到源IP地址和网络1匹配的数据包将会被丢掉,即网络1到网络2、网络3和网络4的访问都将被。由此可见,这个ACL控制方法不能达到网管员的目的。同理,将ACL放在RouterB和RouterC上也存在同样的问题。只有将ACL放在连接目标网络的RouterD上(E0接口),网络才能准确实现网管员的目标。由此可以得出一个结论:标准ACL要尽量靠近目的端。 网管员如果使用扩展ACL来进行上述控制,则完全可以把ACL放在RouterA上,因为扩展ACL能控制源地址(网络1),也能控制目的地址(网络2),这样从网络1到网络2访问的数据包在RouterA上就被丢弃,不会传到RouterB、RouterC和RouterD上,从而减少不必要的网络流量。因此,我们可以得出另一个结论:扩展ACL要尽量靠近源端。 ACL的配置分为两个步骤: 第一步:在全局配置模式下,使用下列命令创建ACL: 在由器中,如果使用ACL的表号进行配置,则列表不能插入或删除行。如果列表要插入或删除一行,必须先去掉所有ACL,然后重新配置。当ACL中条数很多时,这种改变非常烦琐。一个比较有效的解决办法是:在远程主机上启用一个TFTP服务器,先把由器配置文件下载到本地,利用文本编辑器修改ACL表,然后将修改好的配置文件通过TFTP传回由器。 这里需要特别注意的是,在ACL的配置中,如果删掉一条表项,其结果是删掉全部ACL,所以在配置时一定要小心。 在CiscoIOS11.2以后的版本中,网络可以使用名字命名的ACL表。这种方式可以删除某一行ACL,但是仍不能插入一行或重新排序。所以,笔者仍然使用TFTP服务器进行配置修改。 第二步:在接口配置模式下,使用access-group命令ACL应用到某一接口上: 其中,in和out参数可以控制接口中不同方向的数据包,如果不配置该参数,缺省为out。 ACL在一个接口可以进行双向控制,即配置两条命令,一条为in,一条为out,两条命令执行的ACL表号可以相同,也可以不同。但是,在一个接口的一个方向上,只能有一个ACL控制。 值得注意的是,在进行ACL配置时,网管员一定要先在全局状态配置ACL表,再在具体接口上进行配置,否则会造成网络的安全隐患。 访问控制列表使用目的: 1、网络流量、提高网络性能。例如队列技术,不仅了网络流量,而且减少了拥塞 2、提供对通信流量的控制手段。例如可以用其控制通过某台由器的某个网络的流量 3、提供了网络访问的一种基本安全手段。例如在公司中,允许财务部的员工计算机可以访问财务服务器而其他部门访问财务服务器 4、在由器接口上,决定某些流量允许或被转发。例如,可以允许FTP的通信流量,而TELNET的通信流量。 工作原理: ACL中了两种操作,所有的应用都是围绕这两种操作来完成的:允许、 ping 192.168.1.1注意:ACL是CISCOIOS中的一段程序,对于管理员输入的指令,有其自己的执行顺序,它执行指令的顺序是从上至下,一行行的执行,寻找匹配,一旦匹配则停止继续查找,如果到末尾还未找到匹配项,则执行一段隐含代码――丢弃DENY.所以在写ACL时,一定要注意先后顺序。 例如:要来自172.16.1.0/24的流量,把ACL写成如下形式 那么结果将于预期背道而驰,把表一和表二调换过来之后,再看一下有没有问题: 发现172.16.3.0/24和刚才的情况一样,这个表项并未起到作用,因为执行到表二就发现匹配,于是由器将会允许,和我们的需求完全相反,那么还需要把表项四的移到前面 最后变成这样: 可以发现,在ACL的配置中的一个规律:越精确的表项越靠前,而越笼统的表项越靠后放置。 ACL是一组判断语句的集合,它主要用于对如下数据进行控制: 1、入站数据; 2、出站数据; 3、被由器中继的数据 工作过程 1、无论在由器上有无ACL,接到数据包的处理方法都是一样的:当数据进入某个入站口时,由器首先对其进行检查,看其是否可由,如果不可由那么就丢弃,反之通过查由选择表发现该由的详细信息――包括AD,METRIC……及对应的出接口; 2、这时,我们假定该数据是可由的,并且已经顺利完成了第一步,找出了要将其送出站的接口,此时由器检查该出站口有没有被编入ACL,如果没有ACL的话,则直接从该口送出。如果该接口编入了ACL,那么就比较麻烦。第一种情况――由器将按照从上到下的顺序依次把该数据和ACL进行匹配,从上往下,逐条执行,当发现其中某条ACL匹配,则根据该ACL指定的操作对数据进行相应处理(允许或),并停止继续查询匹配;当查到ACL的最末尾,依然未找到匹配,则调用ACL最末尾的一条隐含语句denyany来将该数据包丢弃。 对于ACL,从工作原理上来看,可以分成两种类型: 的工作过程的解释是针对出站ACL的。它是在数据包进入由器,并进行了由选择找到了出接口后进行的匹配操作;而入站ACL是指当数据刚进入由器接口时进行的匹配操作,减少了查表过程 并不能说入站表省略了由过程就认为它较之出站表更好,依照实际情况而定: 如图所示,采用基本的ACL――针对源的访问控制 要求如下: 采用基本的ACL来对其进行控制 从命令上来看,配置似乎可以满足条件。假定从1.1.1.2有数据包要发往3.1.1.2,进入由器接口E0后,这里采用的是入站表,则不需查找由表,直接匹配ACL,发现有语句access-list1deny1.1.1.20.0.0.255该数据包,丢弃;假定从3.1.1.2有数据包要发往1.1.1.2,同上。 当1.1.1.2要和5.1.1.2通信,数据包同样会被掉 当3.1.1.2要和5.1.1.2通信,数据包也会被掉 该ACL只能针对源进行控制,所以无论目的是何处,只要满足源的匹配,则执行操作。 如何解决此问题? 1、把源放到离目标最近的地方,使用出站控制; 2、使ACL可以针对目的地址进行控制。 第一项很好理解,因为标准的ACL只能针对源进行控制,如果把它放在离源最近的地方,那么就会造成不必要的数据包丢失的情况,一般将标准ACL放在离目标最近的! 第二种办法,要针对目标地址进行控制。因为标准ACL只针对源,所以,这里不能采用标准ACL,而要采用扩展ACL.但是它也有它的劣势,对数据的查找项目多,虽然控制很精确,但是速度却相对慢些。 简单比较以下标准和扩展ACL 标准ACL仅仅只针对源进行控制 扩展ACL可以针对某种协议、源、目标、端口号来进行控制 从命令行就可看出 标准: 扩展: Established―如果数据包使用一个已建连接(例如,具有ACK位组),就允许TCP信息通过 为了避免过多的查表,所以扩展ACL一般放置在离源最近的地方 看完的内容后,那么大家可以看以下几道关于CISCO访问控制列表的例题: 注:该题主要考察CISCO考生对ACL作用的理解:网络管理员在网络中使用ACL的两个理由? A选项指出了CISCO访问列表的一个用法:通过VTY线来访问由器的访问控制; ACL不能对穿越由器的流量作出有效控制。 选项C也指明了ACL的另一个作用,那就是过滤穿越由器的流量。这里要注意了,是“穿越”由器的流量才能被ACL来作用,但是由器本身产生的流量,比如由更新报文等,ACL是不会对它起任何作用的:因为ACL不能过滤由由器本身产生的流量,那么D也是错误的; 安全起见,网络管理员想要来自Internet上的外部主机PING企业内部网络,哪种协议必须在访问列表中被阻塞掉?PING使用的是ICMP协议,在ACL中,我们可以自己来定义需要被允许或者某些协议的流量。该题选B 访问控制列表 如图,在RTB上配置了访问列表,控制从S0/0口出去向外部的由192.168.15.32/29网段发起的telnet流量,其它流量允许通过。telnet使用23号端口,由此可以排除掉ABC三个选项。该题选择D,E. |
不良信息举报Q:2000617|Archiver|ROS软路由论坛 ROSABC.com 网络方案网络工程交流
GMT+8, 2025-10-26 21:52 , Processed in 0.029784 second(s), 15 queries .
Powered by Discuz! X3.4
Copyright © 2001-2021, Tencent Cloud.