Product SiteDocumentation Site

5.2. Настройка DNS

Перед настройкой доверия необходимо убедиться, что серверы видят друг друга и правильно разрешают доменные имена.

Примечание

Пересылка — это механизм, который позволяет серверу направлять запросы на разрешение доменных имён на другие DNS-серверы, если он сам не может их обработать.
Пересылка настраивается в конфигурации DNS-сервера в файле /etc/bind/options.conf:
options {
    forwarders { 8.8.8.8; };
};
При использовании доверительных отношений, системы в одном домене должны уметь находить ресурсы и аутентифицировать пользователей из другого домена. Для этого им нужно корректно определять IP-адреса ресурсов другого домена. Однако, если один DNS-сервер не знает, как разрешить запросы для другого домена, запросы просто не смогут обрабатываться. Решением является условная пересылка, которая перенаправляет запросы для второго домена на соответствующий DNS-сервер.
Условная пересылка (conditional forwarding) — метод, который позволяет направлять запросы на разные серверы в зависимости от домена.
Условная пересылка указывается в файле /etc/bind/options.conf:
zone "trust.dom" in {
    type forward;
    forwarders { 10.64.224.10; };
};

5.2.1. Два домена Samba

Таблица 5.2. Исходные данные

Имя домена
Контроллер домена
IP-адрес
ОС контроллера домена
Версия Samba
Домен Linux
TEST.ALT
dc1.test.alt
192.168.0.122
ALT Server 10.2
4.19.6
Домен Linux
EXAMPLE.ALT
s1.example.alt
192.168.0.172
ALT Server 10.2
4.19.6
Выделенный DNS-сервер
192.168.0.150
ALT Server 10.2

5.2.1.1. Настройка переадресации DNS на DC с BIND9_DLZ

Если используется DNS бэкенд BIND9_DLZ, необходимо добавить информацию о зоне в конец файла /etc/bind/options.conf:
  • на контроллере домена dc1.test.alt добавить строки:
    zone "example.alt" {
          type forward;
          forwarders { 192.168.0.172; };
    };
    
  • на контроллере домена s1.example.alt:
    zone "test.alt" {
          type forward;
          forwarders { 192.168.0.122; };
    };
    
Перезапустить службу DNS:
# systemctl restart bind.service

Примечание

Если удалённый DNS-сервер не использует DNSSEC и включить проверку DNSSEC на удаленном DNS-сервере нельзя, можно отключить проверку DNSSEC на сервере AD. Для этого необходимо в файле /etc/bind/options.conf в секцию options добавить параметр:
dnssec-validation no;
И перезапустить службу DNS:
# systemctl restart bind.service

5.2.1.2. Настройка переадресации DNS на DC с SAMBA_INTERNAL

Если используется DC с DNS бэкенд SAMBA_INTERNAL, самый простой способ заставить работать разрешение имен — настроить DNS-прокси между двумя доменами. DNS-прокси будет перенаправлять запрос между доменами и внешним DNS-серверами. В примере, в качестве DNS-прокси используется отдельный сервер (IP-адрес 192.168.0.150) с настроенным bind9.
На каждом контроллере домена:
  1. Указать DNS-прокси, как сервер пересылки в файле /etc/samba/smb.conf (в параметре dns forwarder). Например:
    dns forwarder = 192.168.0.150 8.8.8.8
    
  2. Перезапустить службу samba:
    # systemctl restart samba
    
На сервере bind9 отредактировать файл /etc/bind/options.conf:
  • так как SAMBA_INTERNAL не имеет функционала расширения безопасности DNS, необходимо отключить проверку DNSSEC, для этого в секцию options добавить параметр:
    dnssec-validation no;
    
  • в конец файла /etc/bind/options.conf (или /etc/bind/ddns.conf) добавить информацию о зонах:
    zone "example.alt" {
          type forward;
          forwarders { 192.168.0.172; };
    };
    
    zone "test.alt" {
          type forward;
          forwarders { 192.168.0.122; };
    };
    
И перезапустить службу DNS:
# systemctl restart bind.service

5.2.1.3. Проверка конфигурации DNS

Для проверки настройки следует убедиться, что на обоих контроллерах домена разрешаются SRV-записи:
  • на контроллере домена dc1.test.alt:
    # host -t srv _kerberos._tcp.example.alt
    _kerberos._tcp.example.alt has SRV record 0 100 88 s1.example.alt.
    # host -t srv _kerberos._tcp.test.alt
    _kerberos._tcp.test.alt has SRV record 0 100 88 dc1.test.alt.
    
  • на контроллере домена s1.example.alt:
    # host -t srv _kerberos._tcp.example.alt
    _kerberos._tcp.example.alt has SRV record 0 100 88 s1.example.alt.
    # host -t srv _kerberos._tcp.test.alt
    _kerberos._tcp.test.alt has SRV record 0 100 88 dc1.test.alt.
    
Проверить возможность получения билета Kerberos:
  • на контроллере домена dc1.test.alt:
    # kinit administrator@EXAMPLE.ALT
    Password for administrator@EXAMPLE.ALT:
    # klist
    Ticket cache: KEYRING:persistent:0:krb_ccache_eFyZ8Tr
    Default principal: administrator@EXAMPLE.ALT
    
    Valid starting       Expires              Service principal
    27.03.2024 14:14:36  28.03.2024 00:14:36  krbtgt/TEST.ALT@TEST.ALT
    	renew until 28.03.2024 14:14:32
    
  • на контроллере домена s1.example.alt:
    # kinit administrator@TEST.ALT
    Password for administrator@TEST.ALT:
    # klist
    Ticket cache: FILE:/tmp/krb5cc_0
    Default principal: administrator@TEST.ALT
    
    Valid starting       Expires              Service principal
    27.03.2024 15:17:50  28.03.2024 01:17:50  krbtgt/TEST.ALT@TEST.ALT
    	renew until 28.03.2024 15:17:46
    

Важно

realm должен быть записан заглавными буквами.