SlideShare une entreprise Scribd logo
I K R A M B E N A B D E L O U A H A B
Introduction
Systèmes de fichiers (Rappel)
Types de fichiers sous Unix (Rappel)
Les droits d'accès classiques (Rappel)
Les droits d'accès spéciaux (Rappel)
Gestion des droits d'accès (Rappel)
Création manuelle d'un compte Unix (Rappel)
TP 1: DNS
TP 2: Apache
TP 3: OpenVPN et SSL
TP 4: Configuration de l'annuaire LDAP
TP 5: Authentification avec LDAP par un client Ubuntu
Cours:
TP Administration des services Unix
A d m i n i s t r a t i o n S y s t èm e
N O T E S D E C O U R S E T T P
Introduction
GNU/Linux ou Linux est un système d'exploitation associant des éléments essentiels du projet GNU
et le noyau Linux.
Fondé en 1984 par Richard Stallman, le système d'exploitation GNU resta jusqu'en 1991 au stade
expérimental car son noyau Hurd était toujours en développement. Cependant, Linus Torvalds
créa indépendamment le noyau Linux qui résolut le problème en remplaçant Hurd.
Néanmoins, cette mise en relation des deux projets engendra une controverse toujours d'actualité
autour du nom du système associant les deux éléments, certains, dont le grand public, appelant le
système simplement Linux, et d'autres, dont Richard Stallman, défendant le nom combiné
GNU/Linux.
Rappel : Systèmes de fichiers
Il existe 3 systèmes de fichiers : NTFS, FAT32, EXT4.
 NTFS : Utiliser sous Windows
 FAT32 : Utiliser sous Linux et Windows
Caractéristiques du FAT32 :
 Un fichier ne peut pas dépasser 4Go (Lecture lourde)
 Le système n’est pas journalier c’est-à-dire, il ne sauvegarde pas les éléments de
l’historique (les fichiers .log)
 Le système de fichiers ne supporte pas le chiffrement (moins sécurisé)
Définition d’un système de fichiers :
Un système de fichiers est la méthode utilisée pour stocker de l’information sur un
disque dur.
UNIX
Linux (1991) BSD
MAC OS Windows
Pour stocker l’information, on utilise :
 Physiquement : un disque dur.
 Logiquement :
 Windows : Forêt
 Linux : Arbre
Rappel : Types de fichiers sous Unix
Sous Microsoft Windows, on distingue deux catégories de fichiers :
1. les fichiers réguliers, qui stockent des informations,
2. les répertoires, appelés aussi dossiers, qui regroupent un ensemble de fichiers (fichiers
réguliers ou dossiers)
Sur un système UNIX, la notion de fichiers est plus générale et ne se limite pas à ces deux types de
fichiers.
Rappel : Les droits d’accès Classiques
Rappel : Les droits d’accès spéciaux
Les setuid, setgid et sticky bit sont des droits dits spéciaux, ils s’ajoutent aux droits classiques
(lecture, écriture et exécution) et fonctionnent différemment suivant qu’on les applique sur un
fichier ou un répertoire.
Le Sticky bit
Le Sticky bit est un droit spécial dont le comportement est différent pour les fichiers exécutables et
les répertoires. Il correspond à la lettre t ou numériquement à 1000. Si les droits d'exécution ne sont
pas positionnés c'est la lettre T qui correspond.
 les fichiers exécutables - le programme restera en mémoire pour une exécution ultérieure
 les répertoires - si le sticky bit est positionné sur un répertoire, seul le propriétaire pourra
supprimer ses fichiers (c'est le cas des répertoires /tmp et /var/tmp sous GNU/Linux)
Les droits d'endossement
SetUID et SetGID
Les droits d'endossement dans GNU/Linux sont représentés par :
 la lettre s (si le droit x est positionné)
 la lettre S (si le droit x n'est pas positionné)
Le comportement des droits d'endossement.
 Pour les fichiers programme ou exécutable
o SUID = 4000 - le processus a les droits du propriétaire du programme exécuté
o SGID = 2000 - le processus a les droits du groupe du programme exécuté
 Pour les répertoires
o SGID = 2000 - les fichiers qui se trouvent dans le répertoire appartiennent au groupe
du répertoire
Les droits d'endossement sont très importants pour la sécurité.
Au lieu de donner l'accès à un fichier, on donne le droit d'accès à une commande.
Le kernel (ou noyau), au moment de l'exécution de la commande endosse l'identité du
propriétaire ou du groupe de la commande au lieu de celle de l'utilisateur qui a lancé la
commande. Donc l'accès au fichier se fait par le biais de la commande et non pas directement.
Rappel : Gestion des droits d’accès
Chmod
La commande chmod (CHangeMODe) permet de définir et de changer les droits d'accès d'un
fichier ou un ensemble de fichiers.
Parmi les options de la commande chmod on cite ces deux :
 v pour verbose (affichage sur la sortie standard STDOUT du résultat de la commande)
 R traiter les répertoires de façon récursive (application de la commande à l'arborescence
entière du répertoire en question)
Il y a deux modes d'utilisation de la commande chmod :
 de façon littérale
 de façon numérique
chmod utilise la notation suivante :
 u - pour le propriétaire (user)
 g - pour le groupe (group)
 - pour les autres (other)
 a - pour tous (all)
Une autre notation sera utilisée pour attribuer et/ou retirer des droits.
 + (plus) pour attribuer
 - (moins) pour retirer
 = (égale) pour fixer l'accès exact
Umask
La commande umask permet de définir les droits par défaut d'un fichier ou répertoire à sa
création. Autrement dit elle indique les droits qu'il faut retirer lors de leur création.
$ umask 0022 fichier
Chown
Pour changer le propriétaire d'un fichier il faut utiliser la commande : chown usager fichier
Usermod
Cette commande permet de modifier un user
$ usermod –G group0 user3
 -g : Changer le groupe propriétaire
 -G : Ajouter l’utilisateur à un autre groupe
Useradd
Cette commande permet la création d’un nouveau compte utilisateur.
On peut préciser le groupe lors de la création du compte utilisateur (sans créer le groupe par
défauts) :
$ useradd –gid 5000 user5
Rappel : Création manuelle d’un Compte Unix
Les fichiers à modifier :
 /etc/passwd
 /etc/group
 /etc/shadow
 /home
1. Editer le fichier : /etc/passwd
2. Editer le fichier : /etc/group
3. Editer le fichier : /etc/shadow
4. Création du répertoire personnel : /home/newUser
#mkdir /home/newUser
#chown newUser:newUser /home/newUser
5. /etc/skel
Le repertoire /etc/skel contient le profil par défauts càd les fichiers nécessaires au démarrage de la
session.
On doit copier le contenu du profil par défauts à partir de /etc/skel vers le répertoire personnel du
nouveau utilisateur.
N’oublier de modifier le propriétaire et le groupe du répertoire créer et son contenu.
TP 1 :
Configuration DNS
Configuration d’un serveur DNS sous Debian, connecté à deux clients
 Client 1 : Ubuntu ou Debian
 Client 2 : Windows
Configuration du Serveur DNS
DNS : signifie soit Domain Name System ou Domain Name Server
La mise en place d'un serveur DNS sur un réseau permet de remplacer les adresses IP des machines
par un nom. Ainsi, il est même possible d'associer plusieurs noms à la même machine pour mettre en
évidence les différents services possibles.
1) Installer bind9
#apt-get install bind9
Les Ressources Records (RR)
Un DNS est constitué de plusieurs enregistrements, les RR ou Ressources Records, définissant les
diverses informations relatives au domaine.
 Le premier enregistrement est consacré à la résolution de noms, dans notre cas, il s'agit du
fichier db.sir.lan.
 Le second sera quant à lui en rapport avec la résolution de noms inverses ; il s'agit du fichier
db.sir.lan.inv.
2) Créer le fichier : /etc/bind/db.sir.lan
#nano /etc/bind/db.sir.lan
3) Créer le fichier : /etc/bind/db.sir.lan.inv
#nano /etc/bind/db.sir.lan.inv
$TTL 604800
@ IN SOA server1.sir.lan. root.sir.lan. (
201704151 ;Serial
604800 ;Refresh
86400 ;Retry
2414200 ;Expire
604800 ;Negative Cache TTL
)
@ IN NS server1.sir.lan.
server1 IN A 192.168.1.1
client1 IN A 192.168.1.20
client2 IN A 192.168.1.21
$TTL 604800
@ IN SOA server1.sir.lan. root.sir.lan. (
201704151 ;Serial
604800 ;Refresh
86400 ;Retry
2414200 ;Expire
604800 ;Negative Cache TTL
)
@ IN NS server1.
1 IN PTR server1.sir.lan.
20 IN PTR client1.sir.lan.
21 IN PTR client2.sir.lan.
Quelques explications
 $TTL : (Time To Live) exprime la durée (en secondes) de validité, par défaut, des informations
que contiennent les RRs. Une fois ce délai expiré, il est nécessaire de vérifier à nouveau les
données. Les différents types :
 SOA : permet de définir les informations relatives à la zone. En l'occurrence le nom du
serveur DNS primaire "server1.sir.lan." et l'adresse mail du contact technique.Il est compose
de plusieurs champs :
 Serial : est un entier non signé 32 bits. C'est le numéro de série à incrémenter à
chaque modification du fichier. Il permet au serveur secondaire de recharger les
informations qu'ils ont. L'usage général vient à le formater de cette manière
YYYYMMDDXX, soit pour la première modification du 01/04/2007 -> 2007040101,
pour la seconde 2007040102.
 Refresh : définit la période de rafraîchissement des données.
 Retry : si une erreur survient au cours du dernier rafraîchissement, celle-ci sera
répétée au bout du délai Retry.
 Expire : le serveur sera considéré comme non disponible au bout du délai Expire.
 Negative cache TTL : définit la durée de vie d'une réponse NXDOMAIN de notre part.
 NS : renseigne le nom des serveurs de noms pour le domaine.
 A : associe une nom d'hôte à une adresse ipv4 (32 bits)
 AAAA : associe une nom d'hôte à une adresse ipv6 (128 bits)
 PTR : c'est simplement la résolution inverse (le contraire du type A).
 Les classes : IN détermine l'association a la classe Internet.
