Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
linux_faq:ubuntu-16-04-в-домене-active-directory-windows [2019/02/11 09:13] – external edit 127.0.0.1linux_faq:ubuntu-16-04-в-домене-active-directory-windows [2019/07/22 10:17] (current) – [Автоматическое монтирование ресурсов] admin
Line 1: Line 1:
 +
 +======Введение в домен AD======
 +Сначала нужно сделать несколько подготовительных вещей.\\
 +1. Убедиться что имя локального пользователя Ubuntu не совпадает с именем доменного админа.\\
 +2. Прописать DNS и DNS-суффикс в настройках сетевого соединения. В новых версиях Ubuntu эти параметры задаются для сетевых интерфейсов и прописываются в **/etc/network/interfaces**.\\
 +<code># 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</code>
 +
 +Теперь можно установить необходимое ПО и ввести Ubuntu в домен.\\
 +Я использовал **Power Broker Identity Services Open Edition** - [[https://github.com/BeyondTrust/pbis-open/releases]].\\
 +Этот пакет - коммерческий аналог **likewise-open**. Я ставлю бесплатную версию, которая несколько менее функциональна, чем платная - частности она не поддерживает GPO.\\
 +
 +Скачал и установил:\\
 +<code>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</code>
 +При установке на вопрос о "legacy links" я ответил **No**.\\
 +
 +После установки сразу можно вводить машину в домен AD:\\
 +<code>sudo /opt/pbis/bin/domainjoin-cli join --disable ssh  domainName ADjoinAccount</code>
 +Тут **domainName** - имя домена (должно нормально резолвиться), а **ADjoinAccount** - имя доменной учетной записи, имеющей права на ввод машины в домен.\\
 +
 +Теперь нужно немного отредактировать файлик **/etc/pam.d/common-session**. Там находим строчку **session sufficient pam_lsass.so** или **session optional pam_lsass.so**, комментируем ее и в самый конец файла дописываем:\\
 +<code>session [success=ok default=ignore] pam_lsass.so</code>В конец файла эту строку нужно помещать для того, чтобы нормально отрабатывали опциональные модули, а  без **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 <nowiki>//</nowiki>server /mountpoint**. \\
 +К счастью есть PAM-модуль **pam_mount**, который позволяет монтировать ресурсы с повышенными привилегиями на этапе входа пользователя в систему. \\
 +
 +Устанавливаем модуль:\\
 +<code>sudo apt-get install libpam-mount</code>
 +Оказалось, что с установками по-умолчанию модуль **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** с ресурсами, монтируемыми индивидуально каждому пользователю.\\
 +Этот файл довольно неплохо откомментирован, поэтому подробно описывать не имеет смысла и реально нужно редактировать единственную строку:\\
 +<code><volume fstype="cifs" server="servername" path="shared" mountpoint="~/shared" options="nodev,nosuid"/></code>Соотвественно отредактировать параметры **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** с ошибкой:\\
 +<code>conv->conv(...): Conversation error</code>
 +Некоторые подробности тут:\\
 +[[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 команду:\\
 +<code>su -l $USER</code>
 +То есть фактически залогинившись в сессии SSH еще раз с именем текущего пользователя. \\
 +В этому случае OpenSSH не принимает участия создании сессии и ресурсы монтируются. \\
 +
 +
 +===== Удаление PBIS - PowerBroker Identity Services Open =====
 +Отсоединяемся от домена:
 +  sudo /opt/pbis/bin/domainjoin-cli leave
 +Удаляем PBIS:
 +  sudo /opt/pbis/bin/uninstall.sh uninstall
 +
  
  • linux_faq/ubuntu-16-04-в-домене-active-directory-windows.txt
  • Last modified: 2019/07/22 10:17
  • by admin