下面显示了用来完全关闭SNMP的配置:Router(config)#no snmp-server community public RORouter(config)#no snmp-server community private RWRouter(config)#no snmp-server enable trapsRouter(config)#no snmp-server system-shutdownRouter(config)#no snmp-server trap-authRouter(config)#no snmp-server; j% }1 o7 v& y- l$ h
前两个命令删除了只读和读写团体字符串(团体字符串可能不一样)。接下来三个命令关闭SNMP陷阱、系统关机和通过SNMP的认证陷阱。最后在路由器上关闭SNMP服务。关闭SNMP服务之后,使用show snmp命令验证。! ?$ I0 D7 b$ {$ e! B Y- A
九、域名解析
. P5 I* f, P% D2 o 缺省情况下,Cisco路由器DNS服务会向255.255.255.255广播地址发送名字查询。应该避免使用这个广播地址,因为攻击者可能会借机伪装成一个DNS服务器。
$ c1 D" d" x9 s% `5 `& } 如果路由器使用DNS来解析名称,会在配置中看到类似的命令:Router(config)#hostname santaRouter(config)#ip domain-name claus.govRouter(config)#ip name-server 200.1.1.1 202.1.1.1Router(config)#ip domain-lookup6 _& ]6 H; l+ R+ u
可以使用show hosts命令来查看已经解析的名称。
* q }/ L7 Y& ^( n x. ^+ [ 因为DNS没有固有的安全机制,易受到会话攻击,在目的DNS服务器响应之前,黑客先发送一个伪造的回复。如果路由器得到两个回复,通常忽略第二个回复。" L/ C: O/ |; ]0 o: e
解决这个问题,要么确保路由器有一个到DNS服务器的安全路径,要么不要使用DNS,而使用手动解析。使用手动解析,可以关闭DNS,然后使用ip host命令静态定义主机名。如果想阻止路由器产生DNS查询,要么配置一个具体的DNS服务器(ip name-server),要么将这些查询作为本地广播(当DNS服务器没有被配置时),使用下面的配置:Router#telnetwww.quizware.com80 (测试)Router(config)#no ip domain-lookupRouter#telnetwww.cisco.com80 十、BootP- @; w% q$ ~3 q
BootP是一个UDP服务,可以用来给一台无盘工作站指定地址信息,以及在很多其他情况下,在设备上加载操作系统(用它来访问另一个运行有BOOTP服务的路由器上的IOS拷贝,将IOS下载到BOOTP客户端路由器上)。: Y: C$ C% w3 W8 H
该协议发送一个本地广播到UDP端口67(和DHCP相同)。要实现这种应用,必须配置一个BootP服务器来指定IP地址信息以及任何被请求的文件。# u/ t8 g, y9 m% F3 Y- @# I
Cisco路由器能作为一台BootP服务器,给请求的设备提供闪存中的文件,因为以下3个原因,应该在路由器闪关闭BootP:*不再有使用BootP的真正需求;*BootP没固有的认证机制。任何人都能从路由器请求文件,无论配置了什么,路由器都将作出回复;*易受DoS攻击。1 r8 @5 ^$ K( L+ g% X6 @% F+ f' Z4 C
默认地,该服务是启用的。要关闭BootP,使用下面的配置:Router(config)#no ip bootp server0 b \4 m; h" w3 r6 W# G0 c. t
十一、DHCP
& D9 z& o& g, {+ Z1 P DHCP允许从服务器获取所有的IP地址信息,包括IP地址、子网掩码、域名、DNS服务器地址、WINS服务器地址哈、TFTP服务器地址和其他信息。Cisco路由器既能作为DHCP客户端,也能作为服务器。 @. o+ {* u0 ]/ y. F. Y
在将Cisco路由器作为边界路由器时,应该设置该路由器为DHCP客户端的唯一的情形是,如果是通过DSL和线缆调制解调器连接到ISP,而ISP使用DHCP指定地址信息。否则,决不要将路由器设置为DHCP客户端。
; S! H+ `7 y& y! i 同样地,应该设置路由器为一台DHCP服务器地唯一的情形是,当在一个SOHO环境中使用路由器,在这种小型的网络中基本上这台路由器是可以给PC指定地址的唯一设备。如果这样做,确保在路由器外部接口上过滤UDP端口67,这将阻止来自外部的DHCP和BootP请求。/ L+ j- ?& |5 D
一般DHCP服务器是默认打开的。使用下面的配置关闭:Router(config)#no service dhcp这阻止路由器成为一台DHCP服务器或者中继代理。0 d- y- m% [; B ^9 c. \7 \ h
十二、PAD [, T3 V3 C2 K4 ?- n# S
数据包组合/分拆(packet assembler/disassembler,PAD)用在X.25网络上。以提供远程站点间的可靠连接。
% a& l, U/ t/ G8 S+ r; @ PAD能给黑客提供有用的功能。假设黑客能获得直接连接在路由器上的设备的控制权,而如果路由器在运行PAD服务,它将接受任何PAD连接。
7 t' c! V1 b$ O! j2 D- p: d 要关闭这个服务,使用下面的命令:Router(config)#no service pad1 l) [1 |6 j" o' W
十三、配置自动加载
4 Q3 Z( v/ e9 W Cisco路由器启动时,在出现CLI提示符之前,将经历几个测试阶段、发现Cisco IOS和配置文件。路由器启动时,通常会经过以下5个步骤:*加载并执行POST,发现ROM,测试硬件组件,如闪存和接口;*加载并执行引导自举程序;*引导自举程序发现并加载Cisco IOS映像文件。这些映像文件可以来自闪存、TFTP服务器或者闪存;*加载了Cisco IOS之后,发现并执行一个配置文件:配置文件储存在NVRAM中,但如果NVRAM是空的,系统配置对话框开始,或者路由器使用TFTP来获取一个配置文件;*给用户CLI EXEC提示符。
8 _, j. Q# z, p! U 在发现一个Cisco IOS文件时,假定在NVRAM中没有boot system命令,路由器首先在闪存中寻找有效的Cisco IOS映像文件。如果闪存中没有IOS映像文件,路由器执行TFTP启动,或者网络启动;发送本地广播请求从TFTP服务器上获取操作系统文件。如果这个过程也失败了,路由器从内存中加载IOS映像文件。
; J3 u, w6 @ w* H0 r0 [% h 因为启动过程中用到TFTP,而对加载过程没有安全保护。所以,不应该允许路由器使用该功能。要阻止该功能,使用下面的配置:
/ |4 h, k. x" ?/ ?/ `! r Router(config)#no boot network remote-url-ftp:/ Q3 N4 H( Z' [8 q5 N2 d# g
[[[//[username:[:password]@]location]/directory]/filename]-rcp:
} a4 m- d$ U# e) c [[[//[username@]/location]/directory]/filename]-tftp:, E- x, |: x* h) t
[[[//location]/directory]/filename
+ ~2 q$ c; T. q& M; p 加载了IOS映像之后,开始发现一个配置文件。如果在NVRAM中没有配置文件,路由器会使用系统配置对话框来建立配置文件,或使用网路配置选项:使用TFTP广播来发现配置文件。所以,应该使用以下的命令关闭该特性:Router(config)#no service config T$ [' }0 \( Q( ]4 X" E8 a# E
十四、关闭无根据ARP
7 s& z* t* f) \% i( q: G 大多数Cisco路由器(缺省情况下)都会向外发送无根据的ARP消息,无论客户端何时连接并基于PPP连接协商一个IP地址。ARP毒害攻击主要利用的就是这种ARP消息。' l4 f, l, ~! ~# A4 K
即使客户端从一个本地地址池收到地址,Cisco路由器也会生成一个无根据的ARP传送。; j# |# ]" X" M: p
禁止无根据ARP传送,使用下面的命令:Router(config)#no ip gratuitous-arps 十五、关闭IP无类别路由选择服务
( |4 t/ m6 R) B6 w 路由器可能会收到一些发往一个没有网络缺省路由的子网的数据包,如果启用了IP无类别服务时,会将这些数据包转发给最有可能路由的超网。
2 T( r0 b( C9 p; i 要关闭IP无类别路由选择,在全局配置模式下使用no ip classless命令。 |