Контроллер домена Ubuntu 20.04.1 – Ubuntu AD-DC — dhcp-dyndns 2020

Многие онлайн-руководства показывают, как использовать Samba и Winbind для присоединения Linux к домену Active Directory.

Нужно ли бэкапить Active Directory?

Не раз слышал от знакомых администраторов мысль, что если у тебя несколько (5, 10 и т.д.) территориально разнесенных контроллеров домена Active Directory, то бэкапать AD вообще не нужно, т.к. при нескольких DC вы уже обеспечили высокую отказоустойчивость домена. Ведь в такой схеме вероятность одновременного выхода из строя всех DC стремится к 0, а если один контроллер домена упал, то быстрее развернуть новый DC на площадке, а старый удалить с помощью ntdsutil.

Однако в своей практике я встречался с различными сценариями, когда все контроллеры домена оказались повреждёнными: в одном случае все контроллеры домена (а их было более 20 штук в разных городах) оказались зашифрованными из-за перехвата пароля домена шифровальщиком через утилиту mimikatz (для предотвращения таких схем см. статьи “Защита Windows от mimikatz” и “Защита привилегированных групп администраторов”), в другом случае домен положила репликация поврежденного файла

В общем, бэкапить AD можно и нужно. Как минимум вы должны регулярно создавать резервные копии ключевых контроллеров доменов, владельцев ролей FSMO (Flexible single-master operations). Вы можете получить список контролеров домена с ролями FSMO командой:

netdom query fsmo

Архитектура хранилища и структура Active Directory

Домены и леса

Организационные единицы (OU — Organization Unit), домены и леса являются основными элементами логической структуры AD. Лес определяет единый каталог и обозначает границу безопасности. Домены входят в состав Лесов.

Архитектура хранилища и структура Active Directory

DNS

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

СХЕМА (SCHEMA)

Архитектура хранилища и структура Active Directory

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

ХРАНИЛИЩЕ ДАННЫХ (DATA STORE)

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

Архитектура хранилища и структура Active Directory

Более подробно вы можете ознакомиться с материалами на официальном сайте.

— Контроллер домена Ubuntu – Настройка – Часть 1

5.1 — Отключаем systemd-resolved

5.1.1 — Останавливаем сервис

sudo service systemd-resolved stop

5.1.2 — Убираем из автозапуска

sudo systemctl disable

5.1.3 — Удаляем симлинк /etc/

sudo rm /etc/

5.1.4 — Открываем и изменяем конфиг

sudo nano /etc/

5.1.5 — Настраиваем адрес сервера имён как на картинке.

nameserver

Сейчас, nameserver должен быть настроен на адрес нашего текущего DNS сервера, который расположен например на роутере или ещё гдеВ search указывается имя нашего будущего доменаСохраняем изменения Ctrl+O

5.2 — Настраиваем файл /etc/hosts

Обязательно чтобы AD DC мог резолвиться по имени на свой IP адрес внутри настраиваемой сети, даже при пинге с самого AD DCОткрываем файл на редактирование

sudo nano /etc/hosts

и вносим изменения

127.0.0.1 ag-dc-1

Незабываем сохранить (Ctrl+O)

5.3 — Проверяем что в системе не работают самбовые процессы

ps ax | egrep "samba|smbd|nmbd|winbindd"

Не должно быть ни одного процесса, как на картинке:

5.4 — Инсталлируем Samba

Очень важно помнить, что контроллер домена на самбе, инициализируется раз и навсегда. Возможность изменить его название в будущем – отсутствует в принципе. Как-то назвав его однажды, с таким именем он и будет существовать до скончания веков или пока вы его не убьёте. Назвав домен , он на всегда останется с этим именем . Samba4 не поддерживает переименовывание домена. После его инициализации, для изменения названия, вы должны будете исключить из домена все машины которые успели в него ввести, удалить AD DC, с нуля всё настроить и ввести машины уже в него. Так что я настоятельно рекомендую продумать каждый шаг прежде чем начинать инициализировать домен, прочитать данную инструкцию до самого конца, продумать ньюансы, чтобы избежать ошибок в будущем.

5.4.1 — Устанавливаем samba4 и все нужные пакеты с помощью следующей строки:

