中国教育和科研计算机网
EDU首页 |  中国教育 |   高校科技 |   教育信息化 |   CERNET
教育信息化

资讯 | 专题 会议 观点 专栏 访谈 企业 产品 CIO 技术 校园信息化 下一代互联网 IPv6视频课堂

中国教育网 > 教育信息化
您现在的位置: EDU首页 > 教育信息化 > 网络安全 > 攻击防范 > 其它
DNSSEC原理、配置与部署(二)
http://www.edu.cn   2011-07-25 中国教育网络 作者:段海新

字体选择:【大】 【中】 【小】

  DNSSEC是为解决DNS欺骗和缓存污染而设计的一种安全机制。本文概要介绍DNSSEC在BIND上的配置,最后介绍国际上的部署情况和它可能对互联网安全机制的影响。

  DNSSEC的配置

  尽管DNSSEC 的工作原理看起来让人气馁,实际的配置操作却并不复杂。本节以BIND 9为例介绍DNSSEC的基本配置。尽管BIND 9.3以上就开始支持DNSSEC,仍然建议使用当前最高版本的BIND(当前最新的版本是9.8)。

  配置或部署DNSSEC有两种场景:

  (1 )配置安全的域名解析服务器(Resolver),该服务器可以保护使用它的用户,防止被DNS 欺骗攻击。这里只涉及数字签名的验证工作。

  (2)配置安全的权威域名服务器(Name Server),对权威域的资源记录进行签名,保护服务器不被域名欺骗攻击。

  配置安全解析服务器

  激活DNSSEC

  首先,在BIND的配置文件(一般是/etc/named.conf)中打开DNSSEC选项,比如:

  options {
  directory "/var/named";
  dnssec-validation yes;
  ….
  };

  配置Trust anchor

  其次,要给解析服务器配置可信锚(Trust Anchors),也就是你所信任的权威域的DNSKEY。理想情况下我们可以配置一个根的密钥就够了,但是目前DNSSEC还没有完全部署的情况下,我们需要配置很多安全岛(Secure Island)的密钥,可以从很多公开的网站下载这些可信域的DNSKEY文件,包括:

  (1)Root Zone DNSSEC Trust Anchors:https://www.iana.org/dnssec/。2010年7月部署实施,如果DNSSEC全部部署成功,这一个公开密钥就足够了。

  (2)The UCLA secspider : https://secspider.cs.ucla.edu,由美国加州大学洛杉矶分校(UCLA)张丽霞教授的实验室维护。

  (3)The IKS Jena TAR:https://www.iksjena.de/leistungen/dnssec.php

  这些文件大概是这样的格式:

  trusted-keys {
  "test.net." 256 35 "AQPzzTWMz8qS…3mbz7Fh
  ……
  ….fHm9bHzMG1UBYtEIQ==";
  "193.in-addr.arpa." 257 3 5 "AwEAAc2Rn….HlCKscYl
  kf2kOcq9xCmZv….XXPN8E=";
  };

  假设上述trust anchors的文件为/var/named/trust-anchors.conf,则在/etc/named.conf中增加下面一行:

  include "/var/named/se-c-trust-anchors.conf";

  测试

  在完成上述配置修改之后重新启动named进程,然后选择一个trust anchor文件中有的区或者它下一级的域名,在解析服务器上用dig测试一下,例如:

  #dig @127.0.0.1 +dnssec test.net. SOA

  如果配置正确,应该返回test.net的SOA记录和相应的RRSIG记录,另外返回的头部中应该包含A D 标志位,表示DNSSEC相关的数字签名验证是正确的,类似下面的样子:

  ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id:
  1397
  ;; flags: qr rd ra ad; QUERY: 1, ANSWER: 2, AUTHORITY: 2,
  ADDITIONAL: 3

  如果没有得到期望的结果,需要查看DNS的日志来找出问题。BIND为DNSSEC相关的事件增加了一个dnssec类别,可以在/etc/named.conf配置日志如下:

  logging {
  channel dnssec_log {
  file "log/dnssec" size 20m; // a DNSSEC log channel 20m;
  print-time yes; // timestamp the entries
  print-category yes; // add category name to entries
  print-severity yes; // add severity level to entries
  severity debug 3; // print debug message <= 3 t
  };
  };
  category dnssec { dnssec_log; };

页面功能 【打印】 【关闭】 【我有话说

MOOC风暴来袭

版权所有:中国教育和科研计算机网网络中心 CERNIC,CERNET,京ICP备15006448号-16,京网文[2017]10376-1180号

关于假冒中国教育网的声明 | 有任何问题与建议请联络:Webmaster@staff.cernet.com