Linux настройка контроллера домена

Поднимаем контроллер домена на Ubuntu Server

Этот вариант может быть полезен для небольших организаций с компьютерами под управлением Windows.
Нет необходимости приобретать недешевую Windows Server для организации AD и CAL лицензии для доступа к контроллеру домена.
В конечном итоге имеем плюшки AD: групповые политики, разграничение прав доступа к ресурсам и т.д.

Я попытался написать подробный алгоритм действий необходимых для организации Active Directory (AD) Domain Controller (DC) на базе Ubuntu Server.

Рассмотрим настройку контроллера домена на примере Ubuntu Server 12.04.4 LTS или Ubuntu Server 13.10, инструкция подходит для обоих вариантов без дополнительных изменений

1. Установка Ubuntu

Думаю установка Ubuntu-server не вызовет проблем даже у большинства пользователей компьютеров.
Желательно при установке ОС сразу правильно указать название машины в сети (hostname) с указанием домена (для примера использую dc1.domain.local), чтобы в дальнейшем меньше надо было править конфигурацию в файлах.
Если в сети не присутствует DHCP-сервер, установщик предложит ввести IP-адрес, маску сети, шлюз и DNS.
Во время установки, также желательно установить OpenSSH server, чтобы иметь удаленный доступ к серверу, а также правильно указать часовой пояс, в котором находится машина.

2. Настройка параметров сетевого адаптера

Настройки сети хранятся в файле /etc/network/interfaces
Редактируем его на свой вкус. В качестве редактора можно использовать nano, vi и т.п.
Для редактирования файлов понадобятся root права, их можно получить например командой после этого, Вы будете работать из под пользователя root.
О том что Вы работаете с правами root пользователя свидетельствует знак # в приглашении командной строки
Либо Вы можете перед каждой командой, которая требует root доступа, приписывать sudo

В конфигурации Вашего сетевого интерфейса, скорее всего, будет

auto eth0
iface eth0 inet static
address 192.168.10.1
netmask 255.255.255.0
gateway 192.168.10.10
dns-nameservers 192.168.10.10
dns-search domain.local domain

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

3. Установка необходимых пакетов

Если Вы все же не установили OpenSSH server на первом этапе, это можно сделать командой
Перед установкой чего либо, лучше сначала обновить систему и пакеты командой
Для того, чтобы компьютеры сети сверяли время по нашему серверу установим ntp-сервер

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

4. Сборка Samba4

/dev/mapper/dc1—vg-root / ext4 user_xattr,acl,barrier=1,errors=remount-ro 0 1

после чего необходимо перезагрузить компьютерНе забываем про root права
Скачиваем последнюю стабильную версию Samba из GIT репозитария
конфигурируем, компилируем и устанавливаем Samba Параметр —enable-debug необходим для отображения более подробной информации в логах Samba.

После того, как соберется и установится Samba (это долгое занятие), для удобства её использования, необходимо прописать пути до исполняемых файлов /usr/local/samba/sbin и /usr/local/samba/bin в файлах /etc/sudoers переменная secure_path и /etc/environment переменная PATH, добавив строку :/usr/local/samba/sbin:/usr/local/samba/bin
должна получится строчка что-то вроде этой:

перезагрузимся еще раз (на всякий случай)

5. Поднимаем AD

В качестве DNS сервера AD будем использовать Samba, поэтому отключаем bind командой

Для манипуляций с AD в Samba существует инструмент samba-tool.
Для первоначальной настройки Samba вводим команду

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

ERROR(ldb): uncaught exception — 0000052D: Constraint violation — check_password_restrictions: the password is too short. It should be equal or longer than 7 characters!

то перед повторным выполнением первоначальной настройки, необходимо удалить содержимое каталогов /usr/local/samba/private/ и /usr/local/samba/etc/
Если необходимо изменить сложность паролей это можно сделать командой эта команда отключает требование сложности, отключает сроки действия паролей, устанавливает минимальную длину пароля 6 символов

Далее необходимо подправить настройки Samba и добавить туда следующие строки в секцию [global]

allow dns updates = nonsecure and secure
printing = bsd
printcap name = /dev/null

Это позволит динамически обновлять DNS-записи на сервере, при входе рабочей станции (под управлением windows) в домен и отключит поддержку печати, которая постоянно выдает ошибки в лог.

В файле /etc/resolvconf/resolv.conf.d/head необходимо указать наш DNS-сервер Samba 127.0.0.1
и перезапустить сервис resolvconf
Также установим Kerberos клиенти настроим на AD с помощью файла созданного на этапе samba-tool domain provision
Для автоматического запуска сервиса Samba необходим скрипт:

