本帖最后由 luxing0418 于 2015-7-21 16:49 编辑 1、Access Control List(访问控制列表):一组用来过滤数据包的语句,它相当于软件的防火墙,运行在Internet层,针对的是IP地址和上层协议,为最底层的安全策略。
2、ACL工作原理:从上之下依次逐条匹配,遇匹配项则停止检索;若无匹配项,默认拒绝
3、ACL特性:①ACL语句按顺序匹配,且无法单独修改或删除某条语句(命名ACL除外)②一个接口的一个方向上只能放置1组ACL③路由器自身发起的流量不会被过滤
4、3P原则:可基于每种协议、每个方向、每个接口配置一个ACL。
5、标准ACL与扩展ACL的区别:标准的ACL基于源IP地址进行过滤,允许和拒绝完整的TCP/IP协议,标准的ACL编号为1 - 99和1300-1999;
扩展的ACL可基于源IP、目的IP、源端口、目的端口、协议等进行过滤,扩展的ACL编号为100–199和2000-269。
6、ACL方向:ACL放在接口上有两个方向,in代表入站,即数据包欲从该接口进入路由器;out代表出站,即数据包欲从该接口被转发。in方向为先进行过滤,然后再进行路由,out方向为先进行路由决定数据包从哪个接口转发,然后再进行过滤。
7、ACL放置位置:标准的ACL被建议放在距离目的较近的端口,扩展的ACL被建议放在距离源较近的端口。
8、VTY调用:
Router(config)#line vty{vty# | vty-range} //指明vty通道的范围
Router(config-line)#login //开启验证登陆
Router(config-line)#password cisco //指定密码
Router(config-line)#access-class access-list-number {in|out} //在访问列表里指明方向(In表示ACL到Cisco设备,反之)
9、标准ACL配置:
Router(config)#access-list access-list-number {permit|deny} source[source-wildcard]
Router(config-if)#ip access-group access-list-number { in | out }
10、扩展ACL配置:
常见的匹配协议包括icmp、ip、tcp、和udp。要与任何协议都匹配,可使用ip。
Router(config)#access-list access-list-number { permit |deny } protocol source source-wildcard [operator operand ]
estinationdestination-wildcard [operator operand] [port port-number orname] [established] [log]
Router(config-if)#ip access-group(access-list-number ){ in | out }
11、查看ACL:
show ip interface
show access-lists {access-listnumber}
12、动态ACL:
动态(锁和钥匙)ACL只可用于IP数据流。动态ACL依赖于Telnet连接、身份验证(本地或远程)和扩展ACL。要配置动态ACL,首先需要使用一个扩展ACL禁止数据流穿越路由器。数据流将被扩展ACL拦截,直到用户使用Telnet连接到路由器并通过身份验证。随后,Telnet连接将被断开,而一个单条目动态ACL将添加到现有扩展ACL中。该条目允许数据流在特定时间段内通行,还可以设置爱空闲超时值和绝对超时值。
何时使用ACL:
①希望特定的远程用户或用户组能够通过Internet从远程主机访问网络中的主机。锁和钥匙对用户身份进行身份验证,然后允许特定主机或子网在有限时间段内通过防火墙路由器进行有限访问。
②希望本地网络中的特定子网能够访问受防火墙保护的远程网络中的主机。通过使用锁和钥匙,可只让特定的本地主机访问远程主机。锁和钥匙要求用户通过AAA、TACACS+服务器或其他安全服务器进行身份验证,然后允许访问远程主机。
动态ACL的优点:
①使用挑战机制验证用户身份
②简化了大型互联网络的管理
③在很多情况下,可降低路由器与ACL相关的处理工作量
④降低了黑客入侵的机会
⑤可以让用户穿越防火墙,而不影响配置的其他安全策略
动态ACL实验&配置:
配置R1:
R1(config)#intf0/0
R1(config-if)#ipadd 192.168.12.254 255.255.255.0
R1(config)#usernameluxing password cisco //创建用户身份验证的用户名和密码
R1(config)#linevty 0 2
R1(config-line)#loginlocal
R1(config-line)#autocommandaccess-enable timeout 5 //使用Telnet通过身份验证后,如5分钟没有活动,telnet窗口关闭
R1(config)#linevty 3 4
R1(config-line)#loginlocal
R1(config-line)#rotary1 //telnet 断开后,如果要再telnet,就指定telnet连接端口3001,如果是rotary2命令,就表示telnet连接端口3002。
R1(config)#access-list100 permit tcp host 192.168.12.1 host 192.168.12.254 eq telnet //允许用户到路由器的Telnet连接,在锁和钥匙被触发前,将忽略动态ACL条目
R1(config)#access-list100 permit icmp any host 192.168.12.254 echo-reply
R1(config)#access-list100 dynamic allow timeout 60 permit ip any any log //60分钟后,窗后自动关闭
R1(config-if)#ipaccess-group 100 in------ 将动态ACL应用到接口
配置PC1:
PC1(config)#no iprouting
PC1(config)#ipdefault-gateway 192.168.12.254
PC1(config)#intf0/0
PC1(config-if)#ipadd 192.168.12.1 255.255.255.0
配置PC2:
PC2 (config)#noip routing
PC2 (config)#ipdefault-gateway 192.168.12.254
PC2 (config)#intf0/0
PC2(config-if)#ip add 192.168.12.2 255.255
测试效果:
1> PC2尝试使用ping和telnet连接R1(失败!)
2> PC1 telnet到R1(成功!)
3> PC2 ping R1(成功!由于PC1 telnet到R1时,经过了身份验证,激活了动态ACL)
13、基于时间的ACL:
基于时间ACL就是在原来的标准访问列表和扩展访问列表中加入有效的时间范围来更合理有效地控制网络。首先定义一个时间范围,然后在原来的各种访问列表的基础上应用它。基于时间的ACL最多应用在定时断网,例如学校。
基于时间的ACL实验&配置命令:
配置R1:
R1(config)#intf0/0
R1(config-if)#ipadd 192.168.12.1 255.255.255.0
R1(config)#linevty 0 4 //进入虚拟终端模式
R1(config-line)#passwordcisco //设置虚拟终端登录密码
R1(config-line)#login//启用密码登录
R1(config)#time-rangetime_to_telnet //创建一个时间范围名为time_to_telnet
R1(config-time-range)#periodicweekdays 12:00 to 14:00 //设置工作日时间为每天12点到14点
R1(config-time-range)#periodicweekend 00:00 to 23:59 //设置周末时间为全天
R1(config)# access-list100 permit tcp host 192.168.12.2 host 192.168.12.1 eq telnet time-rangetime_to_telnet
//创建扩展ACL 100 只允许主机192.168.12.2 在范围时间内telnet到路由192.168.12.1
R1(config)#intf0/0 //进入接口f0/0
R1(config-if)#ipaccess-group 100 in //把扩展ACL应用到f0/0的入接口方向
配置PC:
PC(config)#no iprouting //关闭路由功能,配置成PC
PC(config)#ipdefault-gateway 192.168.12.1 //设置网关为R1
PC(config)#intf0/0 //进入接口f0/0
PC(config-if)#ipadd 192.168.12.2 255.255.255.0 //配置IP
不在时间范围内,所以禁止了Telnet行为
修改了R1本地时间到时间范围内后,发现PC可以远程Telnet了
14、自反ACL:
自反ACL 允许从内部网络发起的会话的 IP 流量,同时拒绝外部网络发起的 IP 流量. 路由器检查出站流量,当发现新的连接时,便会在临时 ACL 中添加条目以允许应答流量进入。自反ACL永远是 permit 的;自反 ACL允许高层 Session 信息的IP 包过滤利用自反 ACL 可以只允许出去的流量,但是阻止从外部网络产生的向内部网络的流量,从而可以更好地保护内部网络;自反 ACL 是在有流量产生时(如出方向的流量)临时自动产生的,并且当 Session结束条目就删除;自反 ACL不是直接被应用到某个接口下的, 而是嵌套在一个扩展命名访问列表下的。
自反ACL实验&配置:
配置R1:
R1(config)#intloopback 0
R1(config-if)#ipadd 192.168.1.1 255.255.255.0
R1(config)#intf0/0
R1(config-if)#ipadd 172.16.12.1 255.255.255.0
R1(config)#linevty 0 4
R1(config-line)#passwordcisco
R1(config-line)#login
R1(config)#iproute 0.0.0.0 0.0.0.0 172.16.12.2
配置R2:
R2(config)#intf0/0
R2(config-if)#ipadd 172.16.12.2 255.255.255.0
R2(config)#intf1/0
R2(config-if)#ipadd 172.16.23.1 255.255.255.0
R2(config)#ipaccess-list extended outside
R2(config-ext-nacl)#permittcp any any reflect ref
R2(config-ext-nacl)#permitudp any any reflect ref
R2(config)#ipaccess-list extended inside
R2(config-ext-nacl)#evaluateref
R2(config-ext-nacl)#exit
R2(config)#intf1/0
R2(config-if)#ipaccess-group outside out
R2(config-if)#ipaccess-group inside in
R2(config)#iproute 0.0.0.0 0.0.0.0 172.16.23.2
配置R3:
R3(config)#intloopback 0
R3(config-if)#ipadd 192.168.2.1 255.255.255.0
R3(config)#intf0/0
R3(config-if)#ipadd 172.16.23.2 255.255.255.0
R3(config)#linevty 0 4
R3(config-line)#passwordcisco
R3(config-line)#login
R3(config)#iproute 0.0.0.0 0.0.0.0 172.16.23.1
测试结果:R1可以telnetR3,R3不能telnetR1。