User Tools

Site Tools


использование_библиотеки_pam

Differences

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

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Last revision Both sides next revision
использование_библиотеки_pam [2016/09/27 17:31]
val [Автоматическое создание домашних каталогов]
использование_библиотеки_pam [2023/06/15 14:27]
val [Использование pam_script]
Line 1: Line 1:
 ====== Использование библиотеки PAM ====== ====== Использование библиотеки PAM ======
  
-  * [[http://​www.freebsd.org/​doc/​ru/​articles/​pam/​index.html]] +  * [[http://​www.freebsd.org/​doc/​ru/​articles/​pam/​index.html|FreeBSD Handbook: Подключаемые Модули Аутентификации (PAM)]] 
-  * [[http://​www.ibm.com/​developerworks/​ru/​library/​l-pam/​index.html]] +  * [[http://​www.ibm.com/​developerworks/​ru/​library/​l-pam/​index.html|IBM: Основы и настройка PAM]]
- +
  
 ===== Терминология PAM ===== ===== Терминология PAM =====
Line 58: Line 56:
 ==== Приостановка регистрации пользователей ==== ==== Приостановка регистрации пользователей ====
  
-=== FreeBSD ​=== +=== Debian/​Ubuntu ​===
 <​code>​ <​code>​
-[gate:~# grep nologin /​etc/​pam.d/​sshd+root@gate:~# grep nologin /​etc/​pam.d/​sshd
 </​code><​code>​ </​code><​code>​
-account ​        ​required ​       pam_nologin.so+# Disallow non-root logins when /​etc/​nologin exists. 
 +account ​   required ​    ​pam_nologin.so
 </​code><​code>​ </​code><​code>​
-[gate:~# cat > /var/run/nologin+root@gate:~# cat > /etc/nologin
 </​code><​code>​ </​code><​code>​
 Please do not login now Please do not login now
Line 71: Line 69:
 </​code>​ </​code>​
  
-=== Ubuntu ​===+=== FreeBSD ​=== 
 <​code>​ <​code>​
-root@gate:~# grep nologin /​etc/​pam.d/​sshd+[gate:~# grep nologin /​etc/​pam.d/​sshd
 </​code><​code>​ </​code><​code>​
-# Disallow non-root logins when /​etc/​nologin exists. +account ​        ​required ​       pam_nologin.so
-account ​   required ​    ​pam_nologin.so+
 </​code><​code>​ </​code><​code>​
-root@gate:~# cat > /etc/nologin+[gate:~# cat > /var/run/nologin
 </​code><​code>​ </​code><​code>​
 Please do not login now Please do not login now
 <​Ctrl-D>​ <​Ctrl-D>​
 </​code>​ </​code>​
-==== Аутентификация с использованием RADIUS сервера ==== 
  
-[[Сервис ​FreeRADIUS]]+==== Аутентификация сервиса login через pam radius ====
  
-=== Аутентификация сервиса login через pam radius ===+  * [[Сервис ​FreeRADIUS]]
  
-== FreeBSD ==+=== FreeBSD ​===
 <​code>​ <​code>​
 [gate:~] # cat /​etc/​radius.conf [gate:~] # cat /​etc/​radius.conf
Line 103: Line 100:
 </​code>​ </​code>​
  
-== Ubuntu ==+=== Debian/Ubuntu ​===
 <​code>​ <​code>​
-root@gate:​~#​ apt-get install libpam-radius-auth freeradius-utils+root@gate:​~#​ apt install libpam-radius-auth freeradius-utils
  
 root@gate:​~#​ cat /​etc/​pam_radius_auth.conf root@gate:​~#​ cat /​etc/​pam_radius_auth.conf
Line 123: Line 120:
 ==== Автоматическое создание домашних каталогов ==== ==== Автоматическое создание домашних каталогов ====
  
-=== Ubuntu ===+=== Debian/Ubuntu ===
 <​code>​ <​code>​
-root@gate:​~#​ apt-get install libpam-modules ​# usually installed+root@gate:​~#​ apt install libpam-modules
  
-root@gate:​~# ​cat /etc/pam.d/sshd+root@gate:​~# ​pam-auth-update --enable mkhomedir 
 + 
 +root@gate:​~#​ less /etc/pam.d/common-session
 </​code><​code>​ </​code><​code>​
 ... ...
Line 147: Line 146:
 </​code>​ </​code>​
 ==== Использование pam_ssh для сервиса login ==== ==== Использование pam_ssh для сервиса login ====
 +
 +=== Debian/​Ubuntu ​ ===
 +
 +Все само пропишется,​ пароль ДОЛЖЕН совпадать с UNIX паролем
 +
 +<​code>​
 +client1:~# apt install libpam-ssh
 +
 +client1:~# grep -r ssh /etc/pam.*
 +
 +client1:~# pam-auth-update
 +</​code>​
  
 === FreeBSD === === FreeBSD ===
Line 164: Line 175:
 </​code>​ </​code>​
  
-=== Ubuntu ​ === 
  
-Все само пропишется,​ пароль ДОЛЖЕН совпадать с UNIX паролем 
- 
-<​code>​ 
-root@client1:​~#​ apt install libpam-ssh 
-</​code>​ 
  
 ==== Использование pam_krb5 для сервиса login/xdm ==== ==== Использование pam_krb5 для сервиса login/xdm ====
  
-=== Ubuntu/Debian ===+=== Debian/​Ubuntu ​===
 <​code>​ <​code>​
 root@client1:​~#​ apt install libpam-krb5 root@client1:​~#​ apt install libpam-krb5
Line 201: Line 206:
 auth            sufficient ​     pam_krb5.so ​            ​no_warn try_first_pass auth            sufficient ​     pam_krb5.so ​            ​no_warn try_first_pass
 ... ...
 +</​code>​
 +
 +==== Использование pam_script ====
 +
 +  * [[https://​github.com/​jeroennijhof/​pam_script|jeroennijhof/​pam_script]]
 +  * См. рекламный вебинар:​ [[Зачем вводить системы Linux в домен Microsoft]]
 +  * [[Зачем вводить системы Linux в домен Microsoft#​Исправления и альтернативные варианты]] - Можно поручить монтирование домашних каталогов systemd
 +
 +=== Вариант использования для автоматического создания учетных записей после аутентификации через внешний сервис ===
 +<​code>​
 +# less /​etc/​pam.d/​common-auth
 +</​code><​code>​
 +...
 +auth    [success=2 default=ignore] ​     pam_krb5.so minimum_uid=1000
 +auth    [success=1 default=ignore] ​     pam_unix.so nullok_secure try_first_pass
 +...
 +</​code><​code>​
 +# apt install libpam-script
 +
 +# cat /​etc/​pam.d/​common-auth
 +</​code><​code>​
 +...
 +# here are the per-package modules (the "​Primary"​ block)
 +auth    [success=2 default=ignore] ​     pam_krb5.so minimum_uid=1000
 +auth    [success=2 default=ignore] ​     pam_unix.so nullok_secure try_first_pass
 +auth    requisite ​                      ​pam_deny.so
 +auth    sufficient ​                     pam_script.so
 +auth    required ​                       pam_permit.so
 +# and here are more per-package modules (the "​Additional"​ block)
 +...
 +</​code><​code>​
 +# cat /​usr/​share/​libpam-script/​pam_script_auth
 +</​code><​code>​
 +#!/bin/bash
 +
 +id "​$PAM_USER"​ &>/​dev/​null || useradd -m -s /bin/bash "​$PAM_USER"​
 +
 +#echo "​$PAM_USER:​$PAM_AUTHTOK"​ | /​usr/​sbin/​chpasswd
 +</​code>​
 +
 +=== Вариант использования для автоматического монтирования домашнего каталога по протоколу CIFS с GSSAPI/​Kerberos аутентификацией ===
 +
 +<​code>​
 +# cat /​usr/​share/​libpam-script/​pam_script_ses_open
 +</​code><​code>​
 +#!/bin/sh
 +
 +MYUID=`id -u $PAM_USER`
 +MYGID=`id -g $PAM_USER`
 +
 +cp /​tmp/​krb5cc_${MYUID}* /​tmp/​krb5cc_0
 +
 +mount | grep -q /​home/​$PAM_USER || mount.cifs //​gate.corpX.un/​$PAM_USER -o rw,​user,​sec=krb5,​vers=3.1.1,​uid=$MYUID,​gid=$MYGID /​home/​$PAM_USER/​
 +
 +###rm /​tmp/​krb5cc_0
 </​code>​ </​code>​
использование_библиотеки_pam.txt · Last modified: 2023/06/20 07:34 by val