Была необходимость ввести в домен Windows машину с Ubuntu. Для этих целей обычно используют Samba и Winbind. Но возможен альтернативный вариант с sssd, краткое руководство по нему ниже.
Для примера будем использовать: Контроллер домена = dc.contoso.com Запускаем терминал Ubuntu: 1. Переключаемся под рута
2. Устанавливаем необходимые пакеты apt install sssd heimdal-clients msktutil 3. Редактируем /etc/krb5.conf, в качестве отступов используется табуляция [libdefaults]
default_realm = CONTOSO.COM [realms]
CONTOSO.COM = [login]
krb4_convert = true
krb4_get_tickets = false [domain_realm]
.contoso.com = CONTOSO.COM
contoso.com = CONTOSO.COM
4. Редактируем файл /etc/hosts, указываем FQDN для данного хоста: 127.0.0.1 localhost
127.0.1.1 .contoso.com 5. Пробуем получить Kerberos ticket от имени администратора домена: # kinit YourDomainAdmin
YourDomainAdmin@CONTOSO.COM’s Password: # klist
Credentials cache: FILE:/tmp/krb5cc_0
Principal: YourDomainAdmin@CONTOSO.COM Issued Expires Principal
Dec 1 15:08:27 2018 Dec 2 01:08:22 2018 krbtgt/CONTOSO.COM@CONTOSO.COM Если тикет получен успешно, то теперь можно сгенерировать Kerberos principals для данного хоста, регистр важен:
msktutil -c -b ‘CN=YourComputersOU’ -s HOST/HOSTNAME.contoso.com -k /etc/sssd/HOSTNAME.keytab —computer-name HOSTNAME —upn HOSTNAME$ —server dc.contoso.com —user-creds-only msktutil -c -b ‘CN=YourComputersOU’ -s HOST/HOSTNAME -k /etc/sssd/HOSTNAME.keytab —computer-name HOSTNAME —upn HOSTNAME$ —server dc.contoso.com —user-creds-only Сейчас наш хост должен отобразиться в списке компьютеров в каталоге. Если все так — удаляем полученный Kerberos ticket: 6. Создаем файл /etc/sssd/sssd.conf со следующим содержимым: services = nss, pam
config_file_version = 2
domains = contoso.com entry_negative_timeout = 0
debug_level = 3 ad_domain = contoso.com
ad_server = dc.contoso.com
enumerate = false
id_provider = ad
auth_provider = ad
chpass_provider = ad
access_provider = simple
simple_allow_groups = users # каким группам разрешено логиниться, через запятую. Есть ограничение — названия групп должны быть с маленькой буквы.
ldap_schema = ad
ldap_id_mapping = true
fallback_homedir = /home/%u
default_shell = /bin/bash
ldap_sasl_mech = gssapi
ldap_sasl_authid = $
ldap_krb5_init_creds = true
krb5_keytab = /etc/sssd/ .keytab Описание параметров конфигфайла sssd можно посмотреть тут Устанавливаем права доступа для файла sssd.conf: chmod 600 /etc/sssd/sssd.conf Перезапускаем SSSD service service sssd restart 7. Редактируем настройки PAM
редактируем файл /etc/pam.d/common-session, после строки session required pam_unix.so session required pam_mkhomedir.so skel=/etc/skel umask=0022 переопределить параметры через системные настройки PAM, вызываем и отмечаем пункты sss auth и makehomdir . Это автоматически добавит строчку выше в common-session и она не будет перезатерта при обновлении системы. Теперь мы можем логиниться на машине доменными пользователями, которым разрешен вход.
P.S.: Можно дать права на использование sudo доменным группам. Используя visudo, редактируем файл /etc/sudoers, или, создаем новый файл в /etc/sudoers.d/ и редактируем его visudo -f /etc/sudoers.d/ваш_файл добавляем требуемую группу — например, Domain Admins (если в названии группы есть пробелы — их необходимо экранировать): Источник
Ubuntu/Linux
Ввод компьютера Ubuntu в домен Active Directory Windows
При создании материала использовал следующие источники:
Обновиться
Установить
Настройка DNS
Изменить настройки DNS на вашей машине, прописав в качестве DNS сервера контроллер домен и в качестве домена поиска — контроллер домен. В Ubuntu Desktop это можно сделать через Network Manager, в Ubuntu Server необходимо изменить содержимое файла /etc/resolv.conf Вместо «mydomain.com» — Ваш домен. Вместо IP-адресов — IP-адреса Ваших контроллеров домена.
Задать нужное имя компьютера в файле /etc/hostname Отредактировать файл /etc/hosts так, чтобы в нём была запись с полным доменным именем компьютера и обязательно коротким именем хоста, ссылающаяся на один из внутренних IP Проверить, что нормально пингуется контроллер домена
Настройка синхронизации времени
Исправить файл /etc/ntp.conf, добавив в него информацию о вашем сервере времени: После чего перезапустить демон ntpd:
Настройка авторизации через Kerberos
Изменить файл /etc/krb5.conf указав название своего домена вместо DOMAIN.COM и своего контроллера домена Обратить внимание на регистр написания имени домена. Везде, где домен был написан в верхнем регистре, его обязательно нужно писать именно в верхнем регистре.
Проверить, что мы можем авторизоваться в домене. Для этого выполнить команду Вместо username вписать имя существующего пользователя домена. Имя домена необходимо писать заглавными буквами! Если не получили никаких ошибок — значит вы настроили всё верно и домен отдаёт вам билет Kerberos. Убедиться в том, что билет получен, можно выполнив команду Удалить все билеты
Настройка Samba и вход в домен
Необходимо прописать правильные настройки в файле /etc/samba/smb.conf После того, как будет отредактирован smb.conf, выполнить команду testparm. Ввести компьютер в домен Если больше никаких сообщений нет — значит всё хорошо. Для проверки выполнить команду
Если всё прошло без ошибок, то успешно вошли в домен! Посмотреть в AD и увидеть добавленный компьютер ubuntu01. Чтобы видеть ресурсы в домене, установите smbclient: Теперь можно просматривать ресурсы компьютеров домена. Для этого нужно иметь билет kerberos — получаем через kinit. Посмотрим какие ресурсы предоставлены в сеть компьютером workstation:
Настройка Winbind
Добавить в файл /etc/samba/smb.conf в секцию [global] следующие строки: Перезапустить демон Winbind и Samba в следующем порядке: Если появится «rlimit_max: rlimit_max (1024) below minimum Windows limit (16384)» То отредактировать файл /etc/security/limits.conf Перегрузиться. Запустить testparm — Не должно быть ошибок. Проверить, что Winbind установил доверительные отношения с AD командой:
Убедиться, что Winbind увидел пользователей и группы из AD командами:
Добавление Winbind в качестве источника пользователей и групп
Измените в файле /etc/nsswitch.conf две строчки, добавив в конце winbind: Привести строку files в файле /etc/nsswitch.conf к виду: Проверить, что Ubuntu запрашивает у Winbind информацию о пользователях и группах, выполнив:
Авторизация в Ubuntu через пользователей домена
Создадим в каталоге домашних папок пользователей подкаталог для доменных пользователей в соответствии с настройками нашего smb.conf (в качестве имени каталога используем NetBIOS-имя домена): Проверить, что после установки библиотеки libpam-winbind соответствующие PAM-модули для Winbind активирован. В появившемся окне должна быть включена (отмечена *) опция «Winbind NT/Active Directory authentication»
Добавьте строку в конец файла /etc/pam.d/common-session Для появиления поля ручного ввода логина необходимо добавить в файл /etc/lightdm/lightdm.conf/ строку greeter-show-manual-login=true Для скрытия списка пользователей необходимо добавить в файл /etc/lightdm/lightdm.conf/ строку greeter-hide-users=true Для разрешения входа пользователей AD группы groupdomain можно исправить файл /etc/pam.d/common-auth добавив параметр require_membership_of к вызову pam_winbind.so Если указанная группа не работает, можно указать SID группы Источник
Включаем Ubuntu в состав домена Windows
Встала задача подключить ноутбук с ОС Ubuntu к домену Windows. Если в ОС Windows это сделать проще простого, то в линуксе нужно проделать небольшие манипуляции.
- Компьютер-сервер с ОС Windows Server 2008 R2:
- Имя: Server2008R2
- Домен: myserver.com
- Роль: контроллер домена ActiveDirectory, DNS-сервер
- IP-адрес: 172.17.1.3
- Маска сети: 255.255.255.0
- Шлюз: 172.17.1.1
- Имя: FileServer
- Домен: myserver.com
- Роль: вторичный контроллер домена ActiveDirectory с настроенной реплекацией
- IP-адрес: 172.17.1.6
- Маска сети: 255.255.255.0
- Шлюз: 172.17.1.1
- Имя: LaptopUbuntu
- Сетевые настройки: через DHCP (получает от роутера с IP-адресом 172.17.1.1)
Т.к. нашей задачей является подключить ноутбук к домену mydomain.com, то необходимо проделать следующие действия:
sudo apt-get install krb5-user ntp samba winbind
krb5-user — пакет для протокола Kerberos, который используется для аутентификации в Windows;
ntp — позволяет синхронизировать время в контроллером домена;
samba — позволяет стать членом домена;
winbind — позволяет использовать учетную запись пользователя из ActiveDirectory.Теперь перейдем непосредственно к настройкам:
sudo gedit /etc/resolv.conf
Изменить содержимое на следующее:
domain myserver.com
search myserver.com
nameserver 172.17.1.3Задаем нужное имя ноутбука (LaptopUbuntu) в следующем файле:
sudo gedit /etc/hostname
sudo gedit /etc/hostname
Меняем так, чтобы было (секцию IPv6 не трогаем):
127.0.0.1 localhost
172.17.1.2 LaptopUbuntu.myserver.com LaptopUbuntuТеперь для применения изменений необходимо перезагрузить ноутбук. После перезагрузки у меня, почему-то, все отредактированные выше файлы сбросились в первоначальное содержимое. Немного подумав, я понял, что виноват тому значащийся в сетевых настройках включенный DHCP. Через Network Manager я отключил DHCP, выбрал пункт «ручная настройка», а затем опять проделал то, что написано выше. Хотя, часть значений параметров можно вписать через все тот же Network Manager.
Открываем следующий файл:
sudo gedit /etc/ntp.conf
и вписываем в него следующее:
sudo /etc/init.d/ntp restart
Далее приступим к настройке Kerberos. Редактируем файл:
sudo gedit /etc/krb5.conf
Заполняем его следующей информацией:
[libdefaults]
default_realm = MYSERVER.COM
kdc_timesync = 1
ccache_type = 4
forwardable = true
proxiable = true[domain_realm]
.domain.com = MYSERVER.COM
domain.com = MYSERVER.COM
[login]
krb4_convert = false
krb4_get_tickets = falseТеперь настраиваем Samba:
sudo gedit /etc/samba/smb.conf
Приводим секцию [global] к следующему содержанию:
workgroup = MYSERVER.COM
realm = MYSERVER.COM
security = ADS
encrypt passwords = true
dns proxy = no
socket options = TCP_NODELAY
domain master = no
local master = no
preferred master = no
os level = 0
domain logons = no
load printers = no
show add printer wizard = no
printcap name = /dev/null
disable spoolss = yesДля проверки правильности заполнения конфигурационного файла Samba, можно выполнить команду testparm, которая выведет информацию о том, что в конфигурации ошибок нет, либо они есть.
Теперь перейдем к настройке Winbind, если мы хотим использовать учетные записи из ActiveDirectory у себя на ноутбуке.
Опять редактируем файл:
sudo gedit /etc/samba/smb.conf
И в секцию [global] добавляем:
idmap uid = 10000 — 40000
idmap gid = 10000 — 40000
winbind enum groups = yes
winbind enum users = yes
winbind use default domain = yes
template shell = /bin/bash
winbind refresh tickets = yes
winbind offline logon = yes
winbind cache time = 1440После чего необходимо перезапустить демоны:
sudo /etc/init.d/winbind stop
sudo smbd restart
sudo /etc/init.d/winbind startДалее идем и редактируем следующий файл:
sudo gedit /etc/nsswitch.conf
Добавляем в конец строк passwd и group слово winbind, т.е. файл должнен выглядеть так:
passwd: compat winbind
group: compat winbindИ самое последнее: в файл /etc/pam.d/common-session добавить следующую строчку:
session optional pam_mkhomedir.so skel=/etc/skel/ umask=0077
Демонстрация всего того, что описано выше, будет в одной из следующих заметок.