Version : 0.9.fr.0.1
17 février 2005
Historique des versions | ||
---|---|---|
Version 0.9.fr.0.1 | 2005-02-17 | rcs |
Adaptation française. Passage de SGML DocBook à XML DocBook. | ||
Version 0.9 | 2004-04-03 | fl |
Mise à jour des liens externes. Updated external links | ||
Version 0.8 | 2003-02-20 | fl |
Modifications de langage et diverses corrections mineures. Language changes, various small fixes | ||
Version 0.5 | 2000-05-15 | ph |
Ajout d'une section sur la sécurisation de PAM et d'une autre sur les ressources. Added section on securing pam, added resources section | ||
Version 0.1 | 2000-05-02 | ph |
Version initiale. Initial version |
Résumé
Ce guide pratique explique comment l'information sur les utilisateurs et les groupes est stockée, comment les utilisateurs sont authentifiés sur un système Linux (PAM) et comment sécuriser l'authentification des utilisateurs sur votre système.
Table des matières
Vous trouverez la plus récente version française de ce document à l'adresse : http://www.traduc.org/docs/howto/lecture/User-Authentication-HOWTO.html.
La plus récente version de la version originale de ce document est disponible à l'adresse : http://www.linuxdoc.org.
Merci de faire parvenir en anglais à l'auteur vos questions et commentaires relatifs à la version originale de ce document à l'adresse <
petehern CHEZ yahoo POINT com>
.
N'hésitez pas à faire parvenir tout commentaire relatif à la version française de ce document à <commentaires CHEZ traduc POINT org>
en précisant sont titre, sa date et sa version.
© 2000 Peter Hernberg pour la version originale.
© 2005 Raphaël Semeteys pour la version française.
Toute traduction ou travail dérivé doit être approuvé par écrit par l'auteur avant distribution.
De courts extraits peuvent être reproduits à titre de citation sans cette notice si l'origine du document est correctement indiquée. Des exceptions à ces règles peuvent être autorisées pour l'enseignement : écrivez à l'auteur et demandez ce qu'il en est. Ces restrictions sont destinées à nous protéger en tant qu'auteurs, et non pas pour vous gêner en tant qu'enseignants ou élèves. Tout le code source inclus dans ce document (outre le XML dans lequel est écrit ce document) est placé sous la Licence Publique Générale GNU, dont vous trouverez une copie sur http://www.fsf.org/licensing/licenses/gpl.html.
Merci à ma famille de me supporter depuis 18 ans. Merci aux gens de Debian de fournir une distribution si sympa avec laquelle je peux jouer. Merci à CGR de me payer à être un geek. Merci à Sandy Harris pour ses utiles suggestions. Et finalement j'aimerai remercier les fabricants de nouilles chinoises, car je ne sais comment je vivrais sans.
En observant votre /etc/passwd
, il y a des chances que vous ayez vu quelque chose comme ceci :
pete:x:1000:1000:Peter Hernberg,,,1-800-FOOBAR:/home/pete:/bin/bash
Où est donc passé le mot de passe encrypté ? Avant de répondre, une petite explication s'impose.
pete:/3GJllg1o4152:11009:0:99999:7:::
Les modules enfichables d'authentification sont au cœur de toute distribution moderne de Linux.
Voici un extrait du Guide administrateur système Linux-PAM (version anglaise) : "Le projet Linux-PAM a pour objet de séparer le développement de logiciels d'autorisation de celui de méthodes d'authentification sécurisées. Ceci est réalisé en fournissant une bibliothèque de fonctions utilisables par une application pour demander qu'un utilisateur soit authentifié". Avec PAM, peu importe que votre mot de passe soit stocké dans /etc/passwd
ou sur un serveur à Hong Kong. Lorsqu'un programme a besoin d'authentifier un utilisateur, PAM fournit une bibliothèque contenant les fonctions appropriées à la méthode d'authentification utilisée. Comme cette bibliothèque est chargée dynamiquement, le changement de méthode d'authentification peut être réalisé par simple modification d'un fichier de configuration.
La souplesse est un des plus grands atouts de PAM. PAM peut être utilisé, par exemple, pour refuser à certains programmes le droit d'authentifier les utilisateurs, pour n'autoriser que certains utilisateurs à être authentifiés, pour émettre des notifications lorsque certains programmes tentent de réaliser une authentification ou même pour priver tous les utilisateurs du droit de se connecter. La conception modulaire de PAM vous donne le contrôle total sur comment sont authentifiés les utilisateurs.
Cette liste est certainement incomplète et sans doute erronée. J'apprécierai que vous envoyiez toute correction ou ajout à cette liste à l'adresse <
petehern CHEZ yahoo POINT com>
.
Assez parlé, rentrons dans le vif du sujet.
~$
cd /etc/pam.d
/etc/pam.d/$
ls
chfn chsh login other passwd su xlock/etc/pam.d/$
/etc/pam.d/$
cat login
# Configuration PAM pour login auth requisite pam_securetty.so auth required pam_nologin.so auth required pam_env.so auth required pam_unix.so nullok account required pam_unix.so session required pam_unix.so session optional pam_lastlog.so password required pam_unix.so nullok obscure min=4 max=8
Mais avant d'analyser ce fichier, je dois mentionner une petite chose.
Les fichiers de configuration PAM ont la syntaxe suivante :
type contrôle chemin-vers-le-module arguments-du-module
Pour plus d'information concernant la configuration de PAM et la référence complète des modules PAM, consultez le Guide administrateur système Linux-PAM (version anglaise). Ce guide fait office de référence exhaustive et à jour au sujet de la configuration de PAM.
Voici une configuration paranoïaque de /etc/pam.d/other
:
auth required pam_deny.so auth required pam_warn.so account required pam_deny.so account required pam_warn.so password required pam_deny.so password required pam_warn.so session required pam_deny.so session required pam_warn.so
Voici une configuration moins vicieuse :
auth required pam_unix.so auth required pam_warn.so account required pam_unix.so account required pam_warn.so password required pam_deny.so password required pam_warn.so session required pam_unix.so session required pam_warn.so
Les outils de piratage de mots de passes peuvent certes être utilisés par des utilisateurs malveillants pour mettre à mal un système, mais peuvent aussi être utilisés par les administrateurs systèmes pour vérifier le niveau de sécurité des mots de passes sur leurs systèmes. Les deux outils de piratage de mots de passes les plus utilisés sont "crack" et "John the Ripper". "Crack" est probablement déjà intégré à votre distribution favorite. "John the Ripper" peut être téléchargé sur http://www.openwall.com/john/. Lancez les outils sur votre base de mots de passes et vous serez probablement surpris par le résultat.
En outre, il existe un module PAM qui utilise la bibliothèque de "crack" pour vérifier le niveau de sécurité du mot de passe d'un utilisateur lorsqu'il est modifié. Lorsque ce module est installé, l'utilisateur peut modifier son mot de passe uniquement lorsqu'il satisfait aux exigences minimales de sécurité.
Comme déjà dit dans la première section de ce document, les mots de passes Shadow et MD5 vous permettent de sécuriser votre système. Lors de la procédure d'installation, la plupart des distributions modernes vous demanderont si vous désirez utiliser les mots de passes MD5 et/ou Shadow. A moins que vous ayez une bonne raison de ne pas le faire, vous devriez activer ces options. Le processus de conversion des mots de passe non MD5 et non Shadow est compliqué et hors du périmètre de ce document. Le Guide pratique des mots de passes Shadow (version anglaise) n'est plus vraiment à jour mais peut tout de même s'avérer utile sur le sujet.
Tout d'abord, vous devez télécharger mod_auth_pam depuis http://pam.sourceforge.net/mod_auth_pam/. Utilisez les commandes suivantes pour compiler mod_auth_pam (vous devez être connectés en tant que root) :
~#
tar xzf mod_auth_pam.tar.gz
~#
cd mod_auth_pam-1.0a
~/mod_auth_pam-1.0a#
make
~/mod_auth_pam-1.0a#
make install
Si vous avec des problèmes lors de l'installation du module mod_auth_pam, assurez-vous d'avoir bien installé le paquetage apache-dev de votre distribution. Une fois le module installé vous devrez redémarrer Apache. Cela est habituellement fait par la commande suivante (encore une fois vous devez être root) :
~#
/etc/init.d/apache restart