В этом посте будет описано, как установить контроллер домена Active Directory (AD) на Ubuntu Server 18.04. Да, верно… Active Directory на хосте Linux. Не резервный контроллер домена, а функциональный AD, с помощью которого вы можете создавать пользователей, присоединять компьютеры и настраивать групповую политику.
Конфигурация сети
Имя хоста | Домен | IP-адрес |
---|---|---|
dc1 | ad.ricosharp.com | 192.168.122.70 |
Настроить сеть
Настроить имя хоста системы
~] $ sudo hostnamectl set-hostname dc1
Отредактируйте файлы хостов, чтобы имя хоста преобразовывалось в его IP-адрес
~] $ sudo nano/etc/hosts # Добавьте эту строку в/etc /hosts, чтобы dc1 преобразовался в 192.168.122.70192.168.122.70 dc1 dc1.ad.ricosharp.com
Обратите внимание, что Ubuntu 18.04 теперь использует netplan для настройки IP-адреса в системах. Я опишу базовую конфигурацию в следующем посте
Обновите и перезагрузите систему
~] $ sudo apt update -y ~] $ sudo apt upgrade -y ~] $ sudo reboot
Установите соответствующие пакеты samba, winbind и kerberos. Программа установки запросит настройки Kerberos и выдаст ошибку в конце установки. Пока проигнорируйте это и примите значения по умолчанию. Это будет правильно настроено позже в процессе установки AD.
~] $ sudo apt install samba smbclient winbind libpam-winbind libnss-winbind krb5-kdc libpam-krb5 -y
Переименуйте файлы samba и kerberos. Вам нужно начать с чистой среды при запуске установки samba AD.
~] $ sudo mv/etc/samba/smb.conf/etc/samba/smb.conf .orig ~] $ sudo mv/etc/krb5.conf/etc/krb5.conf.orig
Запустить настройку samba AD
Все настройки по умолчанию подходят. Единственное изменение, которое я делаю, — это установка сервера пересылки DNS на 8.8.8.8. Вы также можете использовать другой сервер DNS. Но это выходит за рамки этой публикации для простой настройки.
~] Предоставление домена $ sudo samba-tool --use-rfc2307 --interactiveRealm [AD.RICOSHARP .COM]: домен [AD]: роль сервера (dc, member, standalone) [dc]: серверная часть DNS (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE) [SAMBA_INTERNAL]: IP-адрес сервера пересылки DNS (укажите «нет», чтобы отключить пересылку) [127.0.0.53]: 8.8.8.8 Пароль администратора: Введите пароль еще раз: Поиск IPv4-адресов Поиск IPv6-адресов IPv6-адрес не будет назначен Настройка share.ldbНастройка секретов.ldbНастройка реестраНастройка базы данных привилегийНастройка idmap dbНастройка SAM dbНастройка SAM Разделы и настройки .ldb Настройка sam.ldb rootDSEP повторная загрузка схемы Samba 4 и AD Добавление DomainDN: DC = ad, DC = ricosharp, DC = com Добавление контейнера конфигурации Настройка схемы sam.ldb Настройка sam. ldb configuration dataНастройка спецификаторов отображения Изменение описателей отображения Добавление контейнера пользователей Изменение контейнера пользователей Добавление контейнера компьютеров Изменение контейнера компьютеров Настройка данных sam.ldb Настройка известных участников безопасности Настройка пользователей и групп sam.ldb Настройка самостоятельного присоединения Добавление учетных записей DNS Создание CN = MicrosoftDNS, CN = System, DC = ad, DC = ricosharp, DC = com Создание разделов DomainDnsZones и ForestDnsZones Использование разделов DomainDnsZones и ForestDnsZones Настройка маркировки sam.ldb rootDSE как синхронизированной Исправление идентификаторов GUID Конфигурация Kerberos, подходящая для Samba AD, была сгенерирована в/var/lib/samba/private/krbting up Настройки сервера После установки вышеуказанных файлов ваш сервер Samba AD будет готов к использованию Роль сервера: контроллер домена Active Directory Имя хоста: dc1 NetBIOS Домен: ADDNS Домен: ad.ricosharp.com ИДЕНТИФИКАТОР ДОМЕНА: S-1-5-21-2060062981-3252955935-809771608
Скопируйте подготовленный файл конфигурации Kerberos в t расположение файла конфигурации Kerberos
~] $ sudo cp/var/lib/samba/private/krb5.conf/etc
Протестируйте конфигурацию
Теперь можно запускать Samba. Но перед настройкой с помощью systemd запустите samba и выполните несколько тестов с DNS.
~] $ sudo samba
Test DNS
~] $ host -t SRV _ldap._tcp.ad.ricosharp.comHost _ldap._tcp.ad.ricosharp.com не найден: 3 (NXDOMAIN) ~] $ host -t SRV _kerberos._udp.ad.ricosharp.comHost _kerberos._udp.ad.ricosharp.com не найден: 3 (NXDOMAIN) ~] $ host -t У dc1.ad.ricosharp.comdc1.ad.ricosharp.com есть адрес 192.168.122.70
Это плохо, поскольку без DNS AD не сможет работать должным образом. Если мы запустим netstat, чтобы увидеть, какие процессы прослушивают порт 53, мы увидим, что systemd-resolve работает в дополнение к samba.
~] $ sudo netstat -tulpn | grep: 53tcp 0 0 127.0.0.53:53 0.0.0.0:* LISTEN 688/systemd-resolve tcp6 0 0 ::: 53 ::: * LISTEN 4368/samba udp 0 0 127.0.0.53:53 0.0.0.0:* 688 /systemd-resolve udp6 0 0 ::: 53 ::: * 4368/samba
Быстрый и грязный способ убедиться, что samba — единственный процесс, прослушивающий запросы DNS, — это для отключения службы systemd-resolved.
~] $ sudo systemctl stop systemd-resolved ~] $ sudo systemctl disable systemd-resolved ~] $ sudo unlink/etc/resolv. conf ~] $ sudo nano/etc/resolv.confnameserver 192.168.122.70search ad.ricosharp.com ~] $ sudo reboot
Проверьте DNS еще раз. Похоже, теперь все работает.
~] $ sudo samba ~] $ host -t SRV _ldap._tcp.ad.ricosharp.com_ldap._tcp.ad.ricosharp. com имеет запись SRV 0 100 389 dc1.ad.ricosharp.com. ~] $ host -t SRV _kerberos.udp.ad.ricosharp.comHost _kerberos.udp.ad.ricosharp.com не найден: 3 (NXDOMAIN) ~] $ host -t dc1.ad.ricosharp.comdc1.ad.ricosharp.com имеет адрес 192.168.122.70
Давайте также проверим аутентификацию Kerberos. Здесь все в порядке.
~] $ kinit AdministratorPassword for Administrator@AD.RICOSHARP.COM: Предупреждение: срок действия вашего пароля истечет через 41 день в субботу, 5 октября 2019 г., 16:12:28 PM UTC ~ ] $ klist Кэш билетов: ФАЙЛ:/tmp/krb5cc_1000 Принцип действия по умолчанию: Administrator@AD.RICOSHARP.COM Действителен, начиная с истечения срока действия принципала обслуживания 24.08.2019 16:42:07 25.08.2019 02:42:07 krbtgt/AD.RICOSHARP.COM @ AD.RICOSHARP.COM продлить до 25.08.2019 16:42:04
Настройте samba AD для запуска с systemd
Теперь, когда это выполняется, снова убейте samba, чтобы мы могли начать процесс с помощью systemd
~] $ sudo ps -aux | grep sambaroot 1134 0,0 2,1 542992 44676? СС 16:34 0:00 sambaroot 1135 0,0 1,2 542992 25568? S 16:34 0:00 sambaroot 1136 0,0 1,8 547144 37744? S 16:34 0:00 sambaroot 1137 0,0 1,1 542996 22948? С 16:34 0:00 sambaroot 1138 0,0 1,4 542992 28740? С 16:34 0:00 sambaroot 1140 0,0 1,2 542992 25104? С 16:34 0:00 sambaroot 1141 0,5 1,5 542992 32564? С 16:34 0:01 sambaroot 1142 0,0 1,2 542992 25708? С 16:34 0:00 sambaroot 1143 0,0 1,4 542992 29244? С 16:34 0:00 sambaroot 1144 0,0 1,4 542992 28820? С 16:34 0:00 sambaroot 1145 0,0 1,2 542992 25568? С 16:34 0:00 sambaroot 1146 0,0 1,2 542992 25044? С 16:34 0:00 sambaroot 1147 0,0 1,8 542992 38052? С 16:34 0:00 sambaroot 1148 0,0 1,3 542992 27584? S 16:34 0:00 sambaroot 1149 0,0 1,5 543412 31340? С 16:34 0:00 sambaroot 1150 0,0 1,1 542996 22948? S 16:34 0:00 sambarico 1198 0,0 0,0 13136 1004 pts/0 S + 16:38 0:00 grep --color = auto samba ~] $ sudo kill 1134 ~] $ sudo ps -aux | grep sambarico 1203 0.0 0.0 13136 1152 pts/0 S + 16:38 0:00 grep --color = auto samba
Маскировать службы smbd, nmbd, winbind и демаскировать samba служба ad-dc
~] $ sudo systemctl mask smbd nmbd winbind ~] $ sudo systemctl disable smbd nmbd winbind ~] $ sudo systemctl stop smbd nmbd winbind ~] $ sudo systemctl unmask samba-ad-dc ~] $ sudo systemctl start samba-ad-dc ~] $ sudo systemctl enable samba-ad-dc
Перезагрузите и проверьте
~] $ sudo reboot ~] $ sudo systemctl status samba-ad-dc
Присоедините компьютер к домену
Чтобы присоединиться к домену на компьютере с Windows 10, сделайте следующее:
Примечание. Убедитесь, что ваш DNS указывает на dc1 (192.168.122.70)
- Перейдите в Пуск> Настройки
- Щелкните Учетные записи
- Доступ к работе или учебе
- Щелкните Подключить.
- Щелкните Присоединить это устройство к локальному домену Active Directory.
- Введите ad.ricosharp.com и введите имя пользователя администратора/p заданное слово для домена
- Выберите «Пропустить, чтобы добавить учетную запись».
- Выберите «Перезагрузить сейчас».
Альтернативный способ и Я больше всего привык к следующему:
- Откройте проводник
- Щелкните правой кнопкой мыши на этом компьютере> Свойства
- Выберите «Изменить настройки» в разделе «Имя компьютера, домен и параметры рабочей группы».
- Нажмите кнопку «Изменить».
- Выберите домен и введите ad.ricosharp. ru
- Нажмите «ОК», введите имя пользователя и пароль администратора для домена и перезагрузитесь.
Есть два способа управления учетными записями пользователей. Во-первых, вы можете использовать самба-инструмент. Например, чтобы создать нового пользователя с именем user1, введите следующую команду:
~] $ sudo samba-tool user create user1
Второй способ — установить средства удаленного администрирования системы (RSAT) на компьютер с Windows 10. Вы можете загрузить RSAT отсюда.
После установки откройте Active Directory — пользователи и компьютеры, выбрав Пуск> Инструменты администрирования Windows. Разверните имя домена активного каталога (ad.ricosharp.com) и откройте организационное подразделение Пользователи. Щелкните правой кнопкой мыши и выберите «Создать»> «Пользователь».
Настройка Samba в качестве контроллера домена Active Directory
Управление службой Samba AD DC с помощью Systemd
Интеграция рабочего стола Ubuntu с Active Directory для True SSO
Для поддержки True SSO на рабочем столе Ubuntu 16.04 или 18.04 интегрируйте рабочий стол с доменом Active Directory с использованием решений Samba и Winbind.
Используйте следующую процедуру для интеграции рабочего стола Ubuntu 16.04 или 18.04 с доменом AD.
В некоторых примерах процедуры используются значения-заполнители для представления сущностей в вашей сетевой конфигурации, таких как имя хоста вашего рабочего стола Ubuntu. Замените значения заполнителей информацией, относящейся к вашей конфигурации, как описано в следующей таблице.
Значение заполнителя | Описание |
---|---|
dns_IP_ADDRESS | IP-адрес вашего DNS-сервера |
mydomain.com | DNS-имя вашего домена AD |
MYDOMAIN.COM | DNS-имя вашего домена AD, заглавными буквами |
myhost | Имя хоста вашего рабочего стола Ubuntu |
MYDOMAIN | DNS-имя рабочая группа или домен NT, который включает ваш сервер Samba, прописными буквами |
ads-hostname | Имя хоста вашего AD сервер |
admin-user | Имя пользователя администратора домена AD |
Предварительные требования
- Сервер Active Directory (AD) разрешается DNS в системе Linux.
- Протокол сетевого времени (NTP) настроен в системе Linux.
Процедура
- На рабочем столе Ubuntu 16.04 или 18.04 установите пакеты samba и winbind.
sudo apt install samba krb5-config krb5-user winbind libpam-winbind libnss-winbind
- При появлении запроса настройте Kerberos Следующие настройки аутентификации.
- Для области Kerberos версии 5 по умолчанию введите DNS-имя вашего домена AD, используя все заглавные буквы.
Например, если ваше доменное имя AD — MYDOMAIN.COM .
- Для серверов Kerberos для вашей области введите имя хоста вашего сервера AD (представленное в примерах в этой процедуре).
- Для административного сервера для вашей области Kerberos снова введите имя хоста вашего сервера AD.
- Для области Kerberos версии 5 по умолчанию введите DNS-имя вашего домена AD, используя все заглавные буквы.
- Обновите конфигурацию PAM.
- Откройте страницу конфигурации PAM.
pam-auth-update
- Выберите «Создать домашний каталог при входе в систему», а затем нажмите «ОК».
- Откройте страницу конфигурации PAM.
- Отредактируйте файл конфигурации/etc/nsswitch.conf, как показано в следующем примере.
passwd: compat winbindgroup: compat winbindshadow: compatgshadow: files
- Чтобы автоматически сгенерированный файл resolv.conf ссылался на в свой домен AD в качестве домена поиска, измените настройки NetworkManager для подключения к вашей системе.
- Откройте панель управления NetworkManager и перейдите к настройкам IPv4 для подключения к вашей системе. В качестве метода выберите только автоматические (DHCP) адреса. В текстовом поле DNS-серверы введите IP-адрес вашего DNS-сервера (как в примерах этой процедуры). Затем щелкните Сохранить.
- Отредактируйте файл конфигурации для вашего системного подключения, расположенный в/etc/NetworkManager/system-connections. Воспользуйтесь следующим примером.
[ipv4] dns = dns_IP_ADDRESS dns-search = mydomain.com ignore-auto-dns = truemethod = auto
Примечание. Новый виртуальный сетевой адаптер добавляется при создании нового мгновенно клонированного виртуального рабочего стола. Любые настройки сетевого адаптера, например DNS-сервера, в шаблоне виртуального рабочего стола теряются, когда новый сетевой адаптер добавляется к мгновенно клонируемому виртуальному рабочему столу. Чтобы не потерять настройки DNS-сервера при добавлении нового сетевого адаптера к клонированному виртуальному рабочему столу, вы должны указать DNS-сервер для вашей системы Linux. - Укажите DNS-сервер, отредактировав файл конфигурации/etc/resolv.conf, как показано в следующем примере.
сервер имен dns_IP_ADDRESS поиск mydomain.com
- Перезагрузите систему и войдите снова.
- Отредактируйте файл конфигурации/etc/hosts, как показано в следующем примере.
127.0.0.1 localhost127.0.1.1 myhost.mydomain.com myhost
- Отредактируйте файл конфигурации/etc/samba/smb.conf, как показано в следующем примере.
[global] security = adsrealm = MYDOMAIN. COM workgroup = MYDOMAIN idmap uid = 10000-20000idmap gid = 10000-20000winbind enum users = yeswinbind enum group = yestemplate homedir =/home/% D/% Utemplate shell =/bin /bashclient использовать spnego = yesclient ntlmv2 auth = yesencrypt passwords = yeswinbind использовать домен по умолчанию = yesrestrict anonymous = 2kerberos method = secrets и keytabwinbind обновить билеты = true
- Перезапустить smbd служба.
sudo systemctl restart smbd.service
- Отредактируйте файл конфигурации/etc/krb5.conf так, чтобы его содержимое было похоже на следующий пример.
[libdefaults] default_realm = MYDOMAIN.COM dns_lookup_realm = true dns_lookup_kdc = true [realms] MYDOMAIN.COM = { kdc = ad-hostname admin_server = ads-hostname } [domain_realm]. mydomain.com = MYDOMAIN.COM mydomain.com = MYDOMAIN.COM
- Присоедините свой рабочий стол Ubuntu к домену AD.
- Инициировать билет Kerberos.
sudo kinit admin-user
При появлении запроса введите пароль администратора.
- Убедитесь, что билет был успешно создан.
sudo klist
Эта команда возвращает информацию о билете, включая его действительное время начала и время истечения срока.
- Создайте файл keytab Kerberos.
sudo net ads keytab create -U admin-user
- Присоединитесь к домену AD.
sudo net ads join -U admin-user
- Инициировать билет Kerberos.
- Перезапустите и проверьте службу Winbind .
- Перезапустите службу Winbind.
sudo systemctl restart winbind.service
- Чтобы проверить службу Winbind, выполните следующие команды и убедитесь, что они возвращают правильный выход.
- wbinfo -u
- wbinfo -g
- getend passwd
- getend group
- Перезапустите службу Winbind.
- Перезагрузите систему и войдите снова.
Что делать дальше
Настроить True SSO на рабочих столах Ubuntu