sudo apt -y install samba krb5-config winbind smbclient krb5-user

5.4.2 — Дефолтная область для Керберос 5

Область по умолчанию для Kerberos v5:

5.4.3 — Сервер Kerberos для вашей области

Сервер kerberos для нашей области:

5.4. 4 — Управляющий сервер вашей области Kerberos

Управляющий сервер kerberos для нашей области:

5.4. 5 — Ожидаем окончание установки

Результаты установки Samba 4

5.4.6 — Бэкапим файл с исходными настройками Samba

sudo mv /etc/samba/ /etc/samba/

5.5 — Инициализируем контроллер домена Ubuntu

5.5.1 — Запускаем инициализацию с опцией –interactiveИз своего AD DC, мы будем рулить юзерами и группами компьютеров с линуксовыми операционками. Потому заразаранее активируем совместимость с NIS, используя команду –use-rfc2307

sudo samba-tool domain provision —use-rfc2307 —interactive

Включение поддержки Network Information Service (NIS), никак не повредит работе AD DC, несмотря даже на ситуацию в которой он никогда столкнётся с Linux серверами или компьютерами. В тоже время, если настроить контроллер без этой опции, и когда-нибудь в него будут введены машины с линуксом, придётся модифицировать схему AD и добавлять поддержку NIS. Делать это конечно же придётся с большим риском убить контроллер.

5.5.2 — Указываем параметры домена

Если в процессе настройки не было допущено ошибок, те параметры которые вам нужно настраивать, кроме DNS backend инсталлятор поместит в квадратные скобки как дефолтные значения.

Realm []: Domain [ADMINGUIDE]: Server Role (dc, member, standalone) [dc]: DNS backend (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE) [SAMBA_INTERNAL]: BIND9_DLZ DNS forwarder IP address (write 'none' to disable forwarding) []: Administrator password: Retype password:

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

5.5.3 — Проверяем последствия инициализации

Если мы увидим информацию аналогичную приведённой ниже – это значит что контроллер домена на Ubuntu успешно завершил инициализацию:В конце видим где самба держит конфиг named и конфиг krb5

5.6 — Переходим к разделу “Контроллер домена Ubuntu – Конфигурация BIND9 – Часть 2”

Импортировать новых пользователей из LDAP 

  1. Перейдите в дизайнер системы, например, по кнопке .

  2. В блоке “Пользователи и администрирование” перейдите по ссылке “Организационные роли” либо “Функциональные роли” в зависимости от того, в какие группы вы хотите импортировать пользователей.

  3. В дереве ролей выберите элемент, в который будут импортироваться пользователи LDAP.

  4. На вкладке Пользователи установите признак Синхронизировать с LDAP и в поле Элемент LDAP выберите группу Active Directory, соответствующую данной организационной роли в Creatio.

  5. Сохраните изменения.

  6. Запустите синхронизацию по действию Синхронизировать с LDAP в меню действий раздела. После завершения синхронизации в выбранную организационную или функциональную группу импортируются все пользователи из группы на сервере LDAP.

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

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

    НА ЗАМЕТКУ. При связывании пользователя LDAP с учетной записью пользователя Creatio происходит автоматическое лицензирование последней.

Установите RSAT для версий и ниже

Установка RSAT и включение Active Directory в более старой версии Windows 10 занимает немного больше времени. Имейте в виду, что ограничение для редакций Enterprise и Professional по-прежнему действует. Давайте посмотрим, как включить Active Directory в версиях 1803 и ниже.

Установите RSAT для версий и ниже
  1. Запустите браузер вашего компьютера.
  2. Перейдите в Центр загрузки Microsoft и найдите Средства удаленного администрирования сервера для Windows 10.
  3. Нажмите кнопку «Скачать».
  4. Выберите последнюю версию, чтобы обеспечить максимальную совместимость.
  5. Нажмите кнопку «Далее» и дождитесь завершения загрузки.
  6. Затем нажмите клавишу «Win» на клавиатуре.
  7. Поиск панели управления.
  8. На панели управления нажмите на вкладку «Программы».
  9. Далее выберите «Программы и компоненты».
  10. Нажмите «Включить или отключить функции Windows».

  11. Разверните раздел «Инструменты удаленного администрирования сервера» в меню.
  12. Далее выберите «Инструменты администрирования ролей».
  13. Выберите «Инструменты AD LDS и AD DS».
  14. Установите флажок «Инструменты AD DS».

  15. Нажмите кнопку «ОК».