4) Modifier le fichier : /etc/bind/named.conf.local
Ce fichier contient la configuration locale du serveur DNS, on y déclare les zones associées au
domaine. Ainsi on Informe le serveur DNS des fichiers de configuration.
5) Modifier le fichier : /etc/bind/named.conf.options
Ce fichier contient l'ensemble des options de configuration du serveur DNS.
Ici on fait la déclaration des serveurs externes par ordre.
#nano /etc/bind/named.conf.local
zone ″sir.lan″{
type master ;
file ″/etc/bind/db.sir.lan″ ;
forwarders {} ;
} ;
zone ″1.168.192.in-addr.arpa″{
type master ;
file ″/etc/bind/db.sir.lan.inv″ ;
forwarders {} ;
} ;
#nano /etc/bind/named.conf.options
. . .
forwarders{
8.8.8.8 ;
212.217.0.1 ;
} ;
. . .
6) Modifier le fichier : /etc/hosts
#nano /etc/hosts
7) Modifier le fichier : /etc/resolv.conf
#nano /etc/resolv.conf
8) Démarrer le service DNS
#/etc/init.d/bind9 restart
Les outils de tests
 La commande dig : Elle permet d'interroger directement le serveur DNS de son choix et
d'obtenir de nombreuses informations, en plus de la résolution de noms et la résolution
inverse.
 La commande nslookup : Elle est moins performante mais reste utile.
 named-checkconf : Elle permet de vérifier la syntaxe des fichers de configuration de Bind9.
 named-checkzone : Elle permet de vérifier la validité des fichiers de zones avant de recharger
la configuration.
9) Tests de configuration
#cd /etc/bind
#named-checkzone sir.lan db.sir.lan
#named-checkzone sir.lan.inv db.sir.lan.inv
#named-checkconf named.conf.local
#named-checkconf named.conf.options
Si tout va bien, on passe aux tests de fonctionnement.
10)Tests de fonctionnement (au niveau du serveur)
Test 1 :
#host server1.sir.lan
Résultat attendue : Adresse IP
#host 192.168.1.1
Résultat attendue : Nom du domaine
Test 2 :
#nslookup server1.sir.lan
#nslookup @ 192.168.1.1
Test 3 :
#dig server1.sir.lan
#dig -X @ 192.168.1.1
127.0.0.1 localhost.localdomain localhost
127.0.1.1 server1.sir.lan server1
192.168.1.1 server1.sir.lan server1
domain sir.lan
search sir.lan
nameservers 192.168.1.1
Test 4 :
#ping 192.168.1.1
#ping server1.sir.lan
Configuration des Clients
Client Linux (Ubuntu)
1) Vérifier l’adresse IP : 192.168.1.20
2) Modifier le fichier : /etc/hosts
#nano /etc/hosts
3) Modifier le fichier : /etc/resolv.conf
#nano /etc/resolv.conf
4) Test de fonctionnement
#ping server1.sir.lan
#ping client1.sir.lan
Client Windows
Vérifier l’adresse IP de la machine : 192.168.1.21
Modifier l’adresse du serveur DNS préféré : 192.168.1.1
On peut ajouter des suffixes DNS : sir.lan
Tester avec le ping : #ping server1.sir.lan
127.0.0.1 localhost.localdomain localhost
127.0.1.1 server1.sir.lan server1
192.168.1.1 server1.sir.lan server1
search sir.lan
nameservers 192.168.1.1
TP 2 :
Configuration
Apache
Création d’une page personnelle avec Apache
1) Installation d’Apache
Apache est un serveur http.
2) Modifier le fichier apache2.conf
3) Activer le module : userdir
Le serveur HTTP Apache est un programme modulaire permettant à l'administrateur de choisir les
fonctionnalités qu'il souhaite activer, au moyen de modules.
Le module userdir est désactivé par défauts.
Il faut ensuite redémarrer le service apache :
 Après l’activation du module userdir les fichiers userdir.conf et userdir.load s’ajoutent dans
le dossier /etc/apache2/mods_enabled
4) Automatisation des tâches
On modifie le squelette de la création des nouveaux users. L’avantage est de ne pas avoir besoin à
chaque fois de devoir créer le répertoire public_html et logs quand on crée un nouvel utilisateur,
mais aussi d'avoir directement une page d'accueil.
Une fois le squelette créé, on peut créer un nouvel utilisateur (toto).
5) Création d’un nouvel utilisateur
 -g : pour spécifier le groupe propriétaire
 -m : pour demander de créer le répertoire personnel (/home/toto)
On redémarre de serveur
6) Test
Normalement, si tout est bien passé, on va pouvoir accéder à http://localhost/~toto et y voir Mon
Espace Personnel.
#nano /etc/apache2/apache2.conf
User www-data
Group www-data
DirectoryIndex index.html index.php index.xhtml
UserDir public_html
#apt-get install apache2
#cd /etc/apache2/mods_available
#a2enmod userdir
#/etc/init.d/apache2 restart
#mkdir /etc/skel/public_html
#mkdir /etc/skel/logs
#echo ″<h1>Mon Espace Personnel</h1>″ > /etc/skel/public_html/index.html
#useradd –g www-data –m toto
#/etc/init.d/apache2 restart
Virtual Host
Le Serveur Web Apache2 est capable de gérer simultanément plusieurs arborescences Web grâce à
la notion d'hôtes Virtuels (Virtual Hosts).
Il y a 3 méthodes pour mettre en place plusieurs sites web dans un même serveur :
1. VirtualHosts basé sur les cartes réseaux
2. VirtualHosts basé sur le numéro de ports
3. VirtualHosts basé sur le nom de domaine
1) VirtualHosts basée sur les cartes réseaux
a. Ajout de carte réseau physique
Cette solution est très limitée, et n’est pas pratique.
b. Ajout des cartes réseaux virtuelle
 Création des cartes virtuelle
D’abord, on crée deux carte réseaux virtuelles qui pointent sur la carte réseaux physique eth0.
#ifconfig eth0:0 192.168.2.1
#ifconfig eth0:1 192.168.2.2
 Modifier le fichier : /etc/hosts
 Créer le fichier : /etc/apache2/site-available/fstt1.conf
 Créer le fichier : /etc/apache2/site-available/fstt2.conf
 Créer le répertoire : /var/www/html/fstt1.lan
#nano /etc/hosts
. . .
192.168.2.1 fstt1.lan
192.168.2.2 fstt2.lan
. . .
#nano /etc/apache2/site-available/fstt1.conf
<VirtualHost 192.168.2.1:80>
DocumentRoot /var/www/html/fstt1.lan
ServerName fstt1.lan
</VirtualHost>
#nano /etc/apache2/site-available/fstt2.conf
<VirtualHost 192.168.2.2:80>
DocumentRoot /var/www/html/fstt2.lan
ServerName fstt2.lan
</VirtualHost>
#mkdir /var/www/html/fstt1.lan
#chmod -R 755 /var/www/html/fstt1.lan
 Le contenu de la première page web
#echo ″<h1>FSTT 1</h1>″ > /var/www/html/fstt1.lan/index.html
 Créer le répertoire : /var/www/html/fstt2.lan
#mkdir /var/www/html/fstt2.lan
#chmod -R 755 /var/www/html/fstt2.lan
 Le contenu de la deuxième page
#echo ″<h1>FSTT 2</h1>″ > /var/www/html/fstt2.lan/index.html
 Activer les sites
#cd /etc/apache2/sites-available
#a2ensite fstt1.conf
#a2ensite fstt2.conf
#etc/init.d/apache2 reload
 Test : dans le navigateur
fstt1.lan
fstt2.lan
2) VirtualHost basée sur le numéro de port
 Modifier le fichier : /etc/hosts
Dans un premiers temps, nous allons éditer le fichier /etc/hosts afin de déclarer les 2 noms de
domaine associés à la seule et unique adresse IP de notre interface réseau. Ceci permettra la
résolution de nom (Nom ⇒ Adresse Ip).
 Modifier le fichier : /etc/apache2/ports.conf
Précisez au serveur Apache2 d'écouter sur plusieurs ports, en ajoutant les lignes suivantes dans le
fichier /etc/apache2/ports.
 Modifier le fichier : /etc/apache2/sites-available/fstt1.conf
Modifier les numéros des ports dans les fichiers de configuration des deux sites.
#nano /etc/hosts
192.168.4.126 fstt1.lan fstt2.lan
#nano /etc/apache2/ports.conf
Listen 80
Listen 81
Listen 82
#nano /etc/apache2/sites-available/fstt1.conf
<VirtualHost 192.168.4.126:81>
DocumentRoot /var/www/html/fstt1.lan
ServerName fstt1.lan
</VirtualHost>
 Modifier le fichier : /etc/apache2/sites-available/fstt2.conf
 Activer les sites :
#cd /etc/apache2/sites-available
#a2dissite fstt1.conf
#a2dissite fstt2.conf
#etc/init.d/apache2 reload
#a2ensite fstt1.conf
#a2ensite fstt2.conf
#etc/init.d/apache2 reload
 Test :
fstt1.lan:81
fstt2.lan:82
3) VirtualHost basée sur le nom de domaine
 Modifier le fichier : /etc/hosts
Supprimer les deux ports 81 et 82 qu’on a ajoutés dans la configuration précédente. Garder
seulement le ports par défauts 80.
 Créer le fichier : /etc/apache2/sites-available/fstt1.conf
Modifier le port des deux site web en 80.
#nano /etc/apache2/sites-available/fstt1.conf
 Créer le fichier conf.d
#mkdir conf.d
#echo ″NameVirtualHost 192.168.4.126 :80″ > /etc/apache2/conf.d/virtual-
host.conf
 Activer les sites
#cd /etc/apache2/sites-available
#a2dissite fstt1.conf
#a2dissite fstt2.conf
#etc/init.d/apache2 reload
#a2ensite fstt1.conf
#a2ensite fstt2.conf
#etc/init.d/apache2 reload
 Test :
