现在问题是:

现在问题是:

我正在尝试使用 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 服务器具有最少的可用配置,对系统资源几乎没有额外影响。

适用于 Rpi 的 Ubuntu 20.04 LTS

关于 Ubuntu Core

MagPi:构建 RasPi SAMBA 服务器

Matthias Kerstner:在 Raspberry Pi 3 上使用 Samba 4 设置 Active Directory 域控制器

手动安装 BIND

答案2

我要跳过这个,因为编译、安装和维护特定的软件/内核/模块是开源和实际计算的基石。更换发行版就像因为将果汁洒在地毯上而拆掉房子并重建。如果你需要有人喂食。坚持使用付费选项,这样晚上你就可以入睡,而不会让那些可怕的需要知道你实际上在做什么的怪物打扰你。

如果你需要比 repo 维护者更新的版本,那就这么做吧。这将让你摆脱许多废话和政治垃圾。

相关内容