Удаление контроллера домена

В некоторых ситуациях (изменение архитектуры сети, плановый вывод сервера из эксплуатации, выход сервера из строя и т. д.) возникает необходимость в удалении контроллера домена путем понижения его роли до рядового сервера. При работе с контроллерами домена Эллес для этой цели используется подкоманда samba-tool domain demote (операция demote).

Некорректное выполнение операции demote может привести к нестабильной работе домена, включая следующие проблемы:

  • нестабильная работа процесса репликации;

  • замедление работы остальных контроллеров домена из-за ожидания ответов от некорректно смещенного контроллера и неудачных попыток репликации;

  • проблемы с входом в домен либо увеличение времени входа на участниках домена.

Поэтому после ее проведения обязательно должны быть проведены все необходимые проверки.

Сценарии удаления

Возможны следующие сценарии использования операции demote:

  • понижение роли работающего контроллера домена;

  • удаление неработоспособного контроллера домена, доступ к которому отсутствует.

Удаление роли контроллера домена в удаленном режиме должно выполняться только в том случае, если сервер не подключен к домену (например, по причине выхода из строя аппаратной части) и восстанавливать подключение не планируется.

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

Понижение роли работающего контроллера домена

Для планового удаления одного из работающих контроллеров домена (RWDC или RODC):

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

  2. Убедитесь, что на сервере работает сервис inno-samba:

    systemctl status inno-samba.service
  3. Убедитесь, что сервер входит в список контроллеров домена, любым из доступных способов. Например:

    • с помощью утилиты samba-tool:

      samba-tool computer list --base-dn "OU=Domain Controllers"
    • с помощью утилиты ldapsearch:

      ldapsearch -H ldap://dc-name.domain.name -b 'OU=Domain Controllers,DC=domain,DC=name' '(objectClass=computer)'

      Если утилита отсутствует, предварительно установите ее:

      sudo apt install ldap-utils
    • на участнике домена под управление ОС Windows в списке контроллеров в оснастке Remote Server Administration Tools (RSAT):

      • запустите RSAT;

      • в списке контейнеров в домене в панели слева нажмите Domain Controllers.

  4. Проверьте наличие у контроллера ролей FSMO:

    samba-tool fsmo show

    При необходимости передайте роли другим контроллерам домена (см. подробнее в разделе «Администрирование ролей FSMO»):

    • выполните вход на целевой контроллер домена под учетной записью с необходимыми для передачи роли правами;

    • выполните подкоманду передачи роли, указав ее имя с помощью ключа --role:

      samba-tool fsmo transfer --role=<role>
  5. Убедитесь, что контроллер домена не является единственным сервером глобального каталога в лесу:

    samba-tool gc list

    При необходимости включите роль сервера глобально каталога на других контроллерах в домене (см. подробнее в разделе «Администрирование роли Global Catalog»):

    • выполните вход на целевой контроллер домена под учетной записью с необходимыми для передачи роли правами;

    • выполните подкоманду включение роли глобального каталога:

      samba-tool gc enable
  6. Для проверки корректности удаления записей DNS после операции понижения получите и сохраните objectGUID контроллера домена, указав его имя хоста (DC-NAME в примере):

    ldbsearch -H /app/inno-samba/private/sam.ldb '(invocationId=*)' --cross-ncs objectguid | grep -A1 DC-NAME
  7. Выполните операцию понижения:

    samba-tool domain demote -U 'administrator@DOMAIN.NAME'

    В случае успешного завершения процесса смещения в конце лога операции будет выведено сообщение:

    Demote successful
  8. Убедитесь, что контроллер выведен из домена:

    • выполните вход на любой другой контроллер в домене под учетной записью с необходимыми правами;

    • убедитесь, что выведенный из домена контроллер отсутствует в списке работающих контроллеров:

      • с помощью утилиты samba-tool:

        samba-tool computer list --base-dn "OU=Domain Controllers"
      • с помощью утилиты ldapsearch:

        ldapsearch -H ldap://dc-name.domain.name -b 'OU=Domain Controllers,DC=domain,DC=name' '(objectClass=computer)'

        Если утилита отсутствует, предварительно установите ее:

        sudo apt install ldap-utils
      • на участнике домена под управление ОС Windows в списке контроллеров в оснастке Remote Server Administration Tools (RSAT):

        • запустите RSAT;

        • в списке контейнеров в домене в панели слева нажмите Domain Controllers;

    • убедитесь, что в логах команд репликации отсутствуют записи, относящиеся к выведенному из домена контроллеру; например:

      samba-tool drs kcc -U 'administrator@DOMAIN.NAME'
      samba-tool drs showrepl -U 'administrator@DOMAIN.NAME'
    • убедитесь, что для выведенного контроллера отсутствуют записи DNS:

      samba-tool dns query 127.0.0.1 _msdcs.domain.name @ ALL -U 'administrator@DOMAIN.NAME'
  9. Если контроллер домена также выполнял функции DNS-сервера для определенных зон DNS, убедитесь, что участники домена и другие контроллеры домена больше не используют его для разрешения зон DNS.

После понижения сервер остается в домене в роли рядового участника.

Чтобы удалить его из домена, выполните вход на работающий контроллер домена под учетной записью с необходимыми правами:

  • убедитесь, что сервер присутствует в списке участников домена:

    samba-tool computer list
  • удалите учетную запись сервера, указав имя хоста (demoted-dc-name в примере):

    samba-tool computer delete demoted-dc-name

Удаление недоступного контроллера домена

