Linux-PAM-1.6.1

Introduction à Linux PAM

Le paquet Linux PAM contient des Pluggable Authentication Modules (modules d'authentification connectables). C'est utile pour permettre à l'administrateur système local de choisir la façon dont s'authentifient les utilisateurs des applications.

Ce paquet est connu pour pouvoir être construit et fonctionner correctement avec une plateform 12.2.

Informations sur le paquet

Téléchargements supplémentaires

Documentation facultative

Dépendances de Linux PAM

Facultatives

libnsl-2.0.1, libtirpc-1.3.5, rpcsvc-proto-1.4.4, Berkeley DB (obsolète), libaudit, libeconf et Prelude

[Note]

Note

Shadow-4.16.0 doit être réinstallé et reconfiguré après avoir installé et configuré Linux PAM.

Configuration du noyau

Pour que le module PAM pam_loginuid.so (référencé par le fichier de configuration PAM system-session si elogind-255.5 est construit plus tard) fonctionne, un paramètre de configuration du noyau doit être indiqué ou le module ne fera rien :

General setup --->
  [*] Auditing support                                                   [AUDIT]

Installation de Linux PAM

Commencez par éviter l'installation d'un fichier systemd inutile :

sed -e /service_DATA/d \
    -i modules/pam_namespace/Makefile.am

Le fichier libtool.m4 embarqué a une configuration incohérente avec la hiérarchie /usr de LFS. Ce problème ferait lier libpam_misc.so avec un drapeau rpath qui peut parfois poser problème voire des problèmes de sécurité. Régénérez le système de construction pour corriger l'incohérence :

autoreconf -fi

Si vous avez téléchargé la documentation, déballez l'archive tar en exécutant la commande suivante.

tar -xf ../Linux-PAM-1.6.1-docs.tar.xz --strip-components=1

Installez Linux PAM en exécutant les commandes suivantes :

./configure --prefix=/usr                        \
            --sbindir=/usr/sbin                  \
            --sysconfdir=/etc                    \
            --libdir=/usr/lib                    \
            --enable-securedir=/usr/lib/security \
            --docdir=/usr/share/doc/Linux-PAM-1.6.1 &&
make

Pour tester les résultats, le fichier de configuration suivant /etc/pam.d/other doit exister.

[Attention]

Réinstallation ou mise à jour de Linux PAM

Si vous avez un système avec Linux PAM installé et en fonctionnement, soyez attentif quand vous modifiez les fichiers dans /etc/pam.d, car votre système peut devenir totalement inutilisable. Si vous souhaitez lancer les tests, vous n'avez pas besoin de créer un autre fichier /etc/pam.d/other. Le fichier installé peut être utilisé pour cela.

Vous devez aussi être conscient que make install écrase les fichiers de configuration dans /etc/security ainsi que dans /etc/environment. Si vous avez modifié ces fichiers, soyez certain de les avoir sauvegardés.

Pour une première installation, créez le fichier de configuration en tapant les commandes suivantes en tant qu'utilisateur root :

install -v -m755 -d /etc/pam.d &&

cat > /etc/pam.d/other << "EOF"
auth     required       pam_deny.so
account  required       pam_deny.so
password required       pam_deny.so
session  required       pam_deny.so
EOF

Maintenant lancez les tests en exécutant make check. Assurez-vous qu’il n’y a pas d'erreurs produites par les tests avant de continuer l'installation. Remarquez que les tests sont très longs. Il peut être utile de rediriger la sortie vers un fichier de log pour pouvoir l'inspecter consciencieusement.

Pour une première installation, supprimez le fichier de configuration créé plus haut en exécutant la commande suivante en tant qu'utilisateur root :

rm -fv /etc/pam.d/other

Maintenant, en tant qu'utilisateur root :

make install &&
chmod -v 4755 /usr/sbin/unix_chkpwd

Explication des commandes

--enable-securedir=/usr/lib/security : ce paramètre initialise l'emplacement pour les modules PAM.

chmod -v 4755 /usr/sbin/unix_chkpwd : le programme d'aide unix_chkpwd doit être setuid afin que les processus non-root puissent accéder au fichier shadow.

Configuration de Linux-PAM

Fichiers de configuration

/etc/security/* et /etc/pam.d/*

Informations de configuration

Les informations de configuration se trouvent dans /etc/pam.d/. Voici ci-dessous un fichier exemple :

# Begin /etc/pam.d/other

auth            required        pam_unix.so     nullok
account         required        pam_unix.so
session         required        pam_unix.so
password        required        pam_unix.so     nullok

# End /etc/pam.d/other

Maintenant, mettez en place des fichiers génériques. En tant qu'utilisateur root :

install -vdm755 /etc/pam.d &&
cat > /etc/pam.d/system-account << "EOF" &&
# Begin /etc/pam.d/system-account

account   required    pam_unix.so

# End /etc/pam.d/system-account
EOF

cat > /etc/pam.d/system-auth << "EOF" &&
# Begin /etc/pam.d/system-auth

auth      required    pam_unix.so

# End /etc/pam.d/system-auth
EOF

cat > /etc/pam.d/system-session << "EOF" &&
# Begin /etc/pam.d/system-session

session   required    pam_unix.so

# End /etc/pam.d/system-session
EOF

cat > /etc/pam.d/system-password << "EOF"
# Begin /etc/pam.d/system-password

# use yescrypt hash for encryption, use shadow, and try to use any
# previously defined authentication token (chosen password) set by any
# prior module.
password  required    pam_unix.so       yescrypt shadow try_first_pass

# End /etc/pam.d/system-password
EOF

Si vous voulez activer la prise en charge des mots de passe forts, installez libpwquality-1.4.5 et suivez les instructions de cette page pour configurer le module PAM pam_pwquality avec la prise en charge des mots de passe forts.

Maintenant ajoutez un fichier de configuration /etc/pam.d/other restrictif. Avec ce fichier, les programmes qui ne sont pas sous PAM ne pourront pas se lancer sans qu'un fichier de configuration spécifique pour l'application ne soit créé.

cat > /etc/pam.d/other << "EOF"
# Begin /etc/pam.d/other

auth        required        pam_warn.so
auth        required        pam_deny.so
account     required        pam_warn.so
account     required        pam_deny.so
password    required        pam_warn.so
password    required        pam_deny.so
session     required        pam_warn.so
session     required        pam_deny.so

# End /etc/pam.d/other
EOF

La page de manuel de PAM (man pam) fournit un bon point d'entrée pour apprendre les différents champs et les entrées acceptables. Le Guide de l'administration système Linux-PAM est recommandé pour plus d'information.

[Important]

Important

Vous devriez maintenant réinstaller le paquet Shadow-4.16.0.

Contenu

Programme installé: faillock, mkhomedir_helper, pam_namespace_helper, pam_timestamp_check, pwhistory_helper, unix_chkpwd et unix_update
Bibliothèques installées: libpam.so, libpamc.so et libpam_misc.so
Répertoires installés: /etc/security, /usr/lib/security, /usr/include/security et /usr/share/doc/Linux-PAM-1.6.1

Descriptions courtes

faillock

affiche et modifie les fichiers d'enregistrement des échecs d'authentification

mkhomedir_helper

est un assistant binaire qui crée des répertoires home

pam_namespace_helper

est un programme d'aide utilisé pour configurer un espace de noms privé pour une session utilisateur

pwhistory_helper

est un programme d'aide qui transfère les hash de mots de passes de passwd ou shadow à opasswd

pam_timestamp_check

est utilisé pour vérifier si l'horodatage par défaut est valide.

unix_chkpwd

est un assistant binaire qui vérifie le mot de passe de l'actuel utilisateur

unix_update

est un assistant binaire qui met à jour le mot de passe d'un utilisateur donné

libpam.so

fournit les interfaces entre les applications et les modules PAM