我添加了一个 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