6. Проверяем работоспособность сервера

root 865 0.3 3.0 95408 31748? Ss 18:59 0:00 /usr/local/samba/sbin/samba -D

Name: dc1.domain.local
Address: 192.168.10.1

Domain=[DOMAIN] OS=[Unix] Server=[Samba 4.1.6]
Sharename Type Comment
— — — netlogon Disk
sysvol Disk
IPC$ IPC IPC Service (Samba 4.1.6)
Domain=[DOMAIN] OS=[Unix] Server=[Samba 4.1.6]
Server Comment
— — Workgroup Master
— ——-

Warning: Your password will expire in 41 days on Wed Apr 23 18:49:14 2014

Valid starting Expires Service principal
12/03/2014 19:17 13/03/2014 05:17 krbtgt/DOMAIN.LOCAL@DOMAIN.LOCAL

Domain=[DOMAIN] OS=[Unix] Server=[Samba 4.1.6]
. D 0 Wed Mar 12 18:46:48 2014
… D 0 Wed Mar 12 18:49:15 2014

Вот и всё.
Можно вводить в домен клиентов, заводить пользователей.

Управлять AD можно:
частично при помощи samba-tool на Ubuntu
при помощи Administration Tools Pack на Windows XP
при помощи Remote Server Administration Tools (RSAT) на Windows 7 и выше

Источник

Превращаем Ubuntu Server в контроллер домена с помощью samba-tool

С помощью Samba можно превратить сервер, работающий под управлением ОС семейства Linux, в контроллер домена (Domain Controller, DC) Active Directory. Тот DC, который мы собираемся поднять, сможет работать как контроллер домена Windows NT4. Он подойдёт для централизованного хранения данных учётных записей пользователей и компьютеров.

Надо отметить, что мы не будем говорить о задаче создания основного контроллера домена (Primary Domain Controller, PDC) Active Directory, хотя связка Ubuntu Server/Samba, рассмотренная здесь (с добавлением OpenLDAP) вполне может играть и такую роль.

Итак, наша цель — быстро и экономично обзавестись AD DC. В этом нам поможет интерактивный инструмент samba-tool , который предназначен для автоматизированной подготовки сервера к работе, а именно, он позволяет сформировать файл настроек /etc/smb.conf .

Начнём с установки необходимого ПО.

Установка

Первый шаг — установка на сервер пакетов Samba и Winbind. Сделать это можно с помощью следующей команды:

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

После установки можно приступать к настройкам.

Подготовка к настройке

Перед запуском samba-tool нужно проверить файл /etc/hosts , а именно — верны ли записанные в нём полное доменное имя и IP-адрес контроллера домена. Там можно найти что-то вроде этого:

Здесь IP_ADDRESS_OF_SERVER — это реальный адрес сервера Samba. Проверьте, чтобы файл содержал актуальные данные.

Далее нужно задать имя узла для сервера. Как можно судить по приведённому выше фрагменту файла /etc/hosts , в нашем случае имя узла — SAMBADOM . Для того, чтобы его настроить, откройте файл /etc/hostname и соответствующим образом его измените. Далее — перезагрузите сервер.

После того, как сервер перезагрузится, нужно удалить существующий файл smb.conf , а так же — любые файлы баз данных Samba (это .tdb и .ldb -файлы). Для того, чтобы найти директории, содержащие эти файлы, выполните следующие команды:

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


Поиск файлов, которые надо удалить

Использование samba-tool

Теперь пришло время воспользоваться samba-tool . Мы запустим это средство в интерактивном режиме, выполнив следующую команду:

Выполнив команду с ключом —use-rfc2307 , мы включаем расширения NIS. Samba-tool предложит настроить следующие параметры:

  • Realm . Это полное DNS-имя домена, которое настроено в файле hosts . Например: SAMBADOM.EXAMPLE.NET .
  • Domain . Доменное имя NetBIOS сервера Samba. Обратите внимание на то, что здесь рекомендуется использовать первую часть доменного имени DNS. Например, SAMBADOM .
  • Server Role . Этот параметр предназначен для указания типа серверной роли. По умолчанию здесь установлено значение dc , оно нас устроит.
  • DNS backend . Этот параметр позволяет настроить DNS-сервер. Здесь так же оставляем параметр по умолчанию — SAMBA_INTERNAL .
  • DNS forwarder IP address . Данный параметр позволяет указать IP-адрес DNS-сервера, на который будут перенаправлены запросы, которые не может разрешить сервер Samba. Если перенаправление DNS-запросов вам не нужно — ничего не вводите в ответ на данный вопрос. Подробнее об этом можно почитать здесь.
  • Administrator password . Тут надо указать пароль администратора домена.
