Description de l'environnement



Documents pareils
Authentification des utilisateurs avec OpenLDAP

Description de la maquette fonctionnelle. Nombre de pages :

Kerberos/AD/LDAP/Synchro

Annuaire LDAP + Samba

INSTALLATION ET CONFIGURATION DE OPENLDAP

Utiliser Améliorer Prêcher. Introduction à LDAP

Institut Universitaire de Technologie

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

TELECOM- ANNEE 2003/2004

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

RTN / EC2LT Réseaux et Techniques Numériques. Ecole Centrale des Logiciels Libres et de Télécommunications

LDAP : pour quels besoins?

Déploiement d'un serveur ENT

LDAP et carnet d'adresses mail

OpenLDAP, un outil d administration Réseau. Une implémentation d OpenLDAP

Configuration d'un annuaire LDAP

M2-ESECURE Rezo TP3: LDAP - Mail

Imprimantes et partage réseau sous Samba avec authentification Active Directory

AUTHENTIFICATION MANAGEMENT

Outils Logiciels Libres

Serveur Linux : FTP. Mise en place d un service FTP sous Linux. Bouron Dimitri 20/04/2014

S28 - La mise en œuvre de SSO (Single Sign On) avec EIM (Enterprise Identity Mapping)

Annuaire LDAP, SSO-CAS, ESUP Portail...

Installation d'un Contrôleur Principal de Domaine SAMBA 4

OpenLDAP au quotidien: trucs et astuces

Simplifier l authentification avec Kerberos

Authentification unifiée Unix/Windows

A. À propos des annuaires

Déclarer un serveur MySQL dans l annuaire LDAP. Associer un utilisateur DiaClientSQL à son compte Windows (SSO)

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

Cours 420-KEG-LG, Gestion de réseaux et support technique. Laboratoire 06

Restriction sur matériels d impression

Introduction aux services de domaine Active Directory

L annuaire et le Service DNS

Déclarer un serveur MySQL dans l annuaire LDAP. Associer un utilisateur DiaClientSQL à son compte Windows (SSO)

LINUX Préparation à la certification LPIC-3 (examen LPI 300) - 2ième édition

Active Directory. Structure et usage

OpenLDAP. Astuces pour en faire l'annuaire d'entreprise idéal THÈME TECHNIQUE - ADMINISTRATION SYSTÈME. Jonathan CLARKE - jcl@normation.

Jeudis du libre, Samba ou comment donner le rythme aux stations Windows

Installation et configuration de Vulture Lundi 2 février 2009

Client Debian Squeeze et serveur SambaEdu3

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

Authentification des utilisateurs avec OpenLDAP et Samba 3.0

Réaliser un inventaire Documentation utilisateur

Déploiement de (Open)LDAP

Introduction aux services Active Directory

Mise en place d un proxy Squid avec authentification Active Directory

Kerberos, le SSO universel

Création d un contrôleur de domaine sous Linux

Synchronisation d'annuaire Active Directory et de base LDAP

Kerberos en environnement ISP UNIX/Win2K/Cisco

LP Henri Becquerel - Tours

DUT. Vacataire : Alain Vidal - avidal_vac@outlook.fr

Active Directory. Qu'est-ce qu'un service d'annuaire?

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

Méta-annuaire LDAP-NIS-Active Directory

Virtualisation d un proxy Squid gérant l authentification depuis Active Directory. EPI - Stagiaire2007 Vivien DIDELOT

PPe jaune. Domingues Almeida Nicolas Collin Leo Ferdioui Lamia Sannier Vincent [PPE PROJET FTP]

Architecture PKI en Java

Authentification sous Linux avec Kerberos

Classe et groupe : 1P 3 SEN TRI. Ubuntu : serveur Contrôleur de Domaine (PDC) avec SAMBA

But de cette présentation. Contrôleur de domaine avec Samba (rédigé pour Ubuntu Server) Introduction. Samba: principes

Installation UpdatEngine serveur (CentOs apache2 / MySQL)

SSH, le shell sécurisé

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

et Active Directory Ajout, modification et suppression de comptes, extraction d adresses pour les listes de diffusion

Afin d'éviter un message d'erreur au démarrage du service Apache du type :

Architecture de la plateforme SBC

