思科ACL详细教程及实验_第1页
思科ACL详细教程及实验_第2页
思科ACL详细教程及实验_第3页
思科ACL详细教程及实验_第4页
思科ACL详细教程及实验_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

简介ACL(AccessControlList访问控制列表)是路由器和交换机接口的指令列表,用来控制端口进出的数据包。ACL的定义也是基于每一种被动路由协议的,且适用于所有的被动路由协议(如IP、IPX、AppleTalk等),如果路由器接口配置成为三种协议(IP、AppleTalk和IPX),那么必须定义三种ACL来分别控制这三种协议的数据包。ACL的作用ACL可以限制网络流量、提高网络性能;提供网络安全访问的基本手段;可以在路由器端口处决定哪种类型的通信流量被转发或被阻塞,应用范围很广,如:路由过滤、Qos、NAT、Router-map、VTY等。ACL的分类根据过滤层次:基于IP的ACL(IPACL)、基于MAC的ACL(MACACL),专家ACL(ExpertACL)。根据过滤字段:标准ACL(IPACL、MACACL)、扩展ACL(IPACL、MACACL、专家ACL)。根据命名规则:表号ACL、命名ACLo说明:标准型ACL功能非常简单;而扩展型ACL功能非常强大,匹配的更详细,对路由器等网络设备的性能要求更高,或者对于网速的拖慢更明显,组网时需要酌情使用。ACL的工作原理ACL的执行按照列表中条件语句的顺序从上到下、逐条依次判断执行。如果一个数据包的报头跟表中某个条件判断语句相匹配,则不论是第一条还是最后一条语句,数据包都会立即发送到目的端口,那么后面的语句将被忽略,不再进行检查。当数据包与前一个判断条件不匹配时,才被交给下一条判断语句进行比较。如果所有的ACL判断语句都检测完毕,仍没有匹配的语句出口,则该数据包将视为被拒绝而被丢弃,因为在每个ACL的最末尾都隐含^Condition1PermitDpriyi ■-■»■«■■■•Deny卜 irmiiPermitCoriditionrDenyACL遵循的规范和原则ACL的列表号指出了是哪种协议的ACL。各种协议有自己的ACL,而每个协议的ACL又分为标准ACL和扩展ACL。这些ACL都是通过ACL表号区别的。如果在使用一种访问ACL时用错了列表号,那么就会出错。—个ACL的配置是基于每种协议的每个接口的每个方向。路由器的一个接口上每一种协议可以配置进方向和出方向两个ACLo也就是说,如果路由器上启用了两种协议栈IP和IPX(那么路由器的一个接口上可以配置IP、IPX两种协议),每种协议进出两个方向,共四个ACLoACL的语句顺序决定了对数据包的控制顺序。在ACL中各描述语句的放置顺序是很重要的。当路由器决定某一数据包是被转发还是阻塞时,会按照各项描述语句在ACL中的顺序,根据各描述语句的判断条件,对数据报进行检查,一旦找到了某一匹配条件就结束比较过程,不再检查以后的其它条件判断语句。4•最有限制性的语句应放在ACL语句的首行。把最有限制性的语句放在ACL语句中靠上的位置或者限制性不强的语句前面,以保证位于前面的语句不会否定后面语句的作用效果;把“全部允许”或者“全部拒绝”这样的语句放在末行或接近末行,可以防止出现诸如本该拒绝(放过)的数据包被放过(拒绝)的情况。止数据包流向其它端口。6.允许的语句少,先允许后拒绝所欲;拒绝的语句少,先拒绝后允许所有。7•在标准ACL里,ACL语句不能被逐条删除,只能一次性删除整个ACL。并且新语句只能被添加到ACL的末行,这意味着不可能改变已有访问控制列表的功能。如果必须改变,只有先删除已存在的ACL,然后创建一个新ACL,将新ACL应用到相应的接口上。8•在将ACL应用到接口之前,一定要先建立ACL。首先在全局模式下建立ACL,然后再指明ACL是应用于接口进方向(流入数据)还是接口出方向(流出数据)。在接口上应用一个不存在的ACL是不可能的。9•在ACL的最后,隐含一条“全部拒绝”的命令,所以在ACL里一定至少有一条“允许”的语句。ACL只能过滤穿过本路由器的数据流量,不能过滤由本路由器上发出的数据包。路由器接口收到数据包时,应用在接口in方向的ACL起作用,数据包被该ACL允许后,路由器才会对数据包进行路由处理;在数据包被路由选择交付到出站接口时,应用在接口out方向的ACL起作用,对接口发送出去的数据进行检查。相比之下,入站ACL比出站ACL更加高效。3P原则:每种协议(PerProtocol)的每个接口(PerInterface)的每个方向(PerDirection)只能配置一个ACL。每种协议一个ACL:要控制接口上的流量,必须为接口上启用的每种协议定义相应的ACL。每个方向一个ACL:一个ACL只能控制接口上一个方向的流量。要控制入站和出站流量,必须分别定义两个ACL。每个接口一个ACL:一个ACL只能控制一个接口(如快速以太网F0/0)上的流量。基于表号的的访问控制列表标准IP访问控制列表用于简单的访问控制、路由过滤,且仅对源地址进行过滤。标准ACL格式R1(config)#access-listaccess-list-number{remark|permit|deny}sourcesource-wildcard[log]R1(config)#access-list表号策略源地址表号:标准ACL范围,1-99、1300-1999。策略:permit(允许);deny(拒绝)。源地址:指定IP网段:IP地址+通配符掩码;单个主机地址:host;任意地址:any。说明:“remark”选项:用于给访问控制列表添加备注,增强列表的可读性。源地址字段中:any选项表示任何IP地址,等同于55;host选项可代替掩码。可选参数“log”:用于对匹配的数据包生成信息性日志消息,并发送到控制台上。接口关联ACLR1(config)#intf0/0R1(config-if)#ipaccess-group表号方向表号:与该接口关联的访问控制列表表号。方向:in对所有入站的数据匹配;out对所有出站的数据进行匹配。示例:R1(config)#access-list1remarkDeny:/24&Permit:PC1//给ACL1添加备注R1(config)#access-list1permithost//允许主机R1(config)#access-list1deny55//拒绝/24网段R1(config)#access-list1permitany//允许所有(R1(config)#access-list1denyany)//隐式拒绝所有R1(config)#intf0/0R1(config)#ipaccess-group1in//关联F0/0接口入站数据R1#showaccess-list//查看定义的访问控制列表Rlrfshow 1StsstandardIPaccess1ist1 PACL110permit17Z.16.1.1(39matches) 内皎数丰対匹蜀崟件的進包皓诗20deny,wiIdcardbits□.D.0.255Cl5matehes^30perfliiTany(72.matches)R1#clearaccess-listcounters//将ACL计数器清零通配符掩码/反码:0表示精确匹配;1表示不匹配。通配符掩码=55-子网掩码。如:/24反码为55;4/28反码为5;/32反码为。说明:/32既可以写成host,又可以写成。ACL对Telnet的控制控制路由器有两种方法:一种是通过本地控制台端口(consoleport)直接操作;另一种是远程控制,在远程控制中最常用的方法是Telnet,只要知道路由器的任意一个物理接口地址和Telnet口令,并且存在路由,就可以远程操作路由器。使用ACL提高Telnet的安全性也有两种办法:一种是在物理线路上设置访问控制列表,这种方法比较麻烦,需要在路由器上配置多条ACL并关联到每个物理接口;另一种是配置ACL并关联到Telnet使用的虚拟口(VTY04)上,这种方法比较简单。实验:R22WOJJ.afr/1I2R22WOJJ.afr/1I27J血1-•d、 I.1.M WM-一十* !.1.J4.41.L12,1 hFaO/OX一禅1.1.i3.1实验要求:只有Pc2是管理员,只允许它控制管理路由器。R1(config)#access-list1denyhostlog//拒绝主机并记录日志R1(config)#access-list1permithostR1(config)#linevty04R1(config-line)#access-class1in//线路模式应用标准ACLR2、R3、R4配置同R1。注意:VTY端口关联ACL的命令是“access-class”,“access-class”命令只对标准ACL有效。扩展IP访问控制列表标准ACL只能根据源地址来检查数据包,它允许/拒绝的整个TCP/IP协议集的数据,功能有限。扩展的访问控制列表可以根据源和目的端口等来检查数据包,条件细化、更加灵活但是扩展ACL对网络设备性能、网络带宽要求更高,组网时需要酌情使用。扩展ACL格式R1(config)#access-listaccess-list-number{remark|permit|deny}protocolsource[source-mask][operatoroperand]destination[destination-mask][operatoroperand][established][log]R1(config)#access-list表号策略协议源地址源端口目的地址目的端口表号:扩展ACL范围,100-199、2000-2699。策略:permit(允许);deny(拒绝)。协议:检查特定协议的数据包,如TCP、UDP、ICMP、IP等。源地址:指定IP网段:IP地址+通配符掩码;单个主机地址:host;任意地址:any。源端口:可省略不写,lt、gt、eq、neq(小于、大于、等于、不等于)。目的地址:指定IP网段:IP地址+通配符掩码;单个主机地址:host;任意地址:any。目的端口:可省略不写,lt、gt、eq、neq(小于、大于、等于、不等于)。说明:“establishe”选项用于TCP协议,指示已建立的连接。接口关联ACLR1(config)#intf0/0R1(config-if)#ipaccess-group表号方向表号:与该接口关联的访问控制列表表号。方向:in对所有入站的数据匹配;out对所有出站的数据进行匹配。示例:R1(config)#access-list100denytcp55hosteq23log〃拒绝/24网段访问主机的Telnet服务,并记录日志R1(config)#access-list100permittcp55hosteqftpR1(config)#access-list100permittcp55hosteqftp-data〃以上2行允许/24网段访问主机的FTP服务R1(config)#access-list100permittcp55hosteqwww〃允许/24网段访问主机的WWW服务R1(config)#access-list100denytcphosthosteqwww〃拒绝主机访问主机的WWW服务R1(config)#access-list100denyip55host//拒绝/24网段对主机的所有数据通信(R1(config)#access-list100denyanyany)//隐式拒绝所有R1(config)#intf0/0R1(config)#ipaccess-group100out//关联F0/0接口出站数据说明:FTP使用20端口传输数据,21端口传输控制命令,所以以上两条命令又分别可以写成:R1(config)#access-list100permittcp55hosteq21R1(config)#access-list100permittcp55hosteq20常用协议及端口号:ICMP协议3层网络控制消息协议(测试网络连通性)TCP协议:HTTP80超文本传输协议(www服务)FTP-Data20文件控制连接FTP21文件传输协议SMTP25简单邮件传输协议(发送邮件)POP3110第三版邮局协议(接收邮件)TELNET23远程登录协议UDP协议:TFTP69简单文件传输协议DNS53域名解析协议DHCP67动态主机配置协议SNMP161简单网络管理协议“establishd选”项TCP报头中有6个控制位,分别是:URG、ACK、PSH、RST、SYN、FIN。在整个TCP数据传输过程中ACK位除了在第一次握手的时候为0外,其它任何时候都是置1的,根据这个原理可以实现控制TCP连接的方向。当路由器收到了一个数据包并匹配到了带有established的ACL时,established会通过检查ACK和RST位,如果两个控制位都没被设置(使用),那么表明源地址正在向目标地址建立TCP连接,这与established选项的含义不一致,数据包将被拒绝通过,也就是拒绝该源地址发起建立TCP连接的请求。established只对TCP连接起作用,对UDP不起作用。示例:R1(config)#access-list110permittcpany55〃允许any和/16网络之间的TCP连接R1(config)#access-list110permittcpany55established〃如果TCP链接是从any发向/16网络的,由于ACK和RST位都没有被设置,与established选项不匹配,请求将被拒绝;那么只允许/16网络主动向any请求发起的TCP连接才被允许建立R1(config)#access-list110permittcp55anyestablished〃如果TCP链接是从/16网络发向any的,由于ACK和RST位都没有被设置,与established选项不匹配,请求将被拒绝;那么只允许any主动向/16网络请求发起的TCP连接才被允许建立命名访问控制列表基于表号的访问控制列表新添加的语句只能放在最后边,且执行顺序是从上到下、逐条执行的。如果需要修改列表执行顺序只能删除整个列表(列表里的语句是不可删除的),然后重新编写(导出配置文件进行修改,将ACL规则复制到编辑工具进行修改),然而这又是不现实的。所以基于表号访问控制列表就有缺陷,而命名访问控制列表可以弥补这个缺陷。命名ACL的修改和维护命名访问控制列表可以单独删除某条语句而不破坏整个列表的顺序;也可以在新添加的语句前面写入编号,把语句插入到指定的位置,当没有写入编号的时候默认添加到最末行。示例:R1(config)#ipaccess-listextendedtest3//创建名字为test3的扩展命名ACLR1(config-ext-nacl)#15permitospfanyany//在位置15的地方插入该语句R1(config-ext-nacl)#no20//删除20号语句R1(config)#ipaccess-listresequencetest355//设置起始序号为5,递增序号为5说明:ACL规则的起始序号默认值为10;递增序号默认值为10。标准命名扩展访问控制列表标准命名ACL格式R1(config)#ipaccess-liststandard表名R1(config-std-nacl)#策略源地址表名:标准ACL范围,1-99、1300-1999;字符、字符+数字。策略:permit(允许);deny(拒绝)。源地址:指定IP网段:IP地址+通配符掩码;单个主机地址:host;任意地址:any。接口关联ACLR1(config)#intf0/0R1(config-if)#ipaccess-group表号方向表号:与该接口关联的访问控制列表表号。方向:in对该接口所有进站的数据匹配;out对该接口所有出站的数据进行匹配。示例:R1(config)#ipaccess-liststandardtest1R1(config-std-nacl)#deny55//拒绝/24网段R1(config-std-nacl)#denyhost//拒绝主机R1(config-std-nacl)#permitany//允许所有(R1(config-std-nacl)#denyany)//隐式拒绝所有R1(config)#intf0/0R1(config)#ipaccess-grouptest1in//关联F0/0接口入站数据扩展命名访问控制列表扩展命名ACL格式R1(config)#ipaccess-listextended名称名称:扩展ACL范围,100-199、2000-2699;字符、字符+数字。Rl(config-ext-nacl)#策略协议源地址源端口目的地址目的端口策略:permit(允许);deny(拒绝)。协议:检查特定协议的数据包,如TCP、UDP、ICMP、IP等。源地址:指定IP网段:IP地址+通配符掩码;单个主机地址:host;任意地址:any。源端口:可省略不写,lt、gt、eq、neq(小于、大于、等于、不等于)。目的地址:指定IP网段:IP地址+通配符掩码;单个主机地址:host;任意地址:any。目的端口:可省略不写,lt、gt、eq、neq(小于、大于、等于、不等于)。接口关联ACLRl(config)#intf0/0Rl(config-if)#ipaccess-group名称方向表号:与该接口关联的访问控制列表表号。方向:in对该接口所有进站的数据匹配;out对该接口所有出站的数据进行匹配。示例:Rl(config)#ipaccess-listextendedtest2Rl(config-ext-nacl)#denytcphostl72.l6.l.lhostl72.l6.2.leq23Rl(config-ext-nacl)#permittcpl72.l6.l.055hostl72.l6.2.leqftpRl(config-ext-nacl)#permittcpl72.l6.l.055hostl72.l6.2.leqftp-dataRl(config-ext-nacl)#denyipl72.l6.2.055hostl72.l6.3.l(Rl(config-ext-nacl)#denyany)Rl(config)#intf0/0Rl(config)#ipaccess-grouptest2in动态访问控制列表动态访问控制列表是对传统访问控制列表的一种重要功能增强。动态ACL是能够自动创建动态访问表项的访问列表。传统的标准访问列表和扩展的访问列表都不能动态创建访问表项一旦在传统访问列表中加入了一个表项,除非手工删除,该表项将一直产生作用。而在动态访问表中,读者可以根据用户认证过程来创建特定的、临时的访问表项,一旦某个表项超时,就会自动从路由器中删除。动态ACL工作原理用户一般通过提供用户名和口令,就能够开启一个到路由器的Telnet会话。在用户被认证之后,路由器会自动关闭Telnet会话,并将一个动态访问表项置于某个访问表中,以允许源地址为认证用户地址的报文通过。这样,我们可以在安全边界上配置访问表,只允许那些能够通过用户认证的工作站才能发送向内的报文。我们至少应该允许到达路由器的Telnet通信报文,这样才能进行用户认证过程。如果不允许Telnet连接,用户就不能在访问表中创建动态的访问表项。并一定要将Telnet表项放置在动态表项的前面。动态ACL的优点在传统的访问表中,如果处于路由器不可信任端的用户需要访问内部的资源,就必须永久性地在访问表中开启一个突破口,以允许这些用户的报文进入可信任网络。这些在访问表中的永久性的突破口给黑客发送报文进入安全边界,并达到内部网络提供了机会。这种情况可以通过只允许特定的可信IP源地址的报文进入内部,解决部分问题。但是,当用户使用动态的IP地址时(DHCP用户、ISP拨号用户等),上述的方法就不起作用了。R1(config)#usernameuser1privilege15secretcisco//建立用户本地认证数据库R1(config)#access-list120permittcp55hosteqtelnetR1(config)#access-list120permittcp55hosteqtelnet〃以上两行允许/24网段Telnet路由器R1R1(config)#access-list120dynamicDACLtimeout60permitip55host172・16.12.2〃定义名字为DACL的动态ACL,“timeout”定义了动态ACL绝对的超时时间R1(config)#intf1/0R1(config-if)#ipaccess-group120inR1(config)#linevty02R1(config-line)#loginlocal//VTY使用本地认证R1(config-line)#autocommandaccess-enablehosttimeout10〃允许在动态ACL中自动建立一个临时性的访问控制列表条目,“timeout”定义了空闲超时时间R1(config)#linevty34R1(config-line)#loginlocalR1(config-line)#rotary1//建立一个旋转端口号说明:①第一个timeout和第二个timeout的区别:1>第一个timeout是绝对超时时间,第二个timeout是空闲超时时间,设置命令时它们的单位都是分钟;一般第一个timeout要大于第二个timeout,因为第一个timeout是全局的。2>空闲超时时间是针对单独的一个表项的时间,如果该表项在指定的时间内没有流量通过,那么它就会超时,并且自动从动态ACL中删除。3>绝对超时时间是针对所有表项的,一旦它超时,所有通信还是都会被切断,即使这时有流量正在传输,如果还需要通信,就需要重新建立连接。“autocommandaccess-enablehosttimeout10"命令:1>该命令既可以在VTY线路模式下面打,也可以在特权模式下打,所不同是是,在特权模式下打时可以看到命令的详细解释,而VTY下面看不到命令提示的?2>如果使用“host”参数,那么动态ACL将只为用户所用的单个IP地址创建临时性的条目如果不使用,一旦一台主机认证成功以后,则用户的整个网络都将被该临时性条目允许,都不需要认证了。“rotary1”命令:在VTY中开启动态ACL后,用户所有发起的Telnet会话都会触发一个动态ACL表项,并且此时Telnet会马上被关闭,用户无法远程连接到此设备。如果想要管理一台设备的话,就需要在另外一个VTY进程下面使用rotary命令建立一个旋转端口号,然后在Telnet的时在地址后面打上“3000+端口号”就可以远程管理此设备了。例如:本例中即为3001,如果用户要远程管理路由器R1时,可以使用“telnet3001"命令。实验调试R1#showipaccess-list自反访问控制列表自反ACL用于控制网络的单向访问。例如通常只允许内网主动访问外网,并允许外部数据通过;但拒绝外网主动访问内网。自反ACL工作原理当内网主动访问外网时,将被一条扩展命名ACL(如名为ACLOUT)匹配,再由这条ACL动态地创建一条暂时的自反ACL(如名为REF),REF再被外网到内网的扩展命名ACL(如名为ACLIN)调用。这条自反ACL的源、目的IP和源、目的端口刚好与ACLOUT相反,也就是匹配上外网响应内网的数据包。这样,一条从内网主动访问外网的双向通信便建立了。而如果有外网主动访问内网的数据包时,由于没有匹配的ACL语句,并且默认denyanyany,因此外网主动访问的数据就被拒绝了。示例:R1(config)#ipreflexive-listtimeout100//配置临时性访问条目的生存期(默认300秒)R1(config)#ipaccess-listextendedACLOUTR1(config-ext-nacl)#permitipanyanyreflectREFtimeout120〃匹配后自动生成一条名为REF的自反ACL,生存期为120秒R1(config)#ipaccess-listextendedACLINR1(config-ext-nacl)#evaluateREF//评估REFACLR1(config)#intf0/1R1(config-if)#ipaccess-groupACLOUTinR1(config)#intf0/0R1(config-if)#ipaccess-groupACLINin说明:1.尽管在概念上与扩展ACL的“establish选项相似,但自反ACL可用于不含ACK或RST位的UDP和ICMP。2•自反ACL仅可在扩展命名IPACL中定义,不能在编号ACL或标准命名ACL中定义。3.自反ACL可以只允许出去的流量,并阻止外部网络主动向内部网络发起的的流量,从而更好地保护内部网络。4•自反ACL不是直接被应用到某个接口下的,需要由一个扩展命名ACL调用(如上例中ACLIN)。5•自反ACL默认超时时间300秒,或者TCP报文FIN位置1的数据包通过接口时,自反ACL会自动清除,因此定义自反ACL的超时时间对非TCP数据很关键。6.自反ACL只有permit语句没有deny语句,即永远是permit的(如上例中permitipanyanyreflectREF)。但调用自反ACL的其它ACL(如上例中ACLIN)默认存在denyanyany的,因此不符合自反ACL的数据包则会被拒绝。基于时间的访问控制列表基于时间的ACL可以对于不同的时间段实施不同的访问控制规则。在原有ACL的基础上应用时间段。时间段可以分为:绝对时间段(absolute)、周期时间段(periodic)和混合时间段。设置路由器时间:Rl#clocks

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论