Читайте также:  Windows не удается открыть этот элемент возможно он был перемещен или удален

После того, как система получит ответы на интересующие её вопросы, samba-tool настроит Samba как контроллер домена. Можете просмотреть файл /etc/samba/smb.conf и, если нужно, внести в него изменения.

Прежде чем продолжать, позаботьтесь о регистрации пользователей в Samba. Этот шаг очень важен — иначе пользователям не удастся пройти аутентификацию. Делается это следующими командами:

Здесь USERNAME — имя существующего пользователя, которого надо добавить к Samba. Указать пароль нужно будет лишь после ввода первой команды. Первая команда добавляет нового пользователя и запрашивает пароль для него; вторая — активирует созданный аккаунт.

Настройка DNS-сервера

Нам надо, чтобы в качестве DNS-сервера на контроллере домена использовался он сам. Для того, чтобы это сделать, отредактируем файл /etc/network/interfaces , приведя его к такому виду:

Тут же имеются настройки использования сетевым интерфейсом статического IP-адреса. Обратите внимание на то, что всё, набранное ЗАГЛАВНЫМИ буквами, надо настроить в соответствии с параметрами вашей системы.

После выполнения настроек перезапустите сетевые сервисы такой командой:

Кроме того, следует отредактировать файл /etc/resolv.conf , внеся изменения, согласующиеся с теми, о которых было сказано выше. А именно, тут нас интересует следующая строка:

Здесь, вместо IP_ADDRESS_FOR_SERVER , нужно ввести тот же адрес, который был записан в параметр dns-nameservers выше.

Настройка Kerberos

У Kerberos имеется собственный стандартный конфигурационный файл, который нужно заменить файлом krb5.conf , сгенерированным в ходе подготовки Samba к работе. Для того, чтобы это сделать, выполните следующие команды:

Обратите внимание на то, что вы можете столкнуться с отсутствием в системе файла /etc/krb5.conf . Если это действительно так, достаточно будет выполнить только вторую из вышеприведённых команд.

Тестируем и подключаемся

Самое сложное позади. Теперь всё готово к тому, чтобы протестировать только что созданный контроллер домена на Samba и подключиться к нему. Быстро проверить, всё ли работает, можно с помощью такой команды:

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


Успешное подключение

Как видите, при проверке smbclient выведены сведения о netlogon и sysvol как об общих ресурсах. Они созданы по умолчанию и должны существовать на контроллере домена. Кроме того, в /var/lib/samba/sysvol/REALM/scripts следует поместить любые скрипты входа в систему, которые понадобятся клиентам. Здесь REALM соответствует тому параметру REALM , который был задан в ходе работы с командой samba-tool .

Итоги

Теперь контроллер домена готов принимать подключения. Однако, может оказаться так, что вам придётся отредактировать файл /etc/samba/smb.conf , внести в него данные, отражающие ваши требования к серверу. Этот файл, сгенерированный samba-tool , весьма лаконичен, хотя и является хорошей отправной точкой для тонкой настройки вашего AD DC, построенного на базе Samba и Ubuntu Server.

Уважаемые читатели! А какие варианты взаимодействия экосистем Linux и Windows кажутся вам наиболее интересными и полезными?

Источник

Развертывание контроллера домена Active Directory на Linux. Настройка Samba Active Directory на Ubuntu Server 20.04 LTS

И так. Всем привет! С вами Владислав известен я под никнеймом Imptovskii, и сегодня мы рассмотрим развертку контроллера домена Active Directory на базе Samba используя дистрибутив Ubuntu.

В этом гайде мы будет разбирать:

  • Настройка основного домена
  • Настройка резервного домена
  • Настройка NTP
  • Настройка репликации групповых политик, ибо в автоматическом режиме Samba Active Directory это не умеет.

Вообще у нас для развертывая Active Directory есть несколько путей решения данной задачи

1. Купить Windows Server и развернуть Active Directory на нем.

2. Спиратить Windows Server и получить больше проблемы от правоохранительных органов.

3. Использовать Open Source решение. Например Samba.

Кому это может быть нужно

1. Вы хотите просто выеб*** выделится что вы такой хороший специалист и сократили расходы компании. И улучшили инфраструктуру.

2. Вы работаете в госструктурах, и из-за маразма с переходом на открытое и отечественное ПО, у вас просто нет другого выхода.