fstt1.lan
fstt2.lan
#nano /etc/apache2/sites-available/fstt2.conf
<VirtualHost 192.168.4.126:82>
DocumentRoot /var/www/html/fstt2.lan
ServerName fstt2.lan
</VirtualHost>
<VirtualHost 192.168.4.126:80>
DocumentRoot /var/www/html/fstt1.lan
ServerName fstt1.lan
</VirtualHost>
#nano /etc/apache2/ports.conf
Listen 80
TP 3 :
Configuration
OpenVPN & SSL
VPN : VIRTUAL PRIVATE NETWORK
Le réseau privé virtuel est vu comme une extension des réseaux locaux et préserve la sécurité logique que l'on peut
avoir à l'intérieur d'un réseau local. Il correspond en fait à une interconnexion de réseaux locaux via une technique
de « tunnel ».
PRINCIPE GENERAL
Un réseau VPN repose sur un ou des protocoles, appelé protocoles de tunnelisation (ou tunneling). Ce sont des
protocoles permettant aux données passant entre deux réseaux physiques d’être sécurisées par des algorithmes de
chiffrage. Le terme de « tunnel » est utilisées pour mettre l’accent
sur le fait qu’entre l’entrée et la sortie d’un VPN les données sont
chiffrées et protégées.
Lorsqu’un VPN est établi entre deux réseaux physiques, l’élément
qui permet de chiffrer et de déchiffrer les données du coté client
(ou utilisateur) est nommé « Client VPN ».
On appelle « Serveur VPN » l’élément qui chiffre et qui déchiffre les
données du côté du serveur.
POURQUOI UTILISER VPN ?
Lorsque nous utilisons un VPN, nous rendons notre connexion Internet privée, anonyme, protégée et celui-ci cache
notre adresse IP sur Internet.
Un autre intérêt est le faible coût de l’accès à Internet, que ce soit à haut débit ou via une ligne téléphonique. C’est
pour cela que les VPN sont de plus en plus répandus au sein des entreprises.
LES PRINCIPAUX PROTOCOLES DE TUNNELING
 L2F(Layer Two Forwarding) qui est un protocole de niveau 2 (obsolète).
 PPTP (Point-to-Point Tunneling Protocol) qui est aussi un protocole de niveau 2.
 L2TP (Layer Two Tunneling Protocol), protocole de niveau 2 s’appuyant sur PPP, et qui fait converger les
fonctionnalités de PPTP et L2F.
 IPSec, un protocole de niveau 3. Il permet de transporter des données chiffrées pour les réseaux IP.
 SSL (Secure Sockets Layer), quant à lui, offre une très bonne solution de tunnelisation. L'avantage de cette
solution est de permettre l'utilisation d'un navigateur Web comme client VPN : on peut accéder à ce type
de VPN avec un navigateur web via «https». Dans les faits, il permet aux utilisateurs de mettre en place une
connexion sécurisée au réseau depuis n’importe quel navigateur Web.
LOGICIEL VPN
Dans ce TP on va utiliser la solution VPN libre et gratuite la plus utilisée, OpenVPN. Et OpenSSL pour la sécurisation
des données. On aura besoin aussi de openssh-server pour l’échange des clés.
INSTALLATION ET CONFIGURATION DE VPN COTE SERVEUR
INSTALLATION D’OPENVPN
GENERATION DES CERTIFICATS ET DES CLES D’AUTHENTIFICATION
L'installation d'OpenVPN crée un dossier dans /usr/share/easy-rsa/ contenant tous les scripts permettant de
générer facilement tous les certificats et clés d'authentification nécessaire au fonctionnement d'OpenVPN.
Avant toute chose, copier les scripts originaux dans /etc/openvpn afin de centraliser applications et scripts :
INITIALISATION DES VARIABLES DE GENERATION
A partir du dossier /etc/openvpn/easy-rsa/, il faut dans un premier temps éditer le fichier vars afin d'initialiser
différentes variables servant à la génération des certificats :
On entre les informations personnelles comme suit :
Enfin, on exécute le script afin d'initialiser les variables :
On remarque la création du répertoire keys et d’autres.
GENERATION DU CERTIFICAT ET DE LA CLE D'AUTORITE DE CERTIFICATION
L'exécution du script build-ca entraîne la création du certificat ca.crt et de la clé ca.key dans le répertoire
/etc/openvpn/easy-rsa/keys.
#apt-get install openvpn
#apt-get install openssl
#apt-get install openssh-server
#cp /usr/share/easy-rsa /etc/openvpn -R
#cd /etc/openvpn/easy-rsa
#ls
 build-ca
