authentification

Transcription

authentification
PROJET DE SYNTHÈSE
V 2.5
TSGERI AFPA MARSEILLE ST-JEROME
AUTHENTIFICATION
PROJET DE SYNTHÈSE
V 2.5
É M E TT E U R
Auteur
Objet du document
Destinataires
Chérif SADI
ETUDE DE SYNTHESE
Oscar LOGGER
MISE A JOUR DU DOCUME NT
Version
Auteur
Description de la modification
Date
1.0
Chérif SADI
CREATION
05/09/11
1.1
Chérif SADI
MODIFICATION
12/09/11
2.0
Chérif SADI
MODIFICATION
15/09/11
2.1
Chérif SADI
MODIFICATION
26/09/11
2.2
Chérif SADI
MODIFICATION
03/10/11
2.3
Chérif SADI
MODIFICATION
18/10/11
2.4
Chérif SADI
MODIFICATION
09/11/11
2.5
Chérif SADI
MODIFICATION
28/11/11
RESUME
Analyse du marché et descriptif des technologies et des différentes méthodes et techniques
d’authentification.
OBJECTIF DU DOCUMENT
Description d’un mécanisme d’authentification via une plateforme de test.
DOCUMENT DE REFERENCE
Ce document est une compilation des différentes informations disponibles sur le Web dont les sources
sont mentionnées dans la bibliographie et les travaux cités en fin de ce document.
2/49
PROJET DE SYNTHÈSE
V 2.5
PREAMBULE
Le projet de synthèse est ainsi l’occasion de mettre en œuvre les connaissances acquises antérieurement
pour mettre en œuvre par simulation un ensemble ou sous-ensemble d’un système.
Ce projet a été réalisé dans le cadre d’une synthèse de « L’authentification » qui a pour but la finalisation
de la certification TSGERI.
Je tiens à remercier dans un premier temps, toute l’équipe pédagogique de L’AFPA de Marseille StJérôme et les intervenants professionnels qui sont responsables de la formation TSGERI, pour avoir
assuré la partie théorique de celle-ci.
Je tiens également à remercier Monsieur Oscar LOGGER, en qualité de formateur principal pour l’aide et
pour m’avoir donné le cap et les conseils concernant les missions évoquées dans ce rapport, qu’il m’a
apporté lors des différents suivis tout au long de ma certification professionnelle.
3/49
PROJET DE SYNTHÈSE
V 2.5
SOMMAIRE
1.
L’authentification ...................................................................................................................... 7
1.1.
La définition et les facteurs ............................................................................................................7
1.2.
L’authentification forte ...................................................................................................................7
1.3.
L’authentification unique ................................................................................................................7
1.4.
Les mécanismes ............................................................................................................................7
1.4.1. Les mots de passe statiques ...........................................................................................7
1.4.2. Les mots de passe à usage unique ..................................................................................7
1.4.3. La cryptographie à clé publique .......................................................................................8
1.4.4. Le jeton de contrôle .......................................................................................................8
1.5.
Les failles et attaques liée à l’authentification ..................................................................................8
1.5.1. Faiblesses du login/mot de passe ....................................................................................8
1.5.2. Le Sniffing .....................................................................................................................8
1.5.3. Ip Spoofing ....................................................................................................................9
1.5.4. Le déni de service (DDoS) ...............................................................................................9
1.5.5. L'attaque Man-In-The-Middle ..........................................................................................9
1.6.
Les protocoles ...............................................................................................................................9
1.6.1. AAA ...............................................................................................................................9
1.6.2. SSL/TLS ....................................................................................................................... 10
1.6.3. 802.1X ......................................................................................................................... 10
1.6.4. PAP ............................................................................................................................. 10
1.6.5. CHAP ........................................................................................................................... 10
1.6.6. MS-CHAP ..................................................................................................................... 11
1.6.7. EAP ............................................................................................................................. 11
1.6.7.1
EAP-TTLS / PEAP ................................................................................................... 11
1.6.7.2
EAP-TLS ................................................................................................................ 11
1.6.7.3
EAP-MD5 ............................................................................................................... 11
1.6.7.4
LEAP ..................................................................................................................... 12
2.
Etude de l'existant .................................................................................................................. 13
2.1.
Les solutions existante du marché ................................................................................................ 13
2.1.1. La technologie biométrique ........................................................................................... 13
2.1.2. La carte à puce Digipass ............................................................................................... 13
2.1.3. La carte à puce audio ................................................................................................... 13
2.1.4. La technologie RSA SecurID .......................................................................................... 13
2.2.
Les serveurs d’application ............................................................................................................ 14
2.2.1. RADIUS ....................................................................................................................... 14
2.2.2. DIAMETER ................................................................................................................... 14
2.2.3. TACACS ....................................................................................................................... 14
2.2.4. KERBEROS ................................................................................................................... 14
2.3.
Les services d’annuaires .............................................................................................................. 14
2.3.1. NIS.............................................................................................................................. 15
2.3.2. NIS+ ........................................................................................................................... 15
2.3.3. DNS ............................................................................................................................ 15
2.3.4. LDAP ........................................................................................................................... 15
2.3.5. ACTIVE DIRECTORY ..................................................................................................... 15
3.
Description du besoin ............................................................................................................. 16
3.1.
Remote Authentication Dial-In User .............................................................................................. 16
4/49
PROJET DE SYNTHÈSE
V 2.5
3.1.1. Principe de fonctionnement ........................................................................................... 16
3.2.
Lightweight Directory Access Protocol ........................................................................................... 18
3.2.1. Principe de fonctionnement ........................................................................................... 18
4.
Mise en place du projet ........................................................................................................... 20
4.1.
Pré-requis ................................................................................................................................... 20
4.2.
Installation des services ............................................................................................................... 20
4.2.1. Installation du service d’annuaire .................................................................................. 20
4.2.2. Installation du service radius ......................................................................................... 20
4.2.1. Installation du service samba ........................................................................................ 20
4.2.2. Installation de phpldapadmin ........................................................................................ 20
4.2.3. Installation des librairies ldap ........................................................................................ 20
4.3.
Configuration des fichiers ............................................................................................................ 21
4.3.1. Schéma samba et radius ............................................................................................... 21
4.3.2. Smb.conf ..................................................................................................................... 24
4.3.3. Mot passe LDAP vers SAMBA ......................................................................................... 27
4.3.4. Smbldap-tools .............................................................................................................. 27
4.3.5. Smbldap_bind.conf ....................................................................................................... 27
4.3.6. Smbldap.conf ............................................................................................................... 27
4.3.7. Peupler son arbre ......................................................................................................... 28
4.3.8. Test du serveur radius .................................................................................................. 29
4.3.9. Clients.conf .................................................................................................................. 30
4.3.10.
Modules/ldap ............................................................................................................ 30
4.3.11.
Site-enabled/default .................................................................................................. 31
4.3.12.
Site-enabled/inter-tunnel ........................................................................................... 31
4.3.13.
Redémarrage des services ......................................................................................... 32
5.
L’analyse des étapes d’authentification ................................................................................. 33
5.1.
Test de l’utilisateur par défaut dans la base radius ........................................................................ 33
5.2.
Test d’un utilisateur dans l’annuaire ldap ...................................................................................... 35
5.2.1. Access-Accept .............................................................................................................. 35
5.2.2. Analyse de l’acceptation ................................................................................................ 37
5.2.1. Access-Reject ............................................................................................................... 38
5.2.1. Analyse du refus .......................................................................................................... 40
6.
Conclusion............................................................................................................................... 42
7.
Bibliographie ........................................................................................................................... 43
8.
Travaux cités........................................................................................................................... 44
9.
Annexes .................................................................................................................................. 45
9.1.
Terminologie ............................................................................................................................... 45
9.1.1. Acronymes ................................................................................................................... 45
9.1.2. Glossaire ...................................................................................................................... 45
9.1.3. Définitions ................................................................................................................... 47
I L L U S T R AT I O N S
Figure
Figure
Figure
Figure
Figure
Figure
1
2
4
5
6
7
:
:
:
:
:
:
Protocole CHAP ................................................................................................................. 10
Protocole LEAP.................................................................................................................. 12
Architecture globale du serveur radius ................................................................................ 16
Protocole du serveur radius ............................................................................................... 17
Historique X.500 et LDAP ................................................................................................... 18
Exemple d'organisation de type « information tree » ........................................................... 18
5/49
PROJET DE SYNTHÈSE
V 2.5
INTRODUCTION
La sécurisation des systèmes d'information est une tâche dont la complexité ne cesse de croître, car tout
cela est due à l'augmentation du nombre d'applications et a la mondialisation qui nous impose le besoin
d'ouverture vers l'extérieur.
L'authentification des utilisateurs est a l’heure actuelle une nécessité, qu'ils accèdent depuis l'intérieur ou
l'extérieur de leur entreprise.
Dans le premier chapitre, nous citerons d'abord les techniques et méthodes d'authentification existantes.
Puis dans le deuxième chapitre, nous détaillerons le mode de fonctionnement d’un service
d’authentification et d’annuaire qui seront nécessaire pour le développement du projet.
Dans le troisième chapitre, nous détaillerons la mise en place, les phases de test et les critiques du
mécanisme d’authentification qui sera mis en place.
6/49
PROJET DE SYNTHÈSE
V 2.5
1 . L’ A U T H E N T I F I C AT I O N
Elle est l'un des services fondamentaux dans le domaine de la sécurité informatique. C'est un processus
critique sur un réseau, car l’accès aux ressources est basé sur l’identification.
1 .1 .
L a d é fi ni t i o n e t l e s fac t e ur s
L'authentification est la procédure qui consiste à vérifier l'identité d'une personne ou d’un équipement.
Les facteurs d’authentification sont multiples :
Ce que l’on est (empreints digitaux, la biométrie)
Ce que l’on possède (carte à puce)
Ce que l’on sait (mot de passe, login)
Ce que l’on sait faire (signature manuscrite)
1 .2 .
L’ a u t he nt i f i c at i o n fo r t e
Une procédure d'identification qui requiert l’utilisation de deux facteurs d'authentification.
1 .3 .
L’ a u t he nt i f i c at i o n u ni q ue
Une méthode permettant à un utilisateur de ne procéder qu'à une seule authentification pour accéder à
plusieurs applications informatiques (Web, mail, etc.).
1 .4 .
Le s mé c a ni sme s
La fiabilité des mécanismes d’authentification dépend de la technologie qu’on utilise. Ce sous chapitre
décrit les principales techniques utilisées :
1.4.1.
Les mots de passe statiques
L’authentification par mot de passe classique est le mécanisme le plus utilise à l’heure actuelle. Elle par
une procédure de connexion durant laquelle on fournit son login-mot de passe.
Le noyau récupère ces informations et regarde dans sa base de donnes si la personne est bien
enregistrée et si le mot de passe qui a été tapé est valide. S’il est correct, l’authentification est réussie et
l’accès au système est valide.
1.4.2.
Les mots de passe à usage unique
Un mot de passe n'est valable une seule fois. Ils permettent de combler certaines lacunes de sécurité
associées aux mots de passe classique. Car si un intrus potentiel parvient à enregistrer un mot de passe
qui était déjà utilisé pour se connecter à un service ou pour effectuer une opération, il ne sera pas en
mesure de l'utiliser car il ne sera plus valide.
En revanche, ils ne peuvent pas être mémorisés par les êtres humains, par conséquent, ils nécessitent
des technologies complémentaires afin de s'en servir.
7/49
PROJET DE SYNTHÈSE
1.4.3.
V 2.5
La cryptographie à clé publique
La cryptographie à clé publique fait intervenir deux sortes de clés, une clé publique publiée sur le réseau
et une clé privée secrète. La clé privée sert pour le décryptage des données ainsi que pour le cryptage
de quelques données afin de vérifier l’intégrité. La clé publique sert pour le cryptage des données et pour
la vérification de la signature. Les deux clés sont reliées par une équation mathématique (algorithme)
complexe.
1.4.4.
Le jeton de contrôle
Les techniques par jeton de contrôle ou token sont des systèmes d’authentification forte qui nécessitent
généralement l’emploi d’une carte spéciale appelée smart-card ou token-card, bien que certains
systèmes existent sous forme logicielle pour réduire le coût de déploiement. Il y’a deux techniques de
vérification connue: La challenge-réponse et la synchronisation.
1 .5 .
Le s f ai l l e s e t a tt aq ue s l i é e à l ’ au t he n t i fi c at i o n
Dans cette partie, nous nous intéresserons aux faiblesses l'authentification par login-MDP classique.
Ensuite, une présentation de quelques attaques utilisant ces failles.
1.5.1.
Faiblesses du login/mot de passe
L’authentification par login/mot de passe est devenue obsolète pour plusieurs raisons :
Le disque dur où il est stocké peut faire l'objet d'attaques et nombreux sont les moyens de
retrouver les mots de passe stockés celui-ci est accessible.
Un mot de passe choisi par l'utilisateur est souvent simple à retenir. Il peut donc être attaqué
par un dictionnaire.
Il est possible d'intercepter un mot de passe au moment où l'utilisateur le tape sur son clavier.
Souvent les mots de passe sont transférés en clair sur le réseau.
Un mot de passe a une durée de vie généralement longue (plusieurs semaines au minimum).
Même si le mot de passe est correctement choisi pour être dur à trouver, il reste attaquable par
la méthode de force brute.
Il existe un grand nombre d’attaques qui utilisent les failles au moment de l'authentification et qui
permettent à une personne le pouvoir usurper l’identité et de détourner des ressources, de les falsifier ou
de les supprimer. Certaines requièrent plus de compétences que d’autres.
1.5.2.
Le Sniffing
Le renifleur ou l’analyseur de protocole est un logiciel qui peut lire au passage les données transitant par
le biais d'un réseau local non-Switch(é).
Il permet une consultation aisée des données non-chiffrées et peut ainsi servir à intercepter des mots de
passe qui transitent en clair ou toute autre information non-chiffrée.
8/49
PROJET DE SYNTHÈSE
1.5.3.
V 2.5
Ip Spoofing
L'usurpation d'adresse IP est une technique utilisée en informatique qui consiste à envoyer des paquets
IP en utilisant une adresse IP source qui n'a pas été attribuée à l'ordinateur qui les émet.
Le but peut être de masquer sa propre identité lors d'une attaque d'un serveur, ou d'usurper en quelque
sorte l'identité d'un autre équipement du réseau pour bénéficier des services auquel il a accès.
1.5.4.
Le déni de service (DDoS)
Une attaque par déni de service est une attaque ayant pour but de rendre indisponible un service,
d'empêcher les utilisateurs légitimes d'un service de l'utiliser. Il peut s'agir de :
L’inondation d’un réseau afin d'empêcher son fonctionnement.
La perturbation des connexions entre deux machines, empêchant l'accès à un service particulier.
L’obstruction d'accès à un service à une personne en particulier.
L'attaque par déni de service peut ainsi bloquer un serveur de fichiers, rendre impossible l'accès à un
serveur web, empêcher la distribution de courriel dans une entreprise ou rendre indisponible un site
internet.
1.5.5.
L'attaque Man-In-The-Middle
L'attaque de l'homme du milieu est une attaque qui a pour but d'intercepter les communications entre
deux parties, sans que ni l'une ni l'autre ne puisse se douter que le canal de communication entre elles a
été compromis. Le canal le plus courant est une connexion à Internet de l'internaute lambda.
L'attaquant doit d'abord être capable d'observer et d'intercepter les messages d'une victime à l'autre.
L'attaque « homme du milieu » est particulièrement applicable dans le protocole original d'échange de
clés Diffie-Hellman, quand il est utilisé sans authentification.
1 .6 .
Le s p ro t o c o l e s
Les mécanismes d’authentification décrits dans cette partie ont tout d’abord été des protocoles de
couche de la liaison de données puisqu’ils ont été initialement utilisés par le protocole PPP qui permet
l’ouverture de session sur le réseau RTC.
Ils sont également utilisés dans la couche réseau grâce aux évolutions de PPP :
PPPoA (over ATM) et PPPoE (over Ethernet) qui sont principalement utilisés pour ouvrir des connexions
ADSL. Cependant, ces mécanismes sont les briques de nombreux serveurs et applications
d’authentification comme Radius.
1.6.1.
AAA
AAA correspond à un protocole qui réalise trois fonctions : l'authentification, l'autorisation, et
la traçabilité (en Anglais : Authentication, Autorisation, Accounting).
9/49
PROJET DE SYNTHÈSE
V 2.5
Il correspond a un modèle de sécurité implémenté dans certains routeurs Cisco mais que l'on peut
également utiliser sur toute machine qui peut servir de NAS (Network Authentification System).Ils
requièrent une identification d'une personne ou d’un équipement avant d’accorder des droits d’accès.
1.6.2.
SSL/TLS
Transport Layer Security, anciennement nommé Secure Sockets Layer, est un protocole de sécurisation
des échanges sur Internet, développé à l'origine par Netscape.
Il a été renommé en Transport Layer Security par l'IETF suite au rachat du brevet de Netscape par l'IETF
en 2001.
1.6.3.
802.1X
802.1X est un standard lié à la sécurité des réseaux informatiques, mis au point en 2001 par l'IEEE.
Il permet de contrôler l'accès aux équipements d'infrastructures réseau (et par ce biais, de relayer les
informations liées aux dispositifs d'identification).
1.6.4.
PA P
Password Authentication Protocol est un protocole d'authentification pour PPP. Les données sont
transmises en texte clair sur le réseau ce qui le rend par conséquent non sécurisé.
L’avantage de PAP est qu'il est extrêmement simple à implémenter, lui permettant d'être utilisé dans des
systèmes embarqués très légers. Sur des systèmes de taille raisonnable on préférera sans doute le
protocole CHAP.
1.6.5.
CHAP
Challenge Handshake Authentication Protocol est un protocole d'authentification pour PPP à base de
challenge, ce qui le rend bien plus sûr que son pendant PAP.
L'objectif de CHAP est que le pair s'authentifie auprès d'un authentificateur sans échange de mot de
passe en clair sur le réseau et sans que l'échange puisse être rejoué par un tiers à l'écoute.
La contrainte est que chaque partie partage un « secret » (mot de passe) commun. Microsoft a
développé la variante MS-CHAP qui supprime cette contrainte.
Figure 1 : Protocole CHAP
10/49
PROJET DE SYNTHÈSE
1.6.6.
V 2.5
MS-CHAP
MS-CHAP est la version Microsoft du protocole. Ce protocole existe en deux versions : MS-CHAPv1 et MSCHAPv2.
1.6.7.
EAP
Extensible Authentication Protocol est un mécanisme d'identification universel, fréquemment utilisé dans
les réseaux sans fil (ex : Wifi) et les liaisons point à point (PPP).
1.6.7.1
EAP-TTLS / PEAP
EAP-Tunneled Transport Layer Security, a été Co-développé par Funk Software et par certicom. C’est
également un standard ouvert IETF.
Il est supporté sur de nombreuses plates-formes, et offre un très bon niveau de sécurité. Il utilise des
certificats X-509 uniquement sur le serveur d'identification.
Le certificat est optionnel du côté client. Le défaut de EAP-TTLS par rapport à PEAP est de ne pas être
présent nativement sur les systèmes Microsoft et Cisco.
En revanche, il est légèrement plus sécurisé que LEAP car il ne diffuse pas le nom de l'utilisateur en clair.
1.6.7.2
EAP-TLS
EAP-TLS est un Standard ouvert IETF. On le retrouve implanté chez de nombreux fabricants de matériel
sans fil.
C’est le seul protocole EAP qui doit obligatoirement être implanté sur un matériel pour pouvoir porter le
logo WPA ou WPA2.Il offre une bonne sécurité.
En effet il utilise deux certificats pour la création d'un tunnel sécurisé qui permettra ensuite
l'identification : un côté serveur et un côté client.
Cela signifie que même si le mot de passe est découvert, il ne sera d'aucune utilité sans le certificat
client.
Bien que le protocole EAP-TLS fournisse une excellente sécurité, l'obligation de disposer d'un certificat
client est peut-être son talon d'Achille.
En effet, lorsque l'on dispose d'un grand parc de machines, il peut s'avérer difficile et coûteux de gérer
un certificat par machine. C'est pour se passer du certificat client que les protocoles PEAP et EAP-TTLS
ont été créés.
TLS est considéré comme le successeur du standard SSL. Il utilise une Infrastructure à clés
publiques pour sécuriser les communications d'identification entre les clients et le serveur radius.
1.6.7.3
EAP-MD5
EAP-MD5 est un autre standard ouvert IETF, mais il offre un niveau de sécurité faible.
11/49
PROJET DE SYNTHÈSE
V 2.5
La fonction de hachage MD5 utilisée est vulnérable aux attaques par dictionnaire, et elle ne supporte pas
les clefs WEP dynamiques.
1.6.7.4
LEAP
Lightweight Extensible Authentication Protocol est une implémentation propriétaire du protocole EAP
conçu par Cisco Systems.
La société a fait beaucoup d'efforts pour promouvoir ce protocole.
Il a permis à d'autres fabricants de réaliser des produits « LEAP Compatible » au travers du programme
CCE (Cisco Certified Extensions). Ce protocole n'est pas présent nativement sous Windows.
Figure 2 : Protocole LEAP
Il était connu pour être vulnérable aux attaques par dictionnaire comme EAP-MD5.
Mais il ne l'est plus depuis la version ASLEAP (2003) de Joshua Wright.
Cisco continue de soutenir que LEAP est une solution sécurisée si l'on utilise des mots de passe
suffisamment complexes.
Mais tout le monde sait bien que dans la réalité les mots de passe complexes sont rarement utilisés.
De nouveaux protocoles comme EAP-TTLS ou PEAP ne rencontrent pas ce type de fragilité car ils créent
un tunnel TLS pour sécuriser l'identification.
De plus ces nouveaux protocoles étant plus ouverts, ils peuvent être utilisés sur des points d'accès de
marque Cisco ou non.
12/49
PROJET DE SYNTHÈSE
V 2.5
2 . E T U D E D E L ' E X I S TA N T
2 .1 .
Le s s o l u t i o n s e x i st a nt e d u m a rc hé
2.1.1.
La technologie biométrique
Elle est la science qui permet d'identifier de manière automatique une personne en
se basant sur ses caractéristiques physiologiques ou comportementales. En effet,
chaque personne est unique de ce fait, chacun possède sa propre caractéristique
biométrique, et elle rend cette technologie assez stable. Généralement, on distingue
deux catégories de méthodes d'authentification biométrique, les méthodes basées
sur les caractéristiques physiques telles que le visage, la voix et ADN, et celles basées sur les
caractéristiques comportementales comme la signature, la manière de marcher ou de taper sur un
clavier.
2.1.2.
La carte à puce Digipass
Le Digipass est un produit de sécurité de VASCO Data Security International,
fournissant une authentification forte des utilisateurs et des signatures numériques via
des jetons de sécurité réalisées par les utilisateurs de petites ou de logiciels sur les
téléphones mobiles, appareils portables ou des PC. Il est compatible avec plus de 50 fournisseurs
internationaux pour une variété de e-commerce, e-banking, e-réseautage et applications egouvernement. Elle utilise le serveur temps et l’authentification à deux facteurs et peut être utilisé pour
signer des transactions électroniques. Il a été inventé en 1989 par un belge Mr Dominique COLARD.
2.1.3.
La carte à puce audio
La société Audio Smart Card développe une offre matérielle et logicielle permettant
de répondre efficacement à tous les besoins d'authentification distants sur l'ordinateur et
le téléphone. Elle propose une carte à puce audio s’appliquant aussi bien à l’économie, à
l’e banking, au call center, au transport, à la santé, aux ressources humaines, aux
services télécom, etc. Basée sur le principe du mot de passe dynamique car elle utilise
comme support d’authentification une carte à puce audio qui fonctionne en liaison avec le serveur
d’authentification Secure Sound Pro Server.
2.1.4.
La technologie RSA SecurID
SecurID est un système de token, ou authentifieur, produit par la société RSA Security
et destiné à proposer une authentification forte à son utilisateur. La majorité des tokens
SecurID affichent un code à 6 chiffres changeant généralement toutes les minutes.
L'utilisateur ajoute un Pin Code PIN personnel au TokenCode lu sur l'authentifieur
SecurID. Le tout est appelé un PassCode (soit PassCode = PIN Code + TokenCode).
Par ailleurs, le Token expire au bout d'un certain temps (3 à 5 ans selon les modèles).Ce système de
Token, de type OTP, est utilisé pour les applications Web (par exemple le eBanking) et les technologies
de type VPN (IPSEC, SSL), SSH, Citrix.
13/49
PROJET DE SYNTHÈSE
2 .2 .
V 2.5
L e s se r ve u r s d ’ a p p l i c a t i o n
Voici une présentation des principaux serveurs :
2.2.1.
RADIUS
Remote Authentication Dial-In User Service est un protocole de type client-serveur qui a pour rôle
d’authentifier les requêtes qui lui parviennent d’un poste client.
Il existe plusieurs solutions de serveur radius qu’elles soient commerciales ou open source :
ACS (Cisco sous Windows).
Aegis (sous Linux).
IAS (sous Windows).
Open Radius (Open source).
Free Radius (Open source, BSD, Windows).
2.2.2.
DIAMETER
Diameter est un protocole d'authentification, il est successeur du protocole radius.
2.2.3.
TACACS
Terminal Access Controller Access-Control System (TACACS) est un protocole d'authentification distante
utilisé pour communiquer avec un serveur d'authentification, généralement utilisé dans des réseaux Unix.
TACACS permet à un serveur d'accès distant de communiquer avec un serveur d'authentification dans
l'objectif de déterminer si l'utilisateur a le droit d'accéder au réseau.
2.2.4.
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 (Κέρϐερος). Kerberos a d'abord été mis en œuvre sur des systèmes Unix.
2 .3 .
Le s se r vi c e s d ’ an n ua i re s
Un annuaire va permettre de centraliser les données des utilisateurs et des services afin de rendre plus
simple l’administration.
Un annuaire peut être associé à un système de stockage de données permettant de rendre accessible un
ensemble d'informations à tous les utilisateurs de ce système.
Voici un exemple:
Carnet d'adresses.
14/49
PROJET DE SYNTHÈSE
V 2.5
Annuaire téléphonique.
Serveur DNS ...
Sur un système informatique, les données ne sont pas organisées de manière relationnelle comme sur
les SGBD classiques (MySQL, PgSQL, SQL Server, ...) mais de manière hiérarchique.
Si on souhaite faire une comparaison entre les services d'annuaire et les SGBD classiques, on peut établir
que :
La consultation des données est plus rapide pour l'annuaire par rapport aux SGBD classiques.
La duplication des données est facilitée.
Le stockage des données peut être réalisé dans un plus faible espace.
Les avantages des services d'annuaire sont leur rapidité pour accéder aux informations, les mécanismes
de sécurité pouvant être mis en œuvre, la centralisation des informations et les possibilités de
redondance de l'information.
Voici une présentation des principaux serveurs :
2.3.1.
NIS
Network Information Service (NIS) nommé aussi Yellow Pages est un protocole client-serveur développé
par Sun permettant la centralisation d'informations sur un réseau UNIX.
2.3.2.
NIS+
Il est l’évolution de NIS plus sécurisée et mieux adaptée aux gros réseaux, il est développé par Sun.
2.3.3.
DNS
Domain Name System est un service permettant d'établir une correspondance entre une adresse IP et un
nom de domaine et, plus généralement, de trouver une information à partir d'un nom de domaine.
À la demande de Jon Postel, Paul Mockapetris inventa le « DNS » en 1983 et en écrivit la première
implémentation.
2.3.4.
LDAP
Lightweight Directory Access Protocol est à l'origine un protocole permettant l'interrogation et la
modification des services d'annuaire.
2.3.5.
ACTIVE DIRECTORY
Active Directory est la mise en œuvre par Microsoft des services d'annuaire pour les systèmes
d'exploitation Windows.
L'objectif principal d'Active Directory est de fournir des services centralisés d'identification et
d'authentification à un réseau d'ordinateurs utilisant le système Windows.
15/49
PROJET DE SYNTHÈSE
V 2.5
3. DESCRIPTION DU BESOIN
Pour les besoins de notre étude, nous avons de décider de mettre en place un banc de test pour une
analyse détailler un mécanisme d’authentification. Mais avant toute chose, nous allons expliquer le
principe de fonctionnement des solutions que nous allons utiliser.
3 .1 .
Re mo t e Aut he n t i c a t i o n Di al -In U se r
3.1.1.
Principe de fonctionnement
C’est un protocole d’authentification standard Client/serveur qui permet de centraliser les données
d’authentification : Les politiques d’autorisation et de droits d’accès, traçabilité. Ce processus doit être
relié à une source d’informations, qui est souvent un annuaire LDAP.
Auparavant, les noms et les mots de passe des utilisateurs devaient être dupliqués sur chaque serveur
pouvant être accédé à distance (par un modem RTC par exemple). L’arrivé de ce serveur a permit aux
F.A.I d’authentifier les utilisateurs distants connectés, à partir d’une seule base utilisateurs. Ce protocole
avait particulièrement un sens avant l’ADSL illimité, car il permettait de mesurer le temps précis de
connexion des abonnés et facturer en conséquence.
L’identification sur les sites Web peut aussi être gérée par RADIUS. Apache est sans doute le client
RADIUS le plus répandu (le module « mod_auth_radius » permet à un serveur Apache de valider une
authentification en interrogeant un serveur Radius). Aujourd’hui, ce protocole est aussi souvent utilisé
pour les connexions à Internet sans fil (WLAN - avec le protocole 802.1X qui assure l'identification par
port pour l'accès à un réseau).
Figure 3 : Architecture globale du serveur radius
On le retrouve aussi bien au sein de la téléphonie sur IP comme outil de gestion des connexions, autour
du protocole SIP notamment. Dans ce cas, l'annuaire SIP chargé de l'authentification communique avec
le serveur Radius en utilisant ce protocole. Son fonctionnement est simple :
16/49
PROJET DE SYNTHÈSE
V 2.5
Figure 4 : Protocole du serveur radius
L’utilisateur (le supplicant) se connecte (via PPP ou Telnet) à un client (Network Access Server),
qui est en général une passerelle/proxy.
Le client demande à l’utilisateur son nom et son mot de passe, et il les communique de manière
sécurisée à un serveur RADIUS relié à une base de données ou à un annuaire LDAP.
En fonction de la zone d’accès demandée et des droits de l’utilisateur, le serveur peut exiger des
informations supplémentaires pour l’authentification.
La réponse CHALLENGE permet d’éviter de transmettre le mot de passe. Le client envoie alors
une autre requête répondant au Challenge pour s'authentifier.
Si l’identification réussie, le serveur répond par un ACCEPT (REJECT dans le cas contraire).
Le serveur envoie enfin les autorisations de l’utilisateur. Il pourra par la suite bloquer une
connexion en cours et assurer une journalisation des accès.
Les limitations du protocole :
Il a été conçu au départ pour des identifications sur des liaisons lentes et peu sûres.
Le choix du protocole UDP (port 1812) conduit à des échanges laborieux basés sur des
temporisations de réémission et des échanges d’accusé de réception.
Sécurité relative reposant sur le secret partagé. Certaines implémentations clientes limitent en
plus sa taille.
Chiffrement de l’attribut User-Password par une fonction de hachage MD5, plutôt réservé pour
des opérations de signature.
Le rejeu des réponses du serveur est possible.
Pas de mécanisme d'identification du serveur. Il est ainsi possible de se faire passer pour un
serveur et de récolter les noms et mots de passe des utilisateurs.
17/49
PROJET DE SYNTHÈSE
V 2.5
Les normes qui complètent le protocole RADIUS sont les protocoles d’authentification PAP, CHAP
ou EAP.
3 .2 .
L i g h t w e i g ht Di re c t o r y Ac c e s s Pr o t o c o l
3.2.1.
Principe de fonctionnement
Il est actuellement en version 3 et il est normalisé par l’IETF. Il s’agit d’un protocole d’interrogation
d’annuaire. On dit qu’il est allégé, par comparaison à la norme X500, son ancêtre, dont la mise en œuvre
était très lourde.
Figure 5 : Historique X.500 et LDAP
LDAP au cœur du système d’information car Il regroupe les données d’une entité au même endroit. On
dit que c’est un annuaire fédérateur. C’est un standard incontournable par ce que la plupart des
applications récentes s’appuient dessus : les outils de messageries, les actifs du réseau (proxy,
firewall…), les progiciels de gestion, les réseaux intranets, etc. Une majorité de logiciel utilisent LDAP
pour l’authentification.
Figure 6 : Exemple d'organisation de type « information tree »
18/49
PROJET DE SYNTHÈSE
V 2.5
LDAP est une base donnée hiérarchique et non pas relationnelle comme les SGBD. On peut ainsi
représenter son contenu sous forme d’arbre. L’annuaire est conçu pour référencer toutes sortes
d’informations : Informations sur des personnes, sur des applications, sur un parc informatique…
Le concept de l’annuaire, c’est de maintenir de façon cohérente et contrôlée une grande quantité de
données et d’optimiser la consultation en lecture au dépend de l’écriture. Les accès concurrents sont
gérés et la quantité de donnée pouvant être stockée est quasi illimité. La contrepartie est que les mises
doivent être ponctuelles et les enregistrements peu volumineux :
On utilise des chaînes de caractère courtes et on limite le nombre de fichiers binaires (certificats,
photos…).
LDAP propose donc des mécanismes pour gérer l’authentification. Plusieurs méthodes sont possibles en
fonction du niveau de sécurité désiré :
La connexion anonyme est généralement limitée à la consultation de parties restreintes de
l’annuaire.
L’authentification par login/mot de passe.
L’authentification par login/mot de passe avec hachage de ce dernier.
L’authentification par login/mot de passe avec un tunnel TLS entre le client et l’application et
entre l’application et l’annuaire.
L’authentification par certificat X509.
Authentification plus élaborée grâces aux API SASL (Simple Authentification and Security Layer).
Cette API permet d’intégrer facilement des mécanismes d’authentification forte comme
Kerberos, Radius, ou des systèmes de mot de passe à usage unique comme OTP.
Il est aussi possible de sécuriser les échanges entre l’annuaire LDAP et les clients par LDAP sur
TLS ou LDAPS.
Le principal avantage du serveur est la normalisation de l'authentification. Il est très facile de
programmer un module d'authentification reposant sur le serveur à partir d'un langage possédant une
API de type LDAP. C'est l'opération Bind qui permet d'authentifier un utilisateur. Aujourd’hui, de plus en
plus d'applications Web possèdent un module d'authentification prenant en charge le protocole LDAP.
Les applications peuvent ainsi déléguer l’étape d’authentification à l’annuaire LDAP qui met en œuvre
l’une des méthodes précédentes. Par exemple sur les systèmes GNU/Linux récents, les fichiers
Password et shadow sont de plus en plus remplacés par des appels à LDAP. Les données peuvent être
accédées par le module PAM.
PAM est un mécanisme qui permet justement de déléguer les fonctionnalités d’authentification, sans rien
recompiler. Il peut être paramétré en fonction de l’application (base de compte NTLM pour les anciennes
versions de Windows, base de compte Unix ou autre) et en fonction du mode d’accès à l’application
(Intranet, Extranet, Web). Le module de connexion de PAM fournit l’interface avec les annuaires (ou les
fichiers). C’est cette couche qui validera que l’identifiant et le mot de passe sont valides et retournera
une réponse aux applications.
19/49
PROJET DE SYNTHÈSE
V 2.5
4 . M I S E E N P LA C E D U P R O J E T
4 .1 .
P r é - re q ui s
Pour les besoins du projet, nous allons utiliser une machine virtuelle (VMware Player) ou éventuellement
un pc classique pour installer un système d’exploitation Unix open-source (Ubuntu 11.10).Tous les
services sera dans la même machine pour faciliter la phase de test.
4 .2 .
I n st al l a t i o n d e s se r vi c e s
4.2.1.
Installation du service d’annuaire
Entrer la commande suivante pour installer le service d’annuaire:
apt-get install slapd ldap-utils ldapvi
Une fois l'application installé, l'ensemble des fichiers se trouvent dans : « /etc/ldap ».
Une fois l’installation du serveur effectuée, arrêtez le service en faisant :
/etc/init.d/slapd stop
4.2.2.
Installation du service radius
Entrer la commande suivante pour installer le service d’authentification:
apt-get install freeradius freeradius-ldap
Une fois l'application installé, l'ensemble des fichiers se trouvent dans : « /etc/freeradius».
Une fois l’installation du serveur effectuée, arrêtez le service en faisant :
/etc/init.d/freeradius stop
4.2.1.
Installation du service samba
Entrer la commande suivante pour installer le service d’authentification:
apt-get install samba-doc samba smbclient smbfs smbldap-tools
Une fois l'application installé, l'ensemble des fichiers se trouvent dans : « /etc/samba».
Une fois l’installation du serveur effectuée, arrêtez le service en faisant :
/etc/init.d/smbd stop
4.2.2.
Installation de phpldapadmin
Entrer la commande suivante pour installer l’interface d’administration de l’annuaire:
apt-get install phpldapadmin
4.2.3.
Installation des librairies ldap
Nous allons maintenant installer et configurer la librairie qui permet d’utiliser l’annuaire (libnss-ldap) et la
librairie qui permet de s’authentifier sous unix (libpam-ldap)
apt-get install libnss-ldap libpam-ldap
20/49
PROJET DE SYNTHÈSE
V 2.5
Maintenant que les librairies sont configurées, on doit activer la recherche LDAP en modifiant le fichier de
configuration «/etc/nsswitch.conf ». Pour cela il faut simplement ajouter ldap à passwd,group et
shadow :
passwd: compat ldap
group: compat ldap
shadow: compat ldap
4 .3 .
Co n fi g u rat i o n d e s fi c hi e r s
4.3.1.
Schéma samba et radius
L’installation de ce schéma est essentielle car il contient les attributs nécessaires au LDAP pour le bon
dialogue avec samba en PDC :
gunzip -d /usr/share/doc/samba-doc/examples/LDAP/*.gz
cp /usr/share/doc/samba-doc/examples/LDAP/samba.schema /etc/ldap/schema/
Puis:
cp /usr/share/doc/freeradius/examples/openldap.schema
/etc/ldap/schema/freeradius.schema
Une fois cette étape finie dans l’ancienne version il suffisait d’ajouter le schéma dans « slapd.conf ».
Mais avec la nouvelle version quand on fait un :
ls -l /etc/ldap/slapd.d/cn=config/cn=schema
On obtient :
-rw-------rw-------rw-------rw-------
1
1
1
1
15474
11308
6438
2802
24
24
24
24
sept.
sept.
sept.
sept.
13:39
13:39
13:39
13:39
cn={0}core.ldif
cn={1}cosine.ldif
cn={2}nis.ldif
cn={3} inetorgperson.ldif
Et on constate que notre schéma n’est pas présent.
La solution est de créer un fichier « /etc/ldap/slapd.conf » manuellement et d’y inclure les schémas
nécessaires. Attention il faut remettre les anciens schémas sous peine d’avoir un message d’erreur.
nano /etc/ldap/slapd.conf
Puis
# This is the main slapd configuration file. See slapd.conf(5) for more
# info on the configuration options.
#######################################################################
# Global Directives:
# Features to permit
# allow bind_v2
# Schema and objectClass definitions
######## Schéma par défaut
include
/etc/ldap/schema/core.schema
21/49
PROJET DE SYNTHÈSE
include
/etc/ldap/schema/cosine.schema
include
/etc/ldap/schema/nis.schema
include
/etc/ldap/schema/inetorgperson.schema
V 2.5
######## On rajoute le schema samba
include
/etc/ldap/schema/samba.schema
######## On rajoute le schema freeradius
include
/etc/ldap/schema/radius.schema
# Schema check allows for forcing entries to
# match schemas for their objectClasses's
schemacheck
on
# Where the pid file is put. The init.d script
# will not stop the server if you change this.
pidfile
/var/run/slapd/slapd.pid
# List of arguments that were passed to the server
argsfile
/var/run/slapd.args
# Read slapd.conf(5) for possible values
loglevel
0
# Where the dynamically loaded modules are stored
modulepath
/usr/lib/ldap
moduleload
back_bdb
#######################################################################
# Specific Backend Directives for bdb:
# Backend specific directives apply to this backend until another
# 'backend' directive occurs
backend
checkpoint
bdb
512 30
#######################################################################
# Specific Backend Directives for 'other':
# Backend specific directives apply to this backend until another
# 'backend' directive occurs
#backend
<other>
#######################################################################
# Specific Directives for database #1, of type bdb:
# Database specific directives apply to this databasse until another
# 'database' directive occurs
database
bdb
22/49
PROJET DE SYNTHÈSE
V 2.5
# The base of your directory in database #1
######## Donnez le nom de votre base LDAP (normalement debconf a rajouté pour vous
cette ligne)
suffix
"dc=test,dc=local"
######## Donnez le nom de votre base LDAP avec le nom Admin. (ligne à créer)
rootdn
"cn=Manager,dc=test,dc=local"
######## Dans une console root lancez la commande slappasswd, donnez votre mot de
passe que vous aviez
######## mis à l'installation de slapd (dans debconf), la commande vous renvoie le mot
de passe crypté,
######## copiez le. (Ligne à créer)
rootpw
{SSHA}nqoi1V9f/OUnyYNbFYostLPgjfcnTCYC
# Where the database file are physically stored for database #1
directory
"/var/lib/ldap"
# Indexing options for database #1
index
objectClass eq
# Save the time that the entry gets modified, for database #1
lastmod
on
# Where to store the replica logs for database #1
# replogfile
/var/lib/ldap/replog
# The userPassword by default can be changed
# by the entry owning it if they are authenticated.
# Others should not be able to see it, except the
# admin entry below
# These access lines apply to database #1 only
access to attrs=userPassword
by dn="cn=Manager,dc=test,dc=local" write
by anonymous auth
by self write
by * none
# Ensure read access to the base for things like
# supportedSASLMechanisms.
Without this you may
# have problems with SASL not knowing what
# mechanisms are available and the like.
# Note that this is covered by the 'access to *'
# ACL below too but if you change that as people
# are wont to do you'll still need this if you
23/49
PROJET DE SYNTHÈSE
V 2.5
# want SASL (and possible other things) to work
# happily.
access to dn.base="" by * read
# The admin dn has full write access, everyone else
# can read everything.
access to *
by dn="cn=Manager,dc=test,dc=local" write
by * read
Et on sauvegarde en sortant. Une fois ce fichier créé on lance la commande suivante qui convertira au
nouveau format :
slaptest -f /etc/ldap/slapd.conf -F /etc/ldap/slapd.d/
La commande doit vous retourner :
config testing succeeded
Si on refait un petit :
ls -l /etc/ldap/slapd.d/cn=config/cn=schema
On constate que le schéma est bien ajouté, mais que le propriétaire est root et non OpenLDAP comme
ci-dessous :
-rw-------rw-------rw-------rw-------rw-------
1
1
1
1
1
-rw------- 1
15474
11308
6438
2802
12492
24
24
24
24
24
sept.
sept.
sept.
sept.
sept.
13:39
13:39
13:39
13:39
14:13
cn={0}core.ldif
cn={1}cosine.ldif
cn={2}nis.ldif
cn={3}inetorgperson.ldif
cn={4}samba.ldif
14497 24 sept. 14:14 cn={5}freeradius.ldif
On va donc lancer les commandes suivantes pour lui donner les droits :
chown openldap:openldap /etc/ldap/schema/ -R
chown openldap:openldap /etc/ldap/slapd.d/ -R
Un fois ces commandes exécuté on peut enfin faire un redémarrage du serveur.
/etc/init.d/slapd restart
4.3.2.
Smb.conf
Avant toute chose faire une copie de sauvegarde du fichier d’origine :
cp /etc/samba/smb.conf /etc/samba/smb.conf.save
Une fois la copie effectuée, éditez le fichier avec votre éditeur préférer et changer les paramètres à
l’intérieur.
Voici ci-dessous mon fichier pour exemple :
[global]
workgroup = test
server string = Controleur de domaine
netbios name = serveur_test
domain master = yes
24/49
PROJET DE SYNTHÈSE
V 2.5
local master = yes
domain logons = yes
client lanman auth = yes
client ntlmv2 auth = yes
lanman auth = yes
ntlm auth = yes
security = user
os level = 40
ldap ssl = off
ldap passwd sync = yes
passdb backend = ldapsam:ldap://127.0.0.1
ldap admin dn = cn=Manager,dc=test,dc=local
ldap suffix = dc=test,dc=local
ldap group suffix = ou=Groups
ldap user suffix = ou=Users
ldap machine suffix = ou=Machines
add user script = /usr/sbin/smbldap-useradd -m "%u"
ldap delete dn = yes
delete user script = /usr/sbin/smbldap-userdel "%u"
add machine script = /usr/sbin/smbldap-useradd -w "%u"
add group script = /usr/sbin/smbldap-groupadd -p "%g"
#delete group script = /usr/sbin/smbldap-groupdel "%g"
add user to group script = /usr/sbin/smbldap-groupmod -m "%u" "%g"
delete user from group script = /usr/sbin/smbldap-groupmod -x "%u" "%g"
set primary group script = /usr/sbin/smbldap-usermod -g "%g" "%u"
logon path = \\%L\profiles\%U
logon drive = P:
logon home = \\%L\%U
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
case sensitive = No
default case = lower
preserve case = yes
short preserve case = Yes
#character set = iso8859-1
#domain admin group = @admin
dns proxy = No
wins support = Yes
winbind use default domain = Yes
nt acl support = Yes
msdfs root = Yes
hide files = /desktop.ini/ntuser.ini/NTUSER.*/
# autre possibilité "veto files = "
#
# Reglage de l'encodage des caracteres :
unix charset = iso-8859-15
display charset = iso-8859-15
dos charset = 850
#
[netlogon]
path = /home/dev/netlogon
writable = No
25/49
PROJET DE SYNTHÈSE
V 2.5
browseable = No
write list = Administrateur
#
[profiles]
path = /home/dev/profiles
browseable = No
writeable = Yes
profile acls = yes
create mask = 0700
directory mask = 0700
#
[homes]
comment = Repertoire Personnel
browseable = No
writeable = Yes
#
[partage]
comment = Repertoire commun
browseable = Yes
writeable = Yes
public = No
path = /home/partage
#
[printers]
comment = All Printers
path = /var/spool/samba
create mask = 0700
printable = Yes
browseable = No
#
[print$]
comment = Printer Drivers
path = /var/lib/samba/printers
Une fois le fichier sauvegardé il va falloir créer les répertoires pour les scripts de connexion, les profiles
itinérants ainsi que le partage sur le serveur.
mkdir /home/dev/netlogon
mkdir /home/dev/profiles && chmod 777 /home/dev/profiles
mkdir /home/dev/partage
Après la création des répertoires ne pas oublier de vérifier la configuration du fichier smb.conf de samba
en faisant :
testparm
Cette commande doit vous renvoyer :
Loaded services file OK. Server role: ROLE_DOMAIN_PDC
N’oubliez pas de faire un petit :
/etc/init.d/samba start
26/49
PROJET DE SYNTHÈSE
4.3.3.
V 2.5
Mot passe LDAP vers SAMBA
Afin d’administrer correctement le serveur LDAP samba aura besoin du mot de passe administrateur de
celui-ci... Pour cela tapez la commande suivante et donné le mot de passe administrateur du ldap.
smbpasswd -w *****
Samba doit vous répondre :
Setting stored password for "cn=Manager,dc=test,dc=local" in secrets.tdb
4.3.4.
Smbldap-tools
smbldap-tools est un ensemble de script permettant de créer les utilisateurs POSIX de manière
automatique. La configuration de celui-ci se fait par l’intermédiaire de deux fichiers qui ne sont pas
encore présent sur notre système :
/etc/smbldap-tools/smbldap_bind.conf
/etc/smbldap-tools/smbldap.conf
Il faudra donc les créer manuellement...
4.3.5.
Smbldap_bind.conf
Voici le détail du fichier ci-dessous :
masterDN="cn=Manager,dc=test,dc=local"
masterPw="MDP"
slaveDN="cn=Manager,dc=test,dc=local"
slavePw="MDP"
Comme vous pouvez le constater le mot de passe administrateur du LDAP est en clair, il est donc
important de lui changer les droits d’accès...
chmod 600 /etc/smbldap-tools/smbldap_bind.conf
4.3.6.
Smbldap.conf
Il contient un peu plus de paramètre et a aussi besoin du SID du domaine. Pour cela faire un :
net getlocalsid
Vous devez obtenir :
SID for domain DEV is: S-1-5-21-738282185-3837675623-175508106
Une fois le SID en poche il ne reste plus qu’a faire le fichier de configuration comme ci-dessous :
SID="S-1-5-21-738282185-3837675623-175508106"
masterLDAP="127.0.0.1"
masterPort="389"
slaveLDAP="127.0.0.1"
slavePort="389"
ldapTLS="0"
verify="require"
suffix="dc=test,dc=local"
usersdn="ou=Users,${suffix}"
27/49
PROJET DE SYNTHÈSE
V 2.5
computersdn="ou=Machines,${suffix}"
groupsdn="ou=Groups,${suffix}"
idmapdn="ou=Idmap,${suffix}"
# La ligne ci-dessous est commentee pour eviter une erreur lors de
# l'execution de la commande smbldap-populate.
# sambaUnixIdPooldn="cn=NextFreeUnixId,${suffix}"
#sambaUnixIdPooldn="sambaDomainName=dev,${suffix}"
scope="sub"
hash_encrypt="SSHA"
crypt_salt_format="%s"
userLoginShell="/bin/bash"
userHome="/home/%U"
userHomeDirectoryMode="700"
#Nom d'affichage - utiliser smbldap-useradd -c
userGecos="User"
defaultUserGid="513"
defaultComputerGid="515"
skeletonDir="/etc/skel"
#Les mots de passe expirent dans 10ans
defaultMaxPasswordAge="3650"
with_smbpasswd="0"
smbpasswd="/usr/bin/smbpasswd"
with_slappasswd="0"
slappasswd="/usr/sbin/slappasswd"
# mk_ntpasswd="/usr/local/sbin/mkntpwd"
4.3.7.
Peupler son arbre
Il va créer notre arbre de base au sein du LDAP. Pour cela il suffit de faire :
smbldap-populate
Le résultat doit être :
Populating LDAP directory for domain dev (S-1-5-21-738282185-3837675623-175508106)
(using builtin directory structure)
entry dc=test,dc=local already exist.
adding new entry: ou=Users,dc=afpa,dc=local
adding new entry: ou=Groups,dc=afpa,dc=local
adding new entry: ou=Machines,dc=afpa,dc=local
adding new entry: ou=Idmap,dc=afpa,dc=local
adding new entry: uid=root,ou=Users,dc=afpa,dc=local
adding new entry: uid=nobody,ou=Users,dc=afpa,dc=local
adding new entry: cn=Domain Admins,ou=Groups,dc=afpa,dc=local
adding new entry: cn=Domain Users,ou=Groups,dc=afpa,dc=local
adding new entry: cn=Domain Guests,ou=Groups,dc=afpa,dc=local
28/49
PROJET DE SYNTHÈSE
V 2.5
adding new entry: cn=Domain Computers,ou=Groups,dc=afpa,dc=local
adding new entry: cn=Administrators,ou=Groups,dc=afpa,dc=local
adding new entry: cn=Account Operators,ou=Groups,dc=afpa,dc=local
adding new entry: cn=Print Operators,ou=Groups,dc=afpa,dc=local
adding new entry: cn=Backup Operators,ou=Groups,dc=afpa,dc=local
adding new entry: cn=Replicators,ou=Groups,dc=afpa,dc=local
entry sambaDomainName=, serveur_test dc=test,dc=local already exist. Updating it...
Please provide a password for the domain root:
Changing UNIX and samba passwords for root
New password:
Retype new password:
Si vous avez des messages d’erreurs assurez-vous que votre schéma samba est bien présent dans les
schémas de votre serveur OpenLDAP.Le serveur samba est prêt à contrôler le domaine.Vous pouvez
aussi visualiser que sur votre interface phpldapadmin l’architecture a été mis à jour.Il est possible
d’ajouter un user administrateur en faisant :
smbldap-populate -a Administrateur
4.3.8.
Test du serveur radius
Une fois l'installation finalisée, nous pouvons tester le serveur sans modification nécessaire.
Lancer la commande suivante:
freeradius -X
Nous pouvons remarquer que le serveur fonctionne et écoute correctement:
/*********/
} # server
radiusd: #### Opening IP addresses and Ports ####
listen {
type = "auth"
ipaddr = *
port = 0
}
listen {
type = "acct"
ipaddr = *
port = 0
}
listen {
type = "control"
listen {
}
}
Listening on authentication address * port 1812
29/49
PROJET DE SYNTHÈSE
V 2.5
Listening on accounting address * port 1813
Listening on proxy address * port 1814
Ready to process requests.
Pour ainsi mettre en place l'authentification via radius, nous allons configurer certains fichiers pour que le
serveur puisse communiquer avec le serveur LDAP et utiliser le protocole d'authentification souhaité.
4.3.9.
Clients.conf
Modification du fichier :
/*********/
#
#
You can now specify one secret for a network of clients.
#
When a client request comes in, the BEST match is chosen.
#
i.e. The entry from the smallest possible network.
#
client 127.0.0.1{
secret
= testing123
shortname = test en boucle local
/*********/
Dans ce fichier on peut aussi éventuellement paramétrer un client dans le réseau pour effectuer un test
via un autre pc du réseau.
4.3.10.
Modules/ldap
Modification du fichier :
/*********/
#
ldap {
#
#
Note that this needs to match the name in the LDAP
#
server certificate, if you're using ldaps.
server = "127.0.0.1"
identity = "cn=Manager,o=test,dc=local" password = sgueuglife
basedn = "o=test,dc=local"
filter = "(&(uid=%{%{Stripped-User-Name}:-%{User-Name}})(dialupAccess=yes))"
base_filter = "(objectclass=radiusprofile)"
/*********/
# default_profile = "cn=radprofile,ou=dialup,o=test,c=UA"
# profile_attribute = "radiusProfileDn" access_attr = "dialupAccess"
30/49
PROJET DE SYNTHÈSE
V 2.5
/*********/
#
Novell may require TLS encrypted sessions before returning
#
the user's password.
#
password_attribute = userPassword
/*********/
Ici, nous précisons les paramètres du serveur d’annuaire ainsi que les attributs d'authentifications.
4.3.11.
Site-enabled/default
Modification du fichier :
/*********/
#
#
The ldap module will set Auth-Type to LDAP if it has not
#
already been set ldap
/*********/
#
# Use the checkval module
checkval
/*********/
# Uncomment it if you want to use ldap for authentication
#
# Note that this means "check plain-text password against
# the ldap database", which means that EAP won't work,
# as it does not supply a plain-text password. Auth-Type LDAP {
ldap
}
#
#
Allow EAP authentication. eap
/*********/
4.3.12.
Site-enabled/inter-tunnel
Modification du fichier :
/*********/
#
The ldap module will set Auth-Type to LDAP if it has not
#
already been set ldap
/*********/
#
# Use the checkval module checkval
31/49
PROJET DE SYNTHÈSE
V 2.5
/*********/
# Uncomment it if you want to use ldap for authentication
#
# Note that this means "check plain-text password against
# the ldap database", which means that EAP won't work,
# as it does not supply a plain-text password. Auth-Type LDAP {
ldap
}
#
#
Allow EAP authentication. eap
/*********/
Il faut decommenter toutes les lignes dans ces differents fichiers qui pointent vers le serveur ldap et le
mode eap.
4.3.13.
Redémarrage des services
Une fois que vous avez terminé toute l'installation et la configuration de votre serveur Linux, pensez à
relancer les deux services:
/etc/init.d/smbd restart
/etc/init.d/slapd restart
/etc/init.d/freeradius restart
A l’issue de cette étape, on peut démarrer notre phase de test.
32/49
PROJET DE SYNTHÈSE
V 2.5
5 . L’ A N A LY S E D E S E TA P E S D ’ A U T H E N T I F I C AT I O N
5 .1 .
Te s t d e l ’ u t i l i s at e u r p ar d é fa ut d an s l a b a se rad i us
Maintenant nous allons ouvrir une autre fenêtre du terminal pour pouvoir effectuer nos tests. Nous avons
au préalable décommenté l’utilisateur par défaut « Steve »dans le fichier « /etc/radiusd/users ».Pour
effectuer cette manipulation, nous allons stopper le serveur radius :
/etc/init.d/ freeradius stop
Et puis le lancer en mode debugge :
freeradius -X
Nous constatons que le serveur est en écoute et en attente des instructions de commande :
Listening on authentication address * port 1812
Listening on accounting address * port 1813
Listening on authentication address 127.0.0.1 port 18120 as server inner-tunnel
Listening on proxy address * port 1814
Ready to process requests
Puis nous allons utiliser la commande radtest :
radtest {username} {password} {hostname} 10 {radius_nas_secret}
Nous allons voir les étapes défiler dans la première fenêtre :
root@testeur:~# radtest steve testing localhost 0 testing123
Sending Access-Request of id 209 to 127.0.0.1 port 1812
User-Name = "steve"
User-Password = "testing"
NAS-IP-Address = 127.0.0.1
NAS-Port = 0
rad_recv: Access-Accept packet from host 127.0.0.1 port 1812, id=209, length=20
La réponse nous démontre que l’authentification est valide. Regardons la deuxième fenêtre pour une
analyse plus dans le détail.
rad_recv: Access-Request packet from host 127.0.0.1 port 57457, id=209, length=57
User-Name = "steve"
User-Password = "testing"
NAS-IP-Address = 127.0.0.1
NAS-Port = 0
# Executing section authorize from file /etc/freeradius/sites-enabled/default
+- entering group authorize {...}
++[preprocess] returns ok
++[chap] returns noop
++[mschap] returns noop
++[digest] returns noop
[suffix] No '@' in User-Name = "steve", looking up realm NULL
[suffix] No such realm "NULL"
++[suffix] returns noop
33/49
PROJET DE SYNTHÈSE
V 2.5
[eap] No EAP-Message, not doing EAP
++[eap] returns noop
[files] users: Matched entry steve at line 76
++[files] returns ok
[ldap] performing user authorization for steve
[ldap]
expand: %{Stripped-User-Name} ->
[ldap]
... expanding second conditional
[ldap]
expand: %{User-Name} -> steve
[ldap]
expand: (uid=%{%{Stripped-User-Name}:-%{User-Name}}) -> (uid=steve)
[ldap]
expand: dc=test,dc=local -> dc=test,dc=local
[ldap] ldap_get_conn: Checking Id: 0
[ldap] ldap_get_conn: Got Id: 0
[ldap] attempting LDAP reconnection
[ldap] (re)connect to localhost:389, authentication 0
[ldap] bind as cn=Manager,dc=test,dc=local/sgueuglife to localhost:389
[ldap] waiting for bind result ...
[ldap] Bind was successful
[ldap] performing search in dc=test,dc=local, with filter (uid=steve)
[ldap] object not found
[ldap] search failed
[ldap] ldap_release_conn: Release Id: 0
++[ldap] returns notfound
rlm_checkval: Could not find item named Calling-Station-Id in request
rlm_checkval: Could not find attribute named Calling-Station-Id in check pairs
++[checkval] returns notfound
++[expiration] returns noop
++[logintime] returns noop
++[pap] returns updated
Found Auth-Type = PAP
# Executing group from file /etc/freeradius/sites-enabled/default
+- entering group PAP {...}
[pap] login attempt with password "testing"
[pap] Using clear text password "testing"
[pap] User authenticated successfully
++[pap] returns ok
Login OK: [steve/testing] (from client localhost port 0)
# Executing section post-auth from file /etc/freeradius/sites-enabled/default
+- entering group post-auth {...}
++[ldap] returns noop
++[exec] returns noop
Sending Access-Accept of id 209 to 127.0.0.1 port 57457
Finished request 0.
Going to the next request
Waking up in 4.9 seconds.
Cleaning up request 0 ID 209 with timestamp +13
34/49
PROJET DE SYNTHÈSE
V 2.5
Ready to process requests.
Nous constatons que le serveur radius nous revoie une réponse positive dans sa base de données (fichier
« /etc/radiusd/users ») et que cette utilisateur n’existe pas dans l’annuaire ldap car il n’a pas été crée
dans celui-ci donc tous est normal.
5 .2 .
Te s t d ’ u n u t i l i s at e u r d a ns l ’ a nnu ai re l d ap
5.2.1.
Access-Accept
Dans le même principe, nous allons tester l’utilisateur « sheerif » dans l’annuaire « test. Local ».Voici la
premiere fenêtre:
root@testeur:~# radtest sheerif sgueuglife localhost 0 testing123
Sending Access-Request of id 234 to 127.0.0.1 port 1812
User-Name = "sheerif"
User-Password = "sgueuglife"
NAS-IP-Address = 127.0.0.1
NAS-Port = 0
rad_recv: Access-Accept packet from host 127.0.0.1 port 1812, id=234, length=20
Voici la seconde fenêtre qui va nous détailler les étapes de l’authentification:
rad_recv: Access-Request packet from host 127.0.0.1 port 48455, id=234, length=59
User-Name = "sheerif"
User-Password = "sgueuglife"
NAS-IP-Address = 127.0.0.1
NAS-Port = 0
# Executing section authorize from file /etc/freeradius/sites-enabled/default
+- entering group authorize {...}
++[preprocess] returns ok
++[chap] returns noop
++[mschap] returns noop
++[digest] returns noop
[suffix] No '@' in User-Name = "sheerif", looking up realm NULL
[suffix] No such realm "NULL"
++[suffix] returns noop
[eap] No EAP-Message, not doing EAP
++[eap] returns noop
++[files] returns noop
[ldap] performing user authorization for sheerif
[ldap]
expand: %{Stripped-User-Name} ->
[ldap]
... expanding second conditional
[ldap]
expand: %{User-Name} -> sheerif
[ldap]
expand: (uid=%{%{Stripped-User-Name}:-%{User-Name}}) -> (uid=sheerif)
[ldap]
expand: dc=test,dc=local -> dc=test,dc=local
[ldap] ldap_get_conn: Checking Id: 0
[ldap] ldap_get_conn: Got Id: 0
[ldap] performing search in dc=test,dc=local, with filter (uid=sheerif)
35/49
PROJET DE SYNTHÈSE
V 2.5
[ldap] No default NMAS login sequence
[ldap] looking for check items in directory...
[ldap] userPassword -> Cleartext-Password ==
"{SSHA}F4yuBKJTrwY7eKUTWC6KXOlxdMNlaWJS"
[ldap] userPassword -> Password-With-Header ==
"{SSHA}F4yuBKJTrwY7eKUTWC6KXOlxdMNlaWJS"
[ldap] sambaNtPassword -> NT-Password ==
0x3642423045413232414345313041433137343732343844343536424436333839
[ldap] sambaLmPassword -> LM-Password ==
0x3046324331453541323538363131353341374441354446433445343642354235
[ldap] looking for reply items in directory...
[ldap] Setting Auth-Type = LDAP
[ldap] user sheerif authorized to use remote access
[ldap] ldap_release_conn: Release Id: 0
++[ldap] returns ok
rlm_checkval: Could not find item named Calling-Station-Id in request
rlm_checkval: Could not find attribute named Calling-Station-Id in check pairs
++[checkval] returns notfound
++[expiration] returns noop
++[logintime] returns noop
[pap] Normalizing NT-Password from hex encoding
[pap] Normalizing LM-Password from hex encoding
[pap] Normalizing SSHA1-Password from base64 encoding
[pap] WARNING: Auth-Type already set.
Not setting to PAP
++[pap] returns noop
Found Auth-Type = LDAP
# Executing group from file /etc/freeradius/sites-enabled/default
+- entering group LDAP {...}
[ldap] login attempt by "sheerif" with password "sgueuglife"
[ldap] user DN: uid=sheerif,ou=Users,dc=test,dc=local
[ldap] (re)connect to localhost:389, authentication 1
[ldap] bind as uid=sheerif,ou=Users,dc=test,dc=local/sgueuglife to localhost:389
[ldap] waiting for bind result ...
[ldap] Bind was successful
[ldap] user sheerif authenticated succesfully
++[ldap] returns ok
Login OK: [sheerif/sgueuglife] (from client localhost port 0)
# Executing section post-auth from file /etc/freeradius/sites-enabled/default
+- entering group post-auth {...}
++[ldap] returns noop
++[exec] returns noop
Sending Access-Accept of id 234 to 127.0.0.1 port 48455
Finished request 1.
Going to the next request
Waking up in 4.9 seconds.
36/49
PROJET DE SYNTHÈSE
V 2.5
Cleaning up request 1 ID 234 with timestamp +130
Ready to process requests.
5.2.2.
Analyse de l’acceptation
La première étape est un « Access-Request » qui contient l'identité de l'utilisateur qui veut s’authentifier:
# Executing section authorize from file /etc/freeradius/sites-enabled/default
+- entering group authorize {...}
++[preprocess] returns ok
++[chap] returns noop
++[mschap] returns noop
++[digest] returns noop
[suffix] No '@' in User-Name = "sheerif", looking up realm NULL
[suffix] No such realm "NULL"
++[suffix] returns noop
[eap] No EAP-Message, not doing EAP
++[eap] returns noop
++[files] returns noop
La réponse de l’annuaire après une vérification dans sa base :
[ldap] performing user authorization for sheerif
[ldap]
expand: %{Stripped-User-Name} ->
[ldap]
... expanding second conditional
[ldap]
expand: %{User-Name} -> sheerif
[ldap]
expand: (uid=%{%{Stripped-User-Name}:-%{User-Name}}) -> (uid=sheerif)
[ldap]
expand: dc=test,dc=local -> dc=test,dc=local
[ldap] ldap_get_conn: Checking Id: 0
[ldap] ldap_get_conn: Got Id: 0
[ldap] performing search in dc=test,dc=local, with filter (uid=sheerif)
[ldap] No default NMAS login sequence
[ldap] looking for check items in directory...
[ldap] userPassword -> Cleartext-Password ==
"{SSHA}F4yuBKJTrwY7eKUTWC6KXOlxdMNlaWJS"
[ldap] userPassword -> Password-With-Header ==
"{SSHA}F4yuBKJTrwY7eKUTWC6KXOlxdMNlaWJS"
[ldap] sambaNtPassword -> NT-Password ==
0x3642423045413232414345313041433137343732343844343536424436333839
[ldap] sambaLmPassword -> LM-Password ==
0x3046324331453541323538363131353341374441354446433445343642354235
[ldap] looking for reply items in directory...
[ldap] Setting Auth-Type = LDAP
[ldap] user sheerif authorized to use remote access
[ldap] ldap_release_conn: Release Id: 0
++[ldap] returns ok
Puis vient la validation du mot de passe de l’utilisateur dans l’annuaire :
37/49
PROJET DE SYNTHÈSE
V 2.5
# Executing group from file /etc/freeradius/sites-enabled/default
+- entering group LDAP {...}
[ldap] login attempt by "sheerif" with password "sgueuglife"
[ldap] user DN: uid=sheerif,ou=Users,dc=test,dc=local
[ldap] (re)connect to localhost:389, authentication 1
[ldap] bind as uid=sheerif,ou=Users,dc=test,dc=local/sgueuglife to localhost:389
[ldap] waiting for bind result ...
[ldap] Bind was successful
[ldap] user sheerif authenticated succesfully
++[ldap] returns ok
Login OK: [sheerif/sgueuglife] (from client localhost port 0)
Puis un « Access-Accept » qui permet d’accepter la requête du client après interrogation de sa base
d'authentification :
# Executing section post-auth from file /etc/freeradius/sites-enabled/default
+- entering group post-auth {...}
++[ldap] returns noop
++[exec] returns noop
Sending Access-Accept of id 234 to 127.0.0.1 port 48455
Finished request 1.
5.2.1.
Access-Reject
Dans le même principe, nous allons tester l’utilisateur « Manager» dans l’annuaire « test. Local ».Voici la
première fenêtre:
root@testeur:~# radtest Manager sgueuglife localhost 0 testing123
Sending Access-Request of id 235 to 127.0.0.1 port 1812
User-Name = "Manager"
User-Password = "sgueuglife"
NAS-IP-Address = 127.0.0.1
NAS-Port = 0
rad_recv: Access-Reject packet from host 127.0.0.1 port 1812, id=235, length=20
Voici la seconde qui va nous détailler les étapes de l’authentification:
rad_recv: Access-Request packet from host 127.0.0.1 port 45040, id=235, length=59
User-Name = "Manager"
User-Password = "sgueuglife"
NAS-IP-Address = 127.0.0.1
NAS-Port = 0
# Executing section authorize from file /etc/freeradius/sites-enabled/default
+- entering group authorize {...}
++[preprocess] returns ok
++[chap] returns noop
++[mschap] returns noop
++[digest] returns noop
[suffix] No '@' in User-Name = "Manager", looking up realm NULL
38/49
PROJET DE SYNTHÈSE
V 2.5
[suffix] No such realm "NULL"
++[suffix] returns noop
[eap] No EAP-Message, not doing EAP
++[eap] returns noop
++[files] returns noop
[ldap] performing user authorization for Manager
[ldap]
expand: %{Stripped-User-Name} ->
[ldap]
... expanding second conditional
[ldap]
expand: %{User-Name} -> Manager
[ldap]
expand: (uid=%{%{Stripped-User-Name}:-%{User-Name}}) -> (uid=Manager)
[ldap]
expand: dc=test,dc=local -> dc=test,dc=local
[ldap] ldap_get_conn: Checking Id: 0
[ldap] ldap_get_conn: Got Id: 0
[ldap] performing search in dc=test,dc=local, with filter (uid=Manager)
[ldap] object not found
[ldap] search failed
[ldap] ldap_release_conn: Release Id: 0
++[ldap] returns notfound
rlm_checkval: Could not find item named Calling-Station-Id in request
rlm_checkval: Could not find attribute named Calling-Station-Id in check pairs
++[checkval] returns notfound
++[expiration] returns noop
++[logintime] returns noop
[pap] WARNING! No "known good" password found for the user.
because of this.
Authentication may fail
++[pap] returns noop
ERROR: No authenticate method (Auth-Type) found for the request: Rejecting the user
Failed to authenticate the user.
Login incorrect (
port 0)
[ldap] User not found): [Manager/sgueuglife] (from client localhost
Using Post-Auth-Type Reject
# Executing group from file /etc/freeradius/sites-enabled/default
+- entering group REJECT {...}
[attr_filter.access_reject]
expand: %{User-Name} -> Manager
attr_filter: Matched entry DEFAULT at line 11
++[attr_filter.access_reject] returns updated
Delaying reject of request 2 for 1 seconds
Going to the next request
Waking up in 0.9 seconds.
Sending delayed reject for request 2
Sending Access-Reject of id 235 to 127.0.0.1 port 45040
Waking up in 4.9 seconds.
Cleaning up request 2 ID 235 with timestamp +2046
Ready to process requests.
39/49
PROJET DE SYNTHÈSE
5.2.1.
V 2.5
Analyse du refus
La première étape est un « Access-Request » qui contient l'identité de l'utilisateur qui veut s’authentifier:
# Executing section authorize from file /etc/freeradius/sites-enabled/default
+- entering group authorize {...}
++[preprocess] returns ok
++[chap] returns noop
++[mschap] returns noop
++[digest] returns noop
[suffix] No '@' in User-Name = "Manager", looking up realm NULL
[suffix] No such realm "NULL"
++[suffix] returns noop
[eap] No EAP-Message, not doing EAP
++[eap] returns noop
++[files] returns noop
L’utilisateur est inexistant dans l’annuaire :
[ldap] performing user authorization for Manager
[ldap]
expand: %{Stripped-User-Name} ->
[ldap]
... expanding second conditional
[ldap]
expand: %{User-Name} -> Manager
[ldap]
expand: (uid=%{%{Stripped-User-Name}:-%{User-Name}}) -> (uid=Manager)
[ldap]
expand: dc=test,dc=local -> dc=test,dc=local
[ldap] ldap_get_conn: Checking Id: 0
[ldap] ldap_get_conn: Got Id: 0
[ldap] performing search in dc=test,dc=local, with filter (uid=Manager)
[ldap] object not found
[ldap] search failed
[ldap] ldap_release_conn: Release Id: 0
++[ldap] returns notfound
Puis vient l’invalidation du mot de passe:
[pap] WARNING! No "known good" password found for the user.
because of this.
Authentication may fail
++[pap] returns noop
ERROR: No authenticate method (Auth-Type) found for the request: Rejecting the user
Failed to authenticate the user.
Login incorrect (
port 0)
[ldap] User not found): [Manager/sgueuglife] (from client localhost
Un « Access-Reject » est émis par le serveur radius pour spécifier au client que sa requête non valide.
Using Post-Auth-Type Reject
# Executing group from file /etc/freeradius/sites-enabled/default
+- entering group REJECT {...}
[attr_filter.access_reject]
expand: %{User-Name} -> Manager
attr_filter: Matched entry DEFAULT at line 11
++[attr_filter.access_reject] returns updated
40/49
PROJET DE SYNTHÈSE
V 2.5
Delaying reject of request 2 for 1 seconds
Going to the next request
Waking up in 0.9 seconds.
Sending delayed reject for request 2
Sending Access-Reject of id 235 to 127.0.0.1 port 45040
41/49
PROJET DE SYNTHÈSE
V 2.5
6. CONCLUSION
Ce projet est une alternative efficace qui peut-être adaptée à toutes les entreprises qui souhaitent avoir
une sécurisation de leurs infrastructure réseaux.
Dans ce dernier chapitre, nous avons présenté la maquette expérimentale, la phase de réalisation de
notre projet en présentant les solutions mises en place, la démarche de travail, le principe de
fonctionnement de chaque solution, finalement, nous avons présenté les tests de validation effectués.
Nous avons trouve l’étude du sujet de notre projet de synthèse très passionnant du fait de sa richesse
technique.
D’autre part, la mise en œuvre fut extrêmement complexe car les références sur internet ne sont pas
mises à jour, et que le sujet en lui-même est assez lourd et complexe.
L’élaboration de ce projet nous a permis, d’une part, d’approfondir les connaissances et le savoir faire
acquis durant ma formation à l’AFPA de St-Jérôme, et d’autre part, de préparer mon intégration à la vie
professionnelle et de me se situer sur le marché de l’exploitation de la production informatique.
42/49
PROJET DE SYNTHÈSE
V 2.5
7. BIBLIOGRAPHIE
http://www.commentcamarche.net/authentification/radius.php3
http://infodotnet.blogspot.com/2008/03/install-and-configure-freeradius-with.html
http://www.normes-internet.com/normes.php?rfc=rfc2865&lang=fr
http://www.etsi.org/frameset/home.htm?/technicalactiv/VPN/vpn.htm
http://www.untruth.org/~josh/security/radius/radius-auth.html
http://www.supinfo-projects.com/fr/2005/radius_fr/
http://www.supinfo-projects.com/fr/2005/radius%5Ffr/
http://www.commentcamarche.net/contents/internet/ldap.php3/
http://www.cisco.com/en/us/tech/tk59/technologies_tech_note/
43/49
PROJET DE SYNTHÈSE
V 2.5
8 . T R AVA U X C I T E S
Authentification réseau avec Radius : 802.1x, EAP, Free Radius de Serge Border.
Pascal THONIEL. Sécurité des systèmes d’information. Technique de l’ingénieur.
Marcel Rizcallah. Annuaires LDAP. EYROLLES.
Serge Bordères. Authentification réseau avec Radius. EYROLLES.
44/49
PROJET DE SYNTHÈSE
V 2.5
9. ANNEXES
9 .1 .
Te r mi no l o g i e
9.1.1.
Acronymes
Termes
Explication
LDAP
Light Directory Access Protocol
DN
Distinguished Name
RDN
Relative Distinguished Name
OID
Object Identifier
NIS
Network Information Service
SASL
Simple Authentification and Security Layer
TLS
Transport Layer Security
LDIF
LDAP Data Inter change Format
9.1.2.
Glossaire
Termes
Explication
IETF
Internet Engineering Task Force. Organisation
l'Internet.
ISO
International Standard Organisation. Organisation internationale de standardisation,
réunissant les organismes de normalisation de pas mal de pays dans le monde, et qui
travaille dans tous les domaines.
Kerberos
Protocole d'authentification réseau créé au MIT. Kerberos utilise un système de
tickets au lieu de mots de passe en texte clair. Ce principe renforce la sécurité du
système et empêche que des personnes non autorisées interceptent les mots de passe
des utilisateurs.
LDAP
Protocole d’accès à un annuaire qui permet de stocker des données légèrement typées,
organisées selon des classes particulières et présentées dans un arbre.
OSI
Open System InterConnect. Modèle en couches fournissant un cadre conceptuel et
normatif aux échanges entre systèmes hétérogènes. Le modèle OSI comporte 7 couches
1. Physique,
2. Liaison de données,
3. Réseau,
4. Transport,
5. Session,
6. Présentation,
7. Application.
PAM
Pluggable Authentification Modules. Technologie de gestion des interfaces
d’authentification pour les applications en nécessitant sur les systèmes Unix.
NSS
Name Server Switch. Technologie de résolution de nom sur les systèmes Unix.
RFC
Request For Comment. Référence auprès de la Communauté Internet, qui décrivent,
spécifient, aident à la mise en œuvre, standardisent et débattent de la majorité des
normes, standards, technologies et protocoles liés à Internet et aux réseaux en général.
préparant les principaux standards de
45/49
PROJET DE SYNTHÈSE
V 2.5
ACL
(Access Control List) Liste spécifiant les droits attribués à un ou plusieurs acteurs
(ex : un utilisateur) sur une ressource (ex : un fichier).
BDC
(Backup Domain Controller) Contrôleur secondaire de domaine, prend le relais du PDC en
cas de panne. Appellation propre à un domaine NT.
Classe
Permet de définir les particularités d'une famille d'objets, en spécifiant des attributs
obligatoires, et/ou des attributs optionnels possibles. Il y a possibilité d'héritage entre
classes, multiple ou non, pour les objets LDAP (Pour une sous-classe, obtention
automatique des attributs définis dans les classes supérieure dont elle hérite). Toutes les
classes héritent de la classe Top, qui est la classe du sommet de la hiérarchie des classes
(un seul attribut : objectClass).
DC
(Domain Controller) Terme générique pour désigner un contrôleur de domaine, qu'il soit
PDC, BDC (NT) ou qu'il n'ait pas de niveau d'importance particulier (Active Directory).
DIB
(Directory Information Base) Un annuaire LDAP/X.500 est une collection d'information de
toutes catégories. Ces informations sont stockées dans la "Directory Information Base"
ou DIB. La DIB est composées d'entrées, dont le contenu est régit par les notions d'objet
et de classes.
DIT
(Directory Information Tree) Un arbre LDAP/X.500 est organisé de façon arborescente, à
partir d'une racine unique nommée 'root'. Cette racine peut être vue comme une entrée
nulle (objet vide).
DN
(Distinguish Name) Au sein d'un annuaire LDAP, représente le nom et le chemin d'un
objet.Exemple : "cn=Users,ou=Groups,dc=afpa,dc=local".
Entrées
LDAP
Les entrées LDAP sont une collection d'attributs. Chaque attribut décrit un type bien
particulier d'information, et peut contenir une ou plusieurs valeurs (On dit qu'un attribut
peut être multi-valué). A chaque type d'attribut est lié une syntaxe spécifique donnant le
format possible de ses valeurs.
GID
(Group Identifier) Identité numérique représentant un groupe d'utilisateurs sous Unix.
GUI
(Graphical User Interface) Interface graphique
LDAP
(Lightweight Directory Access Protocol) Adaptation allégée du protocole X500. Protocole
de gestion d'annuaires réseaux.
NetBios
(Network Basic Input/Output System) n'est pas un protocole. Méthode de communication
sur un protocole existant ; est en fait une couche intermédiaire entre SMB et un
protocole sous-jacent tel que TCP (cf. NBT) ou IPX. Il fonctionne à la couche 5 (session)
du modèle OSI. Fournit une méthode de résolution de noms et de services aux couches
supérieures. Utilise un modèle de noms de machines de 15 caractères + 1 caractère de
contrôle spécifiant les services offerts par la machines.
NSS
(NSSwitch, Name Service Switch) Mécanisme qui intercepte les requêtes de noms
effectuées par la machine (concernant les noms de machines, d'utilisateurs : cf. getent,
...) et les redirige vers différentes sources d'informations (LDAP, MySQL...). Fonctionne
avec différents modules.
Objets LDAP
La notion d'objet permet de représenter abstraitement tout type d'information ou d'entité
existante. Une classe d'objet est une famille d'objets ayant certaines caractéristiques
communes.
OIDs
(Object Identifiers) Les Object Identifiers sont des suites uniques de nombres, qui
servent à identifier de façon sûre un type de donnée. Des OIDs sont utilisés pour
désigner l'identité des classes, des types d'attributs, et des syntaxes possibles de ces
46/49
PROJET DE SYNTHÈSE
V 2.5
attributs. Les OIDs sont formés à partir de la hiérarchie spécifiée par l'OSI, au niveau
mondial (de la même façon que les objets décrits dans les MIBs...)
PAM
(Pluggable Authentication Modules) Mécanisme d'authentification par modules. Il est
ainsi possible d'utiliser toutes sortes de sources de données (fichier passwd, LDAP,
biométrie...) pour valider un utilisateur.
PDC
(Primary Domain Controller) Contrôleur principal de domaine. Appellation propre à un
domaine NT.
SAM
(Security Account Manager) Base de données contenant les informations de sécurité sur
un serveur Windows NT, notamment les comptes et mots de passes des utilisateurs.
Schéma
Le schéma d'un annuaire est un ensemble de règles, qui doivent être utilisées par le
gestionnaire d'arbre (DIB et DIT), pour limiter les possibilités de création et de
structuration des entrées.
SID
(Security Identifier) Un SID est un identifiant unique attribué à chaque acteur d'un
domaine Windows. Il est composé d'une partie nommée "SID local", qui identifie le
domaine, et d'une seconde que l'on appelle "RID" (Relative Identifier), qui identifie
l'acteur (utilisateur/groupe/machine) au sein du domaine : un exemple de SID pourraitêtre : S-1-5-21-3493456274-4211610059-1786859526-512 qui identifie le groupe
d'Administrateurs du domaine (512) au sein du domaine S-1-5-21-34934562744211610059 .
TLS
(Transport Layer Security) Anciennement SSLv3.0, renommé et normalisé par l'IETF, cf.
RFC2246. Protocole de dialogue sécurisé pour attaquer un serveur LDAP.
UID
(User Identifier) Identifiant numérique représentant un utilisateur sous Unix.
UNC
(Universal Naming Convention)Convention de nommage universelle (sous Windows)
permettant de désigner le chemin d'un répertoire partagé. Ex. : \\Serveur\partage.
X500
Standard conçu par les opérateurs télécoms pour interconnecter leurs annuaires
téléphoniques.
9.1.3.
Définitions
Termes
Explication
Authentification
L’authentification est un procédé qui permet de vérifier l’identité d’une entité
(personne, système, etc..), afin d’autoriser cette entité d’avoir accès a une ressource
ou à un ensemble de ressources.
Physique
Authentification des accès physique à travers un réseau privé ou distant
(adresse MAC, clé wep, etc..).
Logique
Authentification des utilisateurs à travers un système ou une application
(annuaire, base de données, etc..).
Simple
Elle requiert un seul élément qui confirme et valide les droits pour permettre l'accès
à une ressource. L’exemple le plus connu est celui qu’ont utilise tout les jours c’est le
mot de passe.
Forte
Elle requiert plusieurs éléments combinés qui confirme et valide les droits pour
permettre l'accès à une ressource. Les exemples sont multiple mais le plus connu
reste la carte bancaire car elle combine la puce + bande magnétique + mot de
passe.
Unique
Elle permet à un utilisateur de ne procéder qu'à une seule authentification pour
47/49
PROJET DE SYNTHÈSE
V 2.5
accéder à plusieurs applications informatiques. Un exemple connu est MSN car avec
le même login + mot de passe, on a accès à la boite mail et a tous les autres
services annexes (Messenger, stockage, etc..).
Locale
C’est actuellement la solution que tout le monde utilise pour se connecte ou se
« logger » à son pc portable pour un particulier ou son ordinateur de bureau
(généralement dans les petites entreprises).La gestion de cette authentification se
fait localement dans chaque ordinateur par la gestion des comptes utilisateurs.
Centralisée
Le principe de base est ici de disposer d'un annuaire (base de données) globale qui
centralise tous les utilisateurs. Cela permet également de gérer de la politique de
sécurité. Un exemple de mise en œuvre est le contrôleur de domaine « active
directory ». Cette approche est principalement destinée à des services dépendant
tous d'une même entité.
Identification
L’identification est la capacité de reconnaitre une entité de manière unique et
catégorique. Cette identification peut prendre la forme d’un pseudonyme, d’un alias
ou tout simplement le nom réel de l’utilisateur. Elle peut aussi prendre la forme
d’une série de chiffres et de lettres.
Certification
La certification est l’assurance et la preuve absolue de la validité de l’identification et
de l’authentification d’une entité. Elle se traduit généralement par l’échange de
certificat dit : « électronique » ou numérique.
48/49
PROJET DE SYNTHÈSE
V 2.5
FI N DU DOCUME NT
49/49