[samba] samba AD DC + bind + DDNS = NOTAUTH

Alex Moskalenko mav на elserv.msk.su
Чт Апр 4 12:27:10 MSK 2019


Здравствуйте.

Пытаюсь настроить обновления DNS с помощью nsupdate на контроллере AD. 
Видимо, я что-то делаю неправильно/невнимательно, но не проходят у меня 
динамические обновления с ошибкой NOAUTH. Все варианты с wiki.samba.org 
по настройке уже перепробовал - ситуация не меняется. В системе ошибок 
тоже не вижу...

Подскажите пожалуйста, что я забыл/сделал не так?


Сейчас ситуация выглядит следующим образом.

Сизиф, samba-4.10.0, bind-9.11.6. Домен AD (созданный с помощью 
classicupgrade). Все файлы созданы как описано на вики, права 
правильные. Необходимые правки в файлы конфигурации bind внесены. bind 
из chroot вынесен. Зоны из AD загружаются, хосты, добавленные через 
samba-tool dns add и оснастку mmc DNS видны. kinit/klist отрабатывают 
штатно. В логах ничего подозрительного не наблюдается.

Проблема: запуск samba_dnsupdate --verbose --all-names не может обновить 
записи в DNS с ошибкой NOTAUTH. В логах при этом появляются сообщения 
вида:
2019-04-04T11:21:17.993406+03:00 dc0 named[14068]: client 
@0x7f01141236c0 192.168.0.11#35595/key DC0\$\@AD.LOCAL: update failed: 
not authoritative for update zone (NOTAUTH)
2019-04-04T11:21:18.017841+03:00 dc0 named[14068]: client 
@0x7f0104031eb0 192.168.0.11#48267/key DC0\$\@AD.LOCAL: update failed: 
not authoritative for update zone (NOTAUTH)

Сообщения от samba_dnsupdate --verbose --all-names
...
29 DNS updates and 0 DNS deletes needed
Successfully obtained Kerberos ticket to DNS/dc0.ad.local as DC0$
update(nsupdate): A dc0.ad.local 192.168.0.11
Calling nsupdate for A dc0.ad.local 192.168.0.11 (add)
Successfully obtained Kerberos ticket to DNS/dc0.ad.local as DC0$
Outgoing update query:
;; ->>HEADER<<- opcode: UPDATE, status: NOERROR, id:      0
;; flags:; ZONE: 0, PREREQ: 0, UPDATE: 0, ADDITIONAL: 0
;; UPDATE SECTION:
dc0.ad.local. 900 IN	A	192.168.0.11

update failed: NOTAUTH
Failed nsupdate: 2
update(nsupdate): NS ad.local dc0.ad.local
Calling nsupdate for NS ad.local dc0.ad.local (add)
Successfully obtained Kerberos ticket to DNS/dc0.ad.local as DC0$
Outgoing update query:
;; ->>HEADER<<- opcode: UPDATE, status: NOERROR, id:      0
;; flags:; ZONE: 0, PREREQ: 0, UPDATE: 0, ADDITIONAL: 0
;; UPDATE SECTION:
ad.local. 900	IN	NS	dc0.ad.local.

update failed: NOTAUTH
Failed nsupdate: 2
update(nsupdate): NS _msdcs.ad.local dc0.ad.local
Calling nsupdate for NS _msdcs.ad.local dc0.ad.local (add)
Successfully obtained Kerberos ticket to DNS/dc0.ad.local as DC0$
Outgoing update query:
;; ->>HEADER<<- opcode: UPDATE, status: NOERROR, id:      0
;; flags:; ZONE: 0, PREREQ: 0, UPDATE: 0, ADDITIONAL: 0
;; UPDATE SECTION:
_msdcs.ad.local. 900 IN	NS	dc0.local.

update failed: NOTAUTH
Failed nsupdate: 2
update(nsupdate): A ad.local 192.168.0.11
Calling nsupdate for A ad.local 192.168.0.11 (add)
Successfully obtained Kerberos ticket to DNS/dc0.ad.local as DC0$
Outgoing update query:
;; ->>HEADER<<- opcode: UPDATE, status: NOERROR, id:      0
;; flags:; ZONE: 0, PREREQ: 0, UPDATE: 0, ADDITIONAL: 0
;; UPDATE SECTION:
ad.local. 900	IN	A	192.168.0.11

