Memo PAM = Pluggable Authentication ( Translate to English ) Convertir en PDF Version imprimable
Appréciation des utilisateurs: / 0
FaibleMeilleur 
Ecrit le 11-03-2009 (3562 hits) ... section Administration Linux 3

PAM INFO

  PAM: Pluggable Authentication Modules

  c'est un système unifié de délégation de l'authentification.

 

  But:

  Les applications qui le souhaitent peuvent déléguer au système la gestion

  de l'authentification. PAM fournit une API en langage C aux applications.

  Tous les services utilisent PAM.

 

  Conséquence et Intérêts:

  - c'est donc l'administrateur système qui a le contrôle sur le mode

    d'authentification des applications

  - finesse de configuration au niveau de chaque application    

  - Cela permet d'étendre sans difficultés les modes d'authentification

    de chaque application

 

  schéma global:

 

 +-----------------+

 | application: X  |

 +-----------------+       /  +----------+     +==================+

 |authentification-[---->--\--]  Linux   |--<--|fichier config PAM|

 |        +        [----<--/--]   PAM    |     |danss /etc/pam.d/X|

 | [conversation()][--+    \  |          |     |==================|

 +-----------------+  |    /  +-n--n-----+     | auth .. pam_a.so |

 |  service user   |  |       __|  |           | auth .. pam_b.so |

 +-----------------+  A      |     |           | ...       _______/

                      |      V     A           |____,-----'

                      +------|-----|---------+------+------+

                         +---u-----u----+    |      |      |

                         |   auth....   |--[ a ]--[ b ]--[ c ]

                         +--------------+

                         |   acct....   |--[ b ]--[ d ]

                         +--------------+

                         |   password   |--[ b ]--[ c ]

                         +--------------+

                         |   session    |--[ e ]--[ c ]

                         +--------------+ \................../

                                           sous /lib/security

 

sous le répertoire /etc/pam.d/ il existe Un fichier par programme.

ex: su,xdm,ssh,ftp,samba,passwd

Attention il existe aussi /etc/pam.conf --> obsolete!

    

 

FORMAT FICHIER PAM

    SYNTAXE

    =======================================================================

    format des fichiers PAM:

 

        [phase] [mot de controle] [module]  [args]

             |           |             |        |

             |-auth      |-required    |        |-(depend du module)

             |-account   |-requisite   |        |-en commun: debug

             |-session   |-sufficient  |        +-en commun: use_first_pass

             +-password  +-optional    +-pam_xxx.so

 

    Exemple:

      auth       required   pam_unix.so  shadow nullok use_first_pass

      password   required   pam_unix.so nullok obscure min=4 max=8 md5

 

    Arguments optionnels génériques (commun a tous les modules)

    --------------------------------------------------------

-    Debug
utilise syslog pour logguer des information de debugage
sous debian/ubuntu, c'est sous /var/log/auth.log

-    use_first_pass
réutilise le token d'authentification (le mot de passe) du module precedent
en cas d'empilement de modules.

                            

    DEFINITION DES PHASES

    =======================================================================

    auth

    mode d'authentification de l'utilisateur (par mdp ou autre méthode).

    (correspond à pam_authenticate())

       

    account

    Utilisé pour s'assurer que l'accès est autorisé.

    Restriction du compte : expiration, en fonction de l'heure,

    de la machine source, des ressources disponibles (pam_acct_mgmt())

   

    password

    Gestion du mots de passe. (pam_chauthtok()).mode de verification,

    peut etre utilisé pour changer les mots de passe à traver les applications

 

    session

    Evenements juste avant l'utilisation du service (par ex ouverture d'une

    session), et juste après. par ex monter le repertoire home, afficher

    un message.

 

    EMPILEMENT DE MODULES (MOTS DE CONTROLE)

    =======================================================================

      * sufficient: est suffisant pour valider l'authentification.

        Si le module répond OK, on a immédiatement une acceptation

                    quelquesoit la réponse des autres modules de la phase

 

      * required: Doit réussir pour valider l'authentification,

                  mais les autres modules sont testés malgré tout.                 

   

      * requisite: Doit réussir pour valider l'authentification,

                   différence par rapport à required: en cas d'echec,

                   on ne continue pas à tester les autres modules

 

      * optional: l'execution du module n'affecte pas l'authentification.                 

 

    PARTIES COMMUNES (inclusion de fichier)

    =======================================================================

      PAM permet d'include des fichiers dans les fichiers de config.

      directive: @include fichier

      c'est utilisé pour gérer des parties commune dans l'authentification des

      services, c'est à dire l'execution de modules pour tous les services.

      Quand on modifie un fichier PAM, il faut donc se poser la question:

      - spécifique à la commande que j'edite ou commun?

 