Windows 2000 Server Active Directory

Couplage openldap-samba

Exposé Nouvelles Technologies et Réseaux LDAP 22/01/ Exposé Nouvelle Technologies Réseaux - LDAP. Lightweight Directory Access Protocol

Utilisation des services de noms et d'annuaire Oracle Solaris 11.2 : LDAP

Installation de la plate-forme Liberacces 2.0 «Intégrale» avec LiberInstall

TP HTTP. Université Pierre Mendès France U.F.R. Sciences de l Homme et de la Société Master IC²A

INDUSTRIALISATION «802.1X» CONFIG : 802.1X PEAP MSCHAPV2

Procédures informatiques administrateurs Création d un serveur FTP sous Linux

Cours 420-KEG-LG, Gestion de réseaux et support technique. Atelier No5-1



Serveur de partage de documents. Étude et proposition d'une solution afin de mettre en place un serveur de partage de documents.

Présentation de Active Directory

LES ACCES ODBC AVEC LE SYSTEME SAS

1 Configuration des Fichiers Hosts, Hostname, Resolv.conf

sshgate Patrick Guiran Chef de projet support

OpenLDAP, un outil d administration réseau. (Implémentation d openldap à l INRA de Rennes)

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

Protocoles utilisant des mécanismes d'authentification: TACACS+, RADIUS et Kerberos

Kerberos : Linux, Windows et le SSO

Administration et Architectures des Systèmes

OPTENET DCAgent Manuel d'utilisateur

COMMUNICATION TECHNIQUE N TCV060 Ed. 01. OmniVista 4760 Nb de pages : 18 Date : URGENTE NON URGENTE TEMPORAIRE DEFINITIVE

Vanilla : Virtual Box

Intégration de Cisco CallManager IVR et Active Directory

Serveur d impression CUPS

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

1. Authentification des utilisateurs - de LDAP à Kerberos Installation des serveurs Kerberos Installation du serveur CAS

Architecture pour un référentiel d'annuaire et d'authentification Single Sign On interopérable en environnement hétérogène

L Authentification de Librex dans Active Directory (Kerberos)

Transcription:

OpenLDAP et Kerberos mars 2013 Index Description de l'environnement...1 OpenLDAP... 1 Introduction...2 Historique...2 Terminologie... 2 Tcp/ip et openldap... 2 Installation sous Ubuntu 12.10... 2 Première configuration... 3 Arbre de base... 3 Extension de l'arbre...3 Ajout des utilisateurs...4 Contrôle de l'installation... 5 Configuration du client Linux...6 Kerberos... 7 Principes...7 Installation... 8 Configuration...8 Description de l'environnement OS : Ubuntu 12.10 OpenLDAP OpenLDAP fournit les services d'annuaires. Il s'agit d'un service qui permet de stocker des informations destinées à être souvent consultées et qui repose sur tcp/ip. C'est une version simplifiée du protocole x500. Un annuaire peut être assimilé à une base de données spécialisée dans l'accès et la présentation des informations. Il possède une structure arborescente constituée d'une racine, de branches et de feuilles. La nomenclature des différents éléments permet une représentation spatiale des éléments du réseau. La principale limitation dans un réseau réside dans la difficulté d'échanger des informations entre différents systèmes. Un annuaire est optimisé pour la recherche (lecture) et le stockage d'informations, et donc ne correspond pas à des données trop dynamiques. Le site de référence : http://www.openldap.org/

Introduction Historique 1989 : x500 1992 : LDAP (University of Michigan) 1993 : RFC 1487 1995 : Premiers serveurs LDAP 1998 : OpenLDAP version 1.0 2000 : OpenLDAP version 2.0 Terminologie ldap : dc : cn : dn : rdn : Lightweight Directory Access Protocol Domain Component Common Name Distinguished Name Relative Distinguished Name Tcp/ip et openldap Un client se connecte sur un serveur ldap qui normalement sur le port tcp 389, ou sur le port 636 en mode sécurisé. Il peut alors envoyer plusieurs requêtes et attend les réponses du serveur. Une fois terminé, il coupe la connexion. Installation sous Ubuntu 12.10 Voici la liste minimale des paquets à installer : slapd # le serveur ldap-utils # des outils ldap $ sudo apt-get install slapd ldap-utils Il faut spécifier le mot de passe de l'administrateur. Pour obtenir la liste des outils ldap installés, on utilise $ dpkg -L ldap-utils grep bin /usr/bin /usr/bin/ldapexop /usr/bin/ldappasswd /usr/bin/ldapdelete /usr/bin/ldapcompare /usr/bin/ldapsearch /usr/bin/ldapwhoami /usr/bin/ldapurl /usr/bin/ldapmodrdn /usr/bin/ldapmodify /usr/bin/ldapadd