3. Вы не хотите проблем от правоохранительных органов из-за пиратства Windows Server, а денег на Windows Server руководство вам выделять не хочет. А ваша инфраструктура уже требует наличие хоть кого нибудь домена Active Directory. Например прокси Squid или файловый сервер на Samba.

4. У вас просто аллергия на Windows на боевых серверах.

И так, разворачивая домен на Samba вы получаете

1. Полноценный домен уровня WIN2K8 R2

— Служба Аутентификации на базе Kerberos v5

— LDAP-совместимая служба каталогов с возможностью репликации по DRS

— Сервер управления групповыми политиками

— DNS-сервер на базе BIND.

2. Хорошее решение, если у вас небольшая локальная сеть до 100-150 компьютеров и нужды в большом лесе поддоменов у вас нет. (Точнее Samba в поддомены не умеет от слова совсем)

3. За счет открытых спецификаций технологии Active Directory и преемственности в подходах реализации службы каталога Active Directory. Клиентами домена на базе Samba могут быть рабочие станции с операционными системами, начиная с Windows XP вплоть до Windows 10. А в качестве инструментов управления доменными службами на базе Samba могут быть использованы привычные инструменты из RSAT.

А теперь поговорим об ограничениях и недостатках Samba Active Directory Domain Controller

1. Максимальный размер базы данных Samba ограничен 4 Гб. И это связано 32-битной архитектурой tdb. И это означает что для крупных организаций c условными сотнями тысяч каталогов и объектов которые решили совершить переход на Samba, это может оказаться практически невозможным.

2. Доверительные отношения (forest/domain trust). Хоть более или менее полная реализация доверительных отношений появились в версии 4.3, тем не менее в ней есть ряд ограничений.

— Поддерживаются только двухсторонние доверительные отношения.

— Отсутствует функция SID Filtering, и отказ от нее снижается существенно уровень безопасности при создании доверительных отношений.

— Не поддерживается добавление пользователей, и групп из домена A в домен B. И данное ограничение приводит к тому что мы не сможем увидеть Samba в крупных инсталляциях.

3. Поддержка многодоменной структуры/поддержка поддоменов.

Поддержка многодоменной структуры отсутствует как на уровне кода, так и на уровне базы данных. В Samba нет реализации глобального каталога (При запросе глобального каталога производится редирект на общий LDAP-каталог)

Если вы создаете поддомен на базе Samba, или вводите Samba в состав домена второго уровня, записи о других доменах и корневом домене будут потеряны, а «благодаря» ограничениям в поддержке фантомных объектов, работа в многодоменной среде может быть весьма нестабильной.

4. Репликация SYSVOL

Несмотря на то, что групповые политики полноценно функционируют в Samba (за исключением политики паролей, назначаемых на конкретное организационное подразделение), из-за отсутствия поддержки протоколов DFS-R и FRS, репликацию SYSVOL придется проводить в ручном режиме, или при помощи скрипта. Информация о настройках rsync для репликации между контроллерами Samba есть на сайте wiki.samba.org.

5. Поддержка KCC

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

6. Есть проблемы с поддержкой различных приложений типа почтового сервера Exchange и т. д.

Больше информации вы можете получить на wiki.samba.org

На самом деле, несмотря на все недостатки. Не стоит забывать что это бесплатный и открытый продукт к которому Microsoft не имеет прямого отношения. И неудивительно что у него есть ограничения и какие недостатки. И все же для небольшой фирмы это хорошее решение при отсутствии бюджета на Windows Server. И проблемы с подобным решением могут возникнуть только в одном случае это с крупными внедрениями.

Да и помимо Active Directory, на базе Samba можно сделать файловый сервер или сервер печати и сделать интеграцию с Active Directory. Но об этом как-нибудь потом.

Давайте приступим к настройке нашего домена

Основной домен
Виртуализация: QEMU/KVM
Кол-во ядер: 2
Объем выделенной памяти: 4 ГБ
Имя сервера: dc01
Имя домена: netlab.local
IP-адрес: 192.168.1.31
OS: Ubuntu Server 20.04 LTS

Резервный домен
Виртуализация: QEMU/KVM
Кол-во ядер: 2
Объем выделенной памяти: 4 ГБ
Имя сервера: dc02
Имя домена: netlab.local
IP-адрес: 192.168.1.32
OS: Ubuntu Server 20.04 LTS

Читайте также:  Network drive mapping windows

Настройка сети

1. Настраиваем hostname для этого нам нужно отредактировать файл /etc/hostname и дописать к dc01 наш домен в нашем случае это netlab.local

