Vous n'êtes pas identifié(e).
L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT →
Ceci est une ancienne révision du document !
-
Nota :
Contributeurs, les sont là pour vous aider, supprimez-les une fois le problème corrigé ou le champ rempli !
Pam est un système de bibliothèques qui récupère les “processus d'authentification” des services et application du système. Peu connu il n'est a pas moins utilisé sur beaucoup de distribution, c'est une couche massive de sécurité.
Ce système de bibliothèques “garanti” l'utilisation des commandes d'administration.
Pam à configurer : Le concept est plutôt simple, un fichier par programme ou daemon Bien entendu les développeur de la Jessie nous ont tous bien configuré comme il faut
ls /etc/pam.d/
pour un petit aperçu. les plus important sont :
ldd /bin/vers_le_programme | grep libpam
... # here are the per-package modules (the "Primary" block) password [success=1 default=ignore] pam_unix.so obscure sha512 # here's the fallback if no module succeeds password requisite pam_deny.so # prime the stack with a positive return value if there isn't one already; # this avoids us returning an error just because nothing sets a success code # since the modules above will each just jump around password required pam_permit.so # and here are more per-package modules (the "Additional" block) # end of pam-auth-update config ...
Ici la première choses à noter c'est que la syntaxe employé est toujours de type :
NOM | COMMENTAIRES |
---|---|
Module type | Quel module de sécurité à utiliser (qu'est-ce que PAM va gérer) ? |
Control | que fait un module en cas d'échec |
Module path | le chemin du module |
Arguments | les arguments du module |
Chronoliquement une action PAM se séroule comme il suit :
Décortiquons la ligne :
password [success=1 default=ignore] pam_unix.so obscure sha512
Ici le module est pam_unix.so, ce qui signifie que pam va vérifier la concordance avec les fichiers /etc/passwd et /etc/shadow
Pour Success = 1 et default = ignore c'est un peu plus compliqué j'aborderais ça plus loin
Les Options obscure et sha512 signifient que le modules va respectivement tester si votre niveau de complexité de mot de passe est suffisant et que le mot de passe sera crypter avec l'algorithme SHA512
Pour bien comprendre les mécanismes de PAM nous allons reprendre notre tableau, mais avant il est nécessaire d'aborder un autre point concernant les fichiers de configuration (/etc/pam.d/*)
Prenons l'exemple suivant :
auth required /lib/security/pam_securetty.so auth required /lib/security/pam_env.so auth sufficient /lib/security/pam_rootok.so auth required /lib/security/pam_unix.so
Voila comment PAM va interpréter :
Le module “pam_securetty” va vérifier son fichier de configuration, /etc/securetty, afin de vérifier que le terminal utilisé est listé dans le fichier. Si cela n'est pas le cas, les connexions en tant qu'utilisateur root ne seront pas permises. Vu que le statut est à “required”, le module appelera les trois autres modules de la pile mais même si tous les autres sont ok, la connexion échouera. Notons que si le module avait le statut “requisite”, l'opération aurait été soldé par un échec et aucun des autres modules n'auraient été invoqué, peu importe de leur statut.
Le module “pam_env” va fixer les variables d'environnement d'après le fichier /etc/security/pam_env.conf.
Le module “pam_rootok” va verfifier si l'utilisateur est root. Si cela échoue, l'opération peut réussir tout de même si le module “pam_unix” authentifie l'utilisateur. Si “pam_rootok” authentifie l'utilisateur, “pam_unix” ne sera pas invoqué.
Le module “pam_unix” Il essaiera d'authentifier l'utilisateur en utilisant les appels systèmes getpw*. Si “pam_unix” échoue et que “pam_rootok” avait échoué, l'opération échouera. Si “pam_rootok” échoue mais “pam_unix” est correct, l'opération sera exécutée.
NOM | COMMENTAIRES |
---|---|
Module type | Quel module de sécurité à utiliser (qu'est-ce que PAM va gérer) ? |
Control | que fait un module en cas d'échec |
Module path | le chemin du module |
Arguments | les arguments du module |
Quatre structures de gestion possible :
Que doit faire la librairie PAM doit faire en cas de réussite ou d'echec du module ?
plusieurs possibilités :
une syntaxe un peut plus complète peut-être employé sous la forme de : value=action pairs
=exemple que j'ai abordé lors de la présentation=
[success=1 default=ignore]
success=1 : Si le module PAM renvoie success, PAM va sauter 1 lignes dans le fichier de config(2 pour 2 lignes,etc…) default=ignore : Le status de retour du module, n'influencera pas le reste des règles dans le fichier de config
On va faire un exemple ça vaut mieux que les grands discours il parait,
modifions le comportement par default d'un programme en utilisant d'autres modules
Ici on va utiliser le module pam-dbus, sur le programme sshd(OPEN-SSH)
On se logue sous X en graphique(dbus fonctionne avec le mode graphique)
On install le module pam (oui il n'est pas installé par défaut :p)
apt install libpam-dbus
on édite le fichier /etc/pam.d/sshd
vi /etc/pam.d/sshd
et on remplace la ligne suivante :
@include common-auth
par
auth required pam_dbus.so
ssh localhost
résultat : <url>http://pix.toile-libre.org/?img=1453979480.png</url>
Ici le module pam-dbus va toujours envoyé un message “dbus” au(x) utilisateurs connecté localement pour autorisé ou non la connexion ssh à votre machine.
décortiquons maintenant l'option :
auth required pam_dbus.so