我的任务是研究在我们的名称服务器上实施 DNSSEC。虽然这方面的技术方面(生成密钥、标志区域、准备翻转)相对简单,但我遇到了后勤问题。
从我一直在阅读的文档来看,1024 位对于区域签名密钥来说是一个很好的大小,正确的程序是每个区域一个 ZSK,大约一个月的滚动
然而,在一台具有良好熵的相当快的计算机上最多需要 10 分钟来生成一个 1024 位的密钥......而我为超过三千个区域的主机工作的 ISP。除非我以某种方式使流程从头到尾自动化,否则这是行不通的——即使我这样做了,到流程完成时,几乎是开始 NEXT 翻转的时候了。
简而言之,这是不可行的。现在,我将 DNSSEC 限制为明确要求的客户,但这充其量只是权宜之计。
我的问题:
编辑:添加了我用来生成密钥的确切命令:
caleburn: ~/Projects/Systemec/DNS-magic/DNSSEC/keys/ >time dnssec-keygen -r/dev/random -a RSASHA256 -f KSK -b 1280 -n ZONE example.com
Generating key pair.............................+++++ ...+++++
Kexample.com.+008+10282
real 9m46.094s
user 0m0.092s
sys 0m0.140s
caleburn: ~/Projects/Systemec/DNS-magic/DNSSEC/keys/ >time dnssec-keygen -r/dev/random -a RSASHA256 -b 1280 -n ZONE example.com
Generating key pair.........................+++++ .........+++++
Kexample.com.+008+22173
real 12m47.739s
user 0m0.124s
sys 0m0.076s
Run Code Online (Sandbox Code Playgroud) 有人可以告知,请就两种方法的差异和优点/缺点给出冗长的答复吗?
我不是 DNS 专家,也不是程序员。我对 DNS 有一个不错的基本了解,并且有足够的知识来了解诸如 kaminsky 错误之类的事情是如何工作的。据我了解,DNSCurve 具有更强的加密功能,设置更简单,并且是一个更好的解决方案。
DNSSEC 是不必要的复杂,并使用了可破解的加密,但它提供了端到端的安全性,而 DNSCurve 则没有。然而,我读过的许多文章似乎都表明端到端安全性没有多大用处或没有区别。
那么哪个是真的?哪个是更好的解决方案,或者每个的缺点/优点是什么?
编辑:
当目标是身份验证而不是机密性时,如果有人可以解释通过加密消息内容可以获得什么,我将不胜感激。
密钥是 1024 位 RSA 密钥的证明在这里。
很好奇今天发布DURZ的L根服务器实际效果如何。在 nanog 邮件列表中,有人说评估根名称服务器发布签名区域的系统影响很重要,即使不使用 DNSSEC。同时,RIPE 自己发布的关于他们对 K 根服务器的更改的信息说,如果您的解析器不使用 DNSSEC 就没有问题。有人可以解决这个问题吗?DNSSEC 似乎是一个凌乱、纠结的网络。
如果没有在我的解析器上启用 DNSSEC,我是否需要担心即将对根服务器进行的更改?
我对 DNSSEC 有一些疑问。我有一台服务器充当权威名称服务器,另一台充当缓存/解析器。我正在使用 Bind 9.7.1-P2,这些是我的配置文件:
Named.conf(权威服务器)
// Opciones de configuracion del servidor
include "/etc/rndc.key";
controls {
inet 127.0.0.1 allow { localhost; } keys { rndc-key; };
};
options{
version "Peticion no permitida/Query not allowed";
hostname "Peticion no permitida/Query not allowed";
server-id "Peticion no permitida/Query not allowed";
directory "/etc/DNS_RIMA";
pid-file "named.pid";
notify yes;
#files 65535;
dnssec-enable yes;
dnssec-validation yes;
allow-transfer { 172.23.2.37; 172.23.3.39; };
transfer-format many-answers;
transfers-per-ns 5;
transfers-in 10;
max-transfer-time-in 120;
check-names master ignore;
listen-on {172.23.2.57; 80.58.102.13; 80.58.102.103; 127.0.0.1; }; …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用nsupdate从名称服务器本身内部执行的方法更新名称,但收到错误消息
; TSIG error with server: tsig indicates error。
我创建了一个密钥dnssec-keygen -a hmac-md5 -b 512 -n HOST -r /dev/urandom dyn.mydomain.com.并将秘密复制到了named.conf。
我的named.conf如下
key "dyn.mydomain.com." {
algorithm hmac-md5;
secret "T2DjtGkGAzPAVrL6zar9GpxjNQ1iOjJzWKhPsF5gu0xQbaONhK7ZmC0n WKatgbGEHqla1uoxG3FdktQPolMIjQ==";
};
zone "dyn.mydomain.com." {
type master;
file "/var/cache/bind/dyn.mydomain.com.hosts";
allow-update {
key "dyn.mydomain.com.";
};
};
Run Code Online (Sandbox Code Playgroud)
文件 dyn.mydomain.com.hosts 如下所示:
$ORIGIN .
$TTL 8400 ; 2 hours 20 minutes
dyn.mydomain.com IN SOA ns. root. (
2007072513 ; serial
7200 ; refresh (2 hours)
900 ; retry (15 minutes)
1857600 ; …Run Code Online (Sandbox Code Playgroud) 我有一个关于 DNSSEC 的初学者问题。我在 TLS 和密码学方面有很多经验,想尝试这项新技术。我在谷歌上搜索了很多关于这个的信息,但我没有找到对我有用的信息。我认为信息收集中的一个混淆是“Debian howto DNSSEC setup”可能意味着“如何使用 DNSSEC 进行解析”或“如何使用 DNSSEC 保护您的域”。我正在寻找第二个。
我正在运行具有 root 权限的 Debian Squeeze 服务器,该服务器的域名以“.de”结尾(已由根区域签名)。此服务器上的网络接口使用运行服务器的数据中心的网关 IP(DNS 解析器?)。
我的域托管在 freedns.afraid.org ,在那里我可以为我的域添加 DNS RR。他们目前无法添加 DNSSEC RR,但我正在催促他们尽快支持。;-)
我的简单问题是:如何在 Debian 上设置 DNSSEC?分别 我问谁?
据我所知,我所要做的就是dnssec-keygen在我的 Debian 服务器上运行,然后将密钥添加到我的 DNS 提供商中作为 DNSSEC RR。(并且每 30 天更换一次?)
我看过这个http://www.isc.org/files/DNSSEC_in_6_minutes.pdf但看起来你必须是一个 ZONE 的所有者,所以我认为这不适用于我。谁需要签署我的域?我的 DNS 提供商或我的区域 (DeNIC) 还是我可以自己做?
非常感谢任何帮助!
有人可以提供在 BIND 9.7 下设置 DNSSEC 的分步程序吗?我认为这个版本是相关的,因为它应该让生活更轻松。事实上,ISC 发布了一份名为DNSSEC for Humans的文档,我用它作为起点,虽然它不是一个教程。
我使用 9.7(比如说,而不是全新的 9.9)的主要原因是它是 Debian 6 下的稳定版本。我应该提到我已经启动并运行了基本的 BIND 配置。
我试过的:
包含/etc/bind/named.conf.options在行中适当的大括号内
dnssec-enable yes;
Run Code Online (Sandbox Code Playgroud)
并重新启动 BIND。
冉 dnssec-keygen example.com
冉 dnssec-keygen -fk example.com
试过 dnssec-signzone –S example.com
但是,最后一步给了我错误
dnssec-signzone: fatal: No signing keys specified or found.
Run Code Online (Sandbox Code Playgroud)
我可以看到这可能是一个错误,因为似乎缺少指示我的密钥在哪里的选项,但在手头上,ISC 引用的指南特别引用了最后一个示例。事实上,标志 -S 实际上代表“智能签名”,所以我希望将密钥放在我执行最后一个命令 ( /etc/bind)的同一目录中就足够了。
由于这是一个玩具,非生产项目,我不介意重复这些步骤,比如,每 30 天,但我想让它们尽可能简单,并且......让它们正确!
任何想法/指示?提前致谢。
BIND 9.16 引入了一项新dnssec-policy功能,作为长期建立的功能的进一步自动化的 DNSSEC 密钥管理和签名工具auto-dnssec maintain。
该文档似乎没有涵盖从旧版本到新版本的迁移,但相关的 wiki 页面似乎表明dnssec-policy.
也就是说,建立一个新区域dnssec-policy非常简单,但是将现有区域从 迁移auto-dnssec maintain到dnssec-policy似乎并不像人们预期的那样有效。
我所期望的是与现有密钥兼容的策略将继续使用这些密钥。
似乎发生的情况是,所有现有密钥都会立即从区域中删除,因为它们已经“过期”并被新密钥替换,即使新策略强制要求一组兼容的密钥(相同的算法和大小)并且现有密钥已未定义生命周期终止属性(仅Created、Publish和Activate.key 文件中的计时)。
我在测试时使用的策略如下所示(命名以反映测试期间的内容):
dnssec-policy alg13-ksk-unlimited-zsk-60day {
keys {
ksk key-directory lifetime unlimited algorithm ECDSAP256SHA256;
zsk key-directory lifetime P60D algorithm ECDSAP256SHA256;
};
};
Run Code Online (Sandbox Code Playgroud)
这是配置从 更改为 时的日志auto-dnssec maintain;输出dnssec-policy alg13-ksk-unlimited-zsk-60day;:
zone zone.example/IN (signed): reconfiguring zone keys
keymgr: DNSKEY zone.example/ECDSAP256SHA256/49004 (KSK) created for policy alg13-ksk-unlimited-zsk-60day
keymgr: DNSKEY …Run Code Online (Sandbox Code Playgroud) 我有几乎开箱即用的 Windows 2003 服务器,它也是某些用户的域名服务器。我应该担心5 月 5 日在根名称服务器上部署 dnssec 吗?
我已经运行:
dnscmd /Config /EnableEDnsProbes 1
Run Code Online (Sandbox Code Playgroud)
多谢!
附:我的防火墙/网络基础设施不会阻止 udp 数据包 > 512B
我的成熟测试结果:
宣布的缓冲区大小:1280 字节
测量缓冲区大小:1259 字节
启用 EDNS:是
启用 DNSSEC:否
您的解析器没有启用 DNSSEC。
注意:由于所使用的算法,公布的缓冲区大小和测量的缓冲区大小之间始终存在差异。但是,这种差异不应超过 300 字节。
PS#2
这是活动目录服务器,因此它具有 dns 服务,它是某些内部 dns 区域的权威 dns 服务器 [未在公共互联网中使用]。此服务器还用作某些内部用户的递归名称服务器。
谁能用简单的语言解释一下NSEC3 RR中opt-out标志的含义。我确实阅读了RFC 5155并且一无所知。