#cd /etc/openvpn/easy-rsa
#nano vars
Export KEY_COUNTRY=”MA”
Export KEY_PROVINCE=”MA”
Export KEY_CITY=”Tanger”
Export KEY_ORG=”FSTT”
#. ./vars
#./clean-all
#./build-ca
Common Name : server
#cd keys
#ls
GENERATION DU CERTIFICAT ET DE CLE POUR LE SERVEUR
La génération du certificat et de la clé du serveur VPN se fait simplement, par l'exécution du script build-key-server,
toujours à partir du dossier /etc/openvpn/easy-rsa :
Différentes informations sont demandées pendant l'exécution de ce script, comme le mot de passe.
Ce script conduit à la création des fichiers server.crt et server.key dans le dossier /etc/openvpn/easy-rsa/keys.
GENERATION DU CERTIFICATS ET DE CLES POUR LES CLIENTS
On fait la même démarche pour les clients existant. Dans notre TP, on a deux clients on peut faire la configuration
manuel. Si on a un grand nombre de clients, on doit écrire un script qui permet de générer tous ces certificats.
Ce script entraine la création des fichiers client1.crt et client1.key dans le dossier /etc/opnevpn/easy-rsa/keys.
CREATION DES PARAMETRES DE DIFFIE-HELLMAN
Le protocole Diffie-Hellman est un protocole de cryptographie utilisé dans les échanges de clés. Les paramètres de
Diffie-Hellman sont générés par l'exécution du script build-dh à partir du dossier /etc/openvpn/easy-rsa :
Il en résulte la création du fichier dh2048.pem dans le dossier /etc/openvpn/easy-rsa/keys.
DEPLACER LES CERTIFICATS ET CLES DU SERVEUR
CONFIGURATION
La création des clés et certificats d'authentification est terminés. Nous allons passer à la configuration du serveur et
des clients.
Des exemples de fichiers de configuration sont présents dans le dossier /usr/share/doc/openvpn/examples/sample-
config-files/. On décompresse le fichier server.conf.gz. Puis on place les différents fichiers de configuration
nécessaires dans /etc/openvpn/ :
La mise en route du serveur entraine l'attribution automatique d'une adresse IP à l'interface tun0 du serveur.
#./build-key-server server
#./build-key client1
#./build-dh
#cd /etc/openvpn/easy-rsa/keys
#cp ca.crt ca.key client1.crt client1.key dh2048.pem /etc/openvpn
#cd /usr/share/doc/openvpn/examples/sample-config-files/
#gunzip server.conf.gz
#cp server.conf /etc/openvpn/
On va vérifier les paramètres au fichier /etc/openvpn/server.conf :
Pour démarrer le serveur, la commande est :
CONFIGURATION VPN COTE CLIENT
Le client Linux nécessite la même installation que le serveur :
Pour permettre le transfert du certificat et clé du client, il faut d’abord autoriser ssh au niveau du serveur :
Transfert du certificat et clé par ssh :
On vérifie maintenant le contenu du fichier client.conf permettant de se connecter au serveur défini
précédemment.
port 1194
…
;proto tcp
proto udp
…
;dev tap
dev tun
…
ca ca.crt
cert server.crt
key server.key
…
dh dh2048.pem
…
verb 3
#/etc/init.d/openvpn start
#openvpn server.conf
#apt-get install openvpn
#nano /etc/ssh/sshd-config
permitRootLogin Yes
#/etc/init.d/ssh restart
#cd /etc/openvpn
#scp root@192.168.4.126:/etc/openvpn/easy-rsa/keys/client1.crt .
#scp root@192.168.4.126:/etc/openvpn/easy-rsa/keys/client1.key .
#scp root@192.168.4.126:/etc/openvpn/easy-rsa/keys/ca.crt .
#openvpn client.conf
#ping 10.8.0.1
TP 4 :
Configuration
LDAP
INTRODUCTION
LDAP, Lightweight Directory Access Protocol, est un protocole standard permettant de gérer des annuaires, c'est-à-
dire d'accéder à des bases d'informations sur les utilisateurs d'un réseau par l'intermédiaire de protocoles TCP/IP.
Le protocole LDAP définit la méthode d'accès aux données sur le serveur au niveau du client, et non la manière de
laquelle les informations sont stockées.
D'autre part le protocole LDAP (dans sa 3ème
version) propose des mécanismes de chiffrement (SSL, ...) et
d'authentification (SASL) permettant de sécuriser l'accès aux informations stockées dans la base.
PRESENTATION DE L’ANNUAIRE LDAP
LDAP présente les informations sous forme d'une arborescence d'informations hiérarchique appelée DIT (Directory
Information Tree), dans laquelle les informations, appelées entrées (ou encore DSE, Directory Service Entry), sont
représentées sous forme de branches. Une branche située à la racine d'une ramification est appelée racine ou
suffixe (en anglais root entry). Chaque entrée est constituée d'un ensemble de paires clés/valeurs appelées
attributs.
CONSULTATION DES DONNEES
LDAP fournit un ensemble de fonctions (procédures) pour effectuer des requêtes sur les données afin de
rechercher, modifier, effacer des entrées dans les répertoires.
LE FORMAT D’ECHANGE DE DONNEES LDIF
LDAP fournit un format d'échange (LDIF, Lightweight Data Interchange Format) permettant d'importer et
d'exporter les données d'un annuaire avec un simple fichier texte. La majorité des serveurs LDAP supportent ce
format, ce qui permet une grande interopérabilité entre eux.
OPENLDAP
OpenLDAP est une implémentation libre du protocole LDAP développée par The OpenLDAP Project.
Le projet OpenLDAP implémente un serveur LDAP, mais également les commandes clientes permettant de
manipuler des informations contenues dans l’annuaire.
On va utiliser le serveur LDAP afin de centraliser les informations utilisateurs des sites et services du serveur. En
effet la plus par des services telles que les serveurs web, ftp, proxy peuvent s’authentifier sur un serveur LDAP.
PHPLDAPADMIN
C’est un outil graphique, qui permet de simplifier la tâche d’administration de l’annuaire LDAP.
CONFIGURATION DE OPENLDAP
INSTALLATION DES PAQUETS NECESSAIRES
MODIFIER LE NOM DU DOMAINE
REDEMARRER LE SERVICE DU SERVEUR LDAP
S'il y a un problème, entrer la commande suivante afin de reconfigurer le serveur :
Pour accéder à l'interface graphique de phpldapadmin, via un navigateur : localhost/phpldapadmin
AJOUTER DES ENTREES
Dans ce TP, on a ajouté des entrées avec trois méthodes :
1. En ligne de commande
2. Importation d’un fichier LDIF
3. Script dans l’interface graphique
#apt-get install slapd ldap-utils
#apt-get install apache2 php5 php5-mysql
#apt-get install phpldapadmin
#nano /etc/phpldapadmin/config.php
...
$servers->setValue('server','name','LDAP Server FSTT);
$servers->setValue('server','host','127.0.0.1');
$servers->setValue('server','base',array('dc=fstt,dc=lan'));
#/etc/init.d/slapd restart
#dpkg-reconfigure slapd
TP 5:
Authentification
avec LDAP par un
client Ubuntu
CONFIGURATION DU CLIENT UBUNTU
BACKUP
Il est très important de faire des copies de backup des fichiers de configuration avant de les modifier.
Garder une session Root ouverte !
INSTALLER LES OUTILS NECESSAIRES
MODIFIER LA CONFIGURATION LDAP
Dans l’URI, on met l’adresse IP du serveur distant.
INSTALLER LE MODULE LDAP POUR NSS
NSS = Name Service Switch
INSTALLER LE MODULE PAM POUR LDAP
PAM = Pluggable Authentification Module
#cd /etc/pam.d
#cp common-password common-password-B
#cp common-session common-session-B
#cp common-account common-account-B
#cp common-auth common-auth-B
#cp /etc/nsswitch.conf /etc/nsswitch.conf-B
#apt-get install slapd ldap-utils
#cd /etc/ldap/ldap.conf
BASE dc=fstt,dc=lan
URI ldap://192.168.4.108
#apt-get install libnss-ldap
Adresse du serveur LDAP 192.168.4.108
Annuaire dc=fstt,dc=lan
Version du protocole LDAP 3
Authentification nécessaire à la base Non
Lisible et modifiable uniquement par propriétaire Non
#apt-get install libpam-ldap
Création d’une BD locale pour l’admin Oui
Authentification nécessaire à la base Non
Compte privilégié de l’annuaire cn=admin,dc=fstt,dc=lan
Password 123456
Chiffrement des password chiffré
CONFIGURER NSS
Dans ce fichier de configuration, on modifie les méthodes d’authentification. Par défauts, on a compat c’est-à-dire
les fichiers d’authentification classique sous Linux (/etc/passwd, /etc/shadow …).
MODIFIER LA PILE DE L’AUTHENTIFICATION
La configuration minimal nécessite la modification d’au moins deux fichiers :
COMMON-AUTH
COMMON-ACCOUNT
REDEMARRER LE SERVEUR LDAP
Avant de faire le test, on va créer un compte LDAP dans le serveur : Ali
TEST DU CLIENT
#cd /etc/nsswitch.conf
passwd: ldap compat
group: ldap compat
shadow: ldap compat
#cd /etc/pam.d/common-auth
auth sufficient pam_ldap.so
auth sufficient pam_unix.so nullok_secure use_first_pass
auth required pam_deny.so
#cd /etc/pam.d/common-account
account sufficient pam_ldap.so
account sufficient pam_unix.so use_first_pass
#/etc/init.d/slapd restart
dn: uid=ali,ou=users,dc=fstt,dc=lan
cn: ali
description: ali
gecos: ali
gidNumber: 2000
homeDirectory: /home/ali
loginShell: /bin/bash
objectClass: account
objectClass: posixAccount
objectClass: top
uid: ali
uidNumber: 10001
#login
Ali
pwd

Contenu connexe

Tendances

Tp n 4 linux
Tp n 4 linuxTp n 4 linux
Tp n 4 linux
Amir Souissi
 
Cours 70 410-1
Cours 70 410-1Cours 70 410-1
Cours 70 410-1
Mohamed Diallo
 
Tp n 6 linux
Tp n 6 linuxTp n 6 linux
Tp n 6 linux
Amir Souissi
 
TP GLPI
TP GLPITP GLPI
TP GLPI
mickaelday
 
Chp1 - Introduction aux méthodologies de Conception
Chp1 - Introduction aux méthodologies de ConceptionChp1 - Introduction aux méthodologies de Conception
Chp1 - Introduction aux méthodologies de Conception
Lilia Sfaxi
 
Windows server 2012 r2
Windows server 2012 r2Windows server 2012 r2
Windows server 2012 r2
Ousmane BADJI
 
Tp n 5 linux
Tp n 5 linuxTp n 5 linux
Tp n 5 linux
Amir Souissi
 
Cours Base de données relationnelles
Cours Base de données relationnellesCours Base de données relationnelles
Cours Base de données relationnelles
Aymen Kasmi
 
QCM Sécurité Informatique
QCM Sécurité InformatiqueQCM Sécurité Informatique
QCM Sécurité Informatique
Zakariyaa AIT ELMOUDEN
 
cours DHCP IPv4 et IPv6
cours DHCP IPv4 et IPv6cours DHCP IPv4 et IPv6
cours DHCP IPv4 et IPv6
EL AMRI El Hassan
 
Qcm serveur 2003 souhaib el
Qcm serveur 2003 souhaib elQcm serveur 2003 souhaib el
Qcm serveur 2003 souhaib el
Souhaib El
 
Presentation de gestionnaire de bibliothèque
Presentation de gestionnaire de bibliothèquePresentation de gestionnaire de bibliothèque
Presentation de gestionnaire de bibliothèque
Daoues Amine
 
Mise en place de deux réseaux LAN interconnectés par un réseau WAN
Mise en place de deux réseaux LAN interconnectés par un réseau WANMise en place de deux réseaux LAN interconnectés par un réseau WAN
Mise en place de deux réseaux LAN interconnectés par un réseau WAN
Ghassen Chaieb
 
Active directory Intégration machine
Active directory Intégration machine Active directory Intégration machine
Active directory Intégration machine
Yaya N'Tyeni Sanogo
 
Methodes d'accès dans les réseaux locaux
Methodes d'accès dans les réseaux locauxMethodes d'accès dans les réseaux locaux
Methodes d'accès dans les réseaux locaux
Ines Kechiche
 
TD_complet_reseau__CISCO__Packet Tracer.pdf
TD_complet_reseau__CISCO__Packet Tracer.pdfTD_complet_reseau__CISCO__Packet Tracer.pdf
TD_complet_reseau__CISCO__Packet Tracer.pdf
Ines Ben Hassine
 
Formation Linux - Initiation
Formation Linux - InitiationFormation Linux - Initiation
Formation Linux - Initiation
robertpluss
 

Tendances (20)

Tp n 4 linux
Tp n 4 linuxTp n 4 linux
Tp n 4 linux
 
Cours 70 410-1
Cours 70 410-1Cours 70 410-1
Cours 70 410-1
 
Tp n 6 linux
Tp n 6 linuxTp n 6 linux
Tp n 6 linux
 
Rapport projet
Rapport projetRapport projet
Rapport projet
 
Dhcp
DhcpDhcp
Dhcp
 
TP GLPI
TP GLPITP GLPI
TP GLPI
 
Chp1 - Introduction aux méthodologies de Conception
Chp1 - Introduction aux méthodologies de ConceptionChp1 - Introduction aux méthodologies de Conception
Chp1 - Introduction aux méthodologies de Conception
 
Windows server 2012 r2
Windows server 2012 r2Windows server 2012 r2
Windows server 2012 r2
 
Tp n 5 linux
Tp n 5 linuxTp n 5 linux
Tp n 5 linux
 
Cours Base de données relationnelles
Cours Base de données relationnellesCours Base de données relationnelles
Cours Base de données relationnelles
 
QCM Sécurité Informatique
QCM Sécurité InformatiqueQCM Sécurité Informatique
QCM Sécurité Informatique
 
cours DHCP IPv4 et IPv6
cours DHCP IPv4 et IPv6cours DHCP IPv4 et IPv6
cours DHCP IPv4 et IPv6
 
Qcm serveur 2003 souhaib el
Qcm serveur 2003 souhaib elQcm serveur 2003 souhaib el
Qcm serveur 2003 souhaib el
 
Presentation de gestionnaire de bibliothèque
Presentation de gestionnaire de bibliothèquePresentation de gestionnaire de bibliothèque
Presentation de gestionnaire de bibliothèque
 
Mise en place de deux réseaux LAN interconnectés par un réseau WAN
Mise en place de deux réseaux LAN interconnectés par un réseau WANMise en place de deux réseaux LAN interconnectés par un réseau WAN
Mise en place de deux réseaux LAN interconnectés par un réseau WAN
 
Active directory Intégration machine
Active directory Intégration machine Active directory Intégration machine
Active directory Intégration machine
 
Methodes d'accès dans les réseaux locaux
Methodes d'accès dans les réseaux locauxMethodes d'accès dans les réseaux locaux
Methodes d'accès dans les réseaux locaux
 
TD_complet_reseau__CISCO__Packet Tracer.pdf
TD_complet_reseau__CISCO__Packet Tracer.pdfTD_complet_reseau__CISCO__Packet Tracer.pdf
TD_complet_reseau__CISCO__Packet Tracer.pdf
 
Résumé vlsm et cidr
Résumé vlsm et cidrRésumé vlsm et cidr
Résumé vlsm et cidr
 
Formation Linux - Initiation
Formation Linux - InitiationFormation Linux - Initiation
Formation Linux - Initiation
 

Similaire à Notes de cours et tp - Administation Systèmes

Cours Linux , bases de l'administration linux
Cours Linux , bases de l'administration linuxCours Linux , bases de l'administration linux
Cours Linux , bases de l'administration linux
AdiliKarim
 
Cours_Linux_S1_Partie 2.pptx
Cours_Linux_S1_Partie 2.pptxCours_Linux_S1_Partie 2.pptx
Cours_Linux_S1_Partie 2.pptx
Khalil BOUKRI
 
Notions sur le commandes linux
Notions sur le commandes linux Notions sur le commandes linux
Notions sur le commandes linux
ImnaTech
 
L’ Administration des Réseaux en Pratique
L’ Administration des Réseaux en PratiqueL’ Administration des Réseaux en Pratique
L’ Administration des Réseaux en Pratique
Amadou Dia
 
s de base
s de bases de base
s de base
alimesbahi3
 
les Commandes linux/Unix (giants networks)
les Commandes linux/Unix (giants networks)les Commandes linux/Unix (giants networks)
les Commandes linux/Unix (giants networks)
Souhaib El
 
Hdfs
HdfsHdfs
Manip fichier
Manip fichierManip fichier
Manip fichier
Imane Bellali
 
Chapitre 2 Linux
Chapitre 2 LinuxChapitre 2 Linux
Configuration dns
Configuration dnsConfiguration dns
Configuration dns
Dimitri LEMBOKOLO
 
Linux_Cours.ppt
Linux_Cours.pptLinux_Cours.ppt
Linux_Cours.ppt
dallelkhezzaneint
 
Commandes usuelle linux
Commandes usuelle   linuxCommandes usuelle   linux
Commandes usuelle linux
Fabrice Sonzahi
 
system de gestion Nfs (Network File System)
system de gestion Nfs (Network File System)system de gestion Nfs (Network File System)
system de gestion Nfs (Network File System)
ninanoursan
 
ATELIER SYSTEME (1) FERCHICHI ABDELWAHEB
ATELIER SYSTEME (1) FERCHICHI ABDELWAHEBATELIER SYSTEME (1) FERCHICHI ABDELWAHEB
ATELIER SYSTEME (1) FERCHICHI ABDELWAHEB
Ferjani Bassem
 
Cmd dos sous windows
Cmd dos sous windowsCmd dos sous windows
Cmd dos sous windowsSelman Dridi
 
Ch1 p1
Ch1 p1Ch1 p1
Ch1 p1
nihad Rahabi
 
AGR2_slides AGR2_slides AGR2_slides AGR2_slides.pdf
AGR2_slides AGR2_slides AGR2_slides AGR2_slides.pdfAGR2_slides AGR2_slides AGR2_slides AGR2_slides.pdf
AGR2_slides AGR2_slides AGR2_slides AGR2_slides.pdf
AbdellahELMAMOUN
 
380768495-admin-linux-Sauvegarde-et-restauration-cours-4-1-ppt.ppt
380768495-admin-linux-Sauvegarde-et-restauration-cours-4-1-ppt.ppt380768495-admin-linux-Sauvegarde-et-restauration-cours-4-1-ppt.ppt
380768495-admin-linux-Sauvegarde-et-restauration-cours-4-1-ppt.ppt
hidaeli2001
 
Administration reseau linux
Administration reseau linuxAdministration reseau linux
Administration reseau linuxRiadh Briki
 

Similaire à Notes de cours et tp - Administation Systèmes (20)

Cours Linux , bases de l'administration linux
Cours Linux , bases de l'administration linuxCours Linux , bases de l'administration linux
Cours Linux , bases de l'administration linux
 
Cours_Linux_S1_Partie 2.pptx
Cours_Linux_S1_Partie 2.pptxCours_Linux_S1_Partie 2.pptx
Cours_Linux_S1_Partie 2.pptx
 
Routage protocole
Routage protocoleRoutage protocole
Routage protocole
 
Notions sur le commandes linux
Notions sur le commandes linux Notions sur le commandes linux
Notions sur le commandes linux
 
L’ Administration des Réseaux en Pratique
L’ Administration des Réseaux en PratiqueL’ Administration des Réseaux en Pratique
L’ Administration des Réseaux en Pratique
 
s de base
s de bases de base
s de base
 
les Commandes linux/Unix (giants networks)
les Commandes linux/Unix (giants networks)les Commandes linux/Unix (giants networks)
les Commandes linux/Unix (giants networks)
 
Hdfs
HdfsHdfs
Hdfs
 
Manip fichier
Manip fichierManip fichier
Manip fichier
 
Chapitre 2 Linux
Chapitre 2 LinuxChapitre 2 Linux
Chapitre 2 Linux
 
Configuration dns
Configuration dnsConfiguration dns
Configuration dns
 
Linux_Cours.ppt
Linux_Cours.pptLinux_Cours.ppt
Linux_Cours.ppt
 
Commandes usuelle linux
Commandes usuelle   linuxCommandes usuelle   linux
Commandes usuelle linux
 
system de gestion Nfs (Network File System)
system de gestion Nfs (Network File System)system de gestion Nfs (Network File System)
system de gestion Nfs (Network File System)
 
ATELIER SYSTEME (1) FERCHICHI ABDELWAHEB
ATELIER SYSTEME (1) FERCHICHI ABDELWAHEBATELIER SYSTEME (1) FERCHICHI ABDELWAHEB
ATELIER SYSTEME (1) FERCHICHI ABDELWAHEB
 
Cmd dos sous windows
Cmd dos sous windowsCmd dos sous windows
Cmd dos sous windows
 
Ch1 p1
Ch1 p1Ch1 p1
Ch1 p1
 
AGR2_slides AGR2_slides AGR2_slides AGR2_slides.pdf
AGR2_slides AGR2_slides AGR2_slides AGR2_slides.pdfAGR2_slides AGR2_slides AGR2_slides AGR2_slides.pdf
AGR2_slides AGR2_slides AGR2_slides AGR2_slides.pdf
 
380768495-admin-linux-Sauvegarde-et-restauration-cours-4-1-ppt.ppt
380768495-admin-linux-Sauvegarde-et-restauration-cours-4-1-ppt.ppt380768495-admin-linux-Sauvegarde-et-restauration-cours-4-1-ppt.ppt
380768495-admin-linux-Sauvegarde-et-restauration-cours-4-1-ppt.ppt
 
Administration reseau linux
Administration reseau linuxAdministration reseau linux
Administration reseau linux
 

Notes de cours et tp - Administation Systèmes

  • 1. I K R A M B E N A B D E L O U A H A B Introduction Systèmes de fichiers (Rappel) Types de fichiers sous Unix (Rappel) Les droits d'accès classiques (Rappel) Les droits d'accès spéciaux (Rappel) Gestion des droits d'accès (Rappel) Création manuelle d'un compte Unix (Rappel) TP 1: DNS TP 2: Apache TP 3: OpenVPN et SSL TP 4: Configuration de l'annuaire LDAP TP 5: Authentification avec LDAP par un client Ubuntu Cours: TP Administration des services Unix A d m i n i s t r a t i o n S y s t èm e N O T E S D E C O U R S E T T P
  • 2. Introduction GNU/Linux ou Linux est un système d'exploitation associant des éléments essentiels du projet GNU et le noyau Linux. Fondé en 1984 par Richard Stallman, le système d'exploitation GNU resta jusqu'en 1991 au stade expérimental car son noyau Hurd était toujours en développement. Cependant, Linus Torvalds créa indépendamment le noyau Linux qui résolut le problème en remplaçant Hurd. Néanmoins, cette mise en relation des deux projets engendra une controverse toujours d'actualité autour du nom du système associant les deux éléments, certains, dont le grand public, appelant le système simplement Linux, et d'autres, dont Richard Stallman, défendant le nom combiné GNU/Linux. Rappel : Systèmes de fichiers Il existe 3 systèmes de fichiers : NTFS, FAT32, EXT4.  NTFS : Utiliser sous Windows  FAT32 : Utiliser sous Linux et Windows Caractéristiques du FAT32 :  Un fichier ne peut pas dépasser 4Go (Lecture lourde)  Le système n’est pas journalier c’est-à-dire, il ne sauvegarde pas les éléments de l’historique (les fichiers .log)  Le système de fichiers ne supporte pas le chiffrement (moins sécurisé) Définition d’un système de fichiers : Un système de fichiers est la méthode utilisée pour stocker de l’information sur un disque dur. UNIX Linux (1991) BSD MAC OS Windows
  • 3. Pour stocker l’information, on utilise :  Physiquement : un disque dur.  Logiquement :  Windows : Forêt  Linux : Arbre
  • 4. Rappel : Types de fichiers sous Unix Sous Microsoft Windows, on distingue deux catégories de fichiers : 1. les fichiers réguliers, qui stockent des informations, 2. les répertoires, appelés aussi dossiers, qui regroupent un ensemble de fichiers (fichiers réguliers ou dossiers) Sur un système UNIX, la notion de fichiers est plus générale et ne se limite pas à ces deux types de fichiers. Rappel : Les droits d’accès Classiques
  • 5. Rappel : Les droits d’accès spéciaux Les setuid, setgid et sticky bit sont des droits dits spéciaux, ils s’ajoutent aux droits classiques (lecture, écriture et exécution) et fonctionnent différemment suivant qu’on les applique sur un fichier ou un répertoire. Le Sticky bit Le Sticky bit est un droit spécial dont le comportement est différent pour les fichiers exécutables et les répertoires. Il correspond à la lettre t ou numériquement à 1000. Si les droits d'exécution ne sont pas positionnés c'est la lettre T qui correspond.  les fichiers exécutables - le programme restera en mémoire pour une exécution ultérieure  les répertoires - si le sticky bit est positionné sur un répertoire, seul le propriétaire pourra supprimer ses fichiers (c'est le cas des répertoires /tmp et /var/tmp sous GNU/Linux) Les droits d'endossement SetUID et SetGID Les droits d'endossement dans GNU/Linux sont représentés par :  la lettre s (si le droit x est positionné)  la lettre S (si le droit x n'est pas positionné) Le comportement des droits d'endossement.  Pour les fichiers programme ou exécutable o SUID = 4000 - le processus a les droits du propriétaire du programme exécuté o SGID = 2000 - le processus a les droits du groupe du programme exécuté  Pour les répertoires o SGID = 2000 - les fichiers qui se trouvent dans le répertoire appartiennent au groupe du répertoire Les droits d'endossement sont très importants pour la sécurité. Au lieu de donner l'accès à un fichier, on donne le droit d'accès à une commande. Le kernel (ou noyau), au moment de l'exécution de la commande endosse l'identité du propriétaire ou du groupe de la commande au lieu de celle de l'utilisateur qui a lancé la commande. Donc l'accès au fichier se fait par le biais de la commande et non pas directement.
  • 6. Rappel : Gestion des droits d’accès Chmod La commande chmod (CHangeMODe) permet de définir et de changer les droits d'accès d'un fichier ou un ensemble de fichiers. Parmi les options de la commande chmod on cite ces deux :  v pour verbose (affichage sur la sortie standard STDOUT du résultat de la commande)  R traiter les répertoires de façon récursive (application de la commande à l'arborescence entière du répertoire en question) Il y a deux modes d'utilisation de la commande chmod :  de façon littérale  de façon numérique chmod utilise la notation suivante :  u - pour le propriétaire (user)  g - pour le groupe (group)  - pour les autres (other)  a - pour tous (all) Une autre notation sera utilisée pour attribuer et/ou retirer des droits.  + (plus) pour attribuer  - (moins) pour retirer  = (égale) pour fixer l'accès exact Umask La commande umask permet de définir les droits par défaut d'un fichier ou répertoire à sa création. Autrement dit elle indique les droits qu'il faut retirer lors de leur création. $ umask 0022 fichier Chown Pour changer le propriétaire d'un fichier il faut utiliser la commande : chown usager fichier Usermod Cette commande permet de modifier un user $ usermod –G group0 user3  -g : Changer le groupe propriétaire  -G : Ajouter l’utilisateur à un autre groupe Useradd Cette commande permet la création d’un nouveau compte utilisateur. On peut préciser le groupe lors de la création du compte utilisateur (sans créer le groupe par défauts) : $ useradd –gid 5000 user5
  • 7. Rappel : Création manuelle d’un Compte Unix Les fichiers à modifier :  /etc/passwd  /etc/group  /etc/shadow  /home 1. Editer le fichier : /etc/passwd 2. Editer le fichier : /etc/group 3. Editer le fichier : /etc/shadow 4. Création du répertoire personnel : /home/newUser #mkdir /home/newUser #chown newUser:newUser /home/newUser 5. /etc/skel Le repertoire /etc/skel contient le profil par défauts càd les fichiers nécessaires au démarrage de la session. On doit copier le contenu du profil par défauts à partir de /etc/skel vers le répertoire personnel du nouveau utilisateur. N’oublier de modifier le propriétaire et le groupe du répertoire créer et son contenu.
  • 9. Configuration d’un serveur DNS sous Debian, connecté à deux clients  Client 1 : Ubuntu ou Debian  Client 2 : Windows Configuration du Serveur DNS DNS : signifie soit Domain Name System ou Domain Name Server La mise en place d'un serveur DNS sur un réseau permet de remplacer les adresses IP des machines par un nom. Ainsi, il est même possible d'associer plusieurs noms à la même machine pour mettre en évidence les différents services possibles. 1) Installer bind9 #apt-get install bind9 Les Ressources Records (RR) Un DNS est constitué de plusieurs enregistrements, les RR ou Ressources Records, définissant les diverses informations relatives au domaine.  Le premier enregistrement est consacré à la résolution de noms, dans notre cas, il s'agit du fichier db.sir.lan.  Le second sera quant à lui en rapport avec la résolution de noms inverses ; il s'agit du fichier db.sir.lan.inv. 2) Créer le fichier : /etc/bind/db.sir.lan #nano /etc/bind/db.sir.lan 3) Créer le fichier : /etc/bind/db.sir.lan.inv #nano /etc/bind/db.sir.lan.inv $TTL 604800 @ IN SOA server1.sir.lan. root.sir.lan. ( 201704151 ;Serial 604800 ;Refresh 86400 ;Retry 2414200 ;Expire 604800 ;Negative Cache TTL ) @ IN NS server1.sir.lan. server1 IN A 192.168.1.1 client1 IN A 192.168.1.20 client2 IN A 192.168.1.21 $TTL 604800 @ IN SOA server1.sir.lan. root.sir.lan. ( 201704151 ;Serial 604800 ;Refresh 86400 ;Retry 2414200 ;Expire 604800 ;Negative Cache TTL ) @ IN NS server1. 1 IN PTR server1.sir.lan. 20 IN PTR client1.sir.lan. 21 IN PTR client2.sir.lan.
  • 10. Quelques explications  $TTL : (Time To Live) exprime la durée (en secondes) de validité, par défaut, des informations que contiennent les RRs. Une fois ce délai expiré, il est nécessaire de vérifier à nouveau les données. Les différents types :  SOA : permet de définir les informations relatives à la zone. En l'occurrence le nom du serveur DNS primaire "server1.sir.lan." et l'adresse mail du contact technique.Il est compose de plusieurs champs :  Serial : est un entier non signé 32 bits. C'est le numéro de série à incrémenter à chaque modification du fichier. Il permet au serveur secondaire de recharger les informations qu'ils ont. L'usage général vient à le formater de cette manière YYYYMMDDXX, soit pour la première modification du 01/04/2007 -> 2007040101, pour la seconde 2007040102.  Refresh : définit la période de rafraîchissement des données.  Retry : si une erreur survient au cours du dernier rafraîchissement, celle-ci sera répétée au bout du délai Retry.  Expire : le serveur sera considéré comme non disponible au bout du délai Expire.  Negative cache TTL : définit la durée de vie d'une réponse NXDOMAIN de notre part.  NS : renseigne le nom des serveurs de noms pour le domaine.  A : associe une nom d'hôte à une adresse ipv4 (32 bits)  AAAA : associe une nom d'hôte à une adresse ipv6 (128 bits)  PTR : c'est simplement la résolution inverse (le contraire du type A).  Les classes : IN détermine l'association a la classe Internet. 4) Modifier le fichier : /etc/bind/named.conf.local Ce fichier contient la configuration locale du serveur DNS, on y déclare les zones associées au domaine. Ainsi on Informe le serveur DNS des fichiers de configuration. 5) Modifier le fichier : /etc/bind/named.conf.options Ce fichier contient l'ensemble des options de configuration du serveur DNS. Ici on fait la déclaration des serveurs externes par ordre. #nano /etc/bind/named.conf.local zone ″sir.lan″{ type master ; file ″/etc/bind/db.sir.lan″ ; forwarders {} ; } ; zone ″1.168.192.in-addr.arpa″{ type master ; file ″/etc/bind/db.sir.lan.inv″ ; forwarders {} ; } ; #nano /etc/bind/named.conf.options . . . forwarders{ 8.8.8.8 ; 212.217.0.1 ; } ; . . .
  • 11. 6) Modifier le fichier : /etc/hosts #nano /etc/hosts 7) Modifier le fichier : /etc/resolv.conf #nano /etc/resolv.conf 8) Démarrer le service DNS #/etc/init.d/bind9 restart Les outils de tests  La commande dig : Elle permet d'interroger directement le serveur DNS de son choix et d'obtenir de nombreuses informations, en plus de la résolution de noms et la résolution inverse.  La commande nslookup : Elle est moins performante mais reste utile.  named-checkconf : Elle permet de vérifier la syntaxe des fichers de configuration de Bind9.  named-checkzone : Elle permet de vérifier la validité des fichiers de zones avant de recharger la configuration. 9) Tests de configuration #cd /etc/bind #named-checkzone sir.lan db.sir.lan #named-checkzone sir.lan.inv db.sir.lan.inv #named-checkconf named.conf.local #named-checkconf named.conf.options Si tout va bien, on passe aux tests de fonctionnement. 10)Tests de fonctionnement (au niveau du serveur) Test 1 : #host server1.sir.lan Résultat attendue : Adresse IP #host 192.168.1.1 Résultat attendue : Nom du domaine Test 2 : #nslookup server1.sir.lan #nslookup @ 192.168.1.1 Test 3 : #dig server1.sir.lan #dig -X @ 192.168.1.1 127.0.0.1 localhost.localdomain localhost 127.0.1.1 server1.sir.lan server1 192.168.1.1 server1.sir.lan server1 domain sir.lan search sir.lan nameservers 192.168.1.1
  • 12. Test 4 : #ping 192.168.1.1 #ping server1.sir.lan Configuration des Clients Client Linux (Ubuntu) 1) Vérifier l’adresse IP : 192.168.1.20 2) Modifier le fichier : /etc/hosts #nano /etc/hosts 3) Modifier le fichier : /etc/resolv.conf #nano /etc/resolv.conf 4) Test de fonctionnement #ping server1.sir.lan #ping client1.sir.lan Client Windows Vérifier l’adresse IP de la machine : 192.168.1.21 Modifier l’adresse du serveur DNS préféré : 192.168.1.1 On peut ajouter des suffixes DNS : sir.lan Tester avec le ping : #ping server1.sir.lan 127.0.0.1 localhost.localdomain localhost 127.0.1.1 server1.sir.lan server1 192.168.1.1 server1.sir.lan server1 search sir.lan nameservers 192.168.1.1
  • 14. Création d’une page personnelle avec Apache 1) Installation d’Apache Apache est un serveur http. 2) Modifier le fichier apache2.conf 3) Activer le module : userdir Le serveur HTTP Apache est un programme modulaire permettant à l'administrateur de choisir les fonctionnalités qu'il souhaite activer, au moyen de modules. Le module userdir est désactivé par défauts. Il faut ensuite redémarrer le service apache :  Après l’activation du module userdir les fichiers userdir.conf et userdir.load s’ajoutent dans le dossier /etc/apache2/mods_enabled 4) Automatisation des tâches On modifie le squelette de la création des nouveaux users. L’avantage est de ne pas avoir besoin à chaque fois de devoir créer le répertoire public_html et logs quand on crée un nouvel utilisateur, mais aussi d'avoir directement une page d'accueil. Une fois le squelette créé, on peut créer un nouvel utilisateur (toto). 5) Création d’un nouvel utilisateur  -g : pour spécifier le groupe propriétaire  -m : pour demander de créer le répertoire personnel (/home/toto) On redémarre de serveur 6) Test Normalement, si tout est bien passé, on va pouvoir accéder à http://localhost/~toto et y voir Mon Espace Personnel. #nano /etc/apache2/apache2.conf User www-data Group www-data DirectoryIndex index.html index.php index.xhtml UserDir public_html #apt-get install apache2 #cd /etc/apache2/mods_available #a2enmod userdir #/etc/init.d/apache2 restart #mkdir /etc/skel/public_html #mkdir /etc/skel/logs #echo ″<h1>Mon Espace Personnel</h1>″ > /etc/skel/public_html/index.html #useradd –g www-data –m toto #/etc/init.d/apache2 restart
  • 15. Virtual Host Le Serveur Web Apache2 est capable de gérer simultanément plusieurs arborescences Web grâce à la notion d'hôtes Virtuels (Virtual Hosts). Il y a 3 méthodes pour mettre en place plusieurs sites web dans un même serveur : 1. VirtualHosts basé sur les cartes réseaux 2. VirtualHosts basé sur le numéro de ports 3. VirtualHosts basé sur le nom de domaine 1) VirtualHosts basée sur les cartes réseaux a. Ajout de carte réseau physique Cette solution est très limitée, et n’est pas pratique. b. Ajout des cartes réseaux virtuelle  Création des cartes virtuelle D’abord, on crée deux carte réseaux virtuelles qui pointent sur la carte réseaux physique eth0. #ifconfig eth0:0 192.168.2.1 #ifconfig eth0:1 192.168.2.2  Modifier le fichier : /etc/hosts  Créer le fichier : /etc/apache2/site-available/fstt1.conf  Créer le fichier : /etc/apache2/site-available/fstt2.conf  Créer le répertoire : /var/www/html/fstt1.lan #nano /etc/hosts . . . 192.168.2.1 fstt1.lan 192.168.2.2 fstt2.lan . . . #nano /etc/apache2/site-available/fstt1.conf <VirtualHost 192.168.2.1:80> DocumentRoot /var/www/html/fstt1.lan ServerName fstt1.lan </VirtualHost> #nano /etc/apache2/site-available/fstt2.conf <VirtualHost 192.168.2.2:80> DocumentRoot /var/www/html/fstt2.lan ServerName fstt2.lan </VirtualHost> #mkdir /var/www/html/fstt1.lan #chmod -R 755 /var/www/html/fstt1.lan
  • 16.  Le contenu de la première page web #echo ″<h1>FSTT 1</h1>″ > /var/www/html/fstt1.lan/index.html  Créer le répertoire : /var/www/html/fstt2.lan #mkdir /var/www/html/fstt2.lan #chmod -R 755 /var/www/html/fstt2.lan  Le contenu de la deuxième page #echo ″<h1>FSTT 2</h1>″ > /var/www/html/fstt2.lan/index.html  Activer les sites #cd /etc/apache2/sites-available #a2ensite fstt1.conf #a2ensite fstt2.conf #etc/init.d/apache2 reload  Test : dans le navigateur fstt1.lan fstt2.lan 2) VirtualHost basée sur le numéro de port  Modifier le fichier : /etc/hosts Dans un premiers temps, nous allons éditer le fichier /etc/hosts afin de déclarer les 2 noms de domaine associés à la seule et unique adresse IP de notre interface réseau. Ceci permettra la résolution de nom (Nom ⇒ Adresse Ip).  Modifier le fichier : /etc/apache2/ports.conf Précisez au serveur Apache2 d'écouter sur plusieurs ports, en ajoutant les lignes suivantes dans le fichier /etc/apache2/ports.  Modifier le fichier : /etc/apache2/sites-available/fstt1.conf Modifier les numéros des ports dans les fichiers de configuration des deux sites. #nano /etc/hosts 192.168.4.126 fstt1.lan fstt2.lan #nano /etc/apache2/ports.conf Listen 80 Listen 81 Listen 82 #nano /etc/apache2/sites-available/fstt1.conf <VirtualHost 192.168.4.126:81> DocumentRoot /var/www/html/fstt1.lan ServerName fstt1.lan </VirtualHost>
  • 17.  Modifier le fichier : /etc/apache2/sites-available/fstt2.conf  Activer les sites : #cd /etc/apache2/sites-available #a2dissite fstt1.conf #a2dissite fstt2.conf #etc/init.d/apache2 reload #a2ensite fstt1.conf #a2ensite fstt2.conf #etc/init.d/apache2 reload  Test : fstt1.lan:81 fstt2.lan:82 3) VirtualHost basée sur le nom de domaine  Modifier le fichier : /etc/hosts Supprimer les deux ports 81 et 82 qu’on a ajoutés dans la configuration précédente. Garder seulement le ports par défauts 80.  Créer le fichier : /etc/apache2/sites-available/fstt1.conf Modifier le port des deux site web en 80. #nano /etc/apache2/sites-available/fstt1.conf  Créer le fichier conf.d #mkdir conf.d #echo ″NameVirtualHost 192.168.4.126 :80″ > /etc/apache2/conf.d/virtual- host.conf  Activer les sites #cd /etc/apache2/sites-available #a2dissite fstt1.conf #a2dissite fstt2.conf #etc/init.d/apache2 reload #a2ensite fstt1.conf #a2ensite fstt2.conf #etc/init.d/apache2 reload  Test : fstt1.lan fstt2.lan #nano /etc/apache2/sites-available/fstt2.conf <VirtualHost 192.168.4.126:82> DocumentRoot /var/www/html/fstt2.lan ServerName fstt2.lan </VirtualHost> <VirtualHost 192.168.4.126:80> DocumentRoot /var/www/html/fstt1.lan ServerName fstt1.lan </VirtualHost> #nano /etc/apache2/ports.conf Listen 80
  • 19. VPN : VIRTUAL PRIVATE NETWORK Le réseau privé virtuel est vu comme une extension des réseaux locaux et préserve la sécurité logique que l'on peut avoir à l'intérieur d'un réseau local. Il correspond en fait à une interconnexion de réseaux locaux via une technique de « tunnel ». PRINCIPE GENERAL Un réseau VPN repose sur un ou des protocoles, appelé protocoles de tunnelisation (ou tunneling). Ce sont des protocoles permettant aux données passant entre deux réseaux physiques d’être sécurisées par des algorithmes de chiffrage. Le terme de « tunnel » est utilisées pour mettre l’accent sur le fait qu’entre l’entrée et la sortie d’un VPN les données sont chiffrées et protégées. Lorsqu’un VPN est établi entre deux réseaux physiques, l’élément qui permet de chiffrer et de déchiffrer les données du coté client (ou utilisateur) est nommé « Client VPN ». On appelle « Serveur VPN » l’élément qui chiffre et qui déchiffre les données du côté du serveur. POURQUOI UTILISER VPN ? Lorsque nous utilisons un VPN, nous rendons notre connexion Internet privée, anonyme, protégée et celui-ci cache notre adresse IP sur Internet. Un autre intérêt est le faible coût de l’accès à Internet, que ce soit à haut débit ou via une ligne téléphonique. C’est pour cela que les VPN sont de plus en plus répandus au sein des entreprises. LES PRINCIPAUX PROTOCOLES DE TUNNELING  L2F(Layer Two Forwarding) qui est un protocole de niveau 2 (obsolète).  PPTP (Point-to-Point Tunneling Protocol) qui est aussi un protocole de niveau 2.  L2TP (Layer Two Tunneling Protocol), protocole de niveau 2 s’appuyant sur PPP, et qui fait converger les fonctionnalités de PPTP et L2F.  IPSec, un protocole de niveau 3. Il permet de transporter des données chiffrées pour les réseaux IP.  SSL (Secure Sockets Layer), quant à lui, offre une très bonne solution de tunnelisation. L'avantage de cette solution est de permettre l'utilisation d'un navigateur Web comme client VPN : on peut accéder à ce type de VPN avec un navigateur web via «https». Dans les faits, il permet aux utilisateurs de mettre en place une connexion sécurisée au réseau depuis n’importe quel navigateur Web. LOGICIEL VPN Dans ce TP on va utiliser la solution VPN libre et gratuite la plus utilisée, OpenVPN. Et OpenSSL pour la sécurisation des données. On aura besoin aussi de openssh-server pour l’échange des clés.
  • 20. INSTALLATION ET CONFIGURATION DE VPN COTE SERVEUR INSTALLATION D’OPENVPN GENERATION DES CERTIFICATS ET DES CLES D’AUTHENTIFICATION L'installation d'OpenVPN crée un dossier dans /usr/share/easy-rsa/ contenant tous les scripts permettant de générer facilement tous les certificats et clés d'authentification nécessaire au fonctionnement d'OpenVPN. Avant toute chose, copier les scripts originaux dans /etc/openvpn afin de centraliser applications et scripts : INITIALISATION DES VARIABLES DE GENERATION A partir du dossier /etc/openvpn/easy-rsa/, il faut dans un premier temps éditer le fichier vars afin d'initialiser différentes variables servant à la génération des certificats : On entre les informations personnelles comme suit : Enfin, on exécute le script afin d'initialiser les variables : On remarque la création du répertoire keys et d’autres. GENERATION DU CERTIFICAT ET DE LA CLE D'AUTORITE DE CERTIFICATION L'exécution du script build-ca entraîne la création du certificat ca.crt et de la clé ca.key dans le répertoire /etc/openvpn/easy-rsa/keys. #apt-get install openvpn #apt-get install openssl #apt-get install openssh-server #cp /usr/share/easy-rsa /etc/openvpn -R #cd /etc/openvpn/easy-rsa #ls  build-ca #cd /etc/openvpn/easy-rsa #nano vars Export KEY_COUNTRY=”MA” Export KEY_PROVINCE=”MA” Export KEY_CITY=”Tanger” Export KEY_ORG=”FSTT” #. ./vars #./clean-all #./build-ca Common Name : server #cd keys #ls
  • 21. GENERATION DU CERTIFICAT ET DE CLE POUR LE SERVEUR La génération du certificat et de la clé du serveur VPN se fait simplement, par l'exécution du script build-key-server, toujours à partir du dossier /etc/openvpn/easy-rsa : Différentes informations sont demandées pendant l'exécution de ce script, comme le mot de passe. Ce script conduit à la création des fichiers server.crt et server.key dans le dossier /etc/openvpn/easy-rsa/keys. GENERATION DU CERTIFICATS ET DE CLES POUR LES CLIENTS On fait la même démarche pour les clients existant. Dans notre TP, on a deux clients on peut faire la configuration manuel. Si on a un grand nombre de clients, on doit écrire un script qui permet de générer tous ces certificats. Ce script entraine la création des fichiers client1.crt et client1.key dans le dossier /etc/opnevpn/easy-rsa/keys. CREATION DES PARAMETRES DE DIFFIE-HELLMAN Le protocole Diffie-Hellman est un protocole de cryptographie utilisé dans les échanges de clés. Les paramètres de Diffie-Hellman sont générés par l'exécution du script build-dh à partir du dossier /etc/openvpn/easy-rsa : Il en résulte la création du fichier dh2048.pem dans le dossier /etc/openvpn/easy-rsa/keys. DEPLACER LES CERTIFICATS ET CLES DU SERVEUR CONFIGURATION La création des clés et certificats d'authentification est terminés. Nous allons passer à la configuration du serveur et des clients. Des exemples de fichiers de configuration sont présents dans le dossier /usr/share/doc/openvpn/examples/sample- config-files/. On décompresse le fichier server.conf.gz. Puis on place les différents fichiers de configuration nécessaires dans /etc/openvpn/ : La mise en route du serveur entraine l'attribution automatique d'une adresse IP à l'interface tun0 du serveur. #./build-key-server server #./build-key client1 #./build-dh #cd /etc/openvpn/easy-rsa/keys #cp ca.crt ca.key client1.crt client1.key dh2048.pem /etc/openvpn #cd /usr/share/doc/openvpn/examples/sample-config-files/ #gunzip server.conf.gz #cp server.conf /etc/openvpn/
  • 22. On va vérifier les paramètres au fichier /etc/openvpn/server.conf : Pour démarrer le serveur, la commande est : CONFIGURATION VPN COTE CLIENT Le client Linux nécessite la même installation que le serveur : Pour permettre le transfert du certificat et clé du client, il faut d’abord autoriser ssh au niveau du serveur : Transfert du certificat et clé par ssh : On vérifie maintenant le contenu du fichier client.conf permettant de se connecter au serveur défini précédemment. port 1194 … ;proto tcp proto udp … ;dev tap dev tun … ca ca.crt cert server.crt key server.key … dh dh2048.pem … verb 3 #/etc/init.d/openvpn start #openvpn server.conf #apt-get install openvpn #nano /etc/ssh/sshd-config permitRootLogin Yes #/etc/init.d/ssh restart #cd /etc/openvpn #scp root@192.168.4.126:/etc/openvpn/easy-rsa/keys/client1.crt . #scp root@192.168.4.126:/etc/openvpn/easy-rsa/keys/client1.key . #scp root@192.168.4.126:/etc/openvpn/easy-rsa/keys/ca.crt . #openvpn client.conf #ping 10.8.0.1
  • 24. INTRODUCTION LDAP, Lightweight Directory Access Protocol, est un protocole standard permettant de gérer des annuaires, c'est-à- dire d'accéder à des bases d'informations sur les utilisateurs d'un réseau par l'intermédiaire de protocoles TCP/IP. Le protocole LDAP définit la méthode d'accès aux données sur le serveur au niveau du client, et non la manière de laquelle les informations sont stockées. D'autre part le protocole LDAP (dans sa 3ème version) propose des mécanismes de chiffrement (SSL, ...) et d'authentification (SASL) permettant de sécuriser l'accès aux informations stockées dans la base. PRESENTATION DE L’ANNUAIRE LDAP LDAP présente les informations sous forme d'une arborescence d'informations hiérarchique appelée DIT (Directory Information Tree), dans laquelle les informations, appelées entrées (ou encore DSE, Directory Service Entry), sont représentées sous forme de branches. Une branche située à la racine d'une ramification est appelée racine ou suffixe (en anglais root entry). Chaque entrée est constituée d'un ensemble de paires clés/valeurs appelées attributs. CONSULTATION DES DONNEES LDAP fournit un ensemble de fonctions (procédures) pour effectuer des requêtes sur les données afin de rechercher, modifier, effacer des entrées dans les répertoires. LE FORMAT D’ECHANGE DE DONNEES LDIF LDAP fournit un format d'échange (LDIF, Lightweight Data Interchange Format) permettant d'importer et d'exporter les données d'un annuaire avec un simple fichier texte. La majorité des serveurs LDAP supportent ce format, ce qui permet une grande interopérabilité entre eux. OPENLDAP OpenLDAP est une implémentation libre du protocole LDAP développée par The OpenLDAP Project. Le projet OpenLDAP implémente un serveur LDAP, mais également les commandes clientes permettant de manipuler des informations contenues dans l’annuaire. On va utiliser le serveur LDAP afin de centraliser les informations utilisateurs des sites et services du serveur. En effet la plus par des services telles que les serveurs web, ftp, proxy peuvent s’authentifier sur un serveur LDAP. PHPLDAPADMIN C’est un outil graphique, qui permet de simplifier la tâche d’administration de l’annuaire LDAP.
  • 25. CONFIGURATION DE OPENLDAP INSTALLATION DES PAQUETS NECESSAIRES MODIFIER LE NOM DU DOMAINE REDEMARRER LE SERVICE DU SERVEUR LDAP S'il y a un problème, entrer la commande suivante afin de reconfigurer le serveur : Pour accéder à l'interface graphique de phpldapadmin, via un navigateur : localhost/phpldapadmin AJOUTER DES ENTREES Dans ce TP, on a ajouté des entrées avec trois méthodes : 1. En ligne de commande 2. Importation d’un fichier LDIF 3. Script dans l’interface graphique #apt-get install slapd ldap-utils #apt-get install apache2 php5 php5-mysql #apt-get install phpldapadmin #nano /etc/phpldapadmin/config.php ... $servers->setValue('server','name','LDAP Server FSTT); $servers->setValue('server','host','127.0.0.1'); $servers->setValue('server','base',array('dc=fstt,dc=lan')); #/etc/init.d/slapd restart #dpkg-reconfigure slapd
  • 26. TP 5: Authentification avec LDAP par un client Ubuntu
  • 27. CONFIGURATION DU CLIENT UBUNTU BACKUP Il est très important de faire des copies de backup des fichiers de configuration avant de les modifier. Garder une session Root ouverte ! INSTALLER LES OUTILS NECESSAIRES MODIFIER LA CONFIGURATION LDAP Dans l’URI, on met l’adresse IP du serveur distant. INSTALLER LE MODULE LDAP POUR NSS NSS = Name Service Switch INSTALLER LE MODULE PAM POUR LDAP PAM = Pluggable Authentification Module #cd /etc/pam.d #cp common-password common-password-B #cp common-session common-session-B #cp common-account common-account-B #cp common-auth common-auth-B #cp /etc/nsswitch.conf /etc/nsswitch.conf-B #apt-get install slapd ldap-utils #cd /etc/ldap/ldap.conf BASE dc=fstt,dc=lan URI ldap://192.168.4.108 #apt-get install libnss-ldap Adresse du serveur LDAP 192.168.4.108 Annuaire dc=fstt,dc=lan Version du protocole LDAP 3 Authentification nécessaire à la base Non Lisible et modifiable uniquement par propriétaire Non #apt-get install libpam-ldap Création d’une BD locale pour l’admin Oui Authentification nécessaire à la base Non Compte privilégié de l’annuaire cn=admin,dc=fstt,dc=lan Password 123456 Chiffrement des password chiffré
  • 28. CONFIGURER NSS Dans ce fichier de configuration, on modifie les méthodes d’authentification. Par défauts, on a compat c’est-à-dire les fichiers d’authentification classique sous Linux (/etc/passwd, /etc/shadow …). MODIFIER LA PILE DE L’AUTHENTIFICATION La configuration minimal nécessite la modification d’au moins deux fichiers : COMMON-AUTH COMMON-ACCOUNT REDEMARRER LE SERVEUR LDAP Avant de faire le test, on va créer un compte LDAP dans le serveur : Ali TEST DU CLIENT #cd /etc/nsswitch.conf passwd: ldap compat group: ldap compat shadow: ldap compat #cd /etc/pam.d/common-auth auth sufficient pam_ldap.so auth sufficient pam_unix.so nullok_secure use_first_pass auth required pam_deny.so #cd /etc/pam.d/common-account account sufficient pam_ldap.so account sufficient pam_unix.so use_first_pass #/etc/init.d/slapd restart dn: uid=ali,ou=users,dc=fstt,dc=lan cn: ali description: ali gecos: ali gidNumber: 2000 homeDirectory: /home/ali loginShell: /bin/bash objectClass: account objectClass: posixAccount objectClass: top uid: ali uidNumber: 10001 #login Ali pwd