Pam mount alt linux

SSSD/AD

Подготовка клиентской станции (подключение к домену AD), настройка и установка аутентификации и авторизации c помощью сервиса SSSD.

Подключение к домену

Нижеописанная процедура настройки автоматизирована с помощью пакета task-auth-ad-sssd и введения в домен через ЦУС (acc) — alterator-auth версии >=0.31

$ su - # apt-get update; apt-get install task-auth-ad-sssd # acc

Настройки сети

Для подключением к домену проводим проверку настроек сети:

  • в качестве первичного DNS (первая запись nameserver в /etc/resolv.conf ) должен быть указан DNS-сервер домена:
domain dom.loc search dom.loc nameserver 192.168.1.148

обычно, в таком качестве выступает один или несколько, контроллеров домена:

$ host dom.loc dom.loc has address 192.168.1.148
  • имя подключаемого, клиентского узла должно быть определено, как FQDN. Например, для рабочей станции client2 в домене dom.loc:

Настройки kerberos

Далее проверяем клиентские настройки kerberos через DNS. В данном случае, для домена dom.loc.:

$ dig _kerberos._udp.dom.loc SRV | grep ^_kerberos _kerberos._udp.dom.loc. 900 IN SRV 0 100 88 server.dom.loc. $ dig _kerberos._tcp.dom.loc SRV | grep ^_kerberos _kerberos._tcp.dom.loc. 900 IN SRV 0 100 88 server.dom.loc.

И задаем их в файле /etc/krb5.conf :

Если настройки сети и kerberos выполнены правильно, то мы может получить kerberos TGT от контроллера домена:

$ kinit administrator Password for administrator@DOM.LOC: Warning: Your password will expire in 21 days on Пн 09 янв 2017 15:35:39 $ klist Ticket cache: KEYRING:persistent:500:krb_ccache_Bw75rEI Default principal: administrator@DOM.LOC Valid starting Expires Service principal 19.12.2016 04:13:25 19.12.2016 14:13:25 krbtgt/DOM.LOC@DOM.LOC renew until 20.12.2016 04:13:18

Настройки samba

Для подключения рабочей станции в домену требуется утилита net из пакета samba-common-tools , кроме того стоит сразу установить пакет samba-client с набором клиентских утилит:

# apt-get install samba-client

В файле /etc/samba/smb.conf , минимально, необходимо задать следующие параметры (в секции [global]):

kerberos method = system keytab
idmap config * : backend = tdb

Набор полученных настроек можно проверить с помощью утилиты testparm:

$ testparm Load smb config files from /etc/samba/smb.conf rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384) Processing section "[homes]" Processing section "[printers]" Loaded services file OK. Server role: ROLE_DOMAIN_MEMBER Press enter to see a dump of your service definitions # Global parameters [global] realm = DOM.LOC server string = Samba Server Version %v workgroup = DOM log file = /var/log/samba/log.%m max log size = 50 kerberos method = system keytab security = ADS idmap config * : backend = tdb cups options = raw [homes] comment = Home Directories browseable = No read only = No [printers] comment = All Printers path = /var/spool/samba browseable = No printable = Yes

Ошибка rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384) до перезагрузки исправляется командой:

Читайте также:  Intel linux raid drivers

Что бы лимиты действовали и после перезагрузки необходимо отредактировать файл /etc/security/limits.conf :

* - nofile 16384 root - nofile 16384

Подключение к домену

# net ads join -U administrator Enter administrator's password: Using short domain name -- DOM Joined 'CLIENT2' to dns domain 'dom.loc'

Проверка наличия kerberos-ключей для рабочей станции:

# klist -k -e Keytab name: FILE:/etc/krb5.keytab KVNO Principal ---- -------------------------------------------------------------------------- 7 host/client2.dom.loc@DOM.LOC (des-cbc-crc) 7 host/CLIENT2@DOM.LOC (des-cbc-crc) 7 host/client2.dom.loc@DOM.LOC (des-cbc-md5) 7 host/CLIENT2@DOM.LOC (des-cbc-md5) 7 host/client2.dom.loc@DOM.LOC (aes128-cts-hmac-sha1-96) 7 host/CLIENT2@DOM.LOC (aes128-cts-hmac-sha1-96) 7 host/client2.dom.loc@DOM.LOC (aes256-cts-hmac-sha1-96) 7 host/CLIENT2@DOM.LOC (aes256-cts-hmac-sha1-96) 7 host/client2.dom.loc@DOM.LOC (arcfour-hmac) 7 host/CLIENT2@DOM.LOC (arcfour-hmac) 7 CLIENT2$@DOM.LOC (des-cbc-crc) 7 CLIENT2$@DOM.LOC (des-cbc-md5) 7 CLIENT2$@DOM.LOC (aes128-cts-hmac-sha1-96) 7 CLIENT2$@DOM.LOC (aes256-cts-hmac-sha1-96) 7 CLIENT2$@DOM.LOC (arcfour-hmac)

