Установка BIND для Samba AD-DC

BIND (Berkeley Internet Name Domain):
это открытая и наиболее распространенная реализация DNS-сервера, отвечающая за преобразование доменных имен в IP-адреса и наоборот.

Разворачивать Bind будем на базе Ubuntu 24.04

После установки и предварительных настроек Ubuntu 24.04 перейдем к установке и настройке Bind.

sudo apt install -y bind9 bind9utils
...
info: Selecting GID from range 100 to 999 ...
info: Adding group `bind' (GID 110) ...
info: Selecting UID from range 100 to 999 ...
info: Adding system user `bind' (UID 110) ...
info: Adding new user `bind' (UID 110) with group `bind' ...
info: Not creating home directory `/var/cache/bind'.
wrote key file "/etc/bind/rndc.key"
named-resolvconf.service is a disabled or a static unit, not starting it.
Created symlink /etc/systemd/system/bind9.service → /usr/lib/systemd/system/named.service.
Created symlink /etc/systemd/system/multi-user.target.wants/named.service → /usr/lib/systemd/system/named.service.
...

Ошибок нет, двигаемся дальше

Файлы конфигурации BIND

/etc/default/bind9
/etc/bind/named.conf
/etc/bind/named.conf.options
/etc/bind/named.conf.local
/etc/bind/named.conf.default-zones

Если будем использовать только IPv4, то правим файл /etc/default/named

sudo nano /etc/default/named
#
# run resolvconf?
RESOLVCONF=no

# startup options for the server
OPTIONS="-u bind -4"

Правим файл /etc/bind/named.conf.options и меняем его содержимое на следующее:

sudo nano /etc/bind/named.conf.options
// Managing acls
acl internals { 127.0.0.0/8; 10.0.0.0/24; };

options {
	directory "/var/cache/bind";
	version "Go Away 0.0.7";
	notify no;
	empty-zones-enable no;
	auth-nxdomain yes;
	forwarders {
		10.0.0.1; // top level DNS like a router etc.
		// 8.8.8.8;
		// 8.8.4.4;
	};
	allow-transfer { none; };

	dnssec-validation no;
	// Removed with BIND 9.18:
	// dnssec-enable no;
	
	// If you only use IPv4. 
	listen-on-v6 { none; };
	// listen on these ipnumbers. 
	listen-on port 53 {
		10.0.0.254; // IP of our DC and BIND Server
		127.0.0.1;
		::1;
	};

	// Added Per Debian buster Bind9. 
	// Due to : resolver: info: resolver priming query complete messages in the logs. 
	// See: https://gitlab.isc.org/isc-projects/bind9/commit/4a827494618e776a78b413d863bc23badd14ea42
	minimal-responses yes;

	//  Add any subnets or hosts you want to allow to use this DNS server
	allow-query { "internals";  };
	allow-query-cache { "internals"; };

	//  Add any subnets or hosts you want to allow to use recursive queries
	recursion yes;
	allow-recursion {  "internals"; };

	// https://wiki.samba.org/index.php/Dns-backend_bind
	// DNS dynamic updates via Kerberos (optional, but recommended)
	// ONE of the following lines should be enabled AFTER you provision or join a DC with bind9_dlz 
	// or AFTER upgrading your dns from internal to bind9_dlz 
	// Before Samba 4.9.0
	// tkey-gssapi-keytab "/var/lib/samba/private/dns.keytab";
	// From Samba 4.9.0 ( You will need to run samba_upgradedns if upgrading your Samba version. ) 
	// tkey-gssapi-keytab "/var/lib/samba/bind-dns/dns.keytab";
};

строку tkey-gssapi-keytab «/var/lib/samba/bind-dns/dns.keytab»; раскомментируем ПОСЛЕ объявления домена

В файле /etc/bind/named.conf.local, просто добавляем одну строку со ссылкой на файл предоставляемым SAMBA, т.к. SAMBA еще не установлена временно закоментируем:

sudo nano /etc/bind/named.conf.local
//
// Do any local configuration here
//
// include "/var/lib/samba/bind-dns/named.conf";

Файл /etc/bind/named.conf.default-zones не требует правки

DNS сервер может только перезапускаться (restart).

sudo nano /usr/lib/systemd/system/named.service
# ExecReload=/usr/sbin/rndc reload
ExecReload=/usr/sbin/rndc restart

Перезагружаем конфигурацию менеджера systemd

sudo systemctl daemon-reload

Запускаем DNS сервер

sudo systemctl start bind9
sudo systemctl status bind9
...
named.service - BIND Domain Name Server
     Loaded: loaded (/usr/lib/systemd/system/named.service; enabled; preset: enabled)
     Active: active (running) since Thu 2024-08-22 06:58:15 UTC; 3min 16s ago
...

Сервер запустился.

Проверяем работу

host -t A localhost 127.0.0.1
Using domain server:
Name: 127.0.0.1
Address: 127.0.0.1#53
Aliases:

localhost has address 127.0.0.1

Тест обратной зоны

host -t PTR 127.0.0.1 127.0.0.1
Using domain server:
Name: 127.0.0.1
Address: 127.0.0.1#53
Aliases:

1.0.0.127.in-addr.arpa domain name pointer localhost.

Переходим к установке Samba