边界路由器是连接内部局域网和外部Internet的关键路由。作为内外网络之间的桥梁,它的安全运行关系到整个局域网的命运。因为直接与Internet连接,边界路由器首当其冲是黑客攻击的重点。基于此,边界路由器理应成为网络管理者重点维护的对象。本文就以Cisco的路由器产品为例,和大家分享边界路由器的安全部署方案。
1、安全部署从密码开始
密码是路由器用来阻止对其进行非授权访问的主要手段,是路由器本身安全的一部分。对于边界路由器来说,安全可靠的密码策略更是必不可少的。
(1).设置符合复杂性的特权模式进入密码
首次登录路由器后就要为其设置复杂的密码,例如:“Router(config)#enable secret 55ctocio,.”,建议不要采用enable password进行设置。两者虽然功能相似,但是enable password采用的加密算法比较弱。同时,还要启用service password-encryption。例如:“Router(config)#service password-encryption”利用这条命令对存储在配置文件中的所有密码和类似的数据进行加密,以提高密码的安全性。(图1)
(2).尽量不要远程访问路由器
如果不需要对路由器进行远程维护和管理,建议不要开启远程访问。就算开启了路由器的远程访问功能,也要控制远程访问的次数。因为任何人登录到路由器都会在路由器上显示一些重要的信息,而这些信息能够对攻击者进行网络渗透提供帮助。另外还有一种情况:攻击者也许不会通过路由器对局域网实施攻击,但他会将你的路由器作为一个跳板对其他的目标实施攻击。这样,你的路由器被攻击者利用不说,而且会给你带来麻烦(嫁祸于人)。基于此,我们一定要控制路由器的远程访问。如果情况特殊需要远程访问路由器,也一定要设置足够强的密码。笔者建议,不要将远程访问密码和特权密码设置成一样。
Router(config)#line vty 0 4 Router(config-line)#login Router(config-line)#password ineing55ete |
(图2)
(3).设置高强度的Consol端口访问密码
尽管大部分的登录访问缺省都是禁止的。但是有一些例外。如直连的控制台终端等。控制台端口具有特殊的权限。特别注意的是,当路由器重启动的开始几秒如果发送一个Break信号到控制台端口,则利用口令恢复程式可以很容易控制整个系统。这样如果一个攻击者尽管他没有正常的访问权限,但是具有系统重启(切断电源或系统崩溃)和访问控制端口(通过直连终端、Modem、终端服务器)的能力就可以控制整个系统。所以必须保证所有连结控制端口的访问的安全性,给Consol端口设置高强度密码。
Router(config)#line consol 0 Router(config-line)#password ewingw58erer Router(config-line)#login |
(图3)
#p#
2、严格配置路由器管理服务
Cisco路由器集成了许多管理服务,这些服务适用于不同的环境和应用需求。通常情况下,其中的很多管理服务我们根本用不着。而默认情况下其中的某些管理服务是开启的,这带来了一定的安全隐患。最小的服务带来最大的安全,所以我们应该根据实际需要对这些管理服务进行严格配置。
(1).建议禁止Http管理服务
Http管理服务是Cisco提供的基于图形界面的Web管理方式,方便某些初级用户的管理需求。但是,开启Web管理后路由器需要开启而外的端口(通常是80),而且Http是Cisco存在漏洞比较多的一个服务。对于一个熟练的管理员,有高效的命令行就可以了,完全用不着Web管理方式,因此笔者建议禁止该管理服务服务。
Router(config)#no ip http server |
HTTP使用的身份识别协议相当于向整个网络发送一个未加密的口令,这使得用HTTP协议进行管理相当危险。如如果开启了HTTP服务,最好使用“Router(config)#ip http access-class”命令限制可访问地址,同时还要设置用户名和密码,并且使用“Router(config)#ip http authentication”命令开启IP验证。
Router(config)#username ctocio privilege 10 password ienig56egd Router(config)#access-list 10 permit 192.168.1.1 Router(config)#ip http access-class 10 Router(config)#ip http server |
(图4)
(2).建议禁止SNMP服务
SNMP是英文“Simple Network Management Protocol”的缩写,中文意思是“简单网络管理协议”,它是路由器里最为常用的网管协议。但是SNMP V1存在很多安全隐患,建议大家通过命令“Router(config)#no snmp-server”将其禁止。如确实要使用该协议,应尽量使用SNMP V2,因为它是基于MD5的数字认证方式。另外,应尽可能对不同的路由器设置不同的MD5安全值。
如果一定要使用SNMP V1,那么必须要删除SNMP的默认配置,如缺省的community public/private等。如笔者曾经写过一篇文章《防止黑客接管思科路由器》(链接地址为:http://networking.ctocio.com.cn/tips/429/8542429.shtml),就是利用了管理员并没有修改SNMP的默认设置,利用工具下载了路由器的配置文件进而控制路由器的案例。
禁止pulic的只读属性和admin的读写属性
Router(config)#no snmp-server community public ro Router(config)#no snmp-server community admin rw |
(图5)
(3).关闭IP直接广播(IP Directed Broadcast)
DDOS(拒绝服务)是网络宿敌而且几乎没有有效的防御措施,Smurf攻击是一种拒绝服务攻击。局域网中的服务器会应答各种网络指令,通常情况下它并不管这个指令是谁发出的。在这种攻击中,攻击者使用假冒的源地址向你的网络广播地址发送一个“ICMP ech0”请求。这要求所有的主机对这个广播请求做出回应,这种情况至少会降低你的网络性能。大家可参考你的路由器信息文件,了解如何关闭IP直接广播。例如,可以使用“Router(config)#no ip source-route”这个指令关闭路由器的IP直接广播地址。
(4).封锁ICMP ping请求
Ping命令的主要目的是识别目前正在使用的主机是否活动,ping通常用于更大规模的协同性攻击之前的侦察活动,这是攻击者在攻击之前首先要做的测试。通过取消远程用户接收ping请求的应答能力,就能够在一定程度上避开那些无人注意的扫描活动或者防御那些寻找容易攻击的目标的黑客实施进一步的工具。当然,这样做实际上并不能保护你的路由器不受攻击,但是这将使你不太可能成为一个攻击目标,降低的被攻击的几率。
有的时候,我们需要发ICMP ping包探测Internet中的某个IP。所以一个折中的方案是:对于进入局域网的ICMP数据包我们要禁止ICMP协议的ECHO、Redirect、Mask request,也需要禁止TraceRoute命令的探测。对于流出的ICMP数据包我们可以允许ECHO、Parameter Problem、Packet too big和TraceRoute命令的使用。
屏蔽外部ping包
Router(Config)#access-list 110 deny icmp any any echo log Router(Config)#access-list 110 deny icmp any any redirect log Router(Config)#access-list 110 deny icmp any any mask-request log Router(Config)#access-list 110 permit icmp any any |
允许内部ping包
Router(Config)#access-list 111 permit icmp any any echo Router(Config)#access-list 111 permit icmp any any Parameter-problem Router(Config)#access-list 111 permit icmp any any packet-too-big Router(Config)#access-list 111 permit icmp any any source-quench Router(Config)#access-list 111 deny icmp any any log |
屏蔽外部TraceRoute
Router(Config)#access-list 112 deny udp any any range 33400 34400 |
允许内部TraceRoute
Router(Config)#access-list 112 permit udp any any range 33400 34400 |
(图6)
#p#
3、按需定制访问控制列表
访问控制列表(ACL)可以实现网络通信流量的控制。合理应用路由器(尤其是边缘路由器)的访问控制列表功能,将对网络的安全起到很好的保护作用,如拒绝非公有地址访问内部网络以及一些垃圾和恶意路由信息等。下面提供笔者在实战中设置的访问控制策略供大家借鉴:
(1).拒绝回环地址127.0.0.0/8
Router(Config)#access-list 100 deny ip 127.0.0.0 0.255.255.255 any log |
(2).拒绝RFCl918私有地址
Router(Config)#access-list 100 deny ip 192.168.0.0 0.0.255.255 any log Router(Config)#access-list 100 deny ip 172.16.0.0 0.15.255.255 any log Router(Config)#access-list 100 deny ip 10.0.0.0 0.255.255.255 any log |
(3).拒绝组播地址
Router(Config)#access-list 100 deny ip 224.0.0.0 0.255.255.255 any |
(4).拒绝网络垃圾数据流
Router(Config)#access-list 100 deny ip 192.168.2.0 0.0.0.255 any |
(图7)
#p#
4、安全配置路由协议
路由协议配置是路由器配置中非常重要的一个方面,对于cisco路由器来说其支持的路由协议太多了,路由协议的配置对路由器的安全至关重要。
(1).建议启用RIPV2协议
只有RIPV2支持RIP协议的认证,而RlPVl并不支持,并且采用MD5认证。
启用设置密钥链
Router(Config)#key chain Key-chain |
设置密钥字串
Router(Config-Keychain)#key 1 Router(Config-Keychain-key)#key-string FirstKeyString Router(Config-Keychain)#key 2 Router(Config-Keychain-key)#key-string SecondKeyString |
启用RIPV2
Router(Config)#router rip Router(Config-router)#version 2 Router(Config-router)#netword 192.168.1.0 |
(图8)
采用MD5认证,并选择已配置的密钥链
Router(Config)#interface fastEthernet 0/0 Router(Config-if)#ip rip authentication mode md5 Router(Config-if)#ip rip authentication key-chain in keychain |
(图9)
(2).启用OSPF路由协议认证
默认的OSPF认证密码是明文传输的,建议启用MD5认证.并设置一定强度密钥(key,相对的路由器必须有相同的Key)。
启用OSPF协议
Router(Config)#router ospf 1 Router(Config-router)#network 192.168.1.0 0.0.0.255 area 1 |
启用认证,为明文密码认证
Router(Config-router)#area 1 authentication message-digest |
启用MD5认证,密钥Key为routerospfkey
Router(Config)#interface fastEthernet 0/0 Router(Config-if)#ip ospf message-digest-key 1 md5 routerospfkey |
(图10)
#p#
5、其他安全配置
(1).要有完备的路由器安全访问和维护记录日志
路由器的日志主要包括访问日志和维护日志两部分,日志对于路由的管理至关重要。当我们怀疑遭受网络攻击时,审阅路由器访问记录是查出安全事件的最有效的方法,无论是对于正在实施的攻击还是将要实施的攻击都非常有效。利用连接到Internet的记录,你还能够查出试网建立外部连接的特洛伊木马程序和间谍软件程序,一个具有一定安全经验并且细心的管理员在病毒传播者作出反应之前能够查出病毒的攻击。另外,一个有经验的攻击者在登录路由器并实施攻击后会利用诸如clear logging这样的命令清除自己的登录记录。所以,一定要有完备的日志备份策略。
(2).及时升级路由器IOS系统
对Cisco路由器来说,升级IOS不仅能够修订Bug,提升路由器性能扩展路由器功能。需要注意的是升级IOS是有一定的操作风险的,需要做好充足的准备。笔者此前曾经写过一篇文章《路由器IOS升级应该注意七点细节》(链接地址为http://networking.ctocio.com.cn/wpsummary/398/8636398.shtml),大家在升级IOS的时候可供参考。
(3).做好路由器配置文件的完整备份
路由器配置文件中保存了管理员对路由器所做的所有配置信息,这些配置可都是自己的心血,一定要做好备份。因为即使做好安全预防措施,也难免会发生不可预想的问题。所以为了尽可能地减少或避免意外的发生,要随时为路由器的配置文件作安全备份。当然,路由器配置的备份包括不同的层次,命令“Router#copy running-config startup-config”是将当前存储在RAM的正确配置备份到路由器的NVRAM中,在下一次启动时路由器就会使用这个正确的配置。命令“Router#copy running-config tftp”是将RAM中配置信息备份到tftp服务器中,笔者说所的备份就是这样的备份。这样当路由器的配置信息丢失或者被恶意修改后我们可以通过命令“Router#copy tftp runing-config”来快速恢复。(图11)
总结:边界路由器因为处在特殊的网络位置因此其安全性备受关注,其实除此之外其他网络节点上的路由器的安全也不容忽视。本文所述的路由器安全解决配置方案同样也适用于其他节点上的路由器的配置,大家可根据实际情况选择性地应用。最后,希望本文对于大家加固路由器安全配置有所帮助。
【编辑推荐】