Параметр «Администрирование» теперь должен появиться в меню «Пуск». Вы должны найти там все инструменты Active Directory, и вы можете использовать и изменять их через это меню.

Установите RSAT для версий и ниже

Настройка прав доступа на файлы в Samba

Сделаю небольшое пояснение по правам доступа в файловом сервере samba. Вопрос этот сложный и объемный. Ему можно посвятить и отдельную статью. Но для полноты картины по настройке самбы, расскажу самое основное.

Как я уже ранее сказал, изменять права доступа к каталогам на файловом сервере можно с помощью команды setfacl. Давайте сейчас посмотрим на права доступа, которые установлены:

# getfacl /mnt/samba # file: mnt/shara # owner: admin51 # group: пользователи\040домена user::rwx group::r-x other::—

С такими правами что-то создавать в папке сможет только пользователь admin51, а пользователи домена смогут только просматривать файлы и каталоги. Сделаем более прикладной вариант. Добавим права доступа на чтение и запись еще одной доменной группе — gr_it.

Читайте также:  Как вывести в Linux список пользователей?

# setfacl -m g:gr_it:rwx /mnt/shara

Обращаю внимание, что иногда при копировании команд setfacl они не отрабатывают, выдавая не очень понятную ошибку:

setfacl: Option -m: Invalid argument near character 1

Наберите команду с клавиатуры, либо просто удалите и наберите снова ключ -m, он почему-то при копировании часто дает эту ошибку.

Смотрим, что получилось:

# getfacl /mnt/shara # file: mnt/shara # owner: admin51 # group: пользователи\040домена user::rwx group::r-x group:gr_it:rwx mask::rwx other::—

То, что надо. Теперь пользователи группы gr_it имеют полные права на шару. Создадим одним таким пользователем папку test1 на нашей шаре и посмотрим, какие права она получит.

# getfacl /mnt/shara/test1 # file: mnt/shara/test1 # owner: user1 # group: пользователи\040домена user::rwx group::— other::—

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

# setfacl -m d:g:gr_it:rwx,d:g:’пользователи домена’:rx /mnt/shara

Смотрим, что получилось:

# getfacl /mnt/shara # file: mnt/shara # owner: admin51 # group: пользователи\040домена user::rwx group::r-x group:gr_it:rwx mask::rwx other::— default:user::rwx default:group::r-x default:group:пользователи\040домена:r-x default:group:gr_it:rwx default:mask::rwx default:other::—

Создадим теперь тем же пользователем еще одну папку test2 и проверим ее права.

# getfacl /mnt/shara/test2 # file: mnt/shara/test2 # owner: user # group: пользователи\040домена user::rwx group::— group:пользователи\040домена:r-x group:gr_it:rwx mask::rwx other::— default:user::rwx default:group::r-x default:group:пользователи\040домена:r-x default:group:gr_it:rwx default:mask::rwx default:other::—

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

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

Читайте также:  Лучшие программы для удаленного доступа к компьютеру

Еще важно знать одну особенность выставления прав доступа в linux. В моей практике часто требуется дать какому-нибудь пользователю доступ в одну директорию, которая располагается там, где у пользователя нет вообще никаких прав. В windows эта проблема решается просто — даются права на конкретную папку, а пользователю кладется ярлык на эту папку. В итоге он имеет доступ к нужной директории и больше никуда.

В linux так сделать не получится. Для того, чтобы дать таким образом доступ на отдельную директорию пользователю, необходимо, чтобы по всем вышестоящим директориям у него были права на исполнение, то есть X. Их придется выставлять вручную по всем вышестоящим папкам. Результат будет такой же, как и в винде — пользователь получит доступ на чтение только в указанную папку, но для этого придется выполнить больше действий. Если не знаешь этот нюанс, можно потратить много времени, прежде чем поймешь, в чем проблема.