Настройка SSSD

Установка sssd-модуля

Для работы с Active Directory в SSSD имеется специальный AD-провайдер:

Минимальный конфигурационный файл ( /etc/sssd/sssd.conf ) для sssd-ad выглядит следующим образом:

[sssd] config_file_version = 2 services = nss, pam domains = DOM.LOC debug_level = 1 ; Should be used until ALT#34124 will be resolved user = root [nss] debug_level = 1 [pam] debug_level = 1 [domain/DOM.LOC] id_provider = ad auth_provider = ad chpass_provider = ad ;ldap_id_mapping = False default_shell = /bin/bash fallback_homedir = /home/%d/%u ;use_fully_qualified_names = True ;cache_credentials = true

Опция ldap_id_mapping = False позволяет включить использование POSIX атрибутов, определённых в Active Directory, вместо встроенной, однозначной трансляции SID’ов. Основная проблема применения POSIX-атрибутов состоит в том, что они могут быть не заданы. В этом случае сервис sssd не загрузится.

Опция use_fully_qualified_names = True включает режим полных имён (включая домен) для пользователей и групп.

Опция fallback_homedir = /home/%d/%u задает домашнюю папку для доменных пользователей. При такой записи %d означает FQDN. Здесь вручную можно указать имя рабочей группы, например /home/DOM/%u.

Опция cache_credentials включает режим кэширования аутентификационных данных (полезно при недоступности домена).

Опция user позволяет задать имя пользователя, под которым будет исполняться непривилегированная часть службы SSSD.

Настройка авторизации

Авторизационные NSS-базы GLibc настраиваются в файле /etc/nsswitch.conf . При использовании sssd, требуется внести исправления в следующие строчки:

# grep sss /etc/nsswitch.conf passwd: files sss shadow: tcb files sss group: files sss services: files sss netgroup: files sss

Настройка аутентификации

Для изменения настроек аутентификации (параметров PAM) в ALT Linux используется утилита control:

Читайте также:  Changing partition sizes in linux

Запуск и проверка сервиса sssd

Если все настройки выполнены правильно, то после запуска сервиса sssd:

будут доступны авторизационные данные для пользователя administrator:

# getent passwd administrator administrator:*:1310400500:1310400513:Administrator:/home/DOM.LOC/administrator:/bin/bash # id administrator uid=1310400500(administrator) gid=1310400513(domain users) группы=1310400513(domain users),1310400520(group policy creator owners),1310400519(enterprise admins),1310400512(domain admins),1310400518(schema admins),1310400572(denied rodc password replication group) # su - administrator [administrator@client2 ~]$ whoami administrator [administrator@client2 ~]$ pwd /home/DOM.LOC/administrator

Или для administrator@dom.loc, если установлена опция use_fully_qualified_names = True:

# id administrator@dom.loc uid=1310400500(administrator@DOM.LOC) gid=1310400513(domain users@DOM.LOC) группы=1310400513(domain users@DOM.LOC),1310400520(group policy creator owners@DOM.LOC),1310400519(enterprise admins@DOM.LOC),1310400512(domain admins@DOM.LOC),1310400518(schema admins@DOM.LOC),1310400572(denied rodc password replication group@DOM.LOC)

Внимание! Если машина до этого была в других доменах или есть проблемы со входом пользователей рекомендуется очистить кэш sssd:

# systemctl stop sssd # rm -f /var/lib/sss/db/* # rm -f /var/lib/sss/mc/* # systemctl start sssd

Подключение файловых ресурсов

Рассматриваемые способы позволяют подключать файловые ресурсы (file shares) для доменного пользователя без повторного ввода пароля (SSO, Single Sign-On).

Заданный файловый ресурс подключается с заданного сервера автоматически при каждом входе доменным пользователем.

1. Устанавливаем pam_mount :

Если осуществляется подключение файловых ресурсов по протоколу CIFS (SMB), то установите cifs-utils :

Внимание! Для того, чтобы файловые ресурсы, подключенные с помощью pam_mount, корректно отключались при завершении сеанса, установите пакет systemd-settings-enable-kill-user-processes и перезагрузите систему:

apt-get install systemd-settings-enable-kill-user-processes

2. Прописываем pam_mount в схему аутентификации по умолчанию. В конец файла ( /etc/pam.d/system-auth ) добавьте строки

