Меню Рубрики

Установка контроллера домена linux

Контроллер домена на Ubuntu 18.04 — Ubuntu 18.04 AD-DC

Думаю если вы попали на эту страницу, значит тем или иным путем пришли к выводу о том, что необходимо настроить систему централизованного управления учетными записями в локальной сети вашего предприятия, скорее всего это контроллер домена на Ubuntu или Windows. У вас как обычно 3 основных пути для реализации своего плана:

    1. Выкинуть деньги на ветер
    2. Сесть за пиратство
    3. Использовать какое-либо решение на базе линукса

Если честно, есть еще 4-й вариант, и он очень даже неплох. Основывается он на Synology NAS, обладающих просто божественными возможностями даже в самых маленьких реализациях.

Но вернемся к нашим реалиям. Наш вариант номер 3. В деталях он выглядит примерно так:

  1. У нас в сети нет ни одного серверного решения Microsoft
  2. Мы не хотим появления в нашей сети пиратских серверных решений Microsoft
  3. В большинстве своем наша сеть состоит из машин с ОС Ubuntu Desktop, но есть и пара ноутбуков с вендами.
  4. У нас есть необходимость централизованного управления учётными записями
  5. У нас есть одно или несколько сетевых хранилищ и мы хотим управлять доступом к хранимой на них информации, предоставляя его через протоколы NFS и CIFS(smb). Сетевые хранилища могут быть реализованы как на голых ubuntu server, так на различных решениях типа FreeNAS, NAS4Free и тд, так и на покупных решениях, типа QNAP, Synology и тд.

Реализовывать контроллер домена на Ubuntu мы будем на хосте ESXi с примерно следующими характеристиками:

  1. CPU: 1 ядро на 2.2-2.8 GHz
  2. RAM: 2 Gb
  3. HDD: 1 hdd 32Gb
  4. Network: 1 Сетевая карта
  5. Имя сервера: ag-dc
  6. Имя домена: adminguide.lan

Что касается физической машины, то подойдет любая не сильно мощная машина. Но если там хотя бы 4‑х ядерный CPU и 4+ гига оперативной памяти, я рекомендовал бы запилить на неё бесплатный гипервизор ESXi и уже с его помощью полностью утилизировать имеющиеся мощности.

Поправка к инструкции: Везде в тексте инструкции, имя тестового samba домена изменено с adminguide.local на adminguide.lan. зона .local может вызывать глюки в виндовых сетях. Если вы видите на скриншоте adminguide.local, на самом деле там должно быть adminguide.lan

Устанавливаем Ubuntu Server 18.04 LTS amd64