Для удаления из домена контроллера (RWDC или RODC), который по какой-либо причине оказался недоступен и не может быть снова подключен к сети:

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

  2. Убедитесь, что удаляемый сервер входит в список контроллеров домена, любым из доступных способов. Например:

    • с помощью утилиты samba-tool:

      samba-tool computer list --base-dn "OU=Domain Controllers"
    • с помощью утилиты ldapsearch:

      ldapsearch -H ldap://dc-name.domain.name -b 'OU=Domain Controllers,DC=domain,DC=name' '(objectClass=computer)'

      Если утилита отсутствует, предварительно установите ее:

      sudo apt install ldap-utils
    • на участнике домена под управление ОС Windows в списке контроллеров в оснастке Remote Server Administration Tools (RSAT):

      • запустите RSAT;

      • в списке контейнеров в домене в панели слева нажмите Domain Controllers.

  3. Проверьте наличие у контроллера FSMO-ролей:

    samba-tool fsmo show

    При необходимости выполните захват ролей, передав их другим контроллерам домена (см. подробнее в разделе «Администрирование ролей FSMO»):

    • выполните вход на целевой контроллер домена под учетной записью с необходимыми для передачи роли правами;

    • выполните подкоманду захвата роли, указав ее имя с помощью ключа --role:

      samba-tool fsmo seize --role=<role>
  4. Убедитесь, что удаляемый контроллер домена не является единственным сервером глобального каталога в лесу:

    samba-tool gc list

    При необходимости включите роль сервера глобально каталога на других контроллерах в домене (см. подробнее в разделе «Администрирование роли Global Catalog»):

    • выполните вход на целевой контроллер домена под учетной записью с необходимыми для передачи роли правами;

    • выполните подкоманду включение роли глобального каталога:

      samba-tool gc enable
  5. Для проверки корректности удаления записей DNS после операции понижения получите и сохраните objectGUID контроллера домена, указав его имя хоста (DC-NAME в примере):

    ldbsearch -H /app/inno-samba/private/sam.ldb '(invocationId=*)' --cross-ncs objectguid | grep -A1 DC-NAME
  6. Выполните операцию удаления с указанием имени удаляемого контроллера в качестве значения параметра --remove-other-dead-server:

    samba-tool domain demote \
        -U 'administrator@DOMAIN.NAME' \
        --remove-other-dead-server=DC-NAME
  7. Убедитесь, что контроллер выведен из домена:

    • выполните вход на любой другой контроллер в домене под учетной записью с необходимыми правами;

    • убедитесь, что выведенный из домена контроллер отсутствует в списке работающих контроллеров:

      • с помощью утилиты samba-tool:

        samba-tool computer list --base-dn "OU=Domain Controllers"
      • с помощью утилиты ldapsearch:

        ldapsearch -H ldap://dc-name.domain.name -b 'OU=Domain Controllers,DC=domain,DC=name' '(objectClass=computer)'

        Если утилита отсутствует, предварительно установите ее:

        sudo apt install ldap-utils
      • на участнике домена под управление ОС Windows в списке контроллеров в оснастке Remote Server Administration Tools (RSAT):

        • запустите RSAT;

        • в списке контейнеров в домене в панели слева нажмите Domain Controllers;

    • убедитесь, что в логах команд репликации отсутствуют записи, относящиеся к выведенному из домена контроллеру; например:

      samba-tool drs kcc -U 'administrator@DOMAIN.NAME'
      samba-tool drs showrepl -U 'administrator@DOMAIN.NAME'
    • убедитесь, что для выведенного контроллера отсутствуют записи DNS:

      samba-tool dns query 127.0.0.1 _msdcs.domain.name @ ALL -U 'administrator@DOMAIN.NAME'
  8. Если контроллер домена также выполнял функции DNS-сервера для определенных зон DNS, убедитесь, что участники домена и другие контроллеры домена больше не используют его для разрешения зон DNS.

Формат вызова

Общий формат вызова:

samba-tool domain demote [options]

В процессе выполнения операции:

  • локальные изменения в базе данных работающего контроллера домена реплицируются на один из доступных контроллеров домена;

  • сервер удаляется из списка контроллеров домена и переводится в разряд рядовых участников;

  • в базе данных службы каталогов удаляются связанные с контроллером объекты, обеспечивающие его участие в процессах репликации и т. д.;

  • удаляются относящиеся к контроллеру домена записи DNS.

В случае успешного завершения операции сервер переводится в разряд рядовых участников домена.

Параметры

Параметры вызова:

  • -H URL|--URL=URL — URL сервера LDAP; может содержать указание на протокол, имя хоста и номер порта;

  • --remove-other-dead-server=REMOVE_OTHER_DEAD_SERVER — контроллер домена (имя или NTDS GUID), все ссылки на который должны быть удалены;

  • --server=SERVER — доступный для записи контроллер домена (RWDC) для фиксации изменений, связанных с понижением роли.

Примеры

Пример понижения роли текущего работающего сервера:

samba-tool domain demote -U 'administrator@DOMAIN.NAME'

Пример понижения роли текущего работающего сервера с явным указанием целевого сервера, на который должны реплицироваться локальные изменения:

samba-tool domain demote \
   -U 'administrator@DOMAIN.NAME' \
   --server=DC1

Пример удаления роли контроллера домена для недоступного сервера в удаленном режиме:

samba-tool domain demote \
    -U 'administrator@DOMAIN.NAME' \
    --remove-other-dead-server=DC2

Пример удаления роли контроллера домена для недоступного сервера в удаленном режиме с явным указанием сервера, через который должна выполняться операция удаления:

samba-tool domain demote \
    -U 'administrator@DOMAIN.NAME' \
    --remove-other-dead-server=DC2 \
    --server=DC1