Пишем sudo nano /etc/hostname

2. Настройка файла /etc/netplan/00-installer-config.yaml

Задаем следующие значения в файл /etc/netplan/00-installer-config.yaml

Пишем sudo nano /etc/netplan/00-installer-config.yaml

Если у вас нет этого файла, пишем в консоли ls /etc/netplan и узнаем имя конфига.

Приводим файл к следующему виду:

3. Настройка файла /etc/hosts

Одним из обязательных условий, является резолв имени нашего сервера, на его IP в локальной сети. Если сервер находится в сети 192.168.1.0/24 и его IP 192.168.1.31, то набирая на нем команду ping dc01 или же ping dc01.netlab.local должен резолвиться адрес 192.168.1.31. Имя контроллера домена, не должно резолвиться на локальный адрес 127.0.0.1 или какой-либо другой адрес, кроме того, что назначен сетевому интерфейсу который использует контроллер домена.

Пишем sudo nano /etc/hosts и приводим файл к следующему виду:

3. Отключение службы systemd-resolved.

Останавливаем службу systemd-resolved

Убираем systemd-resolved из автозапуска

Удаляем файл /etc/resolv.conf

Создаем заново файл /etc/resolv.conf

И приводим его к следующему виду:

А теперь перезапускаем сервер.

Установка Samba

1. Проверяем не запущены ли какие-нибудь процессы Samba

У нас их не должно быть и так, но лучше проверить если вы используете старую виртуалку

2. Установка Samba

На этом этапе, самое главное нужно понимать что после того как вы инициализируете контроллер домена, вы не сможете сменить его название. Если вы называете домен например NETLAB.LOCAL, LAB.LOCAL, GENERICNAME.LAN и т.д. то он на веки будет называться именно так как вы его назвали. Samba не поддерживает смену имени домена. Если вам нужно будет сменить его имя, вам придется выводить все машины из домена и инициализировать его заново с новым именем. И даже в рамках сети с 25-50 машинами это уже большая проблема.

1. Устанавливаем Samba и все необходимые пакеты командой

2. Область по умолчанию для Kerberos версии 5

3. Серверы Kerberos для вашей области:

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

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

5. Бэкапим стандартную конфигурацию Samba

А теперь приступаем к инициализации домена

Инициализация и дополнительная настройка домена Sambа

Из своего домена, мы так же будем управлять пользователями и группами линуксовых машин. Поэтому нам нужно заранее включить поддержку NIS, с помощью команды –use-rfc2307. Включение поддержки NIS, не имеет никаких противопоказаний к применению, даже если ваш домен никогда не будет обслуживать линуксовые машины. В то же время, если инициализировать домен без поддержки NIS, и когда-нибудь в него войдут линуксовые машины и захочется управлять их учётками, расширять схему Active Directory и добавлять поддержку NIS, придётся уже ручками на свой страх и риск.

1. Запускаем инициализацию домена в интерактивном режиме, следующей командой:

  • use-rfc2307 — параметр добавляет POSIX атрибуты (UID / GID) на схеме AD. Он понадобится при аутентификации клиентов Linux, BSD, or OS X (в том числе на локальной машине) в дополнение к Microsoft Windows.
  • interactive — параметр заставляет сценарий резерва запускаться в интерактивном режиме.
  • Realm — указывает на DNS-имя домена в верхнем регистре, которое настроено в hosts, в нашем тесте realm: NETLAB.LOCAL
  • Domain — доменное имя сервера, у нас это — NETLAB
  • Server Rules(роли сервера): dc — (Domen controller)
  • DNS backend (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE) — указывает кто, будет в роли DNS сервера. SAMBA_INTERNAL — внутренний DNS самбы.
  • DNS forwarder IP address. Данный параметр позволяет указать IP-адрес DNS-сервера, на который будут перенаправлены dns запросы, в случае когда сервер Samba не сможет их разрешить.

2. Указываем параметры домена

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

Если на этом этапе в квадратных скобках у вас указано не, то значение которое вы задавали, то скорее всего вы где-то ошиблись.

3. По этого инициализации вы должны получить подобный результат:

Но радоваться рано. Если вы видите нечто другое, то скорее всего вы допустили ошибку где-то в предыдущих пунктах.

4. Переносим файл конфигурации Kerberos следующей командой:

5. Переходим к настройкам файла /etc/samba/smb.conf и ветку [global] приводим к след виду:

Начиная с версии 3.3.0, появился модуль acl_xattr, позволяющий Samba корректно обрабатывать Windows ACL (Access Control List). Для полноценной поддержки прав доступа к файлам используйте модуль acl_xattr. Для этого добавьте в smb.conf в раздел [global] следующие параметры:

