Configurer shadow

Fichier de configuration pour Shadow

/etc/login.defs

Activer les mots de passe MD5

Pour activer les mots de passe MD5, modifiez la ligne du fichier login.defs indiquant:
#MD5_CRYPT_ENABLE no
par
MD5_CRYPT_ENABLE yes

Les mots de passe créés après cette modification seront cryptés en utilisant MD5 au lieu du cryptage DES.

Installation de shadow pour utiliser PAM

Téléchargez le correctif pour shadow à partir de http://www.linuxfromscratch.org/patches/blfs/5.0.

Réinstallez shadow en lançant les commandes suivantes:

patch -Np1 -i ../shadow-4.0.3-pam-2.patch &&
./configure --prefix=/usr --libdir=/usr/lib \
--enable-shared --with-libpam &&
make &&
make install &&
ln -sf vipw /usr/sbin/vigr &&
rm /bin/vipw &&
mv /bin/sg /usr/bin &&
mv /usr/lib/lib{misc,shadow}.so.0* /lib &&
ln -sf ../../lib/libshadow.so.0 /usr/lib/libshadow.so &&
ln -sf ../../lib/libmisc.so.0 /usr/lib/libmisc.so &&
cp debian/securetty /etc/securetty

Explication des commandes

cp debian/securetty /etc/securetty : Cette commande indique les terminaux (tty) permettant la connexion à travers PAM.

Configurer PAM pour fonctionner avec shadow

Fichiers de configuration

/etc/pam.d/login, /etc/pam.d/passwd, /etc/pam.d/su, /etc/pam.d/shadow, /etc/pam.d/useradd

Informations de configuration

Ajoutez les fichiers de configuration PAM suivants dans /etc/pam.d (ou ajoutez-les dans /etc/pam.conf avec le champ additionnel pour le programme).

cat > /etc/pam.d/login << "EOF"
# Début /etc/pam.d/login

auth        requisite      pam_securetty.so
auth        requisite      pam_nologin.so
auth        required       pam_env.so
auth        required       pam_unix.so
account     required       pam_access.so
account     required       pam_unix.so
session     required       pam_motd.so
session     required       pam_limits.so
session     optional       pam_mail.so     dir=/var/mail standard
session     optional       pam_lastlog.so
session     required       pam_unix.so

# Fin /etc/pam.d/login
EOF
cat > /etc/pam.d/passwd << "EOF"
# Début /etc/pam.d/passwd

password    required       pam_unix.so     md5 shadow 

# Fin /etc/pam.d/passwd
EOF
cat > /etc/pam.d/shadow << "EOF"
# Début /etc/pam.d/shadow

auth        sufficient      pam_rootok.so
auth        required        pam_unix.so
account     required        pam_unix.so
session     required        pam_unix.so
password    required        pam_permit.so

# Fin /etc/pam.d/shadow
EOF
cat > /etc/pam.d/su << "EOF"
# Début /etc/pam.d/su

auth        sufficient      pam_rootok.so
auth        required        pam_unix.so
account     required        pam_unix.so
session     required        pam_unix.so

# Fin /etc/pam.d/su
EOF
cat > /etc/pam.d/useradd << "EOF"
# Début /etc/pam.d/useradd

auth        sufficient      pam_rootok.so
auth        required        pam_unix.so
account     required        pam_unix.so
session     required        pam_unix.so
password    required        pam_permit.so

# Fin /etc/pam.d/useradd
EOF
cat > /etc/pam.d/chage << "EOF"
# Début /etc/pam.d/chage

auth        sufficient      pam_rootok.so
auth        required        pam_unix.so
account     required        pam_unix.so
session     required        pam_unix.so
password    required        pam_permit.so

# Fin /etc/pam.d/chage
EOF

Actuellement, /etc/pam.d/other est configuré pour permettre à ceux disposant d'un compte sur la machine d'utiliser les programmes qui n'ont pas un fichier de configuration spécifique. Après avoir testé PAM pour vérifier que sa configuration est correcte, il peut être changé par ceci:

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

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

# End /etc/pam.d/other
EOF

Enfin, éditez /etc/login.defs en ajoutant '#' au début des lignes suivantes:

DIALUPS_CHECK_ENAB
LASTLOG_ENAB
MAIL_CHECK_ENAB
PORTTIME_CHECKS_ENAB
CONSOLE
MOTD_FILE
NOLOGINS_FILE
PASS_MIN_LEN
SU_WHEEL_ONLY
MD5_CRYPT_ENAB
CONSOLE_GROUPS
ENVIRON_FILE

Ceci fait que login arrête de réaliser ces fonctions, car elles seront maintenant réalisées par les modules PAM.