Première configuration Arbre de base dc=local dc=gull cn=admin On reconfigure le paquet à l'aide de la commande suivante. $ sudo dpkg-reconfigure slapd Il faut alors répondre à une série de questions : Voulez-vous omettre la configuration d'openldap? Non Nom de domaine : gull.local Nom d'entité : linux Mot de passe de l'administrateur : gull (2x) Module de base de données à utiliser : HDB Faut-il supprimer la base de données à la purge du paquet? Oui Faut-il déplacer l'ancienne base de données? Oui Faut-il autoriser le protocole LDAPv2? Non Extension de l'arbre On désire agrandir notre structure de base et ajouter deux conteneurs et des utilisateurs/groupe dc=local dc=gull +----------------------+----------------------------+ cn=admin ou=users ou=groups? linux On peut utiliser des fichiers textes ldif pour remplir la base de données. $ cat base.ldif dn: ou=users,dc=gull,dc=local objectclass: organizationalunit ou: users description: Les Utilisateurs dn: ou=groups,dc=gull,dc=local objectclass: organizationalunit ou: groups description: Les Groupes Voici comment ajouter les enregistrements. $ ldapadd -x -D "cn=admin,dc=gull,dc=local" -W -f base.ldif Enter LDAP Password: adding new entry "ou=users,dc=gull,dc=local"

adding new entry "ou=groups,dc=gull,dc=local" Ajout des utilisateurs Pour faciliter la tâche, voici deux scripts, et une liste de noms d'utilisateur. $ cat useradd_ldap.sh #!/bin/sh DEFAULT_SHELL=/bin/bash i=10000 # start uidnumber DEFAULT_GID=10000 # default gidnumber DEFAULT_GROUPNAME=linux DEFAULT_HOME=/home/ DEFAULT_PASSWD=gull DEFAULT_ENCRYPT_PASSWD=$(/usr/sbin/slappasswd -h {CRYPT} -s $DEFAULT_PASSWD) # Users Organizational Unit USERS_OU="ou=users, dc=gull, dc=local" GROUPS_OU="ou=groups, dc=gull, dc=local" # while read text do UID=$(echo $text cut -d \ -f 1) NAME=$(echo $text cut -d \ -f 2) MAIL="${UID}.${NAME}@gull.local" UP_NAME=$(echo $NAME sed 's/^./\u&/') # Affichage echo "dn: cn=$uid $UP_NAME, $USERS_OU" # Distinguished Name (Unique) echo "cn: $UID $UP_NAME" # Common Name echo "uid: $UID" echo "sn: $UP_NAME" # Surename (Last Name) echo "mail: $MAIL" # Email echo "objectclass: top" echo "objectclass: person" echo "objectclass: organizationalperson" echo "objectclass: inetorgperson" echo "objectclass: posixaccount" echo "objectclass: shadowaccount" echo "userpassword: $DEFAULT_ENCRYPT_PASSWD" echo "uidnumber: $i" echo "gidnumber: $DEFAULT_GID" echo "gecos: $UID" echo "homedirectory: $DEFAULT_HOME$UID" echo "loginshell: $DEFAULT_SHELL" echo "shadowlastchange: 11547" echo "shadowmax: 99999" echo "shadowwarning: 7" echo # On augmente l'uidnumber i=$(expr $i + 1) # Membres du groupe MEMBER="$MEMBER,$UID" done < $1 # echo "dn: cn=$default_groupname, $GROUPS_OU" echo "cn: $DEFAULT_GROUPNAME" echo "objectclass: posixgroup" echo "objectclass: top" echo "gidnumber: $DEFAULT_GID" #