update failed: NOTAUTH
Failed nsupdate: 2
...
И так далее про все 29 обновлений.


Содержимое конфигурационных файлов
named-checkconf -t / -p
controls {
	inet 127.0.0.1 port 953 allow {
		"localhost";
	} keys {
		"rndc-key";
	};
};
logging {
	category "lame-servers" {
		"null";
	};
};
options {
	directory "/etc/bind/zone";
	dump-file "/var/run/named_dump.db";
	pid-file "";
	recursing-file "/var/run/recursing";
	statistics-file "/var/run/named.stats";
	tkey-gssapi-keytab "/var/lib/samba/bind-dns/dns.keytab";
	version "unknown";
	forward first;
	forwarders {
		192.168.0.1;
	};
};
dlz "AD DNS Zone" {
	database "dlopen /usr/lib64/samba/bind9/dlz_bind9_11.so";
};
key "rndc-key" {
	algorithm "hmac-md5";
	secret "dsjhit59034jf40fpo3==";
};
zone "localhost" {
	type master;
	file "localhost";
	allow-update {
		"none";
	};
};
zone "localdomain" {
	type master;
	file "localdomain";
	allow-update {
		"none";
	};
};
zone "127.in-addr.arpa" {
	type master;
	file "127.in-addr.arpa";
	allow-update {
		"none";
	};
};
zone "0.in-addr.arpa" {
	type master;
	file "empty";
	allow-update {
		"none";
	};
};
zone "255.in-addr.arpa" {
	type master;
	file "empty";
	allow-update {
		"none";
	};
};
testparm
[global]
	passdb backend = samba_dsdb
	realm = AD.LOCAL
	server role = active directory domain controller
	server services = s3fs, rpc, nbt, wrepl, ldap, cldap, kdc, drepl, 
winbindd, ntp_signd, kcc, dnsupdate
	workgroup = DOMAIN
	rpc_server:tcpip = no
	rpc_daemon:spoolssd = embedded
	rpc_server:spoolss = embedded
	rpc_server:winreg = embedded
	rpc_server:ntsvcs = embedded
	rpc_server:eventlog = embedded
	rpc_server:srvsvc = embedded
	rpc_server:svcctl = embedded
	rpc_server:default = external
	winbindd:use external pipes = true
	idmap_ldb:use rfc2307 = yes
	idmap config * : backend = tdb
	map archive = No
	vfs objects = dfs_samba4 acl_xattr


[sysvol]
	path = /var/lib/samba/sysvol
	read only = No


[netlogon]
	path = /var/lib/samba/sysvol/ad.local/scripts
	read only = No

cat /etc/krb5.conf
includedir /etc/krb5.conf.d/

[logging]
# default = FILE:/var/log/krb5libs.log
# kdc = FILE:/var/log/krb5kdc.log
# admin_server = FILE:/var/log/kadmind.log

[libdefaults]
         default_realm = AD.LOCAL
         dns_lookup_realm = false
         dns_lookup_kdc = true

[realms]
# EXAMPLE.COM = {
#  default_domain = example.com
# }


Файлы/каталоги
ls -l /var/lib/samba/bind-dns/
drwxrwx--- 3 root named 4096 апр  4 11:12 dns
-rw-r----- 2 root named  912 апр  2 17:59 dns.keytab
-rw-r--r-- 1 root root   808 апр  4 11:25 named.conf
-r--r--r-- 1 root root   258 апр  3 16:05 named.conf.update
-rw-r--r-- 1 root root  2092 апр  4 11:12 named.txt

klist -k dns.keytab
Keytab name: FILE:dns.keytab
KVNO Principal
---- 
--------------------------------------------------------------------------
    1 DNS/dc0.ad.local на AD.LOCAL
    1 dns-dc0 на AD.LOCAL
    1 DNS/dc0.ad.local на AD.LOCAL
    1 dns-dc0 на AD.LOCAL
    1 DNS/dc0.ad.local на AD.LOCAL
    1 dns-dc0 на AD.LOCAL
    1 DNS/dc0.ad.local на AD.LOCAL
    1 dns-dc0 на AD.LOCAL
    1 DNS/dc0.ad.local на AD.LOCAL
    1 dns-dc0 на AD.LOCAL



-- 
WBR, Alex Moskalenko


Подробная информация о списке рассылки Samba