Presentation new1

41
Moussa GAYE Cheikh DIAGNE [email protected] 1 UAHB AUTHENTIFICATION LDAP ET KERBEROS présenté par

description

NoB presente

Transcript of Presentation new1

Page 1: Presentation new1

Moussa GAYE Cheikh DIAGNE

[email protected] [email protected]

1

UAHB

AUTHENTIFICATION LDAP ET KERBEROS

présenté par

Page 2: Presentation new1

IntroductionPrésentation de LdapRôle de LdapLimites de LdapSolution KerberosImplémentationsConclusion

Plan

Page 3: Presentation new1

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

Page 4: Presentation new1

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)

Page 5: Presentation new1

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

Page 6: Presentation new1

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

Page 7: Presentation new1

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)

Page 8: Presentation new1

Rôle de Ldap

Rôle de LDAP

Établissement de la connexion, échange et déconnexion entre un server Ldap et un client Ldap

Page 9: Presentation new1

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:

Page 10: Presentation new1

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

Page 11: Presentation new1

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

Page 12: Presentation new1

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

Page 13: Presentation new1

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.

Page 14: Presentation new1

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).

Page 15: Presentation new1

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.

Page 16: Presentation new1

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

Page 17: Presentation new1

Implémentation

Implémen-

tation

2 - Configuration du DNS: declarations de la zone direct

et inverse dans /etc/named.conf

Page 18: Presentation new1

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

Page 19: Presentation new1

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

Page 20: Presentation new1

Implémentation

Implémen-

tation

Éditer le fichier /etc/openldap/slapd.conf

Page 21: Presentation new1

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 :

Page 22: Presentation new1

Implémentation

Implémen-

tation

Page 23: Presentation new1

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

Page 24: Presentation new1

Implémentation

Implémen-

tation

On le renseigne au serveur Ldap

Page 25: Presentation new1

Implémentation

Implémen-

tation

On édite le fichier /etc/ldap.conf

Page 26: Presentation new1

Implémentation

Implémen-

tation

Éditer le fichier /etc/nsswitch.conf

Éditer le fichier /etc/pam.d/login

Page 27: Presentation new1

Implémentation

Implémen-

tation

Éditer le fichier /etc/pam.d/su

Éditer le fichier /etc/pam.d/gdm

Page 28: Presentation new1

Implémentation

Implémen-

tation

Ajouter un nouvel utilisateur : vim /tmp/newuser.ldif

Ajouter un nouvel groupe : vim /tmp/newgroup.ldif

Page 29: Presentation new1

Implémentation

Implémen-

tation

Renseigner le nouvel groupe et le nouvel utilisateur à

l’annuaire Ldap par les commandes suivantes:

Page 30: Presentation new1

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

Page 31: Presentation new1

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

Page 32: Presentation new1

Implémentation

Implémen-

tation

Page 33: Presentation new1

Implémentation

Implémen-

tation

Ensuite : vim /var/kerberos/krb5kdc/kdc.conf

Page 34: Presentation new1

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/

Page 35: Presentation new1

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

Page 36: Presentation new1

Implémentation

Implémen-

tation

Ajout d’un autre principal

Vérifions les différents principaux en exécutant toujours kadmin.local puis listprincs

Page 37: Presentation new1

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

Page 38: Presentation new1

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

Page 39: Presentation new1

Implémentation

Implémen-

tation

Page 40: Presentation new1

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.

Page 41: Presentation new1

MERCI DE VOTRE ATTENTION