Для обновления записей в DNS добавьте два параметра в раздел [global]:

Если при автоконфигурировании не был указан DNS Forwarding, то его можно включить, добавив в секцию [global] DNS-адресс, который используется в вашей локальной сети или на внешний ресурс, например 8.8.8.8 или 1.1.1.1

В секцию [global] добавьте поддержку расширения схемы AD

6. После внесения изменений в файл /etc/samba/smb.conf выполните команду проверки testparm

7. Убераем стандартный в Linux лимит на 1024 одновременно открытых файлов, а в Windows он 16384. Чтобы убрать его добавьте, в конец файла /etc/security/limits.conf строки:

Перезапускаем систему и запускаем снова проверку и как мы видим теперь все окей

Настройка служб

Контроллер домена Samba сам должен запускать необходимые службы. Если вы будете пытаться запускать их в ручном режиме, то это может привести к необратимым последствиям, вплоть до неработоспособности домена. Поэтому сделаем недоступными для запуска или ручного запуска системные службы smbd, nmbd и winbind

1. Пишем следующие команды

2. Делаем службу samba-ad-dc доступной для запуска и включаем автозапуск

Настраиваем службу DNS

1. Переходим в файл /etc/netplan/00-installer-config.yaml и в ветке nameservers меняем с 192.168.1.1 на IP адрес нашего сервера 192.168.1.31

2. И то же самое делаем в /etc/resolv.conf

А теперь перезапускаем сервер и будем проверять нашу работу.

Проверяем итоги нашей работы

1. Проверяем шары нашего контроллера командой smbclient -L localhost -U%

2. Проверяем работоспособность Kerberos пишем команду:

И мы должны получить след ответ:

3. Смотрим кэш авторизаций Kerberos пишем команду klist

4. Проверяем DNS записи пишем следующие команды

А теперь попробуем загнать Windows машину в домен для закрепления результата и установим RSAT

Вводим компьютер в домен и устанавливаем RSAT

1. Указываем DNS сервер в настройках сети

2. А теперь вводим наш компьютер в домен вводя учетку администратора
Логин: Administrator
Пароль от учетки вы задавали при инициализации домена

3. Если вы все правильно сделали, то вы увидете след сообщение

4. Пытаемся залогиниться и скачиваем RSAT с сайта Microsoft

А теперь приступаем к настройке резервного контроллера домена.

Настройка резервного контроллера домена

Зачем нам нужен резервный контроллер домена? А все просто, давайте представим такую ситуацию. Например на одном из гипервизеров что-то не работает, например процессор вышел из строя. И, следовательно начались проблемы с общими папками на файловом сервере Samba, прокси сервер Squid не может авторизовать пользователей, люди банально не могут выйти в интернет, или зайти в свой компьютер. И тут нам на помощь приходит резервный контроллер домена, если основной сервер по каким либо причинам не работает то все задачи он берет на себя.

Настройка сети

1. Настраиваем hostname для этого нам нужно отредактировать файл /etc/hostname и дописать к dc01 наш домен в нашем случае это netlab.local

Пишем sudo nano /etc/hostname

2. Настройка файла /etc/netplan/00-installer-config.yaml

Задаем следующие значения в файл /etc/netplan/00-installer-config.yaml

Пишем sudo nano /etc/netplan/00-installer-config.yaml

Если у вас нет этого файла, пишем в консоли ls /etc/netplan и узнаем имя конфига.

Приводим файл к следующему виду:

3. Настройка файла /etc/hosts

Одним из обязательных условий, является резолв имени нашего сервера, на его IP в локальной сети. Если сервер находится в сети 192.168.1.0/24 и его IP 192.168.1.32, то набирая на нем команду ping dc02 или же ping dc02.netlab.local должен резолвиться адрес 192.168.1.32. Имя контроллера домена, не должно резолвиться на локальный адрес 127.0.0.1 или какой-либо другой адрес, кроме того, что назначен сетевому интерфейсу который использует контроллер домена.

Пишем sudo nano /etc/hosts и приводим файл к следующему виду:

3. Отключение службы systemd-resolved.

Останавливаем службу systemd-resolved

Убираем systemd-resolved из автозапуска

Удаляем файл /etc/resolv.conf

Создаем заново файл /etc/resolv.conf

И приводим его к следующему виду:

Установка Sambа

1. Проверяем не запущены ли какие-нибудь процессы Samba

2. Устанавливаем Samba командой из 1 статьи:

