Product SiteDocumentation Site

Глава 6. Контроллер домена на чтение (RODC)

6.1. Установка и настройка RODC
6.2. Политики репликации и кеширования паролей на RODC
6.3. Проверка репликации пароля пользователя на сервере RODC
При присоединении к домену для контроллера может быть выбрана роль RODC (read-only domain controller).
Основная цель контроллера домена, доступного только на чтение, — возможность безопасной установки собственного контроллера домена в удаленных филиалах, в которых сложно обеспечить физическую защиту сервера. Контроллер домена RODC содержит копию базы Альт Домен, доступную только на чтение. Это означает, что никто, даже при получении физического доступа к такому контроллеру домена, не сможет изменить данные в Альт Домен (в том числе сбросить пароль администратора домена).
Основные отличия RODC от обычных контроллеров домена, доступных для записи (RWDC):
  • RODC хранит копию базы Альт Домен, доступную только для чтения. Клиенты не могут вносить изменения в базу такого контроллера домена;
  • RODC не реплицирует данные Альт Домен на другие контроллеры домена (RWDC) (используется односторонняя репликация);
  • контроллер RODC хранит полную копию базы Альт Домен, за исключением хешей паролей объектов Альт Домен и других атрибутов, содержащих чувствительную информацию;
  • при получении контроллером RODC запроса на аутентификацию от пользователя, он перенаправляет этот запрос на ближайший RWDC контроллер;
  • контроллер RODC может кешировать учетные данные некоторых пользователей (это ускоряет аутентификацию и позволяет пользователям авторизоваться на контроллере домена, даже при отсутствии связи с RWDC);
  • DNS служба на RODС работает только на чтение.
Требования, которые должны быть выполнены для разворачивания RODС:
  • на сервере должен быть назначен статический IP-адрес;
  • уровень леса и домена должен соответствовать 2008R2. Это можно проверить, выполнив следующую команду на контроллере домена:
    # samba-tool domain level show
    Domain and forest function level for domain 'DC=test,DC=alt'
    
    Forest function level: (Windows) 2008 R2
    Domain function level: (Windows) 2008 R2
    Lowest function level of a DC: (Windows) 2008 R2
    
  • в качестве DNS сервера должен быть указан ближайший RWDC контроллер.

6.1. Установка и настройка RODC

Таблица 6.1. Параметры контроллеров домена

IP-адрес
Полное доменное имя (FQDN)
Существующий RWDC
192.168.0.132
dc1.test.alt
Добавляемый RODC
192.168.0.134
rodc.test.alt
Для сервера, на котором будет разворачиваться контроллер домена, должен быть назначен статический IP-адрес и установлено правильное имя узла.
Установить имя узла можно, выполнив команду:
# hostnamectl set-hostname rodc.test.alt

Примечание

После изменения имени компьютера могут перестать запускаться приложения. Для решения этой проблемы необходимо перезагрузить систему.
Все дальнейшие действия выполняются на узле rodc.test.alt (192.168.0.134), если не указано иное.
Этапы настройки сервера и присоединения к домену в роли RODC:
  1. Установить пакет task-samba-dc, который установит все необходимое:
    # apt-get install task-samba-dc
    
  2. На RODC в /etc/resolv.conf должен быть добавлен первый DC как nameserver:
    # echo "name_servers=192.168.0.132" >> /etc/resolvconf.conf
    # echo "search_domains=test.alt" >> /etc/resolvconf.conf
    # resolvconf -u
    # cat /etc/resolv.conf
    search test.alt
    nameserver 192.168.0.132
    nameserver 8.8.8.8
    
  3. Остановить конфликтующие службы krb5kdc и slapd, а также bind:
    # for service in smb nmb krb5kdc slapd bind; do systemctl disable $service; systemctl stop $service; done
    
  4. Очистить базы и конфигурацию Samba (домен, если он создавался до этого, будет удалён):
    # rm -f /etc/samba/smb.conf
    # rm -rf /var/lib/samba
    # rm -rf /var/cache/samba
    # mkdir -p /var/lib/samba/sysvol
    
  5. На существующем контроллере домена завести IP-адрес для RODC (команда выполняется на узле dc1.test.alt):
    # samba-tool dns add 192.168.0.132 test.alt RODC A 192.168.0.134 -Uadministrator
    Password for [TEST\administrator]:
    Record added successfully
    

    Предупреждение

    Указание аутентифицирующей информации (имени пользователя и пароля) обязательно!

    Примечание

    Синтаксис команды samba-tool dns add см. в разделе Администрирование DNS
  6. На RODC установить следующие параметры в файле конфигурации клиента Kerberos (/etc/krb5.conf):
    [libdefaults]
    default_realm = TEST.ALT
    dns_lookup_realm = false
    dns_lookup_kdc = true
    
    [realms]
    TEST.ALT = {
    kdc = rodc.test.alt
    kdc = dc1.test.alt
    default_domain = TEST.ALT
    }
    
  7. Для проверки настройки запросить билет Kerberos для администратора домена:
    # kinit administrator@TEST.ALT
    Password for administrator@TEST.ALT:
    

    Предупреждение

    Имя домена должно быть указано в верхнем регистре.
  8. Убедиться, что билет получен:
    # klist
    Ticket cache: KEYRING:persistent:0:0
    Default principal: administrator@TEST.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
    
  9. Ввести данный DC в домен test.alt в качестве контроллера домена, доступного только для чтения (RODC):
    # samba-tool domain join test.alt RODC -Uadministrator@TEST.ALT \
    --realm=test.alt --option="dns forwarder=8.8.8.8"
    
    Если всё нормально, в конце будет выведена информация о присоединении к домену:
    Joined domain TEST (SID S-1-5-21-578923263-1107570656-1287136478) as an RODC
    

    Примечание

    При использовании SAMBA_INTERNAL, необходимо указать значение dns forwarder, чтобы на новом сервере была настроена пересылка запросов. Форвардером может быть как вышестоящий DNS-сервер организации, так и публичные от google или yandex, например:
    --option="dns forwarder=8.8.8.8"
    Если первый контроллер домена создавался с ключом --rfc2307, то и для текущего необходимо это учесть, указав параметр:
    --option='idmap_ldb:use rfc2307 = yes'
  10. Сделать службу samba запускаемой по умолчанию и запустить её:
    # systemctl enable --now samba
    

Примечание

Для получения дополнительной информации о параметрах команды samba-tool domain join можно воспользоваться командой:
# samba-tool domain join --help