Введение в домен AD
Сначала нужно сделать несколько подготовительных вещей.
1. Убедиться что имя локального пользователя Ubuntu не совпадает с именем доменного админа.
2. Прописать DNS и DNS-суффикс в настройках сетевого соединения. В новых версиях Ubuntu эти параметры задаются для сетевых интерфейсов и прописываются в /etc/network/interfaces.
# The primary network interface auto eth0 iface eth0 inet static address _IP_ADDRESS_ netmask _NETMASK_ gateway _GW_IP_ADDRESS_ dns-nameservers IP_DNS1_ _IP_DNS2_ dns-domain domain.name dns-search domain.name
Теперь можно установить необходимое ПО и ввести Ubuntu в домен.
Я использовал Power Broker Identity Services Open Edition - https://github.com/BeyondTrust/pbis-open/releases.
Этот пакет - коммерческий аналог likewise-open. Я ставлю бесплатную версию, которая несколько менее функциональна, чем платная - частности она не поддерживает GPO.
Скачал и установил:
wget https://github.com/BeyondTrust/pbis-open/releases/download/8.5.2/pbis-open-8.5.2.265.linux.x86.deb.sh chmod a+x pbis-open-8.5.2.265.linux.x86.deb.sh sudo ./pbis-open-8.5.2.265.linux.x86.deb.sh
При установке на вопрос о “legacy links” я ответил No.
После установки сразу можно вводить машину в домен AD:
sudo /opt/pbis/bin/domainjoin-cli join --disable ssh domainName ADjoinAccount
Тут domainName - имя домена (должно нормально резолвиться), а ADjoinAccount - имя доменной учетной записи, имеющей права на ввод машины в домен.
Теперь нужно немного отредактировать файлик /etc/pam.d/common-session. Там находим строчку session sufficient pam_lsass.so или session optional pam_lsass.so, комментируем ее и в самый конец файла дописываем:
session [success=ok default=ignore] pam_lsass.so
В конец файла эту строку нужно помещать для того, чтобы нормально отрабатывали опциональные модули, а без success=ok default=ignore пользователя будет пускать в систему, но KDE можно будет запустить только после логина вручную.
в /etc/pam.d/common-auth в самое начало вставляем (в Ubuntu 16.04 Server + PBIS 8.5.2.265 это уже сделано):
auth [success=2 default=ignore] pam_lsass.so
в /etc/pam.d/common-account в самое начало вставляем (в Ubuntu 16.04 Server + PBIS 8.5.2.265 это уже сделано):
account [success=ok new_authtok_reqd=ok default=ignore] pam_lsass.so unknown_ok account [success=2 new_authtok_reqd=done default=ignore] pam_lsass.so
в /etc/pam.d/common-password в самое начало вставляем (в Ubuntu 16.04 Server + PBIS 8.5.2.265 это уже сделано):
password [success=2 default=ignore] pam_lsass.so
в /etc/pam.d/common-session-noninteractive в конце должно быть так (в Ubuntu 16.04 Server + PBIS 8.5.2.265 это уже сделано):
# and here are more per-package modules (the "Additional" block) session optional pam_lsass.so session required pam_unix.so # end of pam-auth-update config
Настройка экрана входа
Дефолтная тема KDE breeze не позволяет ввести имя пользователя вручную. Поэтому необходимо установить одну из тем, которые дают такую возможность.
Список доступных тем можно получить так:
apt-cache search sddm-theme
Устанавливаем темы:
sudo apt-get install sddm-theme-circles sddm-theme-elarun sddm-theme-lubuntu-chooser sddm-theme-maldives sddm-theme-maui
Дальше идем в меню KDE → Applications → Settings → System Settings → Startup and Shutdown → Login Screen (SDDM) и выбираем одну из тем. Я выбрал Circles
Некоторые дополнительные настройки
Список настраиваемых параметров PBIS можно получить командой:
/opt/pbis/bin/config --list
Меняем дефолтную оболочку на православный bash:
sudo /opt/pbis/bin/config LoginShellTemplate /bin/bash
Включаем автоматичекое дополнение имени домена:
sudo /opt/pbis/bin/config AssumeDefaultDomain true
Даем права в sudo
Добавляем доменного пользователя в файлик /etc/sudoers, для того, чтобы работал sudo.
Открываем /etc/sudoers и добавляем туда:
username ALL=(ALL:ALL) ALL
Если не используем опцию AssumeDefaultDomain true, то имя указываем в формате DOMAIN_NAME\\username. Тут нужно обратить внимание на двойной слеш в качестве разделителя \\. Без него не работает.
Например, для добавления доменных админов нужно добавить строку:
%DOMAIN\\domain^admins ALL=(ALL:ALL) ALL
Обращаем внимание на двойной слеш \\ и на ^ вместо пробела.
При добавлении групп важно знать включено ли автоматичекое дополнение имени домена (параметр AssumeDefaultDomain). Если включено, то указывать домен не надо:
%domain^admins ALL=(ALL:ALL) ALL
Если его указать, то работать не будет.
В любом случае - группы в которые входит пользователь (в том числе доменый) можно посмотреть командой:
groups
Автоматическое монтирование ресурсов - pam.mount
Теперь можно настроить автоматическое монтирование сетевых ресурсов, например папки с профилем пользователя.
Тут возникает небольшое затруднение. Монтировать ресурсы можно только от имени суперпользователя. Поэтому нельзя просто положить в rc.local строку вида mount -t cifs //server /mountpoint.
К счастью есть PAM-модуль pam_mount, который позволяет монтировать ресурсы с повышенными привилегиями на этапе входа пользователя в систему.
Устанавливаем модуль:
sudo apt-get install libpam-mount
Оказалось, что с установками по-умолчанию модуль pam_mount.so не монтирует ресурсы. Для того, чтобы модуль работал корректно, нужно отредактировать файл /etc/pam.d/common-session.
По-умолчанию, модуль pam_mount.so имеет флаг optional и располагается в файле /etc/pam.d/common-session после модуля pam_lsass.so, который имеет флаг sufficient. Таким образом модуль опциональный модуль pam_mount.so игнорируется, при корректном прохождении достаточного для аутентификации модуля pam_lsass.so. Чтобы монтирование работало корректно нужно поставить строчку session optional pam_mount.so перед строкой с pam_lsass.so
Дальше конфигурируем pam_mount. При входе пользователя обрабатываются два файла - глобальный /etc/security/pam_mount.conf.xml и файл ~/.pam_mount.conf.xml с ресурсами, монтируемыми индивидуально каждому пользователю.
Этот файл довольно неплохо откомментирован, поэтому подробно описывать не имеет смысла и реально нужно редактировать единственную строку:
<volume fstype="cifs" server="servername" path="shared" mountpoint="~/shared" options="nodev,nosuid"/>
Соотвественно отредактировать параметры server, path и mountpoint.
При этом, path не должне начинаться с “/”, а сразу указывать на папку, но при этом может указывать на вложенную папку. То есть если в Windows адрес файла: \\server\shared\directory1\file.txt, то для того чтобы он был виден в смонтированной папке - path должен быть path=“shared\directory1”.
Pam_mount и сессия SSH
Для того, чтобы pam_mount корректно работал в сессии SSH нужно отредактировать конфигурацию сервера SSH - файл /etc/ssh/sshd_config.
Параметру ChallengeResponseAuthentication дать значение no.
Без этой правки, из-за особенностей работы OpenSSH при подключении по SSH ресурсы не монтируются с помощью pam_mount с ошибкой:
conv->conv(...): Conversation error
Некоторые подробности тут:
http://community.centrify.com/t5/DirectControl-Express-for-UNIX/Try-to-auto-mount-cifs-home-dir-on-Ubuntu-using-Centrify-AD-Pam/td-p/8640
https://bugzilla.mindrot.org/show_bug.cgi?id=926#c35
https://bugzilla.mindrot.org/show_bug.cgi?id=688
Также, это неприятное обстоятельство можно обойти выполнив в сессии SSH команду:
su -l $USER
То есть фактически залогинившись в сессии SSH еще раз с именем текущего пользователя.
В этому случае OpenSSH не принимает участия создании сессии и ресурсы монтируются.
Удаление PBIS - PowerBroker Identity Services Open
Отсоединяемся от домена:
sudo /opt/pbis/bin/domainjoin-cli leave
Удаляем PBIS:
sudo /opt/pbis/bin/uninstall.sh uninstall
Discussion
Добрый день! Сделал всё по Вашей инструкции при попытке войти под доменным пользователем с обчного пользователя local_user@comp:~$ su domen_user Password: su: Сбой при проверке подлинности
С root_а заходит local_user@comp:~$ sudo -i root@comp:~# su domen_user Access denied Access denied domen_user@comp:/root$
Что и где можно поправить, что бы можно было заходить доменным пользователем при входе в сеанс?
Заранее спасибо!
надо смотреть логи