Читайте также:  Windows programs you must have

И ожидаем окончание установки, у нас не должно быть диалоговых окон с настройкой Kerberos и т.д.

3. Бэкапим стандартную конфигурацию Samba

Ввод в домен и настройка Samba

1. Производим ввод в домен командой sudo samba-tool domain join netlab.local DC -U»NETLAB\Administrator» и вводим пароль от учетной записи Administrator

Мы должны получить следующее

2. Переносим файл конфигурации Kerberos следующей командой:

3. А теперь переходим к настройке /etc/samba/smb.conf и настраиваем его по аналогии конфига dc01

Мы имеем чистый конфиг без всяких настроек, все параметры указаны в 1 части статьи и расписано что за что отвечает

Приводим мы наш конфиг к такому виду.

4. После внесения изменений в файл /etc/samba/smb.conf выполните команду проверки testparm

5. Убираем стандартный в Linux лимит на 1024 одновременно открытых файлов, а в Windows он 16384. Чтобы убрать его добавьте, в конец файла /etc/security/limits.conf строки:

Перезапускаем систему и запускаем снова проверку и как мы видим что все окей

Настройка служб

Контроллер домена Samba сам должен запускать необходимые службы. Если вы будете пытаться запускать их в ручном режиме, то это может привести к необратимым последствиям, вплоть до неработоспособности домена. Поэтому сделаем недоступными для запуска или ручного запуска системные службы smbd, nmbd и winbind

1. Пишем слудующие команды

2. Делаем службу samba-ad-dc доступной для запуска и включаем автозапуск

Настраиваем службу DNS

1. Переходим в файл /etc/netplan/00-installer-config.yaml и в ветке nameservers добавляем наш второй DNS сервер

2. И то же самое делаем в /etc/resolv.conf

А теперь перезапускаем сервер и будем проверять нашу работу.

Проверяем итоги нашей работы

1. Проверяем шары нашего контроллера командой smbclient -L localhost -U%

2. Проверяем работоспособность Kerberos пишем команду:

И мы должны получить след ответ:

3. Смотрим кэш авторизаций Kerberos пишем команду klist

4. Проверяем DNS записи пишем следующие команды

Вначале на dc01

А теперь на dc02

Если у вас не появились записи о dc02.netlab.local значит вы где-то ошиблись и надо разбираться в чем проблема.

5. Так а теперь проверяем репликацию командой sudo samba-tool drs showrepl

Вначале на dc01

Предупреждение «No NC replicated for Connection!» можно смело игнорировать. Оно появляется из-за того, что при регистрации нового Samba AD-DC неверно устанавливает некоторые флаги репликации.

А теперь перейдем в Windows и пропишем второй DNS сервер

Проверяем работу резервного домена в Windows

Переходим в RSAT и можем увидеть что у нас появился второй контроллер домена

Попробуем переключиться на второй домен

Как мы видим мы переключись на второй контроллер домена

А теперь давайте проверим как будет все работать если мы выключим основной контроллер домена, и перезапустим виртуалку с Windows. И как мы видим сеть есть, если бы DNS не работал, то Windows показывала что нет доступа к интернету.

Попробуем зайти в RSAT и посмотреть сможем ли мы управлять резерным контроллером домена. И как можно заметить что все окей и все работает. Давайте перейдем в управление DNS записями.

Открываем утилиту DNS и указываем dc02

И как можно заметить, что все работает

Теперь приступаем к настройке NTP сервера на наших доменах.

Настройка NTP

А теперь приступаем к настройке NTP и это необходимый элемент для нормального функционирования Active Directory, а в частности компонента Kerberos.

Да и помимо Kerberos при рассинхроне времени на клиенских машинах или серверах у вас поломается вход в систему, применение групповых политик и т.д. А вот если это произойдет на контроллерах домена, то поломается репликация, а это недопустимо.

Поэтому нам и необходим NTP на контроллере домена.

Настройка часового пояса

Прежде всего вам необходимо выбрать часовой пояс для системы, и главное чтобы этот часовой пояс совпадал с клиентскими машинами. Это необходимо сделать на всех контроллерах домена! Иначе у вас будут проблемы с репликацией!

Пишем команду dpkg-reconfigure tzdata

Выбираем в моем случае Europe

И выбираем Moscow

Мы должны получить следующий ответ:

А теперь приступим к установке и настройке NTP

Установка и настройка NTP сервера

Настройка требуется на всех контроллерах домена.

1. Устанавливаем пакет командой

2. Изменяем группу и права доступа к директории /var/lib/samba/ntp_signd/

