Product SiteDocumentation Site

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

При присоединении к домену для контроллера может быть выбрана роль RODC (read-only domain controller).
Основная цель контроллера домена, доступного только на чтение, — возможность безопасной установки собственного контролера домена в удаленных филиалах, в которых сложно обеспечить физическую защиту сервера. Контроллер домена RODC содержит копию базы AD, доступную только на чтение. Это означает, что никто, даже при получении физического доступа к такому контроллеру домена, не сможет изменить данные в AD (в том числе сбросить пароль администратора домена).
Основные отличия RODC от обычных контроллеров домена, доступных для записи (RWDC):
  • RODC хранит копию базы AD, доступную только для чтения. Клиенты не могут вносить изменения в базу такого контролера домена;
  • RODC не реплицирует данные AD на другие контроллеры домена (RWDC) (используется односторонняя репликация);
  • контроллер RODC хранит полную копию базы AD, за исключением хешей паролей объектов AD и других атрибутов, содержащих чувствительную информацию;
  • при получении контроллером 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 контроллер.

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

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

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

Примечание

После изменения имени компьютера могут перестать запускаться приложения. Для решения этой проблемы необходимо перезагрузить систему.
На добавляемом RODC в /etc/resolv.conf обязательно должен быть добавлен первый DC как nameserver:
# echo "name_servers=192.168.0.122" >> /etc/resolvconf.conf
# echo "search_domains=test.alt" >> /etc/resolvconf.conf
# resolvconf -u
# cat /etc/resolv.conf
search test.alt
nameserver 192.168.0.122
nameserver 8.8.8.8
Все дальнейшие действия выполняются на узле rodc.test.alt (192.168.0.124), если не указано иное.
Этапы настройки сервера и присоединения к домену в роли RODC:
  1. Установить пакет task-samba-dc, который установит все необходимое:
    # apt-get install task-samba-dc
    
  2. На RODC в /etc/resolv.conf должен быть добавлен первый DC как nameserver:
    # echo "name_servers=192.168.0.122" >> /etc/resolvconf.conf
    # echo "search_domains=test.alt" >> /etc/resolvconf.conf
    # resolvconf -u
    # cat /etc/resolv.conf
    search test.alt
    nameserver 192.168.0.122
    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.122 test.alt RODC A 192.168.0.124 -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