presentation new1
DESCRIPTION
NoB presenteTRANSCRIPT
Moussa GAYE Cheikh DIAGNE
[email protected] [email protected]
1
UAHB
AUTHENTIFICATION LDAP ET KERBEROS
présenté par
IntroductionPrésentation de LdapRôle de LdapLimites de LdapSolution KerberosImplémentationsConclusion
Plan
Introduction
IntroductionLes services que nous devons rendre aux utilisateurs de notre réseau sont divers et variés. Un point primordiale est l’authentification. Il constitue le premier service rendu, le plus utilisé, mais aussi l’un de nos plus gros problèmes.
Ainsi plusieurs solutions ont émergées parmi les quelles Samba ; Active Directory ou Ldap en présentant aux utilisateurs un identifiant unique : login/mot de passe. Cependant à tour de rôle ils ont chacun montrés leurs limites soit du point de vue de la sécurité ; soit de la taille du réseau ; soit de la lourdeur de traitement.
Il faut donc fournir aux usagers un service Single Sign On (SSO) c’est-à-dire s’authentifier qu’une seule fois et qu’après tous les services compatibles ne redemandent pas une authentification :il s’agit de Kerberos avec son service de ticket
Présentation de Ldap
Présentation de LDAP
Chaque entrée est référencée de manière unique dans le DIT (Directoty Information Tree) par son distinguished name (DN). Le DN représente le nom de l'entrée sous la forme du chemin d'accès à celle-ci depuis le sommet de l'arbre. On peut comparer le DN au path d'un fichier Unix. CN (common name), il s'agit du nom de la personne OU (organizational unit), il s'agit du service de l'entreprise à laquelle appartient la personne O (organization), il s'agit de l'entreprise de la personne, DC (Domain Country) il du nom de domaine de l’entreprise.
Ldap est un protocole d’accès a un annuaire. Il est caractérisé par un accès rapide mais des mise à jours lentes. Il présente une structure d’arborescence et l’échange des données se fait le langage de recherche LDIF (LDAP Data Interchange Format)
Présentation de Ldap
Présentation de LDAP
Schéma LDAP
.sn
UAHB UCAD estm
GestionScience Droit
Master IIMaster ILicence
CheikhMoussaAbabacar
Root
DC
O
OU
CN
DIT
Rôle de Ldap
Rôle de LDAP
Initialement, Ldap pour Lightweight Directory Access Protocol est un frontal d’accès à des bases d’annuaires X500. Il devient natif (standalone Ldap) utilisant sa propre base de données sous l’impulsion d’un groupe de l’université de Michigan. Ldap définit :Un protocole d’accès
Un modèle d’informationUn modèle de nommageUn modèle fonctionnel
Un modèle de sécurité
Un modèle de duplication
Des API pour développer des applications clientesDes LDIF un format d’échange de données
Rôle de Ldap
Rôle de LDAP
Le protocole définit :
Comment s’établit la communication client serveur: commande pour se connecter se déconnecter, chercher, comparer, créer, modifier ou effacer des entrées.
Comment s’établit la communication serveur serveur : échanger leur contenu, synchroniser, créer des liens permettant de relier des annuairesLe format de transport des données et mécanisme de sécurité: méthodes de chiffrement et d’authentification, mécanismes de règles d’accès au donnéesLes opérations de base à savoir interrogation (search, compare), mise à jour (add, delete, modify, rename), connexion au service (bind, unbind,abandon)
Rôle de Ldap
Rôle de LDAP
Établissement de la connexion, échange et déconnexion entre un server Ldap et un client Ldap
Limites de Ldap
Limites de LDAP
Lorsque qu’un système d’authentification est architecturé autour de l’annuaire Ldap, le service est réalisé par un fast bind sur l’annuaire du couple uid/password . Ainsi :
les clients Unix se base sur le module pam_ldap ;
Les clients Windows XP utilise le module pgina;
Les montages NFS sont effectués sans authentification;
Les applications web sont CASifiées;
Les clients Windows impriment via des montages smb
Les clients Unix impriment via pam_ldap
Ldap est très adapté dans des environnements mixtes et est le plus disponible cependant:
Limites de Ldap
Limites de LDAP
Les mots de passe des usagers doivent impérativement être acheminer en clair depuis les postes de travail qui hébergent ses services jusqu’aux serveurs Ldap chargés des opérations de contrôle.
L’utilisation de Ldaps (Ldap sur TLS) permet de contourner ce problème puisque impose une session TLS avant tout dialogue Ldap.
Aussi pour chaque service il faut une réauthentification, ce parfois mal vu par l’usager car a chaque fois c’est le même couple uid/password à remettre ; mais aussi même si les mots de passe sont cryptés et que en théorie le chiffrement est non réversible une comparaison du mots de passe avec une table de mots de passe déjà utilisés est possible avec une telle fréquence de passage des mots de passe utilisateurs
Solution Kerberos
Solution Kerberos
Kerberos est un protocole d'authentification réseau qui repose sur un mécanisme de clés secrètes (chiffrement symétrique ) et l'utilisation de tickets, et non de mots de passe en clair, évitant ainsi le risque d'interception frauduleuse des mots de passe des utilisateurs. Créé au Massachusetts Institute of Technology (MIT), il porte le nom grec de Cerbère, gardien des Enfers (un chient à 3 tête). Kerberos fonctionne en environnement hétérogène, assurant la sécurité des échanges sur un réseau non sûr et permettant la mise en place d'un véritable service d'authentification unique. Kerberos utilise un système de chiffrement symétrique pour assurer un dialogue sécurisé entre deux protagonistes. Les dialogues s'opèrent en utilisant une clef secrète et partagée. Les algorithmes de chiffrement sont publics (AES, DES, 3DES, ...), toute la sécurité du système repose sur la confidentialité de la clef de chiffrement. Pour faciliter la gestion d'un tel système, Kerberos repose sur l'utilisation d'un tiers de confiance qui distribue les clefs aux utilisateurs et services abonnés (les principals). Un serveur Kerberos est appelé KDC
Présentation de Kerberos
Solution Kerberos
Solution Kerberos
Kerberos est un service sûr qui assure la confidentialité, l'intégrité des données ainsi que la non-répudiation . Le service d'authentification assure l'identification unique du client et lui procure un ticket de session . Kerberos assure deux fonctionnalités : le service d'authentification et de délivrement de tickets de services.
KDC : Key Distribution Center : base de données des clients et serveurs ainsi que les clés privées.
Principal : triplet composé du Primary name, l’insistance et Realm. Primary name : nom d’utilisateur ou du service Insistance : rôle ou groupe du Primary Realm : domaine d’administration associé à un serveur Kerberos
Client : entité pouvant obtenir un ticket
Ticket : crédit temporaire permettant de vérifier l’identité du détenteur
TGT : ticket particulier permettant au détenteur d’obtenir d’autres tickets pour le même données
TGS (Ticket Garanting Service) : c’est le service d’émission de tickets
Le TGS reçoit alors son ticket et il peut le déchiffrer avec sa clé secrète KTGS Le TGS peut alors émettre un ticket d'accès au serveur. Ce ticket est chiffré grâce à la clé secrète du serveur KS
Solution KerberosFonctionnement de Kerberos
KDC
Kc, Ktgs
TGS
Ks, Ktgs
Client
Kc
Serveur
Ks
11’
2’2
3
Le client envoie son nom au
serveur de clés et lui indique le
TGS qui l'intéresse
Après vérification sur l'identité du client le serveur
de clés lui envoie alors un ticket TTGS. Ce ticket autorise le client à faire des requêtes
auprès du TGS.
le client envoie une demande de ticket auprès du TGS. Cette requête contient un identifiant chiffré avec la clé de session Le client envoie aussi le ticket qui lui avait été transmis par le serveur de clés.
Le client reçoit le ticket pour accéder aux services kerberisés du serveur ainsi que l'information chiffrée contenant la clé de session entre lui et le serveur. Le serveur vérifie que le ticket est valide (il le déchiffre avec sa clé secrète KS) et autorise l'accès au service si tout est correct.
Solution Kerberos
Solution Kerberos
Sécurité de Kerberos
Une fois qu'un client s'est identifié, celui-ci obtient un ticket (généralement, un fichier texte - mais son contenu peut aussi être stocké dans une zone de mémoire sécurisée). Le ticket joue le rôle d'une carte d'identité à péremption assez courte, huit heures généralement. Si nécessaire, celui-ci peut être annulé prématurément. Sous les systèmes Kerberos c’est via la commande « kdestroy ».
La sécurité de Kerberos repose sur la sécurité des différentes machines qu'il utilise. Une attaque sur le serveur de clés serait dramatique car elle pourrait permettre à l'attaquant de s'emparer des clés privées des clients et donc de se faire passer pour eux. Un autre problème qui pourrait survenir sur la machine du client est le vol des tickets. Ils pourraient être utilisés par une tierce personne pour accéder aux services offerts par les serveurs (si la clé entre le client et le serveur est connue).
Solution Kerberos
Solution Kerberos
Sécurité de Kerberos
L'avantage de Kerberos est de limiter le nombre d'identifiants et de pouvoir travailler sur un réseau non-sécurisé. Les identifications sont uniquement nécessaires pour l'obtention de nouveaux tickets d'accès au TGS.
L'expiration du ticket permet de limiter les problèmes liés au vol des tickets. De plus, un ticket peut contenir l'adresse IP du client et le ticket n'est alors valable que s'il est employé depuis cette IP (ce champ est toutefois optionnel dans Kerberos, qui peut tout à fait être utilisé sur un réseau attribuant dynamiquement les IP au travers de DHCP). Une attaque sur les identifiants échouera car Kerberos leur ajoute un élément. Cela évite les attaques par renvoi d'identifiants qui auraient été interceptés. Les serveurs conservent l'historique des communications précédentes et peuvent facilement détecter un envoi frauduleux.
Implémentation
Implémen-
tation
Implémentation de Ldap
1 - Vérification des RPMs à installer pour la configuration d’openldap
2 - Vérification des RPMs à installer pour la configuration du DNS
Implémentation
Implémen-
tation
2 - Configuration du DNS: declarations de la zone direct
et inverse dans /etc/named.conf
Implémentation
Implémen-
tation
Configuration du fichier zone directe: on édite le fichier /etc/var/named/admin.zone
Configuration de la zone indirecte: on édite le fichier /etc/var/named/minda.zone
Implémentation
Implémen-
tation
éditer le fichier /etc/resolv.conf ; y renseigner l’adresse
Ip et le nom de domaine du serveur DNS
Faire des test pour voir si notre serveur marche mais
avant il faut penser à redemarrer le service named
Implémentation
Implémen-
tation
Éditer le fichier /etc/openldap/slapd.conf
Implémentation
Implémen-
tation
On peut crypter le mot de passe Ldap en exécutant la commande suivante
Pour les modification en compte on redémarre le service Ldap
On peut ainsi démarrer la migration des fichiers
/etc/passwd et /etc/group ; éditer le fichier suivant :
Implémentation
Implémen-
tation
Implémentation
Implémen-
tation
On exporte les fichiers d’authentification /etc/passwd et
/etc/group en des fichiers .ldif compréhensible par Ldap
pour l’échange de données
On crée le fichier que l’on nomme /tmp/temps.ldif dans
lequel est défini l’arborescence ou la structure de notre
serveur Ldap : on fait : #vim /tmp/temps.ldif
Implémentation
Implémen-
tation
On le renseigne au serveur Ldap
Implémentation
Implémen-
tation
On édite le fichier /etc/ldap.conf
Implémentation
Implémen-
tation
Éditer le fichier /etc/nsswitch.conf
Éditer le fichier /etc/pam.d/login
Implémentation
Implémen-
tation
Éditer le fichier /etc/pam.d/su
Éditer le fichier /etc/pam.d/gdm
Implémentation
Implémen-
tation
Ajouter un nouvel utilisateur : vim /tmp/newuser.ldif
Ajouter un nouvel groupe : vim /tmp/newgroup.ldif
Implémentation
Implémen-
tation
Renseigner le nouvel groupe et le nouvel utilisateur à
l’annuaire Ldap par les commandes suivantes:
Implémentation
Implémen-
tation
on donne à l’utilisateur dchico tous les droits sur son répertoire et on configure Ldap et httpd afin qu’ils soient à START au démarrage ; puis on redémarre le serveur avec la commande reboot
Et nous voyons qu’après redémarrage , le serveur nous demande de nous connecter avec le mot de passe Ldap
Implémentation
Implémen-
tation
Implémentation de la solution Kerberos
Vérification des paquets à utiliser
Modifiez les fichiers de configuration /etc/krb5.conf et /var/kerberos/krb5kdc/kdc.conf afin qu'ils reflètent le nom de votre zone (realm) et les mappages domaine-zone.
Editons le fichier : vim /etc/krb5.conf
Implémentation
Implémen-
tation
Implémentation
Implémen-
tation
Ensuite : vim /var/kerberos/krb5kdc/kdc.conf
Implémentation
Implémen-
tation
Ensuite on passe à la création de la base de données Kerberos en exécutant :
/usr/kerberos/sbin/kdb5_util create -s
Voila la base de données est ainsi créée. Pour le voir on fait un « ls » du répertoire /var/kerberos/krb5kdc/
Implémentation
Implémen-
tation
Maintenant on passe à la définition des administrateurs de la base de donnée kerberos
Pour cela éditons : vim /var/kerberos/krb5kdc/kadm5.acl
On ajoute les users (principal) définis dans le fichier précédent. Pour cela exécuter sur le KDC pour administrer la base de donnée kerberos : kadmin.local
Implémentation
Implémen-
tation
Ajout d’un autre principal
Vérifions les différents principaux en exécutant toujours kadmin.local puis listprincs
Implémentation
Implémen-
tation
A noter que pour administrer le serveur kerberos en réseau exécuter plutôt kadmin au lieu de kadmin.local
On redémarre les services krb5kdc, kadmin et krb524
Implémentation
Implémen-
tation
Démarrage automatique des services :
A présent le serveur est en mesure de délivrer des tickets
Pour un aperçu exécuter, pour s’authentifier et obtenir un ticket (certificat d’identité): kinit root/admin
Implémentation
Implémen-
tation
Conclusion
Conclusion
L’authentification dans un système est d’une importance capitale. Ldap bien qu’étant un excellant annuaire présente des limites quand il s’agit de l’authentification. Kerberos en lui-même apporte beaucoup d’ éléments de possibilités de services, de sécurité. Il existe depuis des années mais n’a pas vraiment percé. Son principal inconvénient reste sa configuration. Chaque client doit avoir un compte et chaque service un compte relié à ce client. Même si cela est automatisé il reste compliqué. Cependant avec Kerberos on bénéficie d’un SSO ; ce qui un gain en terme de sécurité pour l’ingénieur et un gain en terme de simplicité pour l’usager.
MERCI DE VOTRE ATTENTION