SÉCURITÉ DU SI. Authentification Centralisée LDAP / Radius. Denoun Jérémy De Daniloff Cyril Bettan Michael SUJET: Version : 1.0



Documents pareils
I. Présentation du serveur Samba

Journée Josy/PLUME. Outils logiciels libres utiles à tout ASR SAMBA. Maurice Libes. Centre d'océanologie de Marseille UMS 2196 CNRS

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

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

PARAMETRER SAMBA 2.2

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

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

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

LINUX REMPLAÇANT WINDOWS NT

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

Faites danser votre serveur avec Samba. Association LOLITA

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

UE5A Administration Réseaux LP SIRI

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

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

INSTALLATION ET CONFIGURATION DE OPENLDAP

Authentification des utilisateurs avec OpenLDAP et Samba 3.0

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

Serveur d impression CUPS

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

Installation et configuration d un serveur SAMBA sous linux Red Hat

Support de cours. Serveur de fichiers Samba. 2003, Sébastien Namèche - 1

Linux Intranet. Guillaume Allègre INP-FC octobre Grenoble INP Formation Continue. G.

SAMBA. partager des fichiers sous Linux par un protocole compatible Microsoft

TD3 - Radius et IEEE 802.1x

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

Partages de fichiers SAMBA et d imprimantes CUPS entre deux réseaux internes.

14. Samba Introduction Protocoles Microsoft. Page suivante Page précédente Table des matières

Couplage openldap-samba

L annuaire et le Service DNS

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

Utiliser Améliorer Prêcher. Introduction à LDAP

Installation du point d'accès Wi-Fi au réseau

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

Le protocole RADIUS. Objectifs. Ethernet Switch RADIUS RADIUS

Module Samba: Concepts et fonctionnement

Aubert Coralie, Ruzand Brice GTR 2002 Bonvarlet Manuel, Desroches Alexandre, Magnin Cyril DRT Notice technique 1

Formateurs : Jackie DAÖN Franck DUBOIS Médiapôle de Guyancourt

Configuration d'un annuaire LDAP

1. Présentation du TP

Ubuntu Linux Création, configuration et gestion d'un réseau local d'entreprise (3ième édition)

TUTORIEL RADIUS. I. Qu est-ce que RADIUS? II. Création d un groupe et d utilisateur

Institut Universitaire de Technologie

NFS Maestro 8.0. Nouvelles fonctionnalités


A. À propos des annuaires

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

Authentification sur réseau sans-fil Utilisation d un serveur radius Expérience du CENBG

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

La double authentification dans SharePoint 2007

Services Réseaux - Couche Application. TODARO Cédric

Annuaire LDAP + Samba

Projet Semestre2-1SISR

Internet. Licence Pro R&S. TD 5 - Wifi / Radius. 1 Sur le réseau de distribution (DS) 1.1 Configuration des routeurs PC6

Description de la maquette fonctionnelle. Nombre de pages :

Installation et configuration de Vulture Lundi 2 février 2009

GOUTEYRON ALEXIS. SIO2 N candidat: UEpreuve E4. USituation professionnelle 2. serveurs de fichiers. Uen haute disponibilité

Une unité organisationnelle (Staff) comporte une centaine d'utilisateur dans Active Directory.

Formateur : Jackie DAÖN

Les différentes méthodes pour se connecter

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

Serveur DNS et DHCP couplé à LDAP Debian GNU/Linux

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

Windows Internet Name Service (WINS)

Restriction sur matériels d impression

Service d'authentification LDAP et SSO avec CAS

LDAP : pour quels besoins?

1. Présentation de WPA et 802.1X