MODULES PAM STANDARDS

 

    SECTION AUTH

    =======================================================================

    pam_securetty.so    assure que root ne peut se connecter que sur les 

                        consoles tty definis dans /etc/securetty

    pam_unix.so         utiliser le password unix : /etc/passwd et /etc/shadow.

                        option nullok : indiquer qu'on accepte les passwd vide

                        pam_pwdb est equivalent

    pam_nologin.so      si /etc/nologin existe, seul root peut se logguer

                        le contenu de /etc/nologin est affiché si essai de login

    pam_env.so          charge les des variables d'environnements présentes

                        dans /etc/security/pam_env.conf

       

    SECTION ACCOUNT 

    =======================================================================

    pam_unix.so         fait les verifs standards/établi la validité utilisateur

                        ou mot de passe  (account expiré,change password forcé)

 

    SECTION PASSWORD   

    =======================================================================

    pam_cracklib.so     quand on change un password, vérifie que le mot de

                        passe n'est pas dans un dictionnaire

                        option retry=n (le nombre de tentatives)

                               minlen=n (la longueur imposée-ne peux être inférieur à 4)

                               difok=n (nombre de caractères différents

                                       entre l'ancien et le nouveau)

                        va aussi gérer la durée de validité du mdp.

                        Plus de détails: voir la rubrique REFERENCES à la fin du support

 

    pam_unix.so         politique d'authentification au standard unix

                        options:

                        -shadow       (renseigner le fichier shadow)

                        -nullok       (passwod vide ok)

                        -use_authtok  (utilise le passwd acepte par le

                                     precedent .so - par ex cracklib)

                                     -md5 pour le type de cryptage  

                                     -remember=n pour se souvenir des n derniers mdp utilisés                                                                                                            

           

    SECTION SESSION 

    =======================================================================                   

    pam_unix.so         standard ( envoie un log dans /var/log/messages )

    pam_limits.so       Permet de limiter les ressources mis à la disposition    

                        d'un utilisateur (process,memoire..)

                        quotas defini dans /etc/security/limits.conf

    pam_lastlog.so      affiche la date de dernier login, ou d'echec

    pam_motd.so         affiche le "message of the day", en general ce sont

                        des infos sur le systeme

 

AUTRES MODULES PAM CLASSIQUES

 

pam_time (account): autorise un accès par heure. La configuration se faisant

dans le fichier /etc/security/time.conf.

 

pam_wheel : permet de limiter l'accès à root via la commande su qu'aux seuls

membres du groupe wheel. On peut changer le nom du groupe par défaut avec

l'option group=mon_group.

 

pam_warm : log les informations à syslog

 

pam_console : permet de spécifier les autorisations d'accès à la console. Il

faut alors configurer /etc/security/console.perms.

 

EXEMPLES DE FICHIER PAM

 

    PAM POUR SU

    =======================================================================

            #%PAM-1.0

            auth       sufficient pam_ldap.so

            # This allows root to su without passwords (normal operation)

            auth       sufficient pam_rootok.so

            auth       required   pam_unix.so  shadow nullok use_first_pass

           

            account    sufficient pam_ldap.so

            account    required   pam_unix.so

           

            password   sufficient pam_ldap.so nullok md5

            password   required   pam_unix.so nullok obscure min=4 max=8 md5

           

            session    required   pam_unix.so

  

    PAM POUR LOGIN

    =======================================================================

            #%PAM-1.0

            auth       sufficient pam_ldap.so

            auth       required   pam_nologin.so

            auth       required   pam_unix.so  shadow nullok use_first_pass

            auth       required   pam_env.so

           

            account    sufficient pam_ldap.so

            account    required   pam_unix.so

           

            password   sufficient pam_ldap.so nullok md5

            password   required   pam_unix.so nullok obscure min=4 max=8 md5

           

            session    required   pam_unix.so

            session    optional   pam_lastlog.so

            session    optional   pam_motd.so

            session    optional   pam_mail.so standard noenv

 

SELECTION DE MODULES PAM ADDITIONNELS

Radius : module PAM associé à FreeRADIUS Server

  http://www.freeradius.org/pam_radius_auth

 

OTP: (One-time password) authentification

    * pam_sotp: http://www.cavecanen.org/cs/projects/pam_sotp/

    * module PAM-OPIE : http://www.tho.org/~andy/pam-opie.html

      voir aussi http://www.inner.net/pub/opie

    * OTPW (http://www.cl.cam.ac.uk/~mgk25/otpw.html)

   

USB dongle: http://usbauth.delta-xi.net/doku.php

     placer une clé USB pour eviter de taper les mdp

 

PAM BlueTooth: idem avec un peripehrique BlueTooth

    http://pam.0xdef.net/     

 

authentification base de données SQL:

   * Postgres SQL http://www.kernel.org/pub/linux/libs/pam/pre/modules

                  http://freshmeat.net/projects/pam_pgsql/download

   * MySQL        http://sourceforge.net/projects/pam-mysql/                  

 

pam_require: module de type "account" qui permet de limiter à un utilisateur

    ou un groupe l'accès à un service (par exemple sur pam pour SSH limité

    à un groupe admin et à root)

 

pam_user_auth: permet different type d'authentification selon l'utilisateur

    http://www-dev.cites.uiuc.edu/pam/

 

pam_ldap : permet d'effectuer l'authentification sur une base ldap.

   

REFERENCES

page Linux-PAM

      http://www.kernel.org/pub/linux/libs/pam/

 

PAM CRACKLIB

http://www.kernel.org/pub/linux/libs/pam/Linux-PAM-html/sag-pam_cracklib.html

 

Le guide Administrateur Systeme de Linux PAM

  http://www.kernel.org/pub/linux/libs/pam/Linux-PAM-html

 

La liste des modules Linux-PAM

  http://www.kernel.org/pub/linux/libs/pam/modules.html

 

 

 
Suivant >
 

Navigation
Home
Contacts
Développement
Logistique de projet
Bases de données
Systèmes
Réseaux & Télécom
Outils
Reliques
Téléchargement
Recherche
Plan du site
Administration
Agenda Online
Page cours IUT GTR
Login





Mot de passe oublié ?
Visites

Sites amis
View Nadir BOUSSOUKAIA's profile on LinkedIn
Mes photos