echo "memberuid: $(echo $MEMBER cut -b 2-)"... pour supprimer... $ cat userdel_ldap.sh #!/bin/sh # Users Organizational Unit USERS_OU="ou=users, dc=gull, dc=local" GROUPS_OU="ou=groups, dc=gull, dc=local" # while read text do UID=$(echo $text cut -d \ -f 1) NAME=$(echo $text cut -d \ -f 2 sed 's/^./\u&/') # Affichage echo "dn: cn=$uid $NAME, $USERS_OU" echo "changetype: delete" echo done < $1 echo "dn: cn=linux, $GROUPS_OU" echo "changetype: delete"... et voici une liste de noms. $ cat userlist.txt frodo baggins samwise gamgee meriadoc brandybuck peregrin took gandalf thewizard bilbo baggins Voici comment générer un fichier ldif à l'aide du script. $./useradd_ldap.sh userlist.txt > users.ldif Puis on ajoute les données. $ ldapadd -x -D "cn=admin,dc=gull,dc=local" -W -f users.ldif Enter LDAP Password: adding new entry "cn=frodo Baggins, ou=users, dc=gull, dc=local" adding new entry "cn=samwise Gamgee, ou=users, dc=gull, dc=local" adding new entry "cn=meriadoc Brandybuck, ou=users, dc=gull, dc=local" adding new entry "cn=peregrin Took, ou=users, dc=gull, dc=local" adding new entry "cn=gandalf Thewizard, ou=users, dc=gull, dc=local" adding new entry "cn=bilbo Baggins, ou=users, dc=gull, dc=local" adding new entry "cn=linux, ou=groups, dc=gull, dc=local" Contrôle de l'installation Pour tester, on peut le faire en local... $ ldapsearch -x -b "dc=gull, dc=local" "objectclass=*"

$ ldapsearch -x -b "dc=gull, dc=local" "objectclass=inetorgperson" $ ldapsearch -x -b "dc=gull, dc=local" "ou=users" $ ldapsearch -x -b "dc=gull, dc=local" "dc=*local" $ ldapsearch -x -b "dc=gull, dc=local" "cn=*"... mais aussi de loin à l'aide du switch -H... $ ldapsearch -H ldap://<ip_ldap_srv> -x -b "dc=gull, dc=local" "objectclass=*" $ ldapsearch -H ldap://<ip_ldap_srv> -xlll -b "dc=gull, dc=local" uid=frodo sn givenname cn Pour obtenir l'arbre entier, on peut utiliser la commande slapcat $ sudo slapcat Configuration du client Linux Sur le client, il faut ajouter les paquets suivants : auth-client-config libnss-ldap $ sudo apt-get install auth-client-config libnss-ldap Le paquet auth-client-config facilite la gestion de l'authentification. $ sudo auth-client-config -a -p ldap_example La commande ne fait que de modifier les modules pam d'authenfication. On corrige /etc/ldap.conf nss_base_passwd ou=users,dc=gull,dc=local?one nss_base_shadow ou=users,dc=gull,dc=local?one nss_base_group ou=groups,dc=gull,dc=local?one On corrige juste un peu... cette ligne permet la création automatique des répertoires utilisateurs. $ sudo vim /etc/pam.d/common-session... session required pam_limits.so session required pam_unix.so session required pam_mkhomedir.so skel=/etc/skel/ session optional pam_ldap.so On peut alors voir le résultat à l'aide de $ getent passwd La liste doit contenir les enregistrements LDAP