Le protocole FTP (File Transfert Protocol,

Automatisation de l administration système

Authentification des utilisateurs avec OpenLDAP

Services TCP/IP : Authentification, partage de fichier et d'imprimante dans un domaine Microsoft

Authentification centralisée et SSO Sujet. Table des matières. 1 ORGANISATION Mode de rendu Informations complémentaires 1 2 SUJET 2

Windows 2000 Server Active Directory

Linux sécurité des réseaux

Gestion des identités Christian-Pierre Belin

Authentification unifiée Unix/Windows

TP associé au cours Samba

2X ThinClientServer Guide d utilisation

Service Informatique et Télématique (SITEL), Emile-Argand 11, 2009 Neuchâtel, Tél ,

Présentation de Samba

Le rôle Serveur NPS et Protection d accès réseau

Installation Windows 2000 Server

Installation d OwnCloud 8.0 sous Debian Avec connexion des utilisateurs active directory et mise en place de HTTPS

Client Debian Squeeze et serveur SambaEdu3

FreeNAS Shere. Par THOREZ Nicolas

Proxy et reverse proxy. Serveurs mandataires et relais inverses

Stratégie de groupe dans Active Directory

Licence professionnelle Réseaux et Sécurité Projets tutorés

Windows Server Chapitre 3 : Le service d annuaire Active Directory: Concepts de base

Le protocole RADIUS Remote Authentication Dial-In User Service

TP n 2 : Installation et administration du serveur ProFTP. Partie 1 : Fonctionnement du protocole FTP (pas plus de 15min)

Sauvegardes par Internet avec Rsync

Active Directory. Structure et usage

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

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

vcenter Server 1. Interface Lancez le vsphere Client et connectez vous à vcenter Server. Voici la page d accueil de vcenter Server.

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

Transcription:

L D A P V S R A D I U S SRS Epita Promo 2009 SÉCURITÉ DU SI SUJET: Authentification Centralisée LDAP / Radius Version : 1.0 Denoun Jérémy De Daniloff Cyril Bettan Michael 1 4-1 6 r u e v o l t a i r e 9 4 2 3 0 K r e m l i n B i c ê t r e - S R S

Introduction Objectif L objectif est de présenter notre travail durant ces 2 dernières semaines sur la problématique de l authentification centralisée. Pour étudier ce domaine nous avons travaillé sur 2 technologies différentes : Serveur LDAP, Serveur Radius. Lightweight Directory Access Protocol (LDAP) LDAP est à l'origine un protocole permettant l'interrogation et la modification des services d'annuaires. Ce protocole repose sur TCP/IP. Il a cependant évolué pour représenter une norme pour les systèmes d'annuaires, incluant un modèle de données, un modèle de nommage, un modèle fonctionnel basé sur le protocole LDAP, un modèle de sécurité et un modèle de réplication. Un annuaire LDAP respecte généralement le modèle X.500 édicté par l'uit-t : c'est une structure arborescente dont chacun des nœuds est constitué d'attributs associés à leurs valeurs. RADIUS (Remote Authentication Dial-In User Service) Radius est un protocole client-serveur permettant de centraliser des données d'authentification. En français on préfère souvent parler d'identification pour traduire l'anglais authentication, car l'identification effectuée par un serveur Radius est une vérification de nom d'utilisateur (attribut 1 User-Name) et de mot de passe (attribut 2 User-Password ou 3 Chap- Password). Pour utiliser ces technologies nous avons mis en oeuvre des implémentations libres de ces technologies : Logo du projet OpenLDAP Logo du projet freeradius Logo du projet Samba Organisation du document Dans un premier temps, nous allons présenter les différentes maquettes d une authentification centralisée vers un NAS (Samba) basé sur un annuaire LDAP par une authentification standard et une authentification centralisée vers un NAS (Samba) basé sur un base de compte local par une authentification avec le protocole Radius. Dans un second temps, nous présenterons nos conclusions vis a vis de la sécurisation des échanges ainsi que les ressources nécessaires à une montée en charge 1

Maquette LDAP Présentation OpenLDAP est une implémentation libre du protocole LDAP développé par The OpenLDAP Project. Elle est publiée sous sa propre licence : OpenLDAP Public License. Par définition l installation et l utilisation de ce serveur sont gratuites, de ce fait en termes de ressources utilisées OpenLDAP peut être mis en oeuvre dans une architecture ou les budgets liées à la sécurité ne prévoient pas une section coût de l annuaire pour gestion centralisée. Bien qu'officiellement distribuées uniquement sous forme de code source, on trouve des versions compilées pour GNU/ Linux, BSD, AIX, HP-UX, Mac OS X, Solaris, et Microsoft Windows (2000, XP), ce qui en fait un logiciel exploitable sur les principaux systèmes d exploitation sur le marché (et sans phase de compilation). OpenLDAP respecte la norme LDAPv3 mais assure le support des connexions à la norme v2. Au niveau de la gestion de données internes, openldap ne stocke pas directement les données, il utilise de nombreuses librairies tels mysql, BDB, flat file, OpenLDAP assure également un mécanisme de réplication, par ce procédé la technologie assure une qualité de service plus importante par une redondance des informations. Schéma 2

Mise en place L objectif est de mettre en place un mécanisme d authentification et d habilitation par un annuaire LDAP. Pour mettre en place cette solution il faut configurer le serveur référence et les clients qui souhaitent accéder à la référence. Pour mettre en oeuvre un service d authentification nous avons tout d abord décidé de travailler dans un environnement virtuel. Grâce aux outils de virtualisation tels VMWare et Parallels, nous avons pu avoir un nombre illimité de machines virtuelles. Dans un second temps nous avons utilisé nos ordinateurs portable et serveurs personnels pour monter la maquette. Installation LDAP La maquette nous conseillait une distribution debian, pour nos tests nous avons donc utilisé des debian etch et une ubuntu. Grâce au mécanisme des dépôts debian, l installation est grandement facilitée. Cependant une installation de base configure debian dans un mode automatique ou l installation des paquets ignore beaucoup de question lors de l installation des paquets (verbosité). Grâce à la commande : dkpg-reconfigure debconf L utilisateur peut mettre a jour le niveau de dialogue et augmenter le degré de configuration de ses paquets. Puis l on passe à l installation des paquets : apt-get install slapd db4.2-util ldap-utils Pour poursuivre on répond aux différentes questions : domaine, module de base de donnée, protocole, mot de passe, etc Schéma La configuration d openldap est facilitée par l utilisation de schéma spécifique qui ajoute des champs dans l annuaire pour samba on le récupère dans le paquet samba-doc apt-get install samba-doc && gunzip -c /usr/share/doc/samba-doc/examples/ldap/samba.schema.gz >/etc/ldap/schema/samba.schema 3

Configuration LDAP Pour mettre en oeuvre le service, il nous faut configurer les différents services sur les différentes machines. Serveur LDAP : Le fichier de configuration de openldap est situé dans /etc/ldap/slapd.conf. Vous pourrez trouver en annexe le fichier de configuration complet que nous avons utilisé. Les points principaux à vérifier sont : l ajout du schéma spécifique à samba, vérification des paramètres suffix et administrateur du domaine (cryptage du mot de passe) puis /etc/init.d/slapd restart Stopping OpenLDAP: slapd. Starting OpenLDAP: running BDB recovery, slapd. L installation et la configuration sont donc assez faciles et peu de paramètres sont nécessaires (en particulier grâce à debconf), cependant l installation sur d autre distribution peut être plus compliquée (ajout d utilisateur, compilation, etc ) Installation Samba De même : apt-get install samba smbclient smbfs Configuration Samba Le fichier /etc/samba/smb.conf contient tous les éléments pour activer les différents services (partage / domaine) liés à la machine. En annexe nous vous avons copié un exemple de fichier de configuration que nous avons utilisé. Les points les plus importants sont : Les méthodes d'accès à l annuaire (adresse, mot de passe, etc ) Les scripts pour ajouter/supprimer les utilisateurs/groupes/machines. sécurité (mise en place de certificat, cryptage, etc ) enfin les ressources disponibles sur le serveur / domaine du serveur Pour utiliser les connexions au domaine ne pas oublier de créer les dossiers (logon, profile, home) des utilisateurs pour activer une connexion itinérante. Installation des outils d interface smbldap-tools Debian fournit un paquet qui installe sur la machine les outils nécessaires à la gestion des droits samba pour les comptes de l annuaire LDAP. apt-get install smbldap-tools Configuration des outils smbldap Le fichier /etc/smbldap-tools/smbldap_bind.conf doit contenir les éléments de connexion aux différents serveurs LDAP (master, slave). Attention ce fichier doit contenir les mots de passes en clair, veillez donc a protéger l'accès de ce fichier uniquement aux utilisateurs autorisés. Le fichier /etc/smbldap-tools/smbldap.conf doit contenir tous les éléments liés à la connexion et à la sécurité (accés à l annuaire, information liée au différents identifiants, durée de vie des mots de passes, etc ) Une copie des fichiers est également fournie en annexe. 4

Mise en place du service Pour initialiser la connexion Samba <-> LDAP, il faut fournir le mot de passe administrateur qui effectue les requêtes : smbpasswd -w votremotdepasseroot On vérifie ensuite que la commande #net getlocalsid retourne une ligne du type SID for domain DOMAINE is : S-X-X-XX-XXXXXXXXXXXX Initialisation LDAP L outil smbldap-populate va vous permettre d initialiser votre annuaire avec une architecture spécifique à samba (autour des Organisation Unit, UID et common name). Ajout d utilisateur Une fois la base crée vous pouvez importer des utilisateurs dans votre annuaire d une façon traditionnelle (LDIF) ou utiliser la commande smbldap-useradd qui se charge de créer tous les éléments pour les connexions de l utilisateurs. - - Pour continuer LDAP a besoin de coordonner son annuaire avec une authentification utilisateur, pour les besoins de la maquette nous allons utiliser une authentification unix. Par défaut Unix utilise les informations du fichier /etc/passwd. Grâce aux modules NSS (Network Security Services) et PAM nous ajoutons au système la possibilité d interroger un annuaire LDAP pour l authentification. (apt-get install libnss-ldap) Attention ce module est un client donc la configuration pour l utilisation de LDAP est à voir du coté utilisateur. (rajouter dans /etc/nsswitch l identification ldap) - - Test de fonctionnement Pour vérifier que les comptes utilisateurs sont récupérés de l annuaire, la commande getent passwd se charge d'interroger la base 5

Partage de dossier Grâce à votre configuration Samba, vous pouvez spécifier des habilitations par utilisateurs (et donc en fonction des utilisateurs de l annuaire) autoriser ou pas l'accès en lecture, écriture sur chacun des dossiers Inscription à un domaine Samba nous permet également de rattacher nos utilisateurs à un domaine, notre expérimentation nous a permis de découvrir des technologies comme WINS et NetBios, technologies encore couramment utilisées dans les services réseaux. 6

Outils d administration de l annuaire Durant nos recherches nous avons pu expérimenter des outils pour faciliter l administration dont les fonctionnalités méritent d être signalées. PHPLDAPADMIN C'est une sorte d équivalent à PHPMYADMIN (Pour gérer son serveur Mysql). PHPLDAPADMIN vous permet de manipuler et de visualiser facilement les éléments de votre annuaire LDAP. apt-get install install phpldapadmin On ouvre un navigateur internet: http://adresseipduserveur/phpldapadmin (Login DN : cn=admin,dc=domaine,dc=local) Vous pouvez également tester et utiliser des outils comme LDAP Account Manager, Apache Directory Studio ou encore luma.. 7

Critique SÉCURITÉ Dans le protocole de base des informations sensibles peuvent transiter en clair entre le serveur et le client, pour améliorer la sécurité openldap supporte le protocole SSL/TLS, pour l activer vous devez générer des clefs pour le serveur (comme pour n importe quels services basés sur SSL) par exemple avec openssl (placer les certificats dans le dossier /usr/local/ etc/openldap/). Il ne reste plus qu à configurer le client pour une connexion par le port 636 (LDAPv3 over SSL) en ldaps. MONTÉE EN CHARGE Les mécanismes d identification entraînent plus d une cinquantaine de requêtes entre le client et le serveur, lors d une utilisation jusqu a cinquante requêtes de plus peuvent être effectuées. Pour améliorer la montée en charge des connexions LDAP, openldap à un mécanisme de réplication avancé basé sur des méthodes de synchronisation des données afin de répartir les connexions sur les serveurs esclaves, il peut être facilement mis en place grâce à slurpd. Attention dans le cas d une infrastructure Master / Slave, certaines fonctionnalités peuvent être indisponibles (modification, ajout), il est donc indispensable d établir un modèle afin de faire ressortir les contraintes fonctionnelles. Egalement pour améliorer la réactivité du serveur nous pouvons utiliser nscd qui est une solution de cache qui améliore les temps de réponse au requête similaire. Par les mécanismes cités openldap possède des outils qui permettent l utilisation du protocole à grande échelle, c est donc un concurrent aux bases Active Directory de Microsoft dont l utilisation peut être similaire AJOUT DE SERVICE openldap se base sur l utilisation de schéma et sur l implémentation de l utilisation par le client du protocole, le serveur est donc évolutif aux nouveaux services. POSTE BANALISÉ La solution LDAP comme les autres solutions d authentification, a les défauts de ses avantages. Les comptes centralisés donnent en cas de compromission un accès illimité aux ressources, il faut donc prévoir des mesures de sécurisation et limiter la confiance accordée aux clients. Un poste banalisé peut être une source de faille si la configuration du poste n est pas sécurisée (mot de passe en clair), faille logiciel, etc... 8

Maquette Radius Présentation Le protocole RADIUS (Remote Authentication Dial-In User Service), mis au point initialement par Livingston, est un protocole d'authentification standard, défini par un certain nombre de RFC. Le fonctionnement de RADIUS est basé sur un système client/serveur chargé de définir les accès d'utilisateurs distants à un réseau. Il s'agit du protocole de prédilection des fournisseurs d'accès à internet car il est relativement standard et propose des fonctionnalités de comptabilité permettant aux FAI de facturer précisément leurs clients. Le protocole RADIUS repose principalement sur un serveur (le serveur RADIUS), relié à une base d'identification (base de données, annuaire LDAP, comptes locaux, etc.) et un client RADIUS, appelé NAS (Network Access Server), faisant office d'intermédiaire entre l'utilisateur final et le serveur. L'ensemble des transactions entre le client RADIUS et le serveur RADIUS est chiffrée et authentifiée grâce à un secret partagé. Schéma 9

Mise en place Technique Serveur Radius (debian etch 192.168.1.62) a. Installation Il suffit d installer le serveur freeradius $ aptitude install freeradius L ensemble des fichiers de configurations se trouvent dans /etc/freeradius/ 2 fichiers de configurations doivent obligatoirement être configuré : radiusd.conf : configuration de base de Freeradius En annexe, nous avons mis l ensemble du fichier radiusd.conf à configurer, en voici les éléments important pour notre maquette : bind_address = * # On écoute sur tous les interfaces ethernet port = 0 # configuration automatique (port par défaut 1812) log_auth = yes proxy_requests = no # On n agit pas comme un proxy snmp = no # Pas de collecte snmp # Quelles informations doit-on écrire dans le journal? log_stripped_names = no log_auth = yes log_auth_badpass = no log_auth_goodpass = no # Inclusion des options de contrôle d'accès $INCLUDE ${confdir}/clients.conf clients.conf : Ce fichier permet d autoriser des clients radius à interroger notre serveur radius par leur adresse d'émission protéger par par un mot de passe. # On autorise notre lan 192.168.1.x à émettre des requêtes à notre serveur radius client 192.168.1.0/24 { secret = testingclass shortname = class nastype = other } 10

b. Tests du serveur radius On teste notre serveur radius depuis un radius client depuis notre serveur samba à l aide des commandes : freeradius X pour lancer freeradius en mode debug Requête acceptée Requête refusée 11

Serveur Samba utilisant l authentification Radius (debian etch 192.168.1.2) Le but de cette partie est la mise en place : Un serveur samba classique se basant sur les comptes unix locaux. La délégation de l authentification au serveur radius grâce à pam (Pluggable Authentication Modules) En effet, une fois l installation du serveur samba classique effectué, il faudra changer la méthode traditionnelle d identification utilisant les comptes unix locaux pour interroger le serveur radius. Pour cela, on va utiliser les modules PAM (Pluggable Authentication Modules) qui sont destinés à simplifier la vie de l'administrateur système. Ils permettent de changer de manière élégante la politique d'authentification sans avoir à recompiler le moindre programme. Il nous suffira d installer sur le système la librairie dynamique d authentification radius pour pam (pam_radius_auth.so) a. Installation du serveur Samba $apt-get install samba smbclient Il faut ensuite configurer le fichier /etc/samba/smb.conf, en annexe 2, nous avons mis l ensemble du fichier radiusd.conf à configurer, en voici les éléments important pour notre maquette : [global] # même nom de groupe que celui sous Windows (Voisinage réseau) workgroup = SrsRadius # nom sous lequel apparaîtra le serveur dans le voisinage réseau netbios = samba radius server # ce qui apparaîtra dans la rubrique détail du voisinage réseau, %v fait # apparaître le n de version de samba server string = Samba Server %v # les mots de passe ne transitent pas cryptés encrypt passwords = No update encrypted = No smb passwd file = /etc/samba/smbpasswd allow trusted domains = Yes min password length = 6 null passwords = No revalidate = No # Samba obeit à PAM (account et session) # Encrypt password doit être à No obey pam restrictions = no # aucun compte invité (facultatif) guest account = nobody # accès multi-utilisateur (facultatif) Share modes = yes # Autoriser l'accès a certains réseaux (le point final est important) hosts allow = 192.168.1. 12

b. Test du serveur SAMBA sans Radius Nous allons tester notre serveur samba avec les comptes locaux sans utiliser pour l instant l authentification Radius Création d un utilisateur unix de base (test / test) Changement du password samba : Connexion au serveur samba par un client samba unix 13

c. Installation de PAM pour Radius $apt-get install libpam-radius-auth On va modifier la configuration de pam pour choisir notre serveur radius et la clé utilise. Configuration du fichier /etc/pam_radius_auth.conf # server[:port] shared_secret timeout (s) 192.168.1.62 testingclass 1 other-server other-secret 3 On va éditer la configuration de pam pour samba afin de changer la méthode traditionnelle d authentification. /etc/pam.d/samba @include common-auth @include common-account @include common-session auth account session required /lib/security/pam_radius_auth.so required /lib/security/pam_radius_auth.so required /lib/security/pam_radius_auth.so d. Test du serveur SAMBA avec authentification RADIUS (par PAM) Sous Linux Le client samba (192.168.1.99) essaye de se connecter au serveur samba (192.168.1.2 NuXClaSS) 14

Le serveur samba reçoit une connexion du client samba, il lance une requête radius au serveur radius (192.168.1.62) avec la clé testingclass à l aide du module pam (radius auth) Le serveur radius reçoit une requête radius du serveur samba, verifie que l utilisateur possède un compte unix local sur la machine et renvoie une requête d acceptation. En lançant freeradius en mode debug : 15

En effet, l utilisateur test/test existe bien dans la base local du serveur radius : Sous windows Cela s effectue de la manière traditionnelle mais nécessite la désactivation du cryptage des password en modifiant la base de registre : HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkStation\Parameters\EnableP l aintextpassword doit prendre la valeur 1 Critique Même si cette solution est fonctionne parfaitement, elle comporte néanmoins de nombreux inconvénients. MONTÉE EN CHARGE DU NOMBRE D UTILISATEURS Le serveur radius utilisant les compte Unix locaux pour autoriser les accès, cela va vite engendrait un problème. En effet, le fichier /etc/passwd va très vite prendre des proportions assez grande en fonction du nombre d utilisateurs du système. Cela va créer un problème de latence dans le temps dé réponse du serveur radius qui devra vérifier le fichier à chaque requête. Une solution bien plus efficace serait d utiliser radius avec une base de données SQL qui serait beaucoup plus performante et pratique que l utilisation des comptes locaux unix. AJOUT DE SERVICES L ajout de nouveaux services utilisant une authentification radius avec un serveur radius se basant sur les comptes unix risquent des problèmes. En effet, si l on désire rajouter un service ssh utilisant une authentification radius mais que l on désire qu un utilisateur X n est accès qu au service samba mais pas ssh, cela est impossible. L utilisation de la base d utilisateurs Unix rend impossible la possibilité de filtrer les droits d accès d un service à un utilisateur unix. SÉCURISATION DES TRANSACTIONS La sécurisation des transactions est très faible. L analyse du trafic réseau nous indique que l authentification radius ne transmet pas le mot de passe en claire. Cependant, on peut déduire l identifiant et le service demandé assez simplement. Ce problème de sécurité met en avant un risque pour notre infrastructure d authentification centralisée. En effet, il suffit d écouter le trafic réseau à l aide d un simple outil comme tcpdump afin de déterminer de nombreuses informations sur les utilisateurs et les services associés à notre réseau. Une solution qui pourrait être envisagé est l installation d un sous-protocole radius EAP/TLS. Malheureusement, cette sécurisation implique une augmentation du temps de latence des requêtes radius, ainsi qu une utilisation du processeur pour le chiffrement/déchiffrement de ces protocoles. Pour sécuriser les communications Radius peut et doit donc utiliser des algorithmes de chiffrage surs RSA, DSA, etc... 16

Exemple pratique : Tcpdump est un outil permettant de faire des capture réseau spécifique. En capturant le réseau au moment d une authentification radius du client samba (192.168.1.99) au serveur samba (192.168.1.2) qui utilise un serveur radius (192.168.1.69) par l utilisateur «test/ test» : $ tcpdump -XX -s0 -i eth0 src net 192.168.1.2 LES POSTES BANALISÉS La banalisation des postes pose un problème dans cette architecture. En effet, radius pouvant seulement gérer l'authentification (vérification des mots de passes), la gestion des comptes doivent rester locale à la machine. En outre, cela implique que la gestion des répertoires et informations personnelles ne peuvent être à priori être gérer à distance. Plusieurs solutions peuvent être envisagées. En effet, on peut envisager la mise en place d un serveur NFS qui synchronise les répertoires et informations personnelles assez régulièrement. Une solution bien meilleure serait l utilisation d un service d annuaire LDAP. 17

Conclusion Radius et Ldap sont deux solutions d authentification centralisée. Radius est connu pour sa rapidité et sa légèreté au niveau réseau et ldap pour une structure adaptative aux types de données. Dans le cadre de la mise en place du parc informatique les deux solutions restent valables mais ont chacune leurs limites et inconvénients. Dans radius, seule l'authentification est centralisée, la limite se trouve donc lorsque le parc informatique est vaste et très hétérogène (les utilisateurs ont des droits variés), mais il fonctionne très bien dans des univers stables et homogènes (tous les utilisateurs ont les mêmes droits...). Ldap quand à lui est plus difficile à créer et donc à maintenir, il requiert un savoir faire au niveau de la création des schémas et de structuration d un annuaire, mais il peut être très pratique lorsque le parc informatique est vaste et varié. Pourtant malgré les quelques difficultés lors de la mise en place de tels services, le jeu en vaut la chandelle. L authentification centralisée simplifie considérablement le travail de l administrateur système, en améliorant sa capacité à centraliser l information. Ce dossier nous aura permis de découvrir les fondations de la centralisation des accès aux systèmes d informations de l entreprise et de mettre en oeuvre des technologies d entreprise. 18

Glossaire A) PAM : Les Pluggable Authentication Modules permettent de changer de manière la méthode d'authentification sans avoir à recompiler le moindre programme par modification d'un fichier de configuration. B) RADIUS (Remote Authentication Dial-In User Service) Radius est un protocole client-serveur permettant de centraliser des données d'authentification. C) Samba Samba supportant le protocole SMB/CIFS, employé par Microsoft pour le partage de diverses ressources (fichiers, imprimantes, etc.) entre ordinateurs équipés de Windows. Samba permet aux systèmes Unix d'accéder aux ressources de ces systèmes et vice-versa. 19