session [success=1 default=ignore] pam_succeed_if.so service = systemd-user quiet session optional pam_mount.so disable_interactive

Параметр disable_interactive нужен для того, чтобы pam_mount не спрашивал пароль. Первая строка предназначена для того, чтобы не монтировать дважды при запуске systemd —user . Подробнее: https://wiki.archlinux.org/title/pam_mount#Login_manager_configuration

Пример файла /etc/pam.d/system-auth при аутентификации доменного пользователя под SSSD:

#%PAM-1.0 auth [success=4 perm_denied=ignore default=die] pam_localuser.so auth [success=1 default=bad] pam_succeed_if.so uid >= 500 quiet auth [default=1] pam_permit.so auth substack system-auth-sss-only auth [default=1] pam_permit.so auth substack system-auth-local-only auth substack system-auth-common account [success=4 perm_denied=ignore default=die] pam_localuser.so account [success=1 default=bad] pam_succeed_if.so uid >= 500 quiet account [default=1] pam_permit.so account substack system-auth-sss-only account [default=1] pam_permit.so account substack system-auth-local-only account substack system-auth-common password [success=4 perm_denied=ignore default=die] pam_localuser.so password [success=1 default=bad] pam_succeed_if.so uid >= 500 quiet password [default=1] pam_permit.so password substack system-auth-sss-only password [default=1] pam_permit.so password substack system-auth-local-only password substack system-auth-common session [success=4 perm_denied=ignore default=die] pam_localuser.so session [success=1 default=bad] pam_succeed_if.so uid >= 500 quiet session [default=1] pam_permit.so session substack system-auth-sss-only session [default=1] pam_permit.so session substack system-auth-local-only session substack system-auth-common session [success=1 default=ignore] pam_succeed_if.so service = systemd-user session optional pam_mount.so disable_interactive 

3. Устанавливаем правило монтирования ресурса в файле /etc/security/pam_mount.conf.xml :

 uid="10000-2000200000" fstype="cifs" server="c253.test.alt" path="sysvol" mountpoint="~/share" options="sec=krb5i,cruid=%(USERUID),nounix,uid=%(USERUID),gid=%(USERGID),file_mode=0664,dir_mode=0775" /> 
  • uid=»10000-2000200000″ — диапазон присваиваемых для доменных пользователей UID (подходит и для Winbind и для SSSD);
  • server=»c253.test.alt» — имя сервера с ресурсом;
  • path=»sysvol» — имя файлового ресурса;
  • mountpoint=»~/share» — путь монтирования в домашней папке пользователя.

Опционально можно добавить:

  • sgrp=»group_name» — имя группы, при членстве пользователя в которой, папка будет примонтирована.

Внимание! Обязательно указывайте настоящее имя сервера в параметре server , а не имя домена

Параметр sec=krb5i более безопасный, но требует больше вычислительных ресурсов. Вместо него можно указать sec=krb5.

Пример файла /etc/security/pam_mount.conf.xml :

    See pam_mount.conf(5) for a description. -->   since this file is still processed in a single pass from top-to-bottom -->  enable="0" />  uid="10000-2000200000"  fstype="cifs"  server="c253.test.alt"  path="sysvol"  mountpoint="~/share"  options="sec=krb5,cruid=%(USERUID),nounix,uid=%(USERUID),gid=%(USERGID),file_mode=0664,dir_mode=0775" />    -->   You will need to explicitly initialize it with the empty string to reset the defaults to nothing. -->  allow="nosuid,nodev,loop,encryption,fsck,nonempty,allow_root,allow_other,sec" />     -->  require="nosuid,nodev" />  wait="0" hup="no" term="no" kill="no" />  enable="1" remove="true" />  

Для отладки подключения замените в файле /etc/security/pam_mount.conf.xml

При этом отладочные сообщения будут показываться в журнале Journald.

Вы можете сменить механизм монтирования отдав его на откуп systemd. Для этого в pam_mount.xml.conf можно задать\переопределить опции cifsmount, umount

systemd-mount -A -G -q -t cifs %(COMBOPATH) %(MNTPT) -o uid=%(USERUID),gid=%(USERGID),username=%(USER),%(OPTIONS) systemd-mount -u %(MNTPT) 

Советы

  • Для того, чтобы подключенная папка не показывалась на рабочем столе Mate, следует в параметры добавить x-gvfs-hide .
  • Если при выходе пользователя всё равно файловый ресурс остаётся подключенным, отмонтируйте его и удалите файл /run/pam_mount/

Ссылки

Ссылки

Источник

Оцените статью
Adblock
detector