Installation de Linux PAM
Si vous avez téléchargé la documentation, déballez l'archive tar en
exécutant la commande suivante.
tar -xf ../Linux-PAM-1.3.1-docs.tar.xz --strip-components=1
Si vous voulez plutôt regénérer la documentation, corrigez le
script configure pour
qu'il détecte lynx s'il est installé :
sed -e 's/dummy links/dummy lynx/' \
-e 's/-no-numbering -no-references/-force-html -nonumbers -stdin/' \
-i configure
Installez Linux PAM en lançant les
commandes suivantes :
./configure --prefix=/usr \
--sysconfdir=/etc \
--libdir=/usr/lib \
--enable-securedir=/lib/security \
--docdir=/usr/share/doc/Linux-PAM-1.3.1 &&
make
Pour tester les résultats, le fichier de configuration suivant
/etc/pam.d/other
doit exister.
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
. Dans le cas où 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. Notez 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.
Seulement dans le cas d'une première installation, supprimez le
fichier de configuration créé plus haut en lançant la commande
suivante en tant qu'utilisateur root
:
rm -fv /etc/pam.d/*
Maintenant, en tant qu'utilisateur root
:
make install &&
chmod -v 4755 /sbin/unix_chkpwd &&
for file in pam pam_misc pamc
do
mv -v /usr/lib/lib${file}.so.* /lib &&
ln -sfv ../../lib/$(readlink /usr/lib/lib${file}.so) /usr/lib/lib${file}.so
done
Explication des commandes
--enable-securedir=/lib/security
:
Ce paramètre initialise l'emplacement pour les modules PAM.
--disable-regenerate-docu
: Si les
dépendances requises (docbook-xml-4.5, docbook-xsl-1.79.2, libxslt-1.1.33 et Lynx-2.8.9rel.1
ou W3m)
sont installés, les pages de manuel et la documentation html et
textuelle est régénérée et installée. En plus, si fop-2.3 est installé, la
documentation PDF est générée et installée. Utilisez ce paramètre
si vous ne voulez pas reconstruire la documentation.
chmod -v 4755
/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, initialisez certains fichiers génériques. En
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
Le fichier générique restant dépend de l'installation de
CrackLib-2.9.7. S'il est installé,
utilisez :
cat > /etc/pam.d/system-password << "EOF"
# Begin /etc/pam.d/system-password
# check new passwords for strength (man pam_cracklib)
password required pam_cracklib.so authtok_type=UNIX retry=1 difok=5 \
minlen=9 dcredit=1 ucredit=1 \
lcredit=1 ocredit=1 minclass=0 \
maxrepeat=0 maxsequence=0 \
maxclassrepeat=0 \
dictpath=/lib/cracklib/pw_dict
# use sha512 hash for encryption, use shadow, and use the
# authentication token (chosen password) set by pam_cracklib
# above (or any previous modules)
password required pam_unix.so sha512 shadow use_authtok
# End /etc/pam.d/system-password
EOF
Note
Dans la configuration par défaut, pam_cracklib permettra les
mots de passe avec une casse multiple d'au moins 6 caractères,
même avec la valeur minlen
initialisée à 11. Vous
devez revoir la page de man pam_cracklib(8) et déterminer si
ces valeurs par défaut sont acceptable pour la sécurité de
votre système.
Si CrackLib-2.9.7 n'est PAS installé, utilisez :
cat > /etc/pam.d/system-password << "EOF"
# Begin /etc/pam.d/system-password
# use sha512 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 sha512 shadow try_first_pass
# End /etc/pam.d/system-password
EOF
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) offre un
bon point de départ pour des descriptions des champs et des
entrées autorisées. Le Linux-PAM
System Administrators' Guide (guide de l'administrateur système
Linux-PAM) est recommandé pour des informations
supplémentaires.