Kerberos Système d'authentification réseau qui permet une vérification unique de connexion. sécurité signature unique serveur de confiance authentification mutuelle Constituant de base des systèmes Windows 2000 ADS + Windows 2003 ADS, il a été classé secret défense et l'exportation de certains algorithmes est sous contrôle des autorités américaines. Aussi, il existe deux branches distinctes, Kerberos du MIT, et la version européenne, développée par l'université de Heimdal. La deuxième version provient du travail de réécriture des fonctions interdites d'exportation. On comprend mieux maintenant pourquoi certaines distributions (Debian par exemple) possèdent des branches US et non-us. Notions comlémentaires LDAP, Lightweight Directory Access Protocol SASL, Simple Authentification and Security Layer GSSAPI, Generic Security Services API PAM, sert de couche d'abstraction d'authentification au niveau des applicatifs. NSS, Name Service Switch Principal, une entrée dans la base de Kerberos Distinguished Name, une entrée dans la base LDAP Principes KDC Le principe d'encryption des mots de passe est basée sur une partie salt. C'est à dire une partie que l'on ajoute au nom d'utilisateur pour crypter le mot-de-passe. Dans Kerberos on utilise le nom de domaine. Une authentification ne nécessite pas d'identifier le client au préalable, on envoie un TGT (Ticket Granting Ticket) crypté avec le mot-de-passe du client et seul sa clé permet de le décrypter. On peut faire une demande pour un service précis à l'aide de son tiquet. Un autre tiquet sert alors d'autorisation. Les tiquets sont des données encryptées qui ont pour buts de confirmer l'identité échanger une clé volatile de cryptage Ils contiennent les informations suivantes nom de l'utilisateur nom du serveur principal date de validité liste d'adresses IP valides clé secre te de cryptage Ils ont une durée limitée, en général entre 10 et 24 heures. Il existe un répertoire de cache des tiquets.

Installation $ sudo apt-get install krb5-kdc krb5-admin-server Configuration On modifie le fichier /etc/krb5.conf... voici une version épurée de tous commentaires. # cat /etc/krb5.conf [libdefaults] default_realm = GULL.LOCAL [realms] GULL.LOCAL = { kdc = kdc.gull.local admin_server = kdc.gull.local } [domain_realm].gull.local = GULL.LOCAL gull.local = GULL.LOCAL [login] krb4_convert = true krb4_get_tickets = false Initialisation # kdb5_util create -s Loading random data Initializing database '/var/lib/krb5kdc/principal' for realm 'GULL.LOCAL', master key name 'K/M@GULL.LOCAL' You will be prompted for the database Master Password. It is important that you NOT FORGET this password. Enter KDC database master key: Re-enter KDC database master key to verify: Gestion des principals # kadmin.local Authenticating as principal root/admin@gull.local with password. kadmin.local: list_principals K/M@GULL.LOCAL kadmin/admin@gull.local kadmin/changepw@gull.local kadmin/localhost@gull.local krbtgt/gull.local@gull.local Ajout d'un principal kadmin.local: addprinc frodo/admin WARNING: no policy specified for frodo/admin@gull.local; defaulting to no policy Enter password for principal "frodo/admin@gull.local": Re-enter password for principal "frodo/admin@gull.local": Principal "frodo/admin@gull.local" created. Pour finir la session...

kadmin.local: quit Démarrage du service # /etc/init.d/krb5-kdc start Obtenir un ticket # kinit frodo/admin Password for frodo/admin@gull.local: # klist Ticket cache: FILE:/tmp/krb5cc_0 Default principal: frodo/admin@gull.local Valid starting Expires Service principal 04. 03. 13 06:54:14 04. 03. 13 16:54:14 krbtgt/gull.local@gull.local renew until 05. 03. 13 06:54:10 Modifier l'acl # nano /etc/krb5kdc/kadm5.acl frodo/admin@gull.local * On redémarre le serveur... # /etc/init.d/krb5-admin-server restart Pour obtenir la liste des commandes de kadmin. # kadmin Authenticating as principal frodo/admin@gull.local with password. Password for frodo/admin@gull.local: kadmin:? Available kadmin requests: add_principal, addprinc, ank Add principal delete_principal, delprinc Delete principal modify_principal, modprinc Modify principal rename_principal, renprinc Rename principal change_password, cpw Change password get_principal, getprinc Get principal list_principals, listprincs, get_principals, getprincs List principals add_policy, addpol Add policy modify_policy, modpol Modify policy delete_policy, delpol Delete policy get_policy, getpol Get policy list_policies, listpols, get_policies, getpols List policies get_privs, getprivs Get privileges ktadd, xst Add entry(s) to a keytab ktremove, ktrem Remove entry(s) from a keytab lock Lock database exclusively (use with extreme caution!)

escamotage d'une ligne purgekeys Purge previously retained old keys from a principal get_strings, getstrs Show string attributes on a principal set_string, setstr Set a string attribute on a principal del_string, delstr Delete a string attribute on a principal list_requests, lr,? List available requests. quit, exit, q Exit program.