3. А теперь приступаем к настройке файла sudo nano /etc/ntp.conf

И приводим файл к следующему виду:

Дописываем следующие строки:

А также комментируем строку driftfile /var/lib/ntp/ntp.drift

Описание параметров файла конфигурации NTP:

ntpsigndsocket /usr/local/samba/ntp_signd/ — позволит клиентским машинам отправлять NTP-запросы к серверу используя Active Directory

Server — указывает на сервера синхронизации времени

restrict 127.0.0.1 — обмен данным с самим собой

iburst — отправлять несколько пакетов (повышает точность)

prefer — указывает на предпочитаемый сервер времени

server 127.127.1.0 — позволит в случае отказа сети Интернет брать время из своих системных часов.

3. Настройка NTP на резервном контроллере домена

Устанавливаем NTP, изменяем группу и права доступа к директории /var/lib/samba/ntp_signd/ и редактируем sudo nano /etc/ntp.conf

Приводим файл к следующему виду.

А также комментируем строку driftfile /var/lib/ntp/ntp.drift

Также нам необходимо задать tinker panic 0 и выполняем на всех контроллерах домена команду:

Зачем нужен tinker panic 0? Если ваш NTP сервер располагается на виртуальной машине и у него нет «физических» часов измеряющих время, А работа с виртуальной машиной, может возобновиться через несколько часов. То это будет приводить к крашу ntpd.

4. Настройка служб

Запускаем и включаем автозапуск службы NTP на наших доменах и пишем:

Проверяем работу службы через команду

5. Проверяем что у нас работает репликация и обновление ГПО

Перейдем в Windows и откроем командную строку и проверим работу NTP

Проверяем обновление ГПО

Как мы видим что все окей. А теперь проверим репликацию на контроллерах домена репликацию.

И как мы видим что все окей. А теперь приступаем к настройке репликации групповых политик.

Настройка репликации групповых политик

В этот раз мы будем рассматривать репликацию групповых политик домена Samba Active Directory. Из-за отсутствия поддержки протоколов DFS-R и FRS, репликацию SYSVOL придется проводить в ручном режиме, или при помощи скрипта.

Папка SYSVOL содержит групповые политики и скрипты. Отсутствие репликации приведет к неправильной работе групповых политик и сценариев входа.

И все же приступим.

Активация пользователя root

Эти действия необходимо сделать на обоих контроллерах домена.

Для активации пользователя root пишем команду:

И задаем пароль.

И не забываем про информационную безопасность! Задаем разные пароли!

А теперь переходим в файл /etc/ssh/sshd_config и разрешаем подключения через пользователя root

Раскомментируем строки PermitRootLogin и задаем значение yes

Перезапускам службу SSH командой:

И пытаемся залогиниться под root используя SSH если у вас все вышло значит все ок. Если нет, то ищите где вы допустили ошибку.

Генерация ключей доступа для беспарольного доступа по SSH

Обязательно логинимся под root на dc01 и вводим следующую команду

При генерации ключа не вводим passphrase, и мы должны получить такой ответ.

Скриншот сделан на другом сервере

А теперь копируем ключ c dc01 на dc02 командой:

И проверяем беспарольный доступ с dc01 на dc02, пишем команду

Установка rsync и unison и установка скрипта для двухсторонней репликации

Все действия необходимо делать под пользователем root!

Для установки rsync и unison пишем след команду:

Cоздаем каталог для unison командой:

А теперь приступаем к настройке Unison мы должны создать файл default.prf в каталоге /root/.unison пишем

Задаем ему следующие параметры:

И так теперь в директории root создаем файл например repl.sh и задаем скрипт:

Все логи об репликации будут храниться в /var/log/sysvol-sync.log отчет можно вывести командой:

Также не забываем сделать файл исполняемым командой:

Проверим работу скрипта командой пишем команду:

Не забудьте перед этим забэкапить каталог sysvol!

А теперь переходим нам нужен планировщик задач Cron

Cron — системный демон, используемый для выполнения задач (в фоновом режиме) в указанное время. Crontab — команда, которая используется, для управления планировщиком Cron

Чтобы создать задачу для репликации, нам он и нужен. Пишем команду sudo crontab -e и в конце файла пишем

*/5 в планировщике означает что данный скрипт будет запускаться каждые 5 минут.

Проверяем логи и как мы видимо что все окей:

А теперь пишем в проводнике \\dc02 и проверяем каталог sysvol

Ну что надеюсь вам понравилась данная статья. На этом пока все. До новых встреч.

Источник

Оцените статью