使用 nsupdate 动态更新 RPZ

使用 nsupdate 动态更新 RPZ

我添加了一个 RPZ 区域来覆盖我的 BIND9 服务器中的某些主机,并将以下行添加到 named.conf:

...

    response-policy { zone "rpz"; };

...

zone "rpz" {
    type master;
    file "/etc/bind/rpz.hosts";
    allow-update { 172.33.1.7; };
};


rpz.hosts 文件:

$TTL 38400  ; 10 hours 40 minutes
@       IN SOA  localhost. root.localhost (
                1515764950 ; serial
                10800      ; refresh (3 hours)
                3600       ; retry (1 hour)
                604800     ; expire (1 week)
                38400      ; minimum (10 hours 40 minutes)
                )
            NS  172.33.1.2.

当我尝试使用 nsupdate 更新它时,使用任意主机名(如 somehost.dyndns.dappnode.io),我收到 NOTZONE 错误。更新机制需要区域下的某个主机rpz.

我该如何解决这个问题?有人设法动态配置了 RPZ 区域吗?

谢谢

答案1

诀窍在于域名应以 rpz 区域名称结尾。下面是一个完整的示例,其中使用 DNSSEC 密钥动态更新 rpz 区域。

named.conf

options {
    // some other options...

    response-policy {
        zone "dynamic-rpz";
    };
};

include "/var/named/rpz.key";

zone "dynamic-rpz" IN {
    type master;
    file "dynamic-rpz.db";
    update-policy {
        grant keyname. name foobar.example.com.dynamic-rpz A;
    };
};

并且在dynamic-rpz.db

$TTL 600

@ IN SOA localhost. root.localhost. (
      1  ; Serial
 604800  ; Refresh
  86400  ; Retry
2419200  ; Expire
    600  ; Negative Cache TTL
)

                    IN NS    localhost.
foobar.example.com      A    127.0.0.1

现在,该域名可以更新为nsupdate

nsupdate -k rpz.key
> server 192.168.xx.xx
> update add foobar.example.com.dynamic-rpz 600 A aaa.bbb.ccc.ddd
> send

参考:https://bind9-users.isc.narkive.com/wXStNX3l/using-nsupdate-to-insert-delete-record-in-the-rpz-zone-file

相关内容