Изменяем имя сервера на ag-dc

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

    Важно понимать, что после того, как вы настроите контроллер домена на Ubuntu, смена имени его сервера приведет к непредвиденным последствиям, поэтому не надо пытаться превратить свою тестовую попытку, в рабочее решение. После того как вы один или несколько раз инициализируете свой ad-dc и убедитесь в его работоспособности, удалите все свои достижения и уже только после этого выполняйте чистовую работу, полностью отдавая себе отчет в производимых действиях.
  • Настраиваем статический IP адрес

    1. На данном этапе, пока у нас еще не стоит самба и не инициализирован домен, наши настройки будут следующими:
      IP адрес и маска сети сервера: 192.168.1.100/24
      Шлюз 192.168.1.1 (роутер в тестовой сети)
      dns сервер 192.168.1.1 (роутер в тестовой сети). Переходим по ссылке и выполняем все по инструкции приводя настройки сети к следующему виду:

    Вот как выглядит файл настроек на тестовом сервере:

    Главным ДНС сервером на данный момент должен быть указан локальный роутер, или любой другой днс сервер, например 8.8.8.8, способный выполнять эти функции.

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

    1. Останавливаем сервис systemd-resolved
    2. Убираем systemd-resolved из автозапуска
    3. Удаляем ссылку /etc/resolv.conf
    4. Открываем на редактирование файл /etc/resolv.conf

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

    На данном этапе, nameserver должен указывать на тот же адрес, что и в пункте 3.1
    В search указывается имя нашего будущего домена Active Directory.
    Файл /etc/resolv.conf должен выглядеть следующим образом:

  • Сохраняем изменения нажав Ctrl+O
  • Настраиваем файл /etc/hosts

    1. Одним из обязательных условий, является резолв имени нашего сервера, на его IP в локальной сети. Если сервер находится в сети 192.168.1.0/24 и его IP 192.168.1.100, то набирая на нем команду ping ag-dc или же ping ag-dc.adminguide.lan должен резолвиться адрес 192.168.1.100. Имя контроллера домена, не должно резолвиться на локальный адрес 127.0.0.1 или какой либо другой адрес, кроме того, что назначен сетевому интерфейсу который использует DC.
    2. Приводим файл hosts к следующему виду:

    Проверяем что не запущено никаких самвобых процессов

    Для этого понадобится следующая команда:

    Если есть хоть один процесс и вы видите что-то типа этого:

    таки возможно вы настраиваете AD-DC не на новом сервере или на сервере развернутом не из оригинального образа. Если вы решите на свой страх и риск продолжить установку, то вам необходимо убить все процессы с именами samba, smbd, nmbd, winbindd. Чтобы убить процесс, надо использовать команду sudo kill :

    Устанавливаем Samba

    На этом этапе так же важно знать, что после того как вы инициализируете контроллер домена на Ubuntu, вы не сможете изменить его название. Если вы называете свой домен ADMINGUIDE.LAN, он на веки вечные останется доменом ADMINGUIDE.LAN . Самба не поддерживает изменение имени домена. После его инициализации, чтобы изменить название, вам придется вывести из него все машины что вы успели зарегистрировать в нем, удалить старый домен, инициализировать новый и зарегистрировать машины повторно. Стоит ли говорить, что даже при 25 рабочих станциях — это уже проблема

    1. Устанавливаем samba и все необходимые пакеты командой:
    2. Область по умолчанию для Kerberos версии 5

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

    Инициируем контроллер домена на Ubuntu 18.04

    Запускаем инициализацию в интерактивном режиме

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

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

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

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

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

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

    Смотрим результаты инициализации

    Следующие строки возвестят о том, что контроллер домена на Ubuntu успешно завершил инициализацию:

    Но радоваться еще слишком рано. Если вы видите нечто кардинально другое, значит вы допустили какую-то ошибку выше, либо прервали инициализацию запущенную ранее, либо инициализация вывалилась с ошибкой и сейчас вы пытаетесь инициализировать домен повторно. Если упереться рогом, можно вычистить все данные и записи сгенерированные в процессе инициализации и запустить её повторно. Это даже может привести к её успешному окончанию. НЕ ПЫТАЙТЕСЬ ЭТОГО ДЕЛАТЬ. Инициализируйте домен на новом чистом сервере. Если в процессе подготовки к инициализации, вы допустили косяк, и на момент запуска инициализации вы его не устранили и она завершилось ошибкой — просто удалите текущую инсталяцию сервера и начните сначала. Если вы настраиваете контроллер домена на виртуальной машине, сделайте снапшот выключенного сервера прежде чем приступать к пункту 7.1. В будущем в случае какого-то косяка на этапе инициализации, возвращайтесь к этому снапшоту и перепроверяйте всё \ исправляйте ошибки.

    Настройка DC

    Контроллер домена на Ubuntu, реализованный с помощью Samba сам автоматически запускает необходимые сервисы. Поэтому если они будут запущены не Samba DC, а например вручную пользователем, это может привести к необратимым последствиям и домен перестанет функционировать как должен. Поэтому на всякий случай, необходимо сделать эти сервисы недоступными для ручного запуска и отключить их автозапуск:

    Делаем samba-ad-dc доступным для запуска, включаем сервис и включаем его автозапуск

    Настройка DNS

    1. Изменяем dns сервер в настройках сети на IP настраиваемого сервера. По факту он будет ссылаться на себя же как на днс сервер 192.168.1.100
      Приводим настройки параметров сети к следующему виду:

    Настройка Kerberos

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

    Проверяем результаты своей работы

    Они создаются в процессе инициализации домена и должны присутствовать для его правильного функционирования.

    Когда система запросит пароль, необходимо ввести пароль администратора домена, который мы указали при инициализации, в пункте 9.2

    В случае успешной авторизации, вы без ошибок подключитесь к папке
    Проверяем правильность настройки DNS
    Без правильно функционирующей службы DNS, AD DC не сможет функционировать как запланировано. Главное, нам необходимо убедиться, что SAMBA_INTERNAL dns настроен правильно и работает. Для этого попытаемся извлечь из него необходимые записи

    1. Смотрим SRV запись _ldap
    2. Смотрим SRV запись _kerberos
    3. Проверяем A запись контроллера домена

    источник

    Превращаем 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 . Тут надо указать пароль администратора домена.

    После того, как система получит ответы на интересующие её вопросы, 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 кажутся вам наиболее интересными и полезными?

    источник

    Поднимаем контроллер домена на 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 и выше

    источник

    Читайте также:  Установка бортового компьютера самому

    Добавить комментарий