Bibliographie Source Internet http://fr.wikipedia.org/wiki/lightweight_directory_acc ess_protocol http://www-sop.inria.fr/semir/personnel/laurent.mirtai n/ldap-livre.html http://www.freeradius.org/ http://www.redhat.com/docs/manuals/linux/rhl-8.0- Manual/ref-guide/s1-pam-modules.html Sources Bibliographiques titre : Annuaires LDAP (Broché) éditeur : Eyrolles auteur : Marcel Rizcallah (Auteur) titre : LDAP - Administration système auteur : Gerald Carter éditeur : O'Reilly 20

Annexe Annexe LDAP # # See slapd.conf(5) for details on configuration options. #This file should NOT be world readable. # # inclusion des autres fichiers de configuration include /etc/ldap/slapd.at.conf include /etc/ldap/slapd.oc.conf include /etc/ldap/schema/*.schema # vérification que l'on utilise réellement ou non la structure # des objets c'est à dire que si vous mettez «on» ici, vous #devez n'utilisez que que les propriétés des objets définies #dans les fichiers.oc.conf schemacheck off # fichiers qui stockent les arguments et les PID du serveur pidfile /var/run/slapd.pid argsfile /var/run/slapd.args ############################################################## # ldbm database definitions ############################################################## # Type de l'annuaire LDAP database bdb # Définition de la racine du serveur suffix "o=ldapepita, c=fr" # Définition du compte d'administration ici ldap_admin # c'est un nom arbitraire et ce n'est pas forcément un # utilisateur défini dans /etc/passwd du système rootdn "cn=admin, o=ldapepita, c=fr" rootpw secret # cleartext passwords, especially for the rootdn, should # be avoid. See slapd.conf(5) for details. # directory /var/lib/ldap # Définition des accès autorisés à la base LDAP defaultaccess read... 21

