nsupdate отвечая на SERVFAIL
Я пытался настроить домен, который можно обновить. я использую bind9, я использовал
ddns-confgen -a hmac-sha512 -k <keyname>
чтобы сгенерировать мой ключ, я добавил ключ в /etc/bind/keys.local
key "<keyname>" {
algorithm hmac-sha512;
secret "<secret>";
};
мой файл named.conf выглядит так:
include "/etc/bind/keys.local";
include "/etc/bind/named.conf.options";
include "/etc/bind/named.conf.local";
include "/etc/bind/named.conf.default-zones";
мой файл named.conf.local выглядит так:
zone "<subdomain_name>" {
type master;
update-policy {
grant <keyname> zonesub ANY;
};
file "<zone_file>"; # zone file path
};
zone "<reverse_zone>.in-addr.arpa" {
type master;
update-policy {
grant <keyname> zonesub ANY;
};
file "<reverse_zone_file>";
};
я что-то упускаю очевидное? потому что, когда я делаю:
sudo nsupdate -k <keyfile>
server <dns_server>
zone <subdomain_name>
update add newhost.<subdomain_name> 86400 A <newhost_ip>
send
я получаю ответ SERVFAIL...
dig <dns_server>
а также
ping <dns_server>
работать правильно, я просто не могу заставить DDNS работать. Я пробовал ответы в других темах, как этот, все в конечном итоге дает мне SERVFAIL независимо от того, что я пытаюсь. Спасибо заранее за любые предложения.
edit1: это соответствующие журналы на стороне сервера, когда я пытаюсь установить nsupdate:
signer "<keyname>" approved
apparmor="DENIED" operation="mknod" profile="/usr/sbin/named" name="/etc/bind/zones/<zone_file>" pid=18799 comm="named" requested_mask="c" denied_mask="c" fsuid=112 ouid=112
client <client_ip>#62287/key <keyname>: signer "<keyname>" approved
client 172.30.2.253#62287/key <keyname>: updating zone '<zonename>/IN': adding an RR at 'host3.<zonename>' A <new_host_ip>
/etc/bind/zones/<zone_file>: create: permission denied
client <client_ip>#62287/key <keyname>: updating zone 'aci.riviera.local/IN': error: journal open failed: unexpected error
edit2:
Оказывается, у группы связывания не было разрешений на запись в /etc/bind ...
sudo chown -R bind:bind /etc/bind
исправил проблему
1 ответ
Спасибо за то, что вы ведете себя как системный администратор и публикуете журналы вашего сервера, а не пытаетесь отлаживать проблемы с сервером только с помощью клиентской утилиты.
apparmor = "DENIED" operation = "mknod" profile = "/ usr / sbin / named" name = "/etc/bind/zone /" pid=18799 comm="named" required_mask="c" denied_mask="c" fsuid=112 ouid=112
Это, кажется, указывает на то, что Apparmor блокирует ваш сервер имен от создания файла в /etc/bind/zones
,
Серверу имен связывания необходимо место для постоянного хранения (в файлах) динамических обновлений, и он делает это путем создания .jnl
файлы журналов в каталоге, где хранятся файлы вашей зоны. Apparmor блокирует эту операцию, потому что, как правило, это нарушение безопасности, когда демоны и сервисы изменяют свою собственную конфигурацию времени выполнения.
Возможные решения:
- переместите файлы зон в каталог с правильной защитой AppArmor.
На моей Ubuntu 16.04/etc/apparmor.d/usr.sbin.named
назначает в/var/lib/bind/
в качестве обычной альтернативы/etc/bind
для динамически обновляемых файлов зон (и журналов). - Переопределите стандартные защиты AppArmor.
Создайте локальное переопределение и разрешите динамические обновления в /etc/bind/zone:
# /etc/apparmor.d/local/usr.sbin.named
/etc/bind/zones/** rw,