Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1420053
  • 博文数量: 269
  • 博客积分: 3602
  • 博客等级: 中校
  • 技术积分: 4536
  • 用 户 组: 普通用户
  • 注册时间: 2012-04-17 21:13
文章分类

全部博文(269)

文章存档

2014年(8)

2013年(139)

2012年(122)

分类:

2012-08-17 15:34:38

Lock-and-Key是一种的。用户一般通过提供用户名和口令,就能够开启一个到路由器的 telnet会话。在用户被认证之后,路由器自动关闭telnet会话,并将一个访问表项置于某个访问表中,以允许源地址为认证用户工作站地的报文通 过。这样就可以在安全边界上配置访问表,只允许那些能够通过用户认证的工作站的报文通过路由器。

     在传统的访问表中,如果处于路由器不可信任端的用户需要访问内部的资源,就必须永久性地在访问表中开启一个突破口,以允许这些用户的工作站上的报文进入可 信任网络。这些在访问表中的永久性的突破口给黑客发送报文进入安全边界,并达到内部网络提供了机会。而这种动态ACL就解决了这种问题。注意,Lock- and-Key并不能解决IP Spoof问题,这也是所有类型ACL的通病。

 

 

拓扑图如上:

IP编址如下

R1:loopback0 1.1.1.1/24

        S0 :192.168.12.0/24

R2:   S0:192.168.12.2/24

        loopback0:2.2.2.2/24

        E0:192.168.23.2/24

R3:   E0 192.168.23.3/24

        loopback0:3.3.3.3/24

要求:配置Lock-and-Key,使得R3通过了R2的验证 之后才能访问R1的loopback0口

R2配置如下(只显示关键配置):

username cisco password 0 cisco   //配置用户名和密码以提供本地验证

interface Serial1/1
     ip address 192.168.23.2 255.255.255.0
     ip access-group 100 in   //将ACL应用于接口
     serial restart-delay 0
     no dce-terminal-timing-enable

access-list 100 permit tcp host 2.2.2.2 eq telnet   //允许任何源telnet到R2上以便进行认证
access-list 100 dynamic CISCO timeout 30 permit ip any any   //定义一个动态ACL,在Lock-and-Key被触发之前,这条ACL将被忽略。这里的timeout是绝对超时时间,也就是说不管有没有相匹配的 流量通过,30分钟后会话都将被关闭,与之生成的相应的ACL将被删除。建议配置绝对记时器值或者空闲计时器值,否则,动态表项就不会被删除,除非重新启 动路由器。如果同时使用了绝对计时器和空闲计时器,则空闲时间应该比绝对时间小。

line con 0
     exec-timeout 0 0
     logging synchronous
line aux 0
line vty 0 4
     login local   //启用本地验证
     autocommand access-enable host timeout 20   //应用临时ACL。如果不使用host参数,动态表项就不会替换动态表项中认证主机的源I P地址,这样,就会允许任何主机都能通过动态表项。这里的timeout是空闲时间,如果20分钟内没有相应的流量通过,则删除该动态ACL。另外,这一 步也可以在全局配置模式下针对单独的帐号来配置:username cisco autocommand access-enable host timeout 20

line vty 5 1276
     login local
     autocommand access-enable host timeout 20

在R2上sh access-list:

R2#sh access-lists
Extended IP access list 100
    10 permit tcp any host 2.2.2.2 eq telnet (477 matches)
    20 Dynamic CISCO permit ip any any

R3上ping1.1.1.1(R1的环回口):

R3#ping 1.1.1.1

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 1.1.1.1, timeout is 2 seconds:
U.U.U
Success rate is 0 percent (0/5)

然后在R3上telnetR2:

R3#telnet 2.2.2.2
Trying 2.2.2.2 ... Open

再次查看R2的ACL:

R2#sh access-lists
Extended IP access list 100
    10 permit tcp any host 2.2.2.2 eq telnet (546 matches)
    20 Dynamic CCIE permit ip any any
       permit ip host 192.168.23.3 any

在R3上再次ping1.1.1.1:

R3#ping 1.1.1.1

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 1.1.1.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 12/53/140 ms

在R3上用R3的loopback0作为源地址ping1.1.1.1:

R3#ping 1.1.1.1 sou l0

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 1.1.1.1, timeout is 2 seconds:
Packet sent with a source address of 3.3.3.3
U.U.U
Success rate is 0 percent (0/5)

若要删除动态ACL可用如下命令:

clear access-template [access-list-number | name] [dynamic-name] [source] [destination]

比如要删除上例生成的动态ACL:

clear access-template 100 CISCO host 192.168.23.3 any

Lock-and-Key虽然有众多好处,但是它也有一个缺点:所有达到的telnet会话都会 被路由器认为是要开启一个动态访问表项。因为telnet会话在认证之后,很快就会被关闭,这将导致管理员不能通过telnet管理其路由器。

解决这个问题可以通过在某些vty端口下面使用rotary 1命令。rotary 1命令使得通常的telnet在3001端口上访问路由器

R2进行修改后的配置如下(只给出发生变化的配置):

access-list 100 permit tcp any host 2.2.2.2 eq telnet
access-list 100 permit tcp any host 2.2.2.2 eq 3001   //因为端口发生了改变,所以需要增加一条ACL
access-list 100 dynamic CISCO timeout 30 permit ip any any

line con 0
     exec-timeout 0 0
     logging synchronous
line aux 0
line vty 0 4
     login local
     autocommand access-enable host timeout 20
line vty 5 1000
     login local
     autocommand access-enable host timeout 20
line vty 1001 1276
      line vty 1001 1276
     password 123456
     login
     rotary 1   //对vty线路1001--1276修改端口为3001,用来管理设备

这时要通过telnet管理设备需在目标IP之后指定端口号:

R3#telnet 2.2.2.2 3001
Trying 2.2.2.2, 3001 ... Open


User Access Verification

Password:
R2>






阅读(877) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~