smb.conf [global] ### A changer: pas d'espace, ni point === > workgroup = domaine ### A changer, mettre le meme nom que le nom de votre machine === > netbios name = mamachine server string = Samba-LDAP PDC Server domain master = Yes local master = Yes domain logons = Yes os level = 40 #passwd program = /usr/sbin/smbldap-passwd?u %u ldap passwd sync = Yes passdb backend = ldapsam:ldap://127.0.0.1/ ### A changer === > ldap admin dn = cn=admin,dc=domaine,dc=local ### A changer === > ldap suffix = dc=domaine,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\profile\%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 22

### A changer si vous n'utilisez pas ce réseau === > hosts allow = 192.168.0. 127. winbind use default domain = Yes nt acl support = Yes msdfs root = Yes hide files = /desktop.ini/ntuser.ini/ntuser.*/ ### FIN DE LA PARTIE GLOBALE ##### [netlogon] path = /home/netlogon writable = No browseable = No write list = Administrateur # [profile] path = /home/export/profile 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 # /etc/nsswitch.conf # # Example configuration of GNU Name Service Switch functionality. # If you have the `glibc-doc' and `info' packages installed, try: # `info libc "Name Service Switch"' for information about this file. passwd: compat ldap group: compat ldap shadow: compat ldap hosts: files dns networks: files protocols: db files services: db files ethers: db files rpc: db files netgroup: nis 23

