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-14-04-в-домене-active-directory-windows [2019/02/11 09:13] – external edit 127.0.0.1linux_faq:ubuntu-14-04-в-домене-active-directory-windows [2019/07/22 10:16] (current) – [Автоматическое монтирование ресурсов] admin
Line 1: Line 1:
 +Итак на моем рабочем компе навернулась Windows 7 и я решил заменить ее на Ubuntu 14.04.\\
 +
 +Установил Ubuntu 14.04 Server x64, затем установил KDE desktop:\\
 +<code>sudo apt-get update && sudo apt-get install kubuntu-dekstop</code>
 +
 +======Введение в домен 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 Open Edition** - [[http://download1.beyondtrust.com/Technical-Support/Downloads/PowerBroker-Identity-Services-Open-Edition/?Pass=True]].\\
 +Этот пакет - коммерческий аналог **likewise-open**. Я ставлю бесплатную версию, которая несколько менее функциональна, чем платная - частности она не поддерживает GPO.\\
 +
 +Скачал и установил:\\
 +<code>wget http://download1.beyondtrust.com/Technical-Support/Downloads/PowerBroker-Identity-Services-Open-Edition/pbiso/850/pbis-open-8.5.0.153.linux.x86_64.deb.sh
 +chmod a+x pbis-open-8.5.0.153.linux.x86_64.deb.sh
 +sudo ./pbis-open-8.5.0.153.linux.x86_64.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**, комментируем ее и в самый конец файла дописываем:\\
 +<code>session [success=ok default=ignore] pam_lsass.so</code>В конец файла эту строку нужно помещать для того, чтобы нормально отрабатывали опциональные модули, а  без **success=ok default=ignore** пользователя будет пускать в систему, но KDE можно будет запустить только после логина вручную.\\
 +
 +После этого можно входить в систему с учетной записью, но по умолчанию KDE не предлагает вводить имя пользователя, а предлагает выбрать пользователя машкой и вводить пароль.\\
 +Отключить такое безобразие можно:\\
 +"Пуск" -> Computer -> System Settings -> Login Screen (Light GDM). \\
 +Там выбираем тему **Classic**.\\
 +Все. \\
 +Теперь можно перезагрузиться и логиниться с доменной учетной записью.\\
 +ВВодить имя можно как в виде **DOMAIN\username**, так и в виде **Username@domain.local**\\
 +
 +Все. Дальше можно работать в домене. :) Логиниться с учетной записью вида: **DOMAIN\user** как локально, так и по SSH.\\
 +
 +=====Некоторые дополнительные настройки=====
 +Список настраиваемых параметров PBIS можно получить командой:\\
 +<code>/opt/pbis/bin/config --list
 +[Eventlog]
 +        AllowDeleteTo
 +        AllowReadTo
 +        AllowWriteTo
 +        MaxDiskUsage
 +        MaxEventLifespan
 +        MaxNumEvents
 +[Lsass]
 +        DomainSeparator
 +        SpaceReplacement
 +        EnableEventlog
 +        LogInvalidPasswords
 +        Providers
 +[Lsass - PAM]
 +        DisplayMotd
 +        PAMLogLevel
 +        UserNotAllowedError
 +[Lsass - Active Directory provider]
 +        AssumeDefaultDomain
 +        CreateHomeDir
 +        CreateK5Login
 +        SyncSystemTime
 +        TrimUserMembership
 +        LdapSignAndSeal
 +        LogADNetworkConnectionEvents
 +        NssEnumerationEnabled
 +        NssGroupMembersQueryCacheOnly
 +        NssUserMembershipQueryCacheOnly
 +        RefreshUserCredentials
 +        CacheEntryExpiry
 +        DomainManagerCheckDomainOnlineInterval
 +        DomainManagerUnknownDomainCacheTimeout
 +        MachinePasswordLifespan
 +        MemoryCacheSizeCap
 +        HomeDirPrefix
 +        HomeDirTemplate
 +        RemoteHomeDirTemplate
 +        HomeDirUmask
 +        LoginShellTemplate
 +        SkeletonDirs
 +        UserDomainPrefix
 +        DomainManagerIgnoreAllTrusts
 +        DomainManagerIncludeTrustsList
 +        DomainManagerExcludeTrustsList
 +        RequireMembershipOf
 +        SmartcardEnabled
 +        SmartcardRequiredForLogin
 +[Lsass - Local provider]
 +        Local_AcceptNTLMv1
 +        Local_HomeDirTemplate
 +        Local_HomeDirUmask
 +        Local_LoginShellTemplate
 +        Local_SkeletonDirs
 +[User Monitor]
 +        UserMonitorCheckInterval
 +[System Initialization]
 +        LsassAutostart
 +        EventlogAutostart
 +        GpagentAutostart</code>
 + \\
 +Чтобы не добавлять название домена к имени учетной записи при регистрации достаточно активировать “AssumeDefaultDomain”.<code>sudo /opt/pbis/bin/config AssumeDefaultDomain true</code>
 +
 +Проверить текущую установку можно так:<code>$ sudo /opt/pbis/bin/config --detail AssumeDefaultDomain
 +$ sudo /opt/pbis/bin/config --show AssumeDefaultDomain</code>
 +
 +^**ВНИМАНИЕ!!!**\\
 +При использовании этой опции в **/etc/sudoers** и в **/etc/passwd** - с именем домена (pre-Windows200) в формате **DOMAIN_NAME\username** с одним слешем. В обоих файлах должно быть одинаково. Если добавлять только в **sudoers**, то надо добавлять без имени домена.^\\
 +
 +Также можно добавить доменного пользователя в файлик **/etc/sudoers**, для того, чтобы работал **sudo**.\\
 +Открываем **/etc/sudoers** и добавляем туда:\\
 +<code>DOMAIN\\username     ALL=(ALL:ALL) ALL</code>Тут нужно обратить внимание на двойной слеш в качестве разделителя **\\**. Без него не работает.\\
 +Например, для добавления доменных админов нужно добавить строку:
 +  %DOMAIN\\domain^admins     ALL=(ALL:ALL) ALL
 +Обращаем внимание на двойной слеш **\\** и на **^** вместо пробела.
 +
 +Еще может понадобиться заменить **shell** (/bin/sh), устанавливаемый по-умолчанию на **/bin/bash**.\\
 +Чтобы это сделать выполняем:\\
 +  sudo /opt/pbis/bin/config LoginShellTemplate /bin/bash
 +
 +
 +
 +
 +======Автоматическое монтирование ресурсов - 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**. \\
 +
 +Дальше конфигурируем  **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 не принимает участия создании сессии и ресурсы монтируются. \\
 +
  
  • linux_faq/ubuntu-14-04-в-домене-active-directory-windows.txt
  • Last modified: 2019/07/22 10:16
  • by admin