PAM Pluggable Authentication Modules. Introduction. PAM: c est quoi? Les origines. user-authentication API. UNIX authentication framework



Documents pareils
Active Directory. Structure et usage

Client Debian Squeeze et serveur SambaEdu3

Introduction...3. Objectif...3. Manipulations...3. Gestion des utilisateurs et des groupes...4. Introduction...4. Les fichiers de base...

Instructions pour mettre à jour un HFFv2 v1.x.yy v2.0.00

L'AAA, késako? Bruno Bonfils, fr.org>, Novembre Sous ce terme d'apparence barbare est regroupé l'ensemble des concepts suivants :

NOTICE INSTALLATION. ARCHANGE WebDAV Office N&B/Couleur KONICA MINOLTA BUSINESS SOLUTIONS FRANCE

SSH, le shell sécurisé

Micro-ordinateurs, informations, idées, trucs et astuces utiliser le Bureau à distance

Sécurité des systèmes d exploitation

Le protocole FTP (File Transfert Protocol,

Administration et Architectures des Systèmes

Single Sign-On open source avec CAS (Central Authentication Service) Vincent Mathieu Pascal Aubry Julien Marchal

Authentification des utilisateurs avec OpenLDAP

Paxton. ins Net2 desktop reader USB


Les différentes méthodes pour se connecter

calls.paris-neuroscience.fr Tutoriel pour Candidatures en ligne *** Online Applications Tutorial

Utiliser Améliorer Prêcher. Introduction à LDAP

Annuaire LDAP + Samba

Instructions Mozilla Thunderbird Page 1

SECURITE. Figure 1. Incident réseau, source CERT. Nombre. Sécurité

RULE 5 - SERVICE OF DOCUMENTS RÈGLE 5 SIGNIFICATION DE DOCUMENTS. Rule 5 / Règle 5

1 Configuration des Fichiers Hosts, Hostname, Resolv.conf

How to Login to Career Page

Ocs Inventory et GLPI s appuie sur un serveur LAMP. Je vais donc commencer par installer les paquets nécessaires.

Notice Technique / Technical Manual

FTPS AVEC UNE APPLIANCE FAST360 EN COUPURE. Table des matières

NOTICE INSTALLATION. ARCHANGE Simplex Office N&B/Couleur KONICA MINOLTA BUSINESS SOLUTIONS FRANCE

Contenu. Cocher : Network Policy and Access Services > Next > Next. Cocher : Network Policy Server > Next > Install

Kerberos en environnement ISP UNIX/Win2K/Cisco

sshgate Patrick Guiran Chef de projet support

Supervision et infrastructure - Accès aux applications JAVA. Document FAQ. Page: 1 / 9 Dernière mise à jour: 15/04/12 16:14

Sécurité des applications web. Daniel Boteanu

THE LAW SOCIETY OF UPPER CANADA BY-LAW 19 [HANDLING OF MONEY AND OTHER PROPERTY] MOTION TO BE MOVED AT THE MEETING OF CONVOCATION ON JANUARY 24, 2002

arcopole Studio Annexe 4 Intégration LDAP et processus d authentification Site du programme arcopole :

OUTIL DE TRAVAIL COLLABORATIF

OWASP Open Web Application Security Project. Jean-Marc Robert Génie logiciel et des TI

INSTALLATION DE WINDOWS 2000 SERVER POUR BCDI3. par. G.Haberer, A.Peuch, P.Saadé

HAUTE DISPONIBILITÉ DE MACHINE VIRTUELLE AVEC HYPER-V 2012 R2 PARTIE CONFIGURATION OPENVPN SUR PFSENSE

Contents Windows

INFO-F-404 : Techniques avancées de systèmes d exploitation

Administration Linux - FTP

Guide d'installation rapide TFM-560X YO.13

Guide d installation de Sun Desktop Manager 1.0

WEB page builder and server for SCADA applications usable from a WEB navigator

Fiche Produit TSSO Extension Mobility Single Sign-On

TABLE DES MATIERES A OBJET PROCEDURE DE CONNEXION

Déploiement de SAS Foundation

Acce s aux applications informatiques Supply Chain Fournisseurs

VTP. LAN Switching and Wireless Chapitre 4

Nouveautés printemps 2013

COURS 5 Mettre son site en ligne! Exporter son site avec WordPress Duplicator Installer un logiciel FTP Faire le suivi des visites de son site avec

Module 7 : Configuration du serveur WEB Apache

TP : Introduction à TCP/IP sous UNIX

Installation et mise en œuvre de OpenSSH sous AIX 5L

TP LINUX : LINUX-SAMBA SERVEUR DE FICHIERS POUR UTILISATEURS WINDOWS

Practice Direction. Class Proceedings

AMENDMENT TO BILL 32 AMENDEMENT AU PROJET DE LOI 32

L Authentification de Librex dans Active Directory (Kerberos)

Journées MATHRICE "Dijon-Besançon" DIJON mars Projet MySafeKey Authentification par clé USB

Gestion des journaux

WDpStats Procédure d installation

Client windows Nagios Event Log

Surveillance de Scripts LUA et de réception d EVENT. avec LoriotPro Extended & Broadcast Edition

Outils d'analyse de la sécurité des réseaux. HADJALI Anis VESA Vlad

Sauvegarde avec R1Soft Guide de mise en route

ONTARIO Court File Number. Form 17E: Trial Management Conference Brief. Date of trial management conference. Name of party filing this brief

Vanilla : Virtual Box

API SMS HTTP REST. Intégrer facilement le service Envoyer SMS Pro avec votre application métier. Version : Révision : 03/09/2014 Page 1/31

Installation. du serveur SCRIBE virtuel d'amonecole

Lieberman Software Corporation

AVIS DE COURSE. Nom de la compétition : CHALLENGE FINN OUEST TOUR 3 Dates complètes : 14, 15 et 16 mai 2015 Lieu : Saint Pierre Quiberon

Server Administrator Guide d'installation de la version 7.4

Conférence technique sur Samba (samedi 6 avril 2006)

Mise en place d annuaires LDAP et utilisation dans plusieurs applications

Atelier La notion de session utilisateur sous Linux

Couche application. La couche application est la plus élevée du modèle de référence.

AIDE FINANCIÈRE POUR ATHLÈTES FINANCIAL ASSISTANCE FOR ATHLETES

that the child(ren) was/were in need of protection under Part III of the Child and Family Services Act, and the court made an order on

Dates and deadlines

titre : CENTOS_CUPS_install&config Système : CentOs 5.7 Technologie : Cups Auteur : Charles-Alban BENEZECH

Table des matières. 1. Installation de VMware ESXI Pré-requis Installation... 3

IceWarp serveur sur Linux : Guide d'installation

Compléter le formulaire «Demande de participation» et l envoyer aux bureaux de SGC* à l adresse suivante :

Discours du Ministre Tassarajen Pillay Chedumbrum. Ministre des Technologies de l'information et de la Communication (TIC) Worshop on Dot.

Differential Synchronization

3615 SELFIE. HOW-TO / GUIDE D'UTILISATION

DELL E6500 : Remplacement du disque dur d origine par un disque dur chiffrant

Plan. Le système de transfert de fichiers d'internet. Introduction aux systèmes de transfert de fichiers Le protocole FTP.

Introduction. Pourquoi LTSP? Comment fonctionne-t-il? CIP Kevin LTSP BTS SIO

Transport Layer Security (TLS) Guide de mise en œuvre. Version: 1.0

English Q&A #1 Braille Services Requirement PPTC Q1. Would you like our proposal to be shipped or do you prefer an electronic submission?

First Nations Assessment Inspection Regulations. Règlement sur l inspection aux fins d évaluation foncière des premières nations CONSOLIDATION

Le No.1 de l économie d énergie pour patinoires.

Academic Project. B2- Web Development. Resit Project. Version 1.0 Last update: 24/05/2013 Use: Students Author: Samuel CUELLA

Association les DAUPHINS. Club des Dauphins. Régate des Bancs de Flandre Dunkerque 19 & 20 septembre Avis de course

lundi 3 août 2009 Choose your language What is Document Connection for Mac? Communautés Numériques L informatique à la portée du Grand Public

Transcription:

PAM: c est quoi? PAM Pluggable Authentication Modules Loris Renggli user-authentication API UNIX authentication framework définit un mécanisme d authentification standard Linux-PAM, OpenPAM EPFL SB SB-IT 2010-05-27 PAM L. Renggli 3 100527 Les origines Sun, OSF RFC en 1995 Introduction CDE (Common Desktop Environment) Red Hat 1996 puis les autres (AIX FreeBSD NetBSD HP-UX MacOSX...) PAM L. Renggli 2 100527 PAM L. Renggli 4 100527

PAM: pourquoi? Authentification Sans PAM: Une authentification, c est: chaque application utilise sa propre authentification (login, ftp, telnet,...) les modifications de l authentification nécessitent une recompilation identifier authentifier autoriser PAM L. Renggli 5 100527 PAM L. Renggli 7 100527 PAM: pourquoi? Authentification PAM Avec PAM: Une authentification PAM, c est: unification (standardisation) de l authentification pas de recompilation configuration individuelle des applications possible changement de configuration sans redémarrage des services identifier, authentifier: auth autoriser: account, session Et en plus: changement de mot de passe: password PAM L. Renggli 6 100527 PAM L. Renggli 8 100527

Authentification PAM PAM définit quatre types de tâches pour contrôler l authentification. identifier, authentifier: auth typiquement: nom d utilisateur et mot de passe autoriser: account, session la tâche account est utilisé pour contrôler la validité du compte (mot de passe expiré? restriction d horaire? etc) la tâche session définit les actions à effectuer en début de session (environnement, créer/monter home directory, etc) Configuration changement de mot de passe: password Chaque module PAM assure au moins une des tâches auth, account, session, password. Certains modules implémentent toutes les tâches (comme pam_unix). PAM L. Renggli 9 100527 PAM L. Renggli 11 100527 OpenSuSE 11.1 Configuration dans /etc/pam.d, un fichier par application. $ ls /etc/pam.d atd kcheckpass sshd chage login su chfn login.old su-l chsh other sudo common-account passwd useradd common-auth polkit vmtoolsd common-password ppp vmware-guestd common-session rpasswd xdm crond shadow xdm-np cups smtp PAM L. Renggli 10 100527 PAM L. Renggli 12 100527

Par exemple, sshd contient: #%PAM-1.0 auth requisite pam_nologin.so auth include common-auth account include common-account password include common-password session required pam_loginuid.so session include common-session Contrôle requisite module nécessaire; un échec provoque l arrêt immédiat du processus d authentification required module nécessaire; en cas d échec les modules restants de la pile sont exécutés malgré tout et common-auth: sufficient authentification réussie (sauf si échec précédent) auth required pam_unix2.so La pile auth est donc: optional succès ou échec pris en compte uniquement si c est l unique module de la pile auth requisite pam_nologin.so auth required pam_unix2.so PAM L. Renggli 13 100527 PAM L. Renggli 15 100527 Chaque ligne est de la forme: type control module-path module-arguments Les valeurs possibles pour control sont: requisite required sufficient optional Exemples La suite des directives pour un type donné forme une pile (stack). Cette pile est évaluée et son résultat final (réussite ou échec) détermine le résultat de l authentification. PAM L. Renggli 14 100527 PAM L. Renggli 16 100527

other sshd Si un service utilisant PAM n est pas configuré, alors il utilise la configuration par défaut other. auth required pam_deny.so account required pam_deny.so password required pam_deny.so session required pam_deny.so La pile sshd (inclusions faites) auth requisite pam_nologin.so auth required pam_unix2.so account required pam_unix2.so password requisite pam_pwcheck.so nullok cracklib password required pam_unix2.so use_authtok nullok session required pam_loginuid.so session required pam_limits.so session required pam_unix2.so session optional pam_umask.so PAM L. Renggli 17 100527 PAM L. Renggli 19 100527 other sshd restreint On peut rajouter des messages dans syslog. auth required pam_deny.so auth required pam_warn.so account required pam_deny.so password required pam_deny.so password required pam_warn.so session required pam_deny.so Pour configurer sshd de façon à ce que seules certaines connexions distantes soient autorisées, il suffit d ajouter une ligne de type account. account required pam_unix2.so account required pam_access.so La configuration se trouve dans le fichier access.conf du directory /etc/security; par exemple, + : ALL : 128.178. + : renggli : ALL - : ALL : ALL PAM L. Renggli 18 100527 PAM L. Renggli 20 100527

sshd groupes autorisés Modules courants Le module pam_listfile permet d appliquer divers critères. On peut par exemple n autoriser que le login pour les utilisateurs d un groupe donné ainsi: auth required pam_listfile.so item=group sense=allow \ file=/etc/security/groups.allow onerr=fail Le fichier groups.allow contient la liste des groupes autorisés. root sb-it Attention: si root n est pas listé, alors on ne peut plus faire de login root. Il y a une quarantaine de modules dans la distribution, et de nombreux modules indépendants. Voici une sélection des plus courants. pam_deny échec inconditionnel pam_permit succès inconditionnel pam_env initialisation de l environnement pam_lastlog enregistre le login pam_limits limite des processus pam_loginuid change l uid du processus de login pam_mail avertissement de mail au login PAM L. Renggli 21 100527 PAM L. Renggli 23 100527 sshd groupes non autorisés Similaire au cas précédent: auth required pam_listfile.so item=group sense=deny \ file=/etc/security/groups.deny onerr=succeed Le fichier groups.deny contient la liste des groupes non autorisés. www users pam_make lance make (p.ex. NIS) pam_nologin login interdit (fichier /etc/nologin) pam_pwcheck test du mot de passe (crack) pam_rootok utile pour que root soit autorisé pam_umask définir un umask du processus pam_unix2 authentification unix standard pam_warn message dans syslog pam_xauth transporte clefs xauth (p.ex. su) On peut combiner autorisation et interdiction. PAM L. Renggli 22 100527 PAM L. Renggli 24 100527

Plus complexe: RHEL4 Configuration avec LDAP; service login: #%PAM-1.0 auth required pam_securetty.so auth required pam_stack.so service=system-auth auth required pam_nologin.so account required pam_stack.so service=system-auth password required pam_stack.so service=system-auth # pam_selinux.so close should be the first session rule session required pam_selinux.so close session required pam_stack.so service=system-auth session required pam_loginuid.so session optional pam_console.so # pam_selinux.so open should be the last session rule session required pam_selinux.so open Contrôle complexe A la place d un mot clé, un contrôle peut prendre la forme: [valeur1=action1 valeur2=action2...] où valeurn est le code renvoyé par le module qui peut prendre 32 valeurs différentes (cf. la documentation), et actionn peut être: ignore, bad, die, ok, done, reset Ainsi, required est équivalent à [success=ok new_authtok_reqd=ok ignore=ignore default=bad] et requisite est équivalent à [success=ok new_authtok_reqd=ok ignore=ignore default=die] Donc dans le fichier précédent, le contrôle [default=bad success=ok user_unknown=ignore] est similaire à required, avec user_unknown=ignore en plus. PAM L. Renggli 25 100527 PAM L. Renggli 27 100527 Fichier system-auth: #%PAM-1.0 # This file is auto-generated. # User changes will be destroyed the next time authconfig is run. auth sufficient pam_unix.so likeauth nullok auth sufficient pam_ldap.so use_first_pass auth required pam_deny.so account required pam_unix.so broken_shadow account sufficient pam_localuser.so account sufficient pam_succeed_if.so uid < 100 quiet account [default=bad success=ok user_unknown=ignore] pam_ldap.so account required pam_permit.so password requisite pam_cracklib.so retry=3 password sufficient pam_unix.so nullok use_authtok md5 shadow password sufficient pam_ldap.so use_authtok password required pam_deny.so session required pam_limits.so session required pam_unix.so session optional pam_ldap.so PAM L. Renggli 26 100527 #define PAM_SUCCESS 0 /* Successful function return */ #define PAM_OPEN_ERR 1 /* dlopen() failure when dynamically */ /* loading a service module */ #define PAM_SYMBOL_ERR 2 /* Symbol not found */ #define PAM_SERVICE_ERR 3 /* Error in service module */ #define PAM_SYSTEM_ERR 4 /* System error */ #define PAM_BUF_ERR 5 /* Memory buffer error */ #define PAM_PERM_DENIED 6 /* Permission denied */ #define PAM_AUTH_ERR 7 /* Authentication failure */ #define PAM_CRED_INSUFFICIENT 8 /* Can not access authentication data */ /* due to insufficient credentials */ #define PAM_AUTHINFO_UNAVAIL 9 /* Underlying authentication service */ /* can not retrieve authentication */ /* information */ #define PAM_USER_UNKNOWN 10 /* User not known to the underlying */ /* authenticaiton module */ #define PAM_MAXTRIES 11 /* An authentication service has */ /* maintained a retry count which has */ /* been reached. No further retries */ /* should be attempted */ #define PAM_NEW_AUTHTOK_REQD 12 /* New authentication token required. */ /* This is normally returned if the */ /* machine security policies require */ /* that the password should be changed */ /* beccause the password is NULL or it */ /* has aged */ #define PAM_ACCT_EXPIRED 13 /* User account has expired */ #define PAM_SESSION_ERR 14 /* Can not make/remove an entry for */ /* the specified session */ PAM L. Renggli 28 100527

#define PAM_CRED_UNAVAIL 15 /* Underlying authentication service */ /* can not retrieve user credentials */ /* unavailable */ #define PAM_CRED_EXPIRED 16 /* User credentials expired */ #define PAM_CRED_ERR 17 /* Failure setting user credentials */ #define PAM_NO_MODULE_DATA 18 /* No module specific data is present */ #define PAM_CONV_ERR 19 /* Conversation error */ #define PAM_AUTHTOK_ERR 20 /* Authentication token manipulation error */ #define PAM_AUTHTOK_RECOVERY_ERR 21 /* Authentication information */ /* cannot be recovered */ #define PAM_AUTHTOK_LOCK_BUSY 22 /* Authentication token lock busy */ #define PAM_AUTHTOK_DISABLE_AGING 23 /* Authentication token aging disabled */ #define PAM_TRY_AGAIN 24 /* Preliminary check by password service */ #define PAM_IGNORE 25 /* Ignore underlying account module */ /* regardless of whether the control */ /* flag is required, optional, or sufficient */ #define PAM_ABORT 26 /* Critical error (?module fail now request) */ #define PAM_AUTHTOK_EXPIRED 27 /* user s authentication token has expired */ #define PAM_MODULE_UNKNOWN 28 /* module is not known */ Références La documentation fournie avec PAM (man pages, /usr/share/doc) http://www.kernel.org/pub/linux/libs/pam/linux-pam-html #define PAM_BAD_ITEM 29 /* Bad item passed to pam_*_item() */ #define PAM_CONV_AGAIN 30 /* conversation function is event driven and data is not available yet */ #define PAM_INCOMPLETE 31 /* please call this function again to complete authentication stack. Before calling again, verify that conversation is completed */ PAM L. Renggli 29 100527 PAM L. Renggli 31 100527 Oops... PAM est le système d authentification, il faut donc être très précautionneux. Les choses à ne pas faire: tout interdire: auth required pam_deny.so tout autoriser: auth sufficient pam_permit.so autoriser beaucoup plus que l on croit: auth sufficient pam_unix.so auth sufficient pam_ldap.so (il manque la dernière ligne avec required pam_deny.so) Q/R PAM L. Renggli 30 100527 PAM L. Renggli 32 100527