smbldap.conf slaveldap="127.0.0.1" slaveport="389" masterldap="127.0.0.1" masterport="389" ldaptls="0" verify="require" ### A changer ==> suffix="dc=domaine,dc=local" usersdn="ou=users,${suffix}" computersdn="ou=machines,${suffix}" groupsdn="ou=groups,${suffix}" idmapdn="ou=idmap,${suffix}" sambaunixidpooldn="cn=nextfreeunixid,${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" 24

Annexe Radius Radiusd.conf # Affectation de variable, aide a la configuration prefix = /usr exec_prefix = /usr sysconfdir = /etc localstatedir = /var sbindir = ${exec_prefix}/sbin logdir = /var/log/freeradius raddbdir = /etc/freeradius radacctdir = ${logdir}/radacct confdir = ${raddbdir} run_dir = ${localstatedir}/run/freeradius log_file = ${logdir}/radius.log libdir = /usr/lib/freeradius pidfile = ${run_dir}/freeradius.pid # Le nom (ou le #id) du proprietaire du processus radiusd user = freerad group = freerad # limitations de ressources max_request_time = 30 delete_blocked_requests = no cleanup_delay = 5 max_requests = 1024 # On ecoute sur tous les interfaces ethernet bind_address = * # configuration automatique (port par défaut 1812) port = 0 hostname_lookups = no allow_core_dumps = no regular_expressions = yes extended_expressions = yes # Quelles informations doit-on écrire dans le journal? log_stripped_names = no log_auth = no log_auth_badpass = no log_auth_goodpass = no 25

usercollide = no lower_user = no lower_pass = no nospace_user = no nospace_pass = no checkrad = ${sbindir}/checkrad security { max_attributes = 200 reject_delay = 1 status_server = no } # Agir comme un proxy? proxy_requests = no # Autorisations des clients $INCLUDE ${confdir}/clients.conf # Publier l etat pour collecte par MIB SNMP? (utile pour cacti) snmp = no thread pool { start_servers = 5 max_servers = 32 min_spare_servers = 3 max_spare_servers = 10 max_requests_per_server = 0 } # Configuration des modules # (des qu un module est declare, son nom peut être reutiliser) modules { unix { cache = no cache_reload = 600 shadow = /etc/shadow radwtmp = ${logdir}/radwtmp } preprocess { huntgroups = ${confdir}/huntgroups hints = ${confdir}/hints with_ascend_hack = no ascend_channels_per_line = 23 with_ntdomain_hack = no with_specialix_jetstream_hack = no with_cisco_vsa_hack = no } 26