Rapport de stage. Mise en place d un serveur d authentification LDAP/Samba. mai - juillet 2006. LEFEBVRE François



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

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

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

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

I. Présentation du serveur Samba

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

INSTALLATION ET CONFIGURATION DE OPENLDAP

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

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

But de cette présentation

Institut Universitaire de Technologie

Configuration d'un annuaire LDAP

Serveur d impression CUPS

Projet Semestre2-1SISR

LINUX REMPLAÇANT WINDOWS NT

PARAMETRER SAMBA 2.2

Client Debian Squeeze et serveur SambaEdu3

Kerberos/AD/LDAP/Synchro

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

FreeNAS Shere. Par THOREZ Nicolas

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

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

Authentification des utilisateurs avec OpenLDAP

Authentification des utilisateurs avec OpenLDAP et Samba 3.0

Monter automatiquement des disques distants ou locaux avec automount/autofs

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

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

Préparation d un serveur Apache pour Zend Framework

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

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

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

Les différentes méthodes pour se connecter

Simplifier l authentification avec Kerberos

Couplage openldap-samba

Formateur : Jackie DAÖN

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

Les Imprimantes EOLE 2.3. Documentation sous licence Creative Commons by-nc-sa - EOLE (http ://eole.orion.education.fr) révisé : Janvier 2014

OpenMediaVault installation

1. Présentation du TP

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

UE5A Administration Réseaux LP SIRI

Installer un serveur web de développement avec VirtualBox

Installation et configuration d un serveur SAMBA sous linux Red Hat

Mise en place d un proxy Squid avec authentification Active Directory

AUTHENTIFICATION MANAGEMENT

LDAP et carnet d'adresses mail

Restriction sur matériels d impression

Network Shutdown Module V3 Extension du Manuel Utilisateur pour architecture Virtualisée VMWare ESX Server 3, 3.5

TP Service HTTP Serveur Apache Linux Debian

Installation et configuration de Vulture Lundi 2 février 2009

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

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

TP 4 & 5 : Administration Windows 2003 Server

L annuaire et le Service DNS

Authentification unifiée Unix/Windows

Déploiement de (Open)LDAP

La double authentification dans SharePoint 2007

FICHE TECHNIQUE. Linux Tutoriel. Installer une imprimante multifonction HP PSC 1315 sous Linux. TUTORIEL Starinux Imprimante multifonction HP PSC 1315

Raccordement desmachines Windows 7 à SCRIBE

Il est courant de souhaiter conserver à

TELECOM- ANNEE 2003/2004

Service d'authentification LDAP et SSO avec CAS

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

PPE GESTION PARC INFORMATIQUE

Gestion d identités PSL Installation IdP Authentic

Sauvegardes par Internet avec Rsync

TP PLACO. Journées Mathrice d'amiens Mars 2010

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

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

Services d impression, Partie 2 : CUPS

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

Déploiement d'un serveur ENT

Commandes Linux. Gestion des fichiers et des répertoires. Gestion des droits. Gestion des imprimantes. Formation Use-IT

Annuaire LDAP + Samba

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

Comment Accéder à des Bases de Données MySQL avec Windows lorqu'elles sont sur un Serveur Linux

Réaliser un inventaire Documentation utilisateur

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

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

REPARTITION DE CHARGE LINUX

NTP (Network Time Protocol)

Préparation à l installation d Active Directory

Utiliser Améliorer Prêcher. Introduction à LDAP

Table des matières. 1. Installation de VMware ESXI Pré-requis Installation... 3

Tutoriel compte-rendu Mission 1

Architecture de la plateforme SBC

Installation UpdatEngine serveur (CentOs apache2 / MySQL)

A. À propos des annuaires

Serveur d application WebDev

Outils Logiciels Libres

BTS SIO option SISR Lycée Godefroy de Bouillon Clermont-Ferrand

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

Stage SambaÉdu Module B. Jour 9 Outils complémentaires et problèmes récurrents divers

Documentation utilisateur, manuel utilisateur MagicSafe Linux. Vous pouvez télécharger la dernière version de ce document à l adresse suivante :

POVERELLO KASONGO Lucien SIO 2, SISR SITUATION PROFESSIONNELLE OCS INVENTORY NG ET GLPI

Service Systèmes et Réseaux

Transcription:

Rapport de stage Mise en place d un serveur d authentification LDAP/Samba mai - juillet 2006 LEFEBVRE François

Remerciements Je tiens particulièrement à remercier les personnes suivantes pour leur précieuse collaboration et leur apport technique sans qui, le bon déroulement de ce stage n aurait pas pu avoir lieu : Monsieur Eric Ramat Directeur de l IUP Directeur- Adjoint du LIL Enseignant- Chercheur Ramat@lil.univ-littoral.fr Madame Nathalie Ramat Ingénieur d Etudes Nathalie.ramat@univ-littoral.fr Monsieur Stéphane Lebégue Technicien Informatique Stephane.lebegue@univ-littoral.fr - 1 -

Table des matières Remerciements...1 Table des matières...2 Introduction...4 Présentation de l'université du Littoral...5 1. Historique... 5 2. L'équipe de direction... 6 L architecture réseau...7 1. Actuellement... 7 2. Les modifications à apporter... 7 Installation du serveur...9 1. Installation de la Debian Sarge... 9 2. Installation de OpenLDAP... 10 3. Installation de Samba... 12 4. Installation de phpldapadmin... 16 Configuration des postes clients...17 1. Sous Linux... 17 2. Sous Windows... 19 Configuration du serveur...21 1. Serveur Kerberos... 21 a. Présentation... 21 b. Installation... 21 c. Initialisation... 23 d. Configuration du serveur... 26 2. Synchroniser l heure des machines... 26 a. Côté serveur... 27 b. Côté client Linux... 27 3. Modification de l arbre LDAP... 28 4. Service d impression... 28 a. Côté serveur... 29 b. Côté client Linux... 31 c. Côté client Windows... 32 Gestion des profils utilisateurs...33 1. Montage du répertoire personnel... 33 a. Présentation de «Autofs»... 33 b. Configuration du serveur... 33 c. Configuration du client Linux... 36 d. Configuration du client Windows... 38 e. Limitation des quotas disque... 39 2. Application d une stratégie de sécurité... 40 3. Synchronisation des mots de passe entre Linux et Windows... 41-2 -

Table des matières Recherches annexes...42 1. Partitionnement LDAP... 42 a. Réplicat ( ou Dupplication )... 42 b. Referral... 43 2. Wake On Lan et Shutdown... 45 Conclusion...47 Annexes...48 1. Slapd.conf... 48 2. Smb.conf... 53 3. Arbre LDIF... 57-3 -

Introduction Ma licence Informatique s est soldée par un stage de dix semaines à l Université du Littoral Côte d Opale de Calais. Le but de ce stage était l évolution des serveurs Myrtille, Pastèque et Papaye vers un nouveau serveur permettant l ouverture du compte utilisateur ( professeurs et étudiants ) indépendamment du système d exploitation, en l occurrence Windows et Linux. Ce serveur permettra : D utiliser les mêmes identifiants ; De les modifier sur un système d exploitation et que cela soit répercuté sur l autre automatiquement ; De charger leurs profils ; D accéder à leurs données personnelles ; D utiliser les imprimantes réseaux ; De synchroniser l heure des machines clientes. - 4 -

Présentation de l'université du Littoral 1. Historique Créée en 1991, l Université du Littoral a connu sa première rentrée en septembre 1992. Cette dernière est installée sur trois villes portuaires du Nord de la France : Dunkerque, Calais, Boulogne, ainsi qu à Saint- Omer où un IUT de Maintenance Industrielle a été créé en 1995. Ce centre de formation pluridisciplinaire compte plus de 11 000 étudiants offrant en formation initiale 50 diplômes habilités au niveau national et une dizaine de formations diplômantes de niveau BAC et au-delà en formation continue. Elle a intégré l espace européen de l enseignement supérieur à la rentrée 2004 en adoptant le standard Licence- Master- Doctorat et propose ainsi des licences et des masters dans cinq domaines de formation : Sciences Economiques et de Gestion, Sciences et Technologies, Lettres et Langues, Sciences Humaines et Sociales, Droit. Parallèlement, l Université s investit beaucoup dans la recherche grâce aux 20 laboratoires et aux 350 enseignants- chercheurs qui axent leurs efforts pour le développement régional : «environnement», «hommes, sociétés et espaces littoraux», «mathématiques et sciences pour l ingénieur». Le pôle de Calais : Centre Universtaire de la Mi-voix Bâtiment Poincaré 50, rue Ferdinand Buisson BP 699 62228 Calais Cedex tél : 03.21.46.36.00 fax : 03.21.46.36.69-5 -

2. L'équipe de direction Monsieur Edward Anthony Président de L'ULCO Monsieur Faustin Aissi Vice- Président du Conseil d'administration Monsieur Bruno Bethouart Vice- Président du Conseil des Etudes et de la Vie Universitaire Monsieur Roger Durand Vice- Président du Conseil Scientifique Monsieur Jean-Louis GOURNAY Secrétaire Général - 6 -

L architecture réseau 1. Actuellement L'université est composée de 9 salles informatiques disponibles pour les étudiants pour un total de 100 machines environ. Ces machines ont deux systèmes d'exploitation pour répondre aux besoins des étudiants et des professeurs. Ces dernières sont toutes enregistrées sur un domaine : «Dptinfo» pour les étudiants en ICC, ISIDIS ; ou «Cripcl» pour les étudiants en études non informatique, comme : les mathématiques, la biologie... Grâce à ces domaines, lorsque vous ouvrez une session, vous avez automatiquement vos données personnelles et votre profil de chargés. Cependant, un étudiant appartenant au groupe «Dptinfo» ne pourra pas ouvrir son compte sur une machine faisant parti du domaine «Cripcl», et inversement. Cela signifie que les étudiants sont obligés d'utiliser les salles informatiques réservées à leurs études. De plus, la modification du mot de passe sous Windows ne se répercute pas sous Linux, et inversement. Il faut donc que l'étudiant le change sous Windows, et qu'il fasse de même sous Linux pour avoir le même mot de passe sur l'ensemble des environnements. 2. Les modifications à apporter Toutes les machines devront joindre un seul et unique domaine pour : Faciliter l'administration; Éviter d'avoir une séparation des étudiants en fonction de leurs études; Mais aussi par la suite, de permettre à un étudiant venant d'un autre pôle, de pouvoir s'identifier et de travailler comme s'il était à son université en utilisant Internet. Synchroniser les mots de passe, Synchroniser l heure des machines clientes. - 7 -

L'ensemble de ces logiciels suivant tourneront sur une distribution Linux nommée : «Debian Sarge» avec noyau 2.6. (http://www.debian.org/ ) OpenLDAP ( Open Lightweight Directory Access Protocol ) : Permet d'accéder à un annuaire qui contient des ressources informatique : comptes utilisateur, imprimantes, machines... Ces données sont stockées dans un arbre LDAP contenant une racine et des branches. Chaque branche peut ainsi contenir des informations comme : un utilisateur ou bien encore une machine. Pour administrer cet arbre, il faut utiliser les fichiers LDIF. Samba : Permet de créer le domaine pour les machines Windows et de communiquer avec le serveur LDAP. Kerberos : Assure le cryptage des authentifications de l administrateur. NTP ( Network Time Protocol ) : Permet de synchroniser les horloges des machines clients sur le serveur d'identification. CUPS ( Common Unix Printing System ) : Assure le partage et la gestion des imprimantes du réseau. - 8 -

Installation du serveur Pour une meilleure compréhension et afin de mener à bien l installation de ce serveur, ce rapport sera entièrement rédigé sous forme d'un tutorial. 1. Installation de la Debian Sarge Au démarrage du serveur, le CDRom Debian doit «booter», et une ligne de commande doit apparaître. En appuyant sur la touche «entrée», l'installation avec le noyau 2.4 doit commencer, or dans notre cas, nous souhaitons installer le noyau 2.6, pour cela, tapons sur cette ligne de commande la syntaxe suivante : linux26 L'installation se lance et vous demande de répondre à certaines questions: La langue, La disposition du clavier, Configurer le réseau, Le partitionnement du disque... Une fois installée, le serveur démarre en ligne de commande si vous n'avez pas coché l'installation des environnements graphique de bureau. Si vous souhaitez rajouter Gnome par la suite, tapez en tant que «root» : apt-get install x-window-system-core gnome Ou, pour ajouter Xfce : apt-get install x-window-system-core xfce4 Une fois, installé et configuré, pour lancer l'interface graphique, tapez : startx - 9 -

2. Installation de OpenLDAP Le paquet «slapd» contient la partie serveur d'openldap : apt-get install slapd db4.2-util ldap-utils Debconf nous pose plusieurs questions : Le nom du domaine : C'est celui de LDAP ( Totalement différent du domaine Samba, qui sera utiliser par les clients Windows ) : Si vous mettez univ.fr vous aurez donc dc=univ,dc=fr Nom de votre organisation: peu important. univ.fr Mot de passe de l'administrateur : C'est ce mot de passe que vous utiliserez pour vous connecter à l'annuaire. Module de base de données à utiliser : LDBM Faut-il supprimer la base de données à la purge du paquet? NON Faut-il déplacer l'ancienne base de données? NON Faut-il autoriser le protocole LDAPv2? NON LDAP fonctionne avec des schémas, par défaut 4 schémas sont déjà présents, pour utiliser samba avec LDAP il faut le schéma approprié. Celui se trouve dans le paquet «samba-doc» : apt-get install samba-doc On copie le schéma que l'on place dans le répertoire des schémas de LDAP: gunzip -c /usr/share/doc/samba-doc/examples/ldap/samba.schema.gz > /etc/ldap/schema/samba.schema Il reste maintenant à éditer le fichier de configuration du serveur OpenLDAP : nano /etc/ldap/slapd.conf On déclare le schéma de samba en dessous des autres : include /etc/ldap/schema/samba.schema - 10 -

Il faut indiquer le mot de passe de «admin» dans le fichier de configuration. Pour des raisons de sécurité, on évitera de le mettre en clair. Nous allons le crypter avec la commande slappasswd : slappasswd Il vous demande donc de taper et de confirmer votre mot de passe, et en sortie, il vous donne quelque chose de ce type : {SSHA}jso956sZB1+kViJ9z25tmf2M6iqrpMVV Chercher ces lignes dans le fichier slapd.conf : # The base of your directory in database #1 suffix "dc=univ,dc=fr" Rajoutez juste en dessous : rootdn rootpw "cn=admin,dc=univ,dc=fr" {SSHA}jso956sZiopljlkjlkjkljf2M6iqrpMVV rootdn précise le login et la racine à utiliser. rootpw correspond au résultat de la commande slappaswd. Enfin on relance le serveur OpenLDAP : Stopping OpenLDAP: slapd. /etc/init.d/slapd restart Starting OpenLDAP: running BDB recovery, slapd. Vous trouverez en Annexe 1 le fichier de configuration final «slapd.conf». - 11 -

3. Installation de Samba On installe le paquet samba (serveur) et des outils pour le client: apt-get install samba samba-client smbfs Répondez à debconf en laissant tout par défaut. Modifier le fichier de configuration du serveur Samba qui se trouve dans: /etc/samba/smb.conf. Vous trouverez en Annexe 2 notre fichier de configuration. N'oubliez pas de créer les répertoires que vous avez renseignés dans ce fichier de configuration en utilisant la commande : mkdir lechemindurépertoire Et, si nécessaire, de donner les permissions en conséquence : Changement du propriétaire : chown user répertoire Changement du groupe : chgrp group répertoire Changement des droits de chacun : chmod xxx répertoire où 0<=X<=7 Le paquet «smbldap-tools» contient plusieurs scripts facilitant l'administration, pour cela, tapez : wget http://ftp.fr.debian.org/debian/pool/main/s/smbldap-tools/smbldaptools_0.9.2-3_all.deb On installe le paquet à la main : dpkg -i smbldap-tools - 12 -

Une erreur doit stopper l'installation, pour corriger le problème, nous devons installer toutes les dépendances (tout ce qui concerne PERL) avec la commande : apt-get -f install ceci : Editez ou créez le fichier /etc/smbldap-tools/smbldap_bind.conf et copiez slavedn="cn=admin,dc=univ,dc=fr" slavepw=votremotdepasseenclair masterdn="cn=admin,dc=univ,dc=fr" masterpw=votremotdepasseenclair Adaptez- le comme d'habitude à votre configuration Il y a ici un problème de sécurité car votre mot de passe est en clair, changez les droits de ce fichier pour que seul l'utilisateur «root» puisse le lire. Editez ou créez le fichier /etc/smbldap-tools/smbldap.conf et copiez ceci : slaveldap="127.0.0.1" slaveport="389" masterldap="127.0.0.1" masterport="389" ldaptls="0" verify="require" ### A changer ==> suffix="dc=univ,dc=fr" usersdn="ou=users,${suffix}" computersdn="ou=machines,${suffix}" groupsdn="ou=groupes,${suffix}" idmapdn="ou=idmap,${suffix}" scope="sub" - 13 -

hash_encrypt="sha" crypt_salt_format="%s" userloginshell="/bin/bash" userhome="/home/%u" userhomedirectorymode="700" usergecos="system User" defaultusergid="513" defaultcomputergid="515" skeletondir="/etc/skel" defaultmaxpasswordage="45" with_smbpasswd="0" smbpasswd="/usr/bin/smbpasswd" with_slappasswd="0" slappasswd="/usr/sbin/slappasswd" On commence tout d'abord par stopper samba : /etc/init.d/samba stop Puis, il faut créer le fichier /var/lib/samba/secrets.tdb grâce à la commande : smbpasswd -w votremotdepasseroot On relance ensuite le serveur Samba : /etc/init.d/samba start Le démarrage du service doit être quasi immédiat, s'il dure plusieurs secondes, c'est qu'il y a une erreur. Vérifiez que tout c'est bien passé : net getlocalsid - 14 -

SID for domain UNIV is: S-1-5-21-344654654654654654654654 La commande net getlocalsid ne doit retourner aucune erreur ni warning! On va pouvoir créer l'architecture de notre base LDAP : smbldap-populate bien. Vous devez saisir deux fois votre mot de passe «root» si tout se passe Cette commande créée : Les différentes OU (Organisation Unit) qui contiendront vos Machines, Users et Groupes, Deux UID : «root» et «nobody» qui seront dans OU=Users, Plusieurs CN (Common Name) : Les groupes qui seront dans OU=Groupes. Faites un test, ajoutez un utilisateur : smbldap-useradd -a -P toto -a : désigne un utilisateur, -P : création du mot de passe. Si vous avez besoin d'aide : smbldap-useradd -? Pour être certain que l'utilisateur root a été correctement créé : smbldap-usershow root Cette commande vous retourne toutes les informations de l'utilisateur root de votre annuaire. Vous pouvez donc utiliser cette commande pour tester l utilisateur toto. Vous avez à présent un serveur LDAP ayant pour racine : «univ.fr» ( dc=univ,dc=fr ) qui contient le compte : «root», «nobody» et «toto»; et un serveur Samba qui contrôle le domaine «univ» pour les clients Windows. - 15 -

4. Installation de phpldapadmin PhpLDAPadmin est une interface php qui permet de modifier facilement et via une interface Web conviviale un serveur LDAP. Il permet d'afficher l'arbre LDAP et ainsi, d'ajouter des ressources informatiques ( utilisateurs, machines... ) avec une interface graphique. Cela évite d'utiliser les fichiers LDIF et d'avoir une meilleure visibilité sur la construction de l'arbre. Pour l'installer : apt-get install phpldapadmin Puis, dans le répertoire /var/www/, tapez ceci pour créer un lien dans Apache ( le serveur Web ) : ln -s /usr/share/phpldapadmin phpldapadmin Configurez phpldapadmin en modifiant le fichier config.php : $servers[$i]['name']='serveur'; $servers[$i]['host'] = 'localhost'; $servers[$i]['base'] = 'dc=univ,dc=fr'; $servers[$i]['port'] = 389; $servers[$i]['auth_type'] = 'session'; $servers[$i]['login_dn'] = 'cn=admin,dc=univ,dc=fr'; $servers[$i]['login_pass'] = 'votremotdepassenclair'; Et modifier le fichier /templates/template_config.php : array( 'name' => 'univ', 'sid' => 'S-1-5-21-344654654654654654654654' ); Ajouter le numéro d'identification du serveur Samba précédemment donné. En lançant un navigateur sur : http://localhost, vous devriez avoir un lien vers phpldapadmin et ainsi consulter votre arbre. Pour pouvoir ajouter une machine Windows au domaine Samba «univ» et ainsi, s identifier en utilisant l annuaire LDAP, il est obligatoire d ajouter dans la branche «OU=Machines» les ordinateurs qui pourront se connecter au domaine «univ». - 16 -

Configuration des postes clients 1. Sous Linux Un système Linux peut aller chercher dans différents endroits pour authentifier des utilisateurs. Par défaut, il s agit du fichier : /etc/passwd. On va donc indiquer à la machine de vérifier notre annuaire LDAP en plus du fichier /etc/passwd. Ajouter ces lignes dans le fichier /etc/hosts : 192.168.22.67 serveur.univ.fr serveur 192.168.22.70 client1.univ.fr client1 On ajoute un module à NSS qui lui permet d'interroger notre annuaire LDAP : apt-get install libnss-ldap Debconf nous pose plusieurs questions : Adresse du serveur LDAP : 192.168.22.67 Nom distinctif (DN) de la base de recherche : dc=univ,dc=fr Version de LDAP : 3 La base de données demande-t-elle une identification? NON Le fichier de configuration doit-il être lisible et modifiable uniquement par son propriétaire? NON Explication: sinon seul «root» pourra interroger l'annuaire. De toute façon, il n'y a pas de mot de passe dans ce fichier. De même, on installe le module LDAP pour PAM : apt-get install libpam-ldap Hôte du serveur LDAP : 192.168.22.67 Nom distinctif («distinguished name») de la base de recherche : dc=univ,dc=fr Version de LDAP: 3 Faut-il créer une base de données locale pour l'administrateur? NON La base de données requiert-elle une connexion authentifiée? NON Méthode de chiffrement pour les changements de mots de passe : SHA - 17 -

Il suffit d'indiquer maintenant au système d'aller interroger notre annuaire LDAP : nano /etc/nsswitch.conf Il vous suffit de rajouter après «files» la directive «ldap» pour : passwd group shadow # /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: group: shadow: hosts: networks: protocols: services: ethers: rpc: netgroup: compat files ldap compat files ldap compat files ldap files dns files db files db files db files db files nis Ajouter ces lignes dans le fichier /etc/ldap/ldap.conf : host 192.168.22.67 base dc=univ,dc=fr Vous avez créé un utilisateur «toto» dans votre annuaire LDAP, la commande : getent passwd - 18 -

Doit vous retourner : toto:x:1000:513:system User:/home/toto:/bin/bash Lors de l authentification, vous risquez fortement de rencontrer un problème: le nom de votre utilisateur courant ne s'affiche pas. Pour corriger ceci, installez ce paquet : apt-get install nscd 2. Sous Windows Une fois que vous avez terminé toute l'installation et la configuration de votre serveur Linux, pensez à relancer les deux services : /etc/init.d/samba stop /etc/init.d/slapd restart /etc/init.d/samba start Enfin, vous pouvez tester sous Windows. Pour cela, nous devons ajouter votre machine au domaine : Clic droit sur Poste de Travail, Propriétés. Onglet Nom de l'ordinateur Clic sur le bouton Modifier... Membre de: Choisissez Domaine : Saisissez le nom de la directive workgroup que vous avez renseigné dans smb.conf, dans notre cas : «univ». OK On vous demande un login: «root» et votre mot de passe : celui de «root» Si tout va bien le message " Bienvenue dans le domaine UNIV " s'affiche après un long moment de recherche. Redémarrez la machine, Choisissez le domaine que vous avez créé et connectez- vous avec «root» ou «toto». Si cela fonctionne, nous pouvons à présent passer à la configuration du serveur Kerberos pour sécuriser les authentifications, et ajouter le montage du répertoire personnel des utilisateurs, les serveurs d'impression, de synchronisation d'heure... - 19 -

Dans le cas contraire, vérifiez bien que : Les machines sont bien reliées ensemble : Adresse IP des machines, Commande Ping, Vérifier le fichier /etc/hosts. Les services ont été redémarrés correctement en regardant les logs du serveur, Que le nom netbios de la machine figure bien dans la branche «OU=Machines», Vérifier les trames qui circulent avec le logiciel ethereal, Les mots de passe que vous avez entrés pour chaque utilisateur en utilisant phpldapadmin, ou bien en utilisant la commande : smbldap-passwd lenomdelutilisateur - 20 -

Configuration du serveur 1. Serveur Kerberos a. Présentation Dans le mécanisme traditionnel d'authentification, les utilisateurs prouvent leur identité au moyen d'un mot de passe. Ce système ne sait pas vérifier si l'utilisateur distant a volé le mot de passe ni même si le système distant est un système criminel masqué derrière une adresse dérobée. Dans le système d'authentification Kerberos, lorsque un utilisateur tente de se connecter à un système, un hôte, le Key Distribution Center (centre de distribution des clés ou KDC) va vérifier les identités des deux parties avant de valider une authentification et en cas de succès, il va avertir chacun des deux parties que l'autre est bien celui qu'il prétend être. Deux points importants sont à noter pour finir cette courte introduction : Tout d'abord, l'utilisation de Kerberos nécessite que les services soient kerberisés. Les logiciels doivent être conçus pour exploiter Kerberos sinon point de sécurisation. L'autre point important est que, par son mode de fonctionnement, Kerberos implémente le SSO (Single Sign On) ce qui permet de n'avoir à s'authentifier qu'une fois puis après il suffit de présenter son ticket Kerberos. Mais encore une fois, cela n est valable que si les applications sont Kerberisées. Nous allons donc utiliser Kerberos pour crypter le mot de passe de l administrateur. b. Installation Installez les paquets nécessaires avec cette commande : apt-get install krb5-kdc krb5-admin-server krb5-user libsasl2-gssapi-mit L'installation vous demandera d'entrer la clé maître (master key) du KDC. Editez le fichier /etc/krb5kdc/kdc.conf et adaptez le nom du Realm (zone kerberos) à votre Realm. Le Realm correspond au domaine DNS en majuscule. Sachez qu'un KDC peut être serveur de plusieurs Realms. - 21 -

Adaptez ce fichier en remplaçant UNIV.FR par votre Realm. [kdcdefaults] kdc_ports = 750,88 [realms] UNIV.FR = { database_name = /var/lib/krb5kdc/principal admin_keytab = FILE:/etc/krb5kdc/krb5.keytab acl_file = /etc/krb5kdc/kadm5.acl key_stash_file = /etc/krb5kdc/stash kdc_ports = 750,88 max_life = 10h 0m 0s max_renewable_life = 7d 0h 0m 0s master_key_type = des3-hmac-sha1 supported_enctypes = des3-hmac-sha1:normal des-cbc-crc:normal des:normal des:v4 des:norealm des:onlyrealm des:afs3 default_principal_flags = +preauth } Maintenant que le KDC est configuré, on va définir le comportement des clients Kerberos de ce KDC. On va notamment définir le realm par défaut et comment le contacter. KDC. Cette manipulation s'effectue sur le KDC et sur les clients de ce même - 22 -

Pour cela, éditez le fichier /etc/krb5.conf. [libdefaults] default_realm = UNIV.FR kdc_timesync = 1 ccache_type = 4 forwardable = true proxiable = true [realms] UNIV.FR = { kdc = kerberos.univ.fr admin_server = kerberos.univ.fr default_domain = univ.fr } [domain_realm].univ.fr = UNIV.FR univ.fr = UNIV.FR c. Initialisation Dans un premier temps, il faut initialiser la base de données du KDC fraîchement installé : kdb5_util create -r UNIV.FR -s Le serveur demande la clé maître ( K/M ) : Initialiaze database /etc/krb5kdc/principal for realm «UNIV.FR» Master key name K/M@UNIV.FR : - 23 -

Il est temps de démarrer le KDC maintenant : krb5kdc Création du fichier krb5.keytab avec la commande : kadmin.local Ajoutons des utilisateurs : ktadd k /etc/krb5/krb5.keytab kadmin/admin ktadd k /etc/krb5/krb5.keytab kadmin/changepw addprinc admin@univ.fr ktadd k /etc/krb5/krb5.keytab admin Ajout du cryptage Kerberos pour les services : addprinc randkey service/kerberos Ou : kerberos est le nom du serveur La commande «randkey» permet de rendre les services autonomes. Ajoutez ensuite les clients Kerberos : addprinc randkey host/client1.univ.fr ktadd k /etc/krb5/krb5.keytab host/client1.univ.fr Une fois le fichier krb5.keytab généré, vous devez retaper votre mot de passe «admin» car dans le cas contraire, vous ne pourrez pas obtenir de ticket. Cela ne semble pas normal, peut-être un bug? Peut être corrigé dans les versions futures. kadmin.local change_password admin - 24 -

Testez votre KDC en faisant une demande de ticket à l'aide de la commande kinit : kinit admin@univ.fr Si vous avez le message d erreur suivant : Kinit(5) : Clock skew too great while getting initial credentials Cela signifie que l heure entre le serveur et le client diffère de plus de 5 minutes. Affichons la liste des tickets Kerberos à l'aide de klist : Ticket cache: FILE:/tmp/krb5cc_1000 Default principal: admin@univ.fr klist Valid starting Expires Service principal 06/30/06 10:20:51 07/13/06 04:20:51 krbtgt/univ.fr@univ.fr renew until 07/13/06 10:20:49 Notez que la commande kadmin permet d'effectuer cette commande sur une autre machine que le KDC. Il faut à présent modifier la configuration du serveur LDAP pour qu il utilise le cryptage. Pour cela, ajoutez dans le fichier slapd.conf, en dessous de la variable loglevel, les lignes suivantes : sasl-host kerberos.univ.fr srvtab /etc/krb5kdc/krb5.keytab sasl-realm UNIV.FR sasl-regexp uid=admin/admin,cn=univ.fr,cn=gssapi,cn=auth cn=admin,dc=calais,dc=fr sasl-regexp uid(.*),cn=univ.fr,cn=gssapi,cn=auth ldap:///dc=calais,dc=fr??sub?(&(uid=$1)(objectclass=inetorgperson)) Redémarrez le serveur LDAP pour prendre en compte les modifications. - 25 -

Nous allons tester si cela fonctionne : Prenez un ticket Kerberos si ce n est pas déjà fait : kinit admin@univ.fr Testons le serveur à présent : ldapwhoami Y GSSAPI Le serveur doit donc répondre sur une des lignes la réponse : SASL. Si cela ne fonctionne pas, copiez le fichier /etc/krb5kdc/krb5.keytab dans : /etc/krb5.keytab malgré le fait que vous ayez spécifié le bon chemin dans le fichier kdc.conf. d. Configuration du serveur Il est à présent nécessaire de configurer le serveur pour que l on puisse utiliser le cryptage Kerberos. Vous pouvez procéder à l'installation du module PAM approprié. Sous Debian, le paquet porte le nom de «libpam-krb5». apt-get install libpam-krb5 Effectuez le remplacement suivant dans le fichier : /etc/pam.d/common-password : password sufficient pam_unix.so md5 password required pam_krb5.so try_first_pass Maintenant, authentifiez- vous en tant qu administrateur depuis la machine. Remarque : Nous pourrions utiliser ce cryptage pour authentifier les utilisateurs en plus de l administrateur. Il faudrait ainsi refaire la même installation sur chaque client. 2. Synchroniser l heure des machines NTP ( Network Time Protocol ) est un protocole permettant de synchroniser les horloges des systèmes informatiques à travers un réseau de paquets, dont la latence est variable. - 26 -

Nous allons donc installer sur le serveur les paquets nécessaires pour faire tourner ce protocole et lui dire d utiliser comme heure de référence l heure locale, c est- à- dire : l heure qu affiche le serveur en question. Dans un deuxième temps, nous configurons les clients pour qu ils se synchronisent sur ce serveur. a. Côté serveur apt-get install ntp-server Editez le fichier de config /etc/ntpd.conf : server 127.127.1.0 #reference a l'horloge locale fudge 127.127.1.0 stratum 3 Pour pouvoir utiliser l'heure de la machine locale, il faut installer le paquet «ntp-refclock» : apt-get install ntp-refclock Testez si le serveur fonctionne avec cette commande : ntpq -p b. Côté client Linux apt-get install ntpdate Editez le fichier de configuration /etc/ntp.conf, et ajoutez cette ligne : server 192.168.22.67 Votre machine cliente va donc à chaque démarrage se synchroniser sur leur de votre serveur. Pour Windows, la synchronisation de l horloge est une ligne de commande à ajouter dans un fichier.bat qui se lance au démarrage d une session. Nous le verrons un peu plus loin lors de l application des stratégies de sécurité. - 27 -

3. Modification de l arbre LDAP Avant de continuer plus loin, vous avez certainement remarqué que l arbre que montre phpldapadmin est très succinct. Nous allons donc dans cette partie, le modifier en utilisant les fichiers LDIF pour lui donner un tout autre aspect, beaucoup plus proche de la réalité d une université. Chaque étudiant sera réparti dans une branche précise de l arbre, correspondant à sa formation, les professeurs seront dans une autre branche, tout ceci pour permettre d attribuer des droits différents à chaque personne. En effet, l université applique ce raisonnement : un étudiant en Licence 1 n aura pas les mêmes droits qu un étudiant en Master 2. De même entre un professeur et un intervenant extérieur. Nous allons mettre en place cet arbre : Le fichier LDIF est en Annexe 3. Ainsi, un étudiant en L1 Biologie sera situé dans : «OU=Biologie,OU=L1,OU=Etudiants,DC=univ,DC=fr» Et appartiendra au groupe : «CN=L1Biologie,OU=Groupes,DC=univ,DC=fr» Le fait d appartenir à un groupe permettra d appliquer sous Windows une stratégie de sécurité spécifique que nous détaillerons un peu plus tard. 4. Service d impression Chaque salle informatique dispose d une imprimante HP Laser 5000 branchée en réseau. Nous pouvons donc imprimer un document directement en lançant la requête sur l imprimante, mais il est préférable d utiliser un serveur d impression afin : De gérer les files d impression, Que l imprimante ne soit pas sollicitée uniquement par une seule et même personne. - 28 -

Nous allons donc installer un serveur CUPS ( Common Unix Printing System ). a. Côté serveur Installez le paquet suivant : apt-get install cupsys Modifiez le fichier /etc/cups/cupsd.conf : HostNameLookups On <Location /> Order Deny,Allow Deny From All Allow From 127.0.0.1 Allow From.univ.fr </Location> <Location /admin> AuthType Basic AuthClass System Order Deny,Allow Deny From All Allow From 127.0.0.1 Allow From.univ.fr </Location> Téléchargez ensuite sur le site http://www.cups.org/ le fichier postscript correspondant à l imprimante. - 29 -

Ce fichier correspond au «driver» de l imprimante, cela permet à CUPS d envoyer les documents à imprimer dans «le langage» de l imprimante. Copier ensuite le fichier PPD téléchargé à cet emplacement : /usr/share/cups/model/ et donnez-lui les mêmes autorisations que les fichiers qui s'y trouvent déjà. Redémarrez le service : /etc/init.d/cupsys restart Connectez- vous à CUPS par l intermédiaire de l interface Web : http://localhost:631 avec le login et mot de passe «root» du serveur. Cliquez sur : Manage Printers, Add Printer, et ajouter votre imprimante. Dans la rubrique Add New Printer, donnez un nom à l'imprimante dans le champ Name. Cliquez sur Continue. L'imprimante sera accessible sous le nom que vous aurez entré dans Name. Nous metterons ici : HP, pour l exemple. Dans la rubrique Device for HP, sélectionnez LPD/LPR Host or Printers. Cliquez ensuite sur Continue. Tapez ensuite l adresse IP de l imprimante, par exemple : lpd://192.168.22.79 Dans la rubrique Model/Driver for HP, cliquez sur le nom du fabricant de l'imprimante ( ici : HP ). Cliquez ensuite sur Continue. Sur l'écran suivant, choisissez le modèle. Vous devriez retrouver ici les infos du fichier PPD installé précédemment. Cliquez sur Continue pour terminer la définition de l'imprimante. Affichez la page Printer en cliquant sur le menu Printers en haut de l'écran. Vous devriez voir un message du type : Printer Status : Waiting. Pour tester l'imprimante, cliquez sur Print Test Page. Si tout va bien, une page de test devrait être imprimée. Il faut ensuite configurer Samba pour partager les imprimantes pour les clients Windows. Dans le fichier /etc/samba/smb.conf, ajoutez les paramètres suivants : [global] printing = cups printcap name = /etc/printcap.cups load printers = yes - 30 -

[printers] comment = Imprimantes browseable = no path = /tmp printable = yes public = no writable = no create mode = 0700 [print$] comment = Printer Drivers browseable = yes path = /etc/samba/drivers guest ok = no read only = yes b. Côté client Linux Il faut à présent que l impression soit possible sur les clients Debian. Pour cela, installez le programme client CUPS : apt-get install cupsys-client Ensuite, éditez le fichier /etc/cups/client.conf et décommentez la ligne commençant par ServerName. Sur cette ligne, vous devez alors préciser l'adresse IP ou le nom DNS du serveur d'impression. Par exemple, si votre serveur d'impression a l'adresse IP 192.168.22.67, le fichier /etc/cups/client.conf devra contenir : ServerName 192.168.22.67-31 -

c. Côté client Windows Sur un poste de travail Windows 2000/XP : Choisissez Menu Démarrer, Paramètres, Imprimantes, Ajouter une imprimante. Dans l'assistant Ajout d'imprimante, choisissez "Imprimante réseau", puis "Vous connecter à une imprimante sur Internet ou sur votre réseau intranet". Indiquez l'adresse de l'imprimante dans le champ URL, dans notre cas : \\192.168.0.42\HP Le système installe ensuite le pilote de l'imprimante. - 32 -

Gestion des profils utilisateurs A ce niveau, nous avons : Un serveur LDAP/Samba qui nous permet d ouvrir une session Windows et Linux, L ordinateur a son heure synchronisée avec le serveur NTP, Nous pouvons imprimer en utilisant le serveur CUPS. Nous entrons ici dans une partie assez délicate puisque nous allons devoir gérer les comptes utilisateurs, c est- à- dire : Monter leur répertoire personnel, Appliquer un système de quota disque, Appliquer une stratégie de sécurité sous Windows en fonction de leur groupe, Synchroniser les mots de passe entre Windows et Linux. 1. Montage du répertoire personnel a. Présentation de «Autofs» Autofs utilise NFS ( Network File System ) et permet de monter de façon transparent et dynamique un volume sous Linux, c est- à- dire : Lorsqu un utilisateur va ouvrir une session sous Linux, son répertoire personnel se trouvant sur le serveur va être automatiquement monté ( «lié» ) à son ordinateur, et pourra ainsi à distance : ouvrir, modifier, supprimer ses données comme si elles étaient sur sa machine. Lorsqu il se déconnectera, son répertoire sera démonté afin de laisser place au prochain étudiant et ainsi éviter qu il puisse les modifier. b. Configuration du serveur Installation de NFS : apt-get install nfs-kernel-server nfs-common portmap Le fichier de configuration de NFS est : /etc/exports. Vous pouvez supprimer tout son contenu et copiez en adaptant cette ligne: /home IP_de_la_machine_cliente(rw,sync,root_squash) Explications: /home: est le répertoire à partager IP_de_la_machine_cliente: Vous pouvez mettre une seule IP ou un sous réseau: 192.168.22.0/255.255.255.0-33 -

ex: /home 192.168.22.0/255.255.255.0(rw,sync,root_squash) rw : Lecture / écriture. sync : Synchronise les données entre le client et le serveur. root_squash: root devient un simple client, très important pour la sécurité! A chaque modification de /etc/exports, on relance le service NFS : /etc/init.d/nfs-kernel-server restart Assurez- vous de ne pas rencontrer d'erreurs ou d'avertissements. Il faut à présent modifier l arbre LDAP pour y ajouter le montage du répertoire personnel, pour cela : Créez un fichier /etc/ldap/schema/autofs.schema qui contient : # $id$ # # Depends upon core.schema and cosine.schema # OID Base is 1.3.6.1.4.1.2312.4 # # Attribute types are under 1.3.6.1.4.1.2312.4.1 # Object classes are under 1.3.6.1.4.1.2312.4.2 # Syntaxes are under 1.3.6.1.4.1.2312.4.3 # Attribute Type Definitions attributetype ( 1.3.6.1.1.1.1.25 NAME 'automountinformation' DESC 'Information used by the autofs automounter' EQUALITY caseexactia5match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) objectclass ( 1.3.6.1.1.1.1.13 NAME 'automount' SUP top STRUCTURAL DESC 'An entry in an automounter map' MUST ( cn $ automountinformation $ objectclass ) MAY ( description ) ) - 34 -

objectclass ( 1.3.6.1.4.1.2312.4.2.2 NAME 'automountmap' SUP top STRUCTURAL DESC 'An group of related automount objects' MUST ( ou ) ) Editez le fichier /etc/ldap/slapd.conf et ajoutez à la fin de la déclaration des schémas : include /etc/ldap/schema/autofs.schema Relancez le serveur LDAP : /etc/init.d/slapd restart Créez un fichier que l'on nommera ajoutnfs.ldif et copiez ceci en l'adaptant: dn: ou=export,dc=univ,dc=fr objectclass: top objectclass: automountmap ou: export dn: cn=/,ou=export,dc=univ,dc=fr objectclass: top objectclass: automount cn: / automountinformation: nfs,hard,intr,nodev,nosuid,rw ip_serveur_nfs:/home/& Vous avez ici le fichier LDIF qui ajoutera à votre arbre une branche nommée «export» qui contient CN=/ qui permet de monter le répertoire : /home/& ou : «&» est remplacé par le nom de l utilisateur qui se trouve sur le serveur NFS. On importe ensuite le fichier LDIF dans notre annuaire LDAP ldapadd -x -f ajoutnfs.ldif -W -D cn=admin,dc=univ,dc=fr - 35 -

c. Configuration du client Linux Il faut à présent mettre à jour quelques informations sur le client pour que le montage s effectue. Installez le paquet «autofs» : apt-get install autofs autofs-ldap Créez un répertoire repperso dans /mnt : Mkdir /mnt/repperso Remarque : Si vous souhaitez monter le répertoire personnel des utilisateurs sur /home, il faudra commenter la ligne correspondante dans le fichier /etc/fstab pour qu il ne soit pas monté au démarrage de la machine. C est pour cela que nous avons choisi de monter ce répertoire sur /mnt/repperso. Editez le fichier /etc/auto.master et ajoutez la ligne : /mnt/repperso ldap://ip_serveur_ldap/ou=export,dc=univ,dc=fr --timeout=5 Explications: /home est le point de montage ip_serveur_ldap est l'adresse du serveur Ldap: Pas forcement la même que celle du serveur de fichiers, c'est l'annuaire LDAP qui fournit l'adresse du serveur de fichiers. Dans notre cas : 192.168.22.67 --timeout=5, Si pendant 5 secondes le répertoire monté n'est pas utilisé il est démonté. Relancez ensuite le service «autofs» : /etc/init.d/autofs restart Avec la commande mount, vous pouvez vérifier la présence d'automount : /dev/hda2 on / type ext3 (rw,errors=remount-ro) proc on /proc type proc (rw) devpts on /dev/pts type devpts (rw,gid=5,mode=620) tmpfs on /dev type tmpfs (rw,size=10m,mode=0755) - 36 -

automount(pid15183) on /mnt/repperso type autofs (rw,fd=4,pgrp=15183,minproto=2,maxproto=4) Connectez-vous à un utilisateur dont le répertoire personnel est sur le serveur et tapez la commande mount : su toto mount /dev/hda2 on / type ext3 (rw,errors=remount-ro) proc on /proc type proc (rw) devpts on /dev/pts type devpts (rw,gid=5,mode=620) tmpfs on /dev type tmpfs (rw,size=10m,mode=0755) automount(pid15183) on /mnt/repperso type autofs (rw,fd=4,pgrp=15183,minproto=2,maxproto=4) ip_serveur_ldap:/home/toto on /mnt/repperso/toto type nfs (rw,addr=ip_serveur_ldap) Déloguez-vous, votre répertoire est démonté selon le timeout renseigné. Nous allons monter la partition «partage», pour cela, créez le répertoire /media/partage : mkdir /media/partage Ajoutez dans le fichier /etc/fstab la ligne suivante : ip_serveur_nfs:/home/partage /media/partage nfs hard,intr,rw 0 0 Pour relancer le montage, redémarrez la machine ou tapez : mount -a Vous avez à présent le répertoire personnel et le répertoire «partage» de montés sous Linux, il faut à présent le faire pour les clients Windows, pour cela, nous utiliserons Samba. - 37 -

d. Configuration du client Windows Pour Samba, le raisonnement diffère de «Autofs» : Lorsque vous ouvrez une session, Samba partage automatiquement le répertoire personnel qui a été créé sur le serveur. Samba créé alors un lecteur réseau qui va pointer vers ce partage. Lors de l installation de Samba, nous avons spécifié dans le fichier smb.conf les partages que nous souhaitions et avions créé les répertoires suivants : Netlogon : lance les scripts en début de session Windows, Profiles : conserve les profils de chaque utilisateur ( favoris Internet, fond d écran ), Homes : répertoire personnel des utilisateurs, Partage : répertoire commun pour échanger des données entre étudiants. Nous n avions pas expliqué ce que signifiait le : «%G» et le : «%U» dans ces partages. En fait, ils correspondent réciproquement au groupe et à l utilisateur. Ainsi : Un étudiant inscrit dans l arbre LDAP appartenant aux groupes L1maths ( OU=L1maths,OU=Groupes,DC=univ,DC=fr ) verra son «%G» transformé en «L1maths», et son «%U» en «toto» par exemple. Ainsi, les partages nommés : «Netlogon» sera dirigé vers : /home/netlogon/l1maths/, «profile» sera dirigé vers : /profiles/l1maths/toto. Si vous accéder par le Voisinage Réseau à votre serveur, vous verrez donc apparaître les partages. A vous donc, de modifier ces champs dans smb.conf pour les faire correspondre à vos besoins. Un peu plus haut dans ce même fichier, nous avons : 1. # net use U: \\serveur\home 2. logon drive = u: 3. #chargement du script 4. logon script = etudiants.bat 5. #chargement du profil de l'utilisateur 6. logon path = \\%L\profile - 38 -

La ligne 2 permet de monter le répertoire personnel sous la lettre U : dans le Poste de Travail. La ligne 4 permet de lancer un script nommé etudiants.bat à l ouverture d une session qui se trouve sur le partage nommé «Netlogon» qui pointe dans notre exemple vers : /home/netlogon/%g. La ligne 6 permet de charger le profil utilisateur qui se trouve sur le partage : «profile» qui pointe dans notre exemple vers : /profiles/%g/%u. Nous pouvons par exemple, mettre ces lignes de commande dans le fichier etudiants.bat : 1. net use X: \\serveur\partage 2. net time \\serveur /SET /YES La ligne 1 ajoute dans le Poste de Travail la lettre X : qui permet d accéder au répertoire Partage du serveur ( endroit où tout le monde peut s échanger des données ). La ligne 2 permet de synchroniser l ordinateur client avec le serveur. Notons tout de même que pour pouvoir modifier automatiquement l heure à chaque ouverture de session, il est nécessaire de modifier une stratégie système : Panneau de configuration, Outils d administration, Stratégie de sécurité locale, Stratégies locales, Attributions des droits utilisateurs, Modifier l heure système et rajouter utilisateurs. e. Limitation des quotas disque Il s'agit de limiter l'espace disque et/ou le nombre de fichiers alloués aux utilisateurs ou aux groupes, sur un système de fichiers désigné, donc sur une partition. Le but recherché est le plus souvent de contraindre à une meilleure gestion des répertoires personnels. Quand un utilisateur dépasse la taille maximale fixée, il est averti et dispose d'un délai pour "faire le ménage"... Plus précisément, cela se quantifie en donnant 2 nombres, les limites : "soft" : il s'agit d'une tolérance, cette limite peut être franchie (pendant 7 jours par défaut), "hard" : franchie par un utilisateur ou un groupe, celui-ci ne peut plus écrire sur le disque, tant qu'elle est dépassée. Installez «Edquota» : apt-get install quota On suppose dans la suite que la partition /dev/hda6 est affecté au répertoire /home. - 39 -

Pour activer la surveillance des répertoires personnels, on doit effectuer cette déclaration dans le fichier /etc/fstab, en ajoutant l'option usrquota (et/ou grpquota) sur la ligne qui configure le montage de /home : /dev/hda6 /home ext2 defaults,usrquota,grpquota 1 2 Il nous faut initialiser les tables de quotas : quotacheck /dev/hda6 On peut vérifier que le fichier quota.user a été créé dans /home. Il renferme la table des quotas. Générons un rapport de surveillance par : repquota -a Attribuer des limites aux utilisateurs «à surveiller». La commande edquota fait passer en mode édition dans vi : edquota -u toto Quotas for user toto: /dev/hda6 : blocks in use: 148, limits (soft = 0, hard = 0) inodes in use: 37, limits (soft = 0, hard = 0) Il suffit de modifier les valeurs des limites soft et hard. Exemple : soft : 45000, hard : 50000, pour bloquer à 50 Mo l espace disque. Pour modifier cette limite pour un groupe entier : Edquota g nomdugroupe 2. Application d une stratégie de sécurité Pour éviter d avoir à refaire les machines clientes en cours d année, les administrateurs ont souhaité bloquer au maximum les possibilités aux étudiants. Ainsi, nous avons utilisé le logiciel «Poledit» qui permet d appliquer de façon très simple des interdictions sur les machines clientes. Une fois ce logiciel lancé, nous avons chargé plusieurs fichiers.adm qui permettent de rajouter des options de sécurité. - 40 -

Ensuite, nous avons coché les éléments que nous jugions utiles, par exemple, nous avons pu interdire : La modification des propriétés d affichage ( fond d écran, résolution ), L accès aux disques locaux, A MS-Dos, Au voisinage réseau, Au clic-droit de la souris, La modification du menu démarrer et de la barre des tâches De ne pas enregistrer les modifications apportées aux profils en fermant la session, Ne pas garder une copie du profil sur le disque de la machine ( pour ainsi conserver de l espace disque disponible ) Une fois terminé, nous sauvegardons le fichier sous le nom : ntconfig.pol et nous le plaçons sur le serveur dans le répertoire : /home/netlogon ( où se trouve le script etudiant.bat ) en lui appliquant les permissions suivantes : 444 Par défaut, lors de l ouverture d une session, Samba charge automatiquement les sécurités mises en place à condition que le fichier s appelle ntconfig.pol pour les clients Windows 2000/XP. Pour le cas des clients Windows 9x, ce fichier doit s appeler config.pol. 3. Synchronisation des mots de passe entre Linux et Windows Lorsque nous changeons le mot de passe sous Windows, ce dernier est automatiquement changé pour l identification sous Linux puisque nous avons spécifié dans notre smb.conf la ligne suivante : ldap password sync = Yes Seulement, la réciproque n est pas vraie. En effet, lorsque l on change le mot de passe sous Windows, la requête est envoyée à Samba qui se charge de faire le nécessaire sur l annuaire LDAP. Or, lorsque vous changez le mot de passe sous Linux, c est directement l annuaire LDAP qui est visé et non Samba, de ce fait, Samba n est pas mis à jour. Pour corriger ceci, il faut installer le paquet suivant : apt-get install smbclient Et utilisez la commande suivante au lieu de passwd : Smbpasswd r nomduserveurldap - 41 -

Recherches annexes 1. Partitionnement LDAP Il consiste à séparer les données de l'annuaire sur plusieurs serveurs. Il peut être imposé par le volume d'entrées à gérer, leur gestion répartie sur plusieurs sites, les types d'accès au réseau physique ou le mode d'organisation de la société. Séparer les données ne veut pas dire forcément les dissocier : les standards LDAP et X500 définissent des moyens de les relier (recoller). Ce sont les services replication et referral. a. Réplicat ( ou Dupplication ) La duplication consiste à recopier le contenu de tout ou partie de son arbre sur un autre serveur. Elle peut être utilisée pour rapprocher le service des utilisateurs ( serveur et clients sur le même réseau physique ), répartir la charge sur plusieurs serveurs ( load balancing ) ou importer dans son arbre des entrées gérées sur un autre serveur. La duplication est, à terme, un passage obligé car elle permet d'améliorer la rapidité et la sûreté de fonctionnement du service d'annuaire. Un exemple de duplication est représenté dans la figure ci- dessous. Les traits en pointillés représentent des liens de duplication. - 42 -

b. Referral Les méthodes permettant de créer des liens entre des partitions d'annuaires sont appelées les knowledge references. Ces dernières sont des mécanismes qui permettent de relier virtuellement des arbres entre eux, en indiquant à quel point de branchement d'un arbre vient se raccrocher un autre DIT ( immediate superior knowledge reference ) et inversement quels sont les arbres qui viennent se raccrocher à tel ou tel point de branchement du sien ( subordinate reference ). Ces liaisons permettent à un serveur de faire suivre les requêtes des utilisateurs lorsque l'objet recherché n'appartient pas à l'arbre qu'il gère. La résolution de nom est le mécanisme par lequel un serveur détermine quel objet de sa base est désigné par le DN qu'un client lui fournit. Si le DN est bien dans son contexte de nommage, il exécute la requête du client ( search, modify, bind... ), sinon il renvoie un signal «object not found». Si l'objet n'est pas dans son espace de nommage, le serveur utilise alors ses liens knowledge reference, soit pour faire suivre la requête vers le serveur qui peut fournir l'objet, soit pour indiquer au client lequel contacter. La figure ci- dessous montre le cas de figure de deux serveurs gérant chacun deux suffixes, où les deux sont reliés l un à l autre. Les serveurs LDAP utilisent deux méthodes pour faire suivre les requêtes le long de ces liens : Le Referral est une information que retourne au client le serveur LDAP, lorsque l'entrée recherchée n'appartient pas à son arborescence, lui indiquant vers quel serveur il doit reformuler sa requête. Il utilise pour cela les URLs LDAP. Le mécanisme de referral est standardisé dans le protocole LDAPv3. Le chaînage ( chaining ) est un mécanisme où c'est le serveur qui se charge de contacter un autre serveur pour le compte du client et lui retourne la réponse. - 43 -

L université est décomposée en deux réseaux distincts : Le CGU, lieu de mon stage ; L IUP, où je suis mes cours. Ces deux réseaux communiquent ensemble pour pouvoir utiliser les serveurs de jetons. Cependant, les deux réseaux disposent d une administration différente, ainsi un nouvel étudiant en IUP ne sera pas connu du CGU, et donc ne pourra pas disposer de compte dans ce domaine, et inversement. Dans le but de rendre l authentification des étudiants possible dans chacun des deux réseaux, les administrateurs ont souhaité mettre en place de chaque côté un serveur LDAP avec les comptes étudiants que l administration leur aurait communiqués. Pour «s échanger» les informations, un système de referral a été choisi car il permet, contrairement à la duplication, d utiliser la bande passante qu en cas de nécessité, et donc de ne pas saturer la bande passante. J ai donc installé un deuxième serveur LDAP représentant le serveur de l IUP, avec des comptes différents du premier pour tester le referral. J ai pris soin de retirer le cryptage Kerberos sur les deux serveurs. Sous Debian, je peux donc à partir d une machine cliente IUP me connecter au serveur IUP, et travailler sur mon répertoire à distance. Il en est de même avec le CGU. J ai donc ajouté à mon arbre le knowledge referrence suivant : #----------- REFERRAL ----------- #dn: ou=iup,dc=univ,dc=fr #ou: iup #objectclass: referral #objectclass: extensibleobject #ref: ldap://serveur2.univ.fr:389/ou=users,dc=univ,dc=fr Seulement, lorsque j utilise un compte IUP sur une machine CGU, l ouverture de session m est refusée. - 44 -

Pour savoir ce qu il se passait, j ai donc lancé sur les deux serveurs ethereal, et tenté à nouveau l identification. Je trouve ainsi : Le client se loggue sur l arbre LDAP du CGU, Demande les informations du compte utilisateur IUP, Le serveur CGU lui retourne l adresse du serveur IUP à tester : ldap://serveur2.univ.fr:389/ou=users,dc=univ,dc=fr Le client renouvelle sa demande auprès du deuxième serveur qui lui retourne les informations du compte, Le serveur CGU retourne au client le message d erreur suivant : Invalid Credentials. D après l explication donnée par OpenLDAP, le client renouvelle sa demande au deuxième serveur et, dans ce cas, le premier serveur n est plus interrogé. Or, en regardant les trames réseaux de ethereal, lorsque le serveur de l IUP retourne les informations au client, le serveur CGU «s empresse» de lui retourner une erreur pour annuler l identification. Pour moi, la raison vient du fait que nous n utilisons pas la méthode de referral, mais la méthode de chaînage, de ce fait, elle fait intervenir les deux serveurs. Malgré de nombreuses recherches sur Internet, je n ai trouvé que peu de documentations sur système. Les quelques informations que j ai trouvées tournaient toutes autour de la même explication : Avoir un serveur principal avec deux branches faisant une knowledge referrence vers le serveur CGU et l autre sur l IUP ; et que tous les clients interroge le serveur principal. Dans ce cas, le problème est le même : le serveur «d aiguillage» aura donc à gérer la totalité des comptes étudiants et, en plus de cela, la bande passante sera encore plus grande du fait que pour une demande, le client interrogera les deux annuaires. Il est donc préférable de mettre en place un serveur dans chaque réseau, et d ajouter une branche de duplication dans chacun d eux. 2. Wake On Lan et Shutdown Comme nous l évoquions au début de ce rapport, l université dispose d environ 100 machines pour que les étudiants puissent travailler. Entre 19h30 et 8h le lendemain, le bâtiment est fermé, mais les ordinateurs, eux restent allumés. J ai donc essayé, avec l accord des administrateurs, de mettre en place la possibilité de les éteindre et de les allumer à distance. - 45 -

Après avoir testé quelques logiciels gratuits, j ai été «séduit»par LanShutDown ( http://www.lantriks.com ) qui permet de stocker plusieurs listes de machines en mémoire et utilise le WMI pour éteindre à distance. En effet, tous le logiciels qui n utilisaient pas le WMI ne permettaient pas d éteindre les ordinateurs. Une fois identifié comme administrateur du domaine, nous pouvons lancer ce logiciel et choisir quelle salle/quelle machine nous voulons éteindre, redémarrer ou bien encore fermer la session. Pour l allumage à distance, j ai utilisé le logiciel WakeOnLan. Comme les ordinateurs sont éteints, il n y a plus d adresse IP, il faut donc utiliser l adresse MAC des cartes réseaux pour les faire démarrer. - 46 -