; c9 H3 o6 P, f6 A% P* ^0 O2 \$ T
Nominum公司首席科学家、DNS协议原作者Paul Mockapetris说,升级到BIND 9.2.5或实现DNSSec,将消除缓存投毒的风险。不过,如果没有来自BlueCat Networks、Cisco、F5 Networks、Lucent和Nortel等厂商的DNS管理设备中提供的接口,完成这类迁移非常困难和耗费时间。一些公司,如Hushmail,选择了用开放源代码TinyDNS代替BIND。替代DNS的软件选择包括来自Microsoft、PowerDNS、JH Software以及其他厂商的产品。1 l/ X$ u2 i( w4 N( d7 N! n
+ {% a9 a9 D* j7 V2 N6 ?6 C2 v' M, g' Y& P& r% }9 |6 p
不管您使用哪种DNS,请遵循以下最佳惯例:5 H' W6 C7 r- h3 j
, S) Y& x2 K0 I j' l- p
. ^% l$ { r1 u( E* S# g$ q 1.在不同的网络上运行分离的域名服务器来取得冗余性。 2 o1 t$ a$ m w7 B1 p* `+ E9 X5 J. T0 o# T
8 H9 {. S4 U% R1 z5 o0 ?* E
2.将外部和内部域名服务器分开(物理上分开或运行BIND Views)并使用转发器(forwarders)。外部域名服务器应当接受来自几乎任何地址的查询,但是转发器则不接受。它们应当被配置为只接受来自内部地址的查询。关闭外部域名服务器上的递归功能(从根服务器开始向下定位DNS记录的过程)。这可以限制哪些DNS服务器与Internet联系。 + |2 W1 T; y2 x4 M- ]$ e- n, e+ a
: j% m/ N1 k# d" ]( x4 D) p
3. 可能时,限制动态DNS更新。7 x0 ]7 N z ]& I+ P8 z
1 S! J) |: Q" R$ S9 U' L% w, \) T
$ e) [( P$ z8 D% f 4. 将区域传送仅限制在授权的设备上。 ; A) S) l, G! Y) P: \# O @- L7 O7 v5 @
2 P2 Y7 w7 F2 W5 L 5. 利用事务签名对区域传送和区域更新进行数字签名。" C9 V* ~% x/ g
# M: |: l) z3 R8 ]: G * z5 g7 b8 D* h3 O 6. 隐藏运行在服务器上的BIND版本。 * M. C1 ^1 i7 w) ^# w. ^' w* t0 g& k5 Z: T2 K) p
" O. A( P6 ]9 f
7. 删除运行在DNS服务器上的不必要服务,如FTP、telnet和HTTP。/ o4 q# q7 P a. K C( q
7 w/ o, _, f8 `& |, @" C5 X 8 m7 S6 u6 Y& f; n0 U% n% W 8. 在网络外围和DNS服务器上使用防火墙服务。将访问限制在那些DNS功能需要的端口/服务上。& q$ G/ S8 M) l9 P5 S+ f
1 ^, o2 t5 o- A# Q6 A
, q' F8 c4 @( U2 r8 N 让注册商承担责任 . N8 j0 b9 ^9 Z/ f0 H9 F7 d0 F; z5 s. j2 ?
域名劫持的问题从组织上着手解决也是重要的一环。不久前,有黑客诈骗客户服务代表修改了Hushmail的主域名服务器的IP地址。对于此时,Hushmail公司的CTO Brian Smith一直忿忿不已,黑客那么容易就欺骗了其域名注册商的客户服务代表,这的确令人恼火。0 w1 i" P: y4 A, h7 O5 h+ }
3 ~. H- L5 U( ?' f& o G
+ e9 }$ P% P& T! m
Smith说:“这件事对于我们来说真正糟透了。我希望看到注册商制定和公布更好的安全政策。但是,我找不出一家注册商这样做,自这件事发生后,我一直在寻找这样的注册商。” ) S |; [& a) T# c; S4 U 1 [( Y7 B6 v& j, x8 ^ 1 m2 C# {4 f- ]/ X& ^/ z Nominum公司首席科学家、DNS协议原作者Paul Mockapetris说,升级到BIND 9.2.5或实现DNSSec,将消除缓存投毒的风险。不过,如果没有来自BlueCat Networks、Cisco、F5 Networks、Lucent和Nortel等厂商的DNS管理设备中提供的接口,完成这类迁移非常困难和耗费时间。一些公司,如Hushmail,选择了用开放源代码TinyDNS代替BIND。替代DNS的软件选择包括来自Microsoft、PowerDNS、JH Software以及其他厂商的产品。 6 e+ o- D I& e/ C % t/ J$ Z/ y; N- b% i" G # h0 _$ r n8 N6 n 不管您使用哪种DNS,请遵循以下最佳惯例:; n2 V8 @7 Y/ D, o% P
" n- Q7 v* t5 M" |* n) t3 L7 @) i, U
1.在不同的网络上运行分离的域名服务器来取得冗余性。 9 I' x1 M% P* D- z2 F . m' B, Z H' Z. H# K5 S- H0 a6 F" \
2.将外部和内部域名服务器分开(物理上分开或运行BIND Views)并使用转发器(forwarders)。外部域名服务器应当接受来自几乎任何地址的查询,但是转发器则不接受。它们应当被配置为只接受来自内部地址的查询。关闭外部域名服务器上的递归功能(从根服务器开始向下定位DNS记录的过程)。这可以限制哪些DNS服务器与Internet联系。 2 a( K4 x E" ~# U2 b: h" `! F0 h- B: c( P- D) a0 i: }
4 G, g0 T0 R2 t
4 _! R% O# v% k- o5 Y( E4 |3 b& Q s1 m
, B! `1 [, q' v 3. 可能时,限制动态DNS更新。 ' }4 S! ~5 h! Q# P * w: x' G0 u8 E! Z5 {5 o" m4 o . S5 U" S6 I1 e 4. 将区域传送仅限制在授权的设备上。 q0 p4 i R6 U/ ?: w& J1 X9 q% ^
5 R- J5 `4 O' J% v: b
5. 利用事务签名对区域传送和区域更新进行数字签名。6 A/ Y k8 o- D Z! T/ \8 T
# \0 _* d- i- S