我正在尝试使用 Bind9 创建仅缓存/转发的 DNS 服务器,并且默认启用 DNSSEC 验证。
假设您从我的配置文件中获得以下信息:
acl "home-net"
{
127.0.0.1;
::1;
192.168.1.0/24;
2000:db8:cafe:100::/64;
};
options
{
forwarders
{
# Use Google DNS either by IPv6 or IPv4 is fine.
2001:4860:4860::8888;
2001:4860:4860::8844;
8.8.8.8;
8.8.4.4;
};
dnssec-enable yes;
dnssec-validation auto;
allow-query { any; };
allow-query-cache { home-net; };
allow-recursion { home-net; };
};
zone "subdomain.example.net" {
type forward;
forward only;
forwarders
{
# SAMBA PDC1 (Active Directory)
2000:db8:cafe:100::1;
# SAMBA PDC2 (Active Directory)
2000:db8:cafe:100::2;
};
};
据我所理解:
每当我想要查找在子域中注册的主机时,subdomain.example.net
名称服务器就会联系我在区域配置的转发器部分列出的两个 SAMBA PDC 之一。
名称服务器反过来会进行 DNSSEC 验证,以确保两个 SAMBA PDC 确实有权回复对域的请求subdomain.example.net
。
如果无法通过 DNSSEC 验证 SAMBA PDC 的回复,则名称服务器将转向 Google DNS 并询问他们是否可以提供 DNSSEC 验证的响应。
现在问题是:
据我所知,SAMBA 中没有 DNSSEC 支持,无论是通过使用 SAMBA INTERNAL_DNS 还是通过 BIND9_DLZ,因此您无法在 SAMBA 维护的任何区域上进行 DNSSEC 验证。
据我了解,有 3 个选择:
- 全局禁用 DNSSEC 验证。
- 使用负面信任锚。
- 使用“validate-except”选项。
我将一一处理。
禁用 DNSSEC
在我看来,这实际上不是一个选项。它基本上将您的设置降低到“全球适用”...除了您特定的小角落,所以最好将其全部禁用。
dnssec-enable
只需将和的值更改dnssec-validation
为即可no
。
我只会将其用作临时修复,直到我可以再次激活 DNSSEC。
使用负面信任锚
一开始我的兴趣达到了顶峰。这个想法是,你注册一个特殊的加密密钥,rndc
然后它就不会对你想要的域名进行任何 DNSSEC 验证。
然而这只是一个临时解决方案,因为密钥的有效期至少为最多一个星期。
这意味着您必须执行与 Let's Encrypt 证书相同类型的源代码 - 只是 cron 作业必须更频繁地触发。
使用“validate-except”选项
从理论上来说,这应该是所有解决方案中最简单的一个。
我只需要添加一个options
名为的新部分validate-except
。
就像这样:
options
{
dnssec-enable yes;
dnssec-validation auto;
validate-except
{
"subdomain.example.net";
"another.example.net";
};
};
听起来很简单-对吧?:-)
... 但是我的名称服务器由于“未知选项 - verify-except”而无法启动。
编辑:事实证明,Raspberry OS 使用 Bind 版本 9.11,而validate-except
选项仅在 Bind 9.13 版本中实现。
作为参考,Raspberry 版 Ubuntu 20.04 使用 Bind 版本 9.16。
那么,有没有人有关于 DNSSEC 的混合模式设置的经验?
...或者最简单的解决方案是承认失败并安装 Ubuntu 20.04?:-)
答案1
不知道这是否仍然很流行,但我认为使 BIND 配置复杂化会导致大量无偿工作时间与服务器作斗争。虽然您没有列出系统的规格,但如果可以选择,最好彻底检查一下并完成它。此类配置最难的部分是争取简单性。最简单的选择是让一切“正常工作”,所以......使用 Ubuntu 20.04 LTS。就您的 SAMBA 配置而言,(再次,不知道您的规格)使用 20.04 可让您轻松使用 BIND DLZ,甚至 dhcpd 更新。如果考虑硬件,ubuntu 服务器具有最少的可用配置,对系统资源几乎没有额外影响。
Matthias Kerstner:在 Raspberry Pi 3 上使用 Samba 4 设置 Active Directory 域控制器
答案2
我要跳过这个,因为编译、安装和维护特定的软件/内核/模块是开源和实际计算的基石。更换发行版就像因为将果汁洒在地毯上而拆掉房子并重建。如果你需要有人喂食。坚持使用付费选项,这样晚上你就可以入睡,而不会让那些可怕的需要知道你实际上在做什么的怪物打扰你。
如果你需要比 repo 维护者更新的版本,那就这么做吧。这将让你摆脱许多废话和政治垃圾。