Vous êtes sur la page 1sur 266

Administrer un

environnement Linux

1
Formateur : DRAOUI Hassan
Services de base :
paramètres réseau, routage, DHCP, Agent de
relais DHCP, DNS et gestion des processus et
services

2
Formateur : DRAOUI Hassan
INTRODUCTION

Formateur DRAOUI Hassan 3


I-Définitions
• Service informatique : Est un programme en
cours d’exécution (processus) qui fournit une
fonctionnalité au système d’exploitation.
• Service réseau : Est un service informatique
qui fournit une fonctionnalité aux clients à
travers un réseau (=serveur logique).
• Serveur physique : Est un ordinateur qui
héberge un service réseau.

Formateur DRAOUI Hassan 4


Comparaison entre un client et un serveur
• Software : Système d’exploitation serveur : Est
un système d’exploitation qui est optimisé pour
répondre efficacement aux requêtes des clients
par réseau.
• Hardware :
– Les mêmes composants (CPU,RAM,HDD..)
avec des performances élevées et du matériel
plus robuste
– Autres composants : système RAID, Onduleur

Formateur DRAOUI Hassan 5
Architecture de virtualisation :

Hyperviseur sur OS

Hyperviseur en tant que OS

Formateur DRAOUI Hassan 6


II-Utilisation de la virtualisation (Vmware)
1- Installation d’un OS sous Vmware :
• Choix de la configuration matérielle : RAM,DD, …
• Choix du support d’installation :
– Image de l’OS de type ISO
– Utilisation du CD-ROM physique
• Installation de l’outil Vmware-tools :
– Permet le partage de fichiers entre la MV et la machine réelle
– Installation des pilotes …..
• Création de snapshot :
– pour l’enregistrement (sauvegarde) d’une VM dans un état donné
– On peut utiliser plusieurs snapshots pour la même VM
• Sauvegarde d’une copie de la VM :
– Pour l’utiliser comme une VM à tout moment sans recourir à une
nouvelle installation
– L’opération de sauvegarde doit se faire lorsque la VM est arrêtée
2- Démonstrations : Formateur DRAOUI Hassan 7
CHAPITRE I:
Configuration réseau manuelle

Formateur DRAOUI Hassan 8


I-Configuration réseau manuelle
1- Attribution d’une adresse réseau sous CentOS:
Méthode 1 : graphiquement

Méthode 2 : Par la commande ifconfig

#ifconfig ethX 192.168.1.1/24 up


ou
#ifconfig ethX 192.168.1.1 netmask 255.255.255.0 up

NB : ethX est le nom de la carte réseau obtenu en tapant la commande :


« $ifconfig -a »

Formateur DRAOUI Hassan 9


Méthode 3 (recommandée) : Par un fichier de configuration :

 Créer ou modifier le fichier comme suit :


#vim /etc/sysconfig/network-scripts/ifcfg-ethX

|----- i -------------------------------------
| DEVICE=ethX
| IPADDR=192.168.1.1
| NETMASK=255.255.255.0
| ESC  :wq ------------------------

 Redémarrer le service réseau :


#service network restart
et/ou
#service NetworkManager restart

Formateur DRAOUI Hassan 10


Application 1 : Réalisation d’une maquette simple sous Vmware:

1) Préparer deux VM CentOS


2) Connecter les deux VM au commutateur virtuelle VMnet2
3) Donner les adresse IP selon la maquette
4) Tester la connectivité entre les VMs en utilisant l’outil PING

Formateur DRAOUI Hassan 11


2- Changer le nom d’une machine sous CentOS:
• Méthode 1: par commande
– #hostname nouveau_nom
• Méthode 2: par fichier
– modifier le fichier suivant comme suit :
#vim /etc/sysconfig/network
| HOSTNAME=nouveau_nom
– Redémarrer le service NetworkManager :
#service NetworkManager restart

NB : Le nouveau nom n’apparaitra qu’à l’ouverture d’un nouveau


terminal

Formateur DRAOUI Hassan 12


3- Configurer les paramètres du client DNS et test du serveur DNS:
A- Configuration des paramètres du client DNS
• Méthode 1:
#vim /etc/resolv.conf
| nameserver 192.168.1.100
| nameserver 8.8.8.8
| domain tri.isgi
| search tri.isgi
• Méthode 2:
– Créer ou modifier le fichier comme suit :
#vim /etc/sysconfig/network-scripts/ifcfg-ethX
| DNS1=192.168.1.100
| DNS2=8.8.8.8
| DOMAIN=tri.isgi
– Redémarrer le service réseau : 13
Formateur DRAOUI Hassan
B- Test à partir du client DNS vers le serveur DNS :
- Si le fichier /etc/resolv.conf est bien configuré
• nslookup www.google.com
• dig www.google.com
• host www.google.com

- Sinon (Si le fichier /etc/resolv.conf n’est pas bien configuré) :


• nslookup www.google.com [ adresse_serveur_DNS ]
 nslookup www.google.com 8.8.8.8

Formateur DRAOUI Hassan 14


4- Configuration de la passerelle sous CentOS:
• Méthode 1 : graphiquement
• Méthode 2 : Par la commande route
– #route add default gw 192.168.1.254
• Méthode 3 : Par le fichier de configuration du réseau global
– Modifier le fichier comme suit :
#vim /etc/sysconfig/network
| GATEWAY=192.168.1.254
– Redémarrer le service réseau
• Méthode 4: Par un fichier de configuration d’une carte réseau :
– Créer ou modifier le fichier comme suit :
#vim /etc/sysconfig/network-scripts/ifcfg-ethX
| GATEWAY=192.168.1.254
– Redémarrer le service réseau
Formateur DRAOUI Hassan 15
5- Procédure d’enregistrement du travail sous CentOS:
• Utilisation du commande script :
– $su
– #script nom_de_script_à_enregistrer
– ……..
– #exit (ou Ctl+D)
• Copie des fichiers de configuration :
#cp chemin_du_fichier chemin_de_destination

Exemples :
#cp nom_de_script_à_enregistrer /home/hassan/Bureau
#cp /etc/sysconfig/network-scripts/ifcfg-eth2 /home/hassan/Bureau
#cp /etc/sysconfig/network /home/hassan/Bureau
#cp /etc/resolv.conf /home/hassan/Bureau
#chmod 0777 /home/hassan/Bureau/*
• Copier tous ces fichiers dans un dossier portant votre nom
complet et la variante
Formateur DRAOUI Hassan 16
6- Résumé :
#vim /etc/sysconfig/network
HOSTNAME=machine1
#ifconfig -a
#vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
IPADDR=10.0.0.1
NETMASK=255.0.0.0
DNS1=8.8.8.8
DNS2=8.8.4.4
DOMAIN=reseau.isgi.drps
ONBOOT=yes
DHCP_HOSTNAME=machine1
#service NetworkManager restart
#service network restart Formateur DRAOUI Hassan 17
Application 2 : TP réseau de base et récupération des fichiers
Soit une machine virtuelle CentOS.
En enregistrant l’activité du shell par la commande « script » sur un
fichier appelé votre-nom.txt (votre-nom à remplacer par votre nom de
famille , par exemple alaoui.txt) répondez aux questions suivantes :

1) Renommer la machine en votre nom (2 méthodes)


2) Attribuer à la machine une adresse IP (2 méthodes)
3) Donner à la machine une passerelle par défaut (2 méthodes)
4) Donner à la machine l’adresse du serveur DNS de Google 8.8.8.8 (2
méthodes)

Formateur DRAOUI Hassan 18


II-Vérification des paramètres réseau
• Vérification d’adresse IP :
– $ifconfig -a
– $ping
• Vérification du nom de la machine :
– $hostname
• Vérification du client DNS :
– $cat /etc/resolv.conf
– Outils de test : nslookup, host et dig
• Vérification de la passerelle par défaut :
– $route -n
– $ping Adresse_Passerelle

Formateur DRAOUI Hassan 19


Exercice  TP 0 : Paramétrage manuel de base
Soit le réseau suivant :

Configurer la machine Admin avec tous les paramètres en se basant sur


la maquette ci-dessus en testant chaque configuration (Nom, Adresse
IP/Masque, Passerelle par défaut , Adresses des serveurs DNS et
Nom de domaine DNS) Formateur DRAOUI Hassan 20
III-CentOS 7 et 8
1. CentOS 7.7
 Installation des packages :
#yum repolist
#yum -y install dhcp bind nfs-utils samba vsftpd \
xinetd telnet-server openssh-server openldap openldap-clients \
openldap-servers httpd mod_ssl postfix dovecot qemu-kvm \
libvirt-client virt-manager

 Remarques :
Manque : dhcp-devel
nouveaux : qemu-kvm (HyperViseur) libvirt-client (virsh) virt-manager
(GUI)

Formateur DRAOUI Hassan 21


2. CentOS 8.1
 Installation des packages :
#yum repolist
#yum -y install dhcp-server dhcp-relay bind nfs-utils samba vsftpd \
xinetd telnet-server openssh-server openldap openldap-clients \
httpd mod_ssl postfix dovecot qemu-kvm libvirt-client \
virt-manager

 Remarques :
Remplacement : dhcp-relay au lieu de dhcp-devel
Manque : openldap-servers (alternatifs: 389-ds/FreeIPA)

Formateur DRAOUI Hassan 22


3. Modifications majeures
Gestion des services et démarrage des services avec le système :
# systemctl {start, restart, status, stop, enable, disable....} nom_service

Désactiver le pare-feu d’une manière permanente :


# systemctl stop firewalld
# systemctl disable firewalld

Gestion des paramètres réseau :


Nouvels outils : nmcli, nmtui, nmgui …

Formateur DRAOUI Hassan 23


CHAPITRE II:
Configuration réseau
dynamiquement
par le service DHCP

Formateur DRAOUI Hassan 24


I-Configuration du serveur DHCP
1. Donner au serveur une adresse IP manuel ( appartenant au réseau local )

2. Installer le package dhcp


#rpm -ivh chemin_du_package_dhcp
Exemple
#rpm -ivh /home/hassan/Bureau/Packages/dhcp-4….. (Appuyer sur TAB)

3. Modifier le fichier de configuration du service DHCP /etc/dhcp/dhcpd.conf


#vim /etc/dhcp/dhcpd.conf
option domain-name-servers 192.168.1.1,192.168.1.2 ; #Serveurs DNS globale
option domain-name "ofppt.org"; #Domaine DNS globale
subnet 192.168.1.0 netmask 255.255.255.0 { #Le réseau 192.168.1.0/24
option routers 192.168.1.254 ; #Passerelle du réseau 192.168.1.0
range 192.168.1.10 192.168.1.50 ; #Adresses qui seront distribués
}

4. (Re)Démarrer le service DHCP


25
#service dhcpd start (ou #service dhcpd restart) Formateur DRAOUI Hassan
NB:
Vous pouvez lancez votre serveur dhcpd en mode déboggage pour trouver les erreurs
#dhcpd -d (vérifier d’abord que le service dhcpd est arrêté #service dhcpd stop )

Formateur DRAOUI Hassan 26


II-Configuration du client DHCP
Méthode 1 : graphiquement

Méthode 2:
#dhclient ethx

Méthode 3 :
#vim /etc/sysconfig/network-scripts/ifcfg-ethx
DEVICE=ethx
BOOTPROTO=dhcp
ONBOOT=YES
#service network restart (ou #service NetworkManager restart)

Formateur DRAOUI Hassan 27


III-Réservation d’une adresse IP
1. Obtention de l’adresse MAC du client
$ifconfig -a (Linux)
/>ipconfig /all (Windows)
2.Modifier le fichier de configuration du service DHCP pour ajouter la
réservation :
#vim /etc/dhcp/dhcpd.conf
…………………………
host Nom_Client {
hardware ethernet 00:11:22:33:44:55;
fixed-address 192.168.1.100;
}
3. Redémarrer le service DHCP #service dhcpd restart

Remarques importantes:
Pour libérer (retourner) une adresse IP déjà obtenu dynamiquement :
-Sous Linux : $dhclient -r ethX
-Sous Windows: />ipconfig /release
Pour renouvelez l’adresse IP pour la machine
-Sous Linux : $dhclient -r ethX puis $dhclient ethX 28
-Sous Windows : />ipconfig /renew Formateur DRAOUI Hassan
Exercice  TP 1 : Serveur DHCP avec réservation

En supposant que le nom du domaine DNS est onp.co.ma et en utilisant le


serveur DNS de GOOGLE (8.8.8.8) répondez aux questions suivantes :
1. Configurer sur le serveur DHCP l’adresse, le nom, la passerelle et le client
DNS par commandes et par fichiers.
2. En utilisant les informations ci-dessus configurer le service DHCP sur
ServeurDHCP
3. Réserver à la machine Client-1 l’adresse IP suivante : 172.16.5.5
4. Tester le service DHCP 29
Formateur DRAOUI Hassan
Exemple du fichier /etc/dhcp/dhcpd.conf

# c’est un commentaire
subnet 172.18.0.0 netmask 255.255.0.0 {
range 172.18.0.20 172.18.0.30;
option domain-name-servers 8.8.8.8;
option domain-name "reseau.lan";
option routers 172.18.0.1;
option broadcast-address 172.18.255.255;
option subnet-mask 255.255.255.0;
default-lease-time 600;
max-lease-time 7200;
}
Les explications :
•La première ligne, c’est un commentaire (non pris en considération par le service DHCP).
•La seconde ligne, on indique le réseau ainsi que le masque de réseau.
•La troisième ligne, on indique la plage d’adresses IP à donner aux clients DHCP.
•La quatrième ligne, on indique le DNS (ici DNS publique de Google).
•La cinquième ligne, on indique le nom de notre domaine.
•La sixième ligne, on indique l’adresse de la passerelle.
•La septième ligne, on indique l’adresse diffusion du réseau.
•La huitième ligne, on indique l’adresse réseau du réseau.
•Et enfin les 2 dernières lignes, sont pour le bail. On indique le bail par défaut et le bail
maximum. Ce bail est exprimé en secondes. Formateur DRAOUI Hassan 30
VI-Agent de relai DHCP Formateur DRAOUI Hassan

1- Pourquoi utiliser un agent de relai DHCP


Par construction le service DHCP utilise des requêtes de diffusions
(broadcast) alors que les routeurs bloquent les diffusions par défaut.
La solution consiste donc à utiliser un petit service appelé agent de relai
DHCP (dans le réseau local des clients) qui transforme les diffusions en
monodiffusions (voir CCNA2).
2- Configuration d’agent de relai DHCP
1. Installer le package dhcp-devel
2. Adapter le fichier de configuration :
#vim /etc/sysconfig/dhcrelay
DHCPSERVERS= "Adresse_Serveur_DHCP"
3. Démarrer le service dhcrelay

NB: Si vous voulez indiquer l'interface d‘écoute il faut indiquer au moins


les deux interfaces qui recevront les requêtes des clients et les
réponses du serveur (INTERFACES="eth0 eth1")
31
Remarque importante:
Il faut configurer la carte qui va recevoir les requêtes de l’agent de relai
DHCP en tant que carte d’écoute des requêtes DHCP sur le serveur
DHCP :
#vim /etc/dhcp/dhcpd.conf
subnet 10.0.0.0 netmask 255.255.255.0 { }
#service dhcpd restart

NB : 10.0.0.1/24 est l’adresse IP de carte réseau du coté de l’agent de


relai DHCP (qui reçoit les requêtes DHCP monodiffusions provenant de
l’agent de relai DHCP)

Formateur DRAOUI Hassan 32


Exemple :

#vim /etc/dhcp/dhcpd.conf
………………..
subnet 172.16.1.0 netmask 255.255.255.0 {}
#service dhcpd restart

Question de recherche : Quel est le rôle :


- Du dossier /var/lib/dhclient/ Formateur DRAOUI Hassan 33
- Du fichier /var/lib/dhcpd/dhcpd.leases
CHAPITRE III:
Routage sous Linux

Formateur DRAOUI Hassan 34


Pour configurer le routage sous Linux (CentOS) il faut passer par deux étapes :

1- Activer le routage (forwarding) :


Méthode 1: #echo 1 > /proc/sys/net/ipv4/ip_forward
Méthode 2: Pour une activation permanente
#vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
#reboot
2- Ajouter les routes
#route add -net Adresse_réseau gw Tronçon_suivant

Exemples :
#route add -net 10.0.0.0/8 gw 192.168.1.1
#route add -net 172.16.0.0 netmask 255.255.0.0 gw 10.1.1.1
Remarques :
-Pour ajouter une route vers une machine unique : remplacer –net par –host
-Pour supprimer une route : remplacer add par del
-Pour ajouter une route par défaut : remplacer "-net 0.0.0.0/0" par default
-Pour configurer une autre adresse IP pour la carte réseau eth0 par exemple ;
#ifconfig eth0:N Réseau/Masque up
Avec N entier positif
Formateur DRAOUI Hassan 35
-Pour afficher les routes :#route (ou #route -n)
Exercice  TP 2 : Routage

1- Réaliser la maquette sous Vmware (Ajouter les cartes réseaux et les


connecter aux switchs virtuels Vmnet2, Vmnet3, Vmnet4 et Vmnet5)
2- Configurer les adresses IP sur R1, R2 et R3 et tester la connectivité
entre chaque deux machines du même réseau (interchanger les cartes en
cas de problème)
3- Configurer l’adresse et la passerelle pour PC1 et PC2
4- Configurer le routage sur R1, R2 et R3
5- Tester la connectivité entre PC1 et PC2
NB :
Changer les adresses MAC sur les routeurs R1, R2 et R3 pour éviter les problèmes de
ressemblances de ces adresses Formateur DRAOUI Hassan 36
Solution Vidéo :
Routage

Formateur DRAOUI Hassan 37


Exercice  TP de Transfert 1 : DHCP+Relai+Routage

1- Réaliser la maquette sous Vmware (Ajouter les cartes réseaux et les


connecter aux switchs virtuels Vmnet2, Vmnet3 et Vmnet4)
2- Configurer les noms, les adresses IP sur Routeur1 et Routeur2 et tester
la connectivité entre ces deux machines (interchanger les cartes en cas de problème)
3- Configurer le service DHCP sur Routeur1 pour les deux réseaux
locaux (Vmnet2 et Vmnet4)
4- Configurer l’agent de relai DHCP sur Routeur2
Formateur DRAOUI Hassan 38
5- Configurer le routage sur Routeur1 et Routeur2
6- Tester l’obtention des adresses IP dynamiquement par les deux clients
Solution Vidéo :
DHCP_Relai_Routage

Formateur DRAOUI Hassan 39


CHAPITRE IV:
Concepts et configuration du
service DNS

Formateur DRAOUI Hassan 40


I- Introduction au système DNS
Définitions
- Système DNS :
DNS (Domain Name System) est une base de données distribuée hiérarchisée qui contient les
mappages de noms d’hôtes DNS à des adresses IP (et l’inverse) .
Le système DNS permet aussi de localiser un service donné dans un domaine donné.

Exemples de mappages (voir la page suivante) :


- Mappage direct : pc1.sud.ofppt.ma.  128.12.1.15
- Mappage inverse : 128.12.1.15  pc1.sud.ofppt.ma.
- Localisation d’un service : Serveur MAIL de google.com  mx1.google.com.

Remarques importantes :
 Le domaine racine contient tous les adresses IP des serveurs DNS de tous les domaines de
niveau supérieur
 Chaque domaine contient tous les adresses IP des serveurs DNS de tous ses domaines enfant
(par exemple: le domaine (ma) contient tous les adresses IP des serveurs DNS de tous les
domaines qui s’écrivent sous la forme (*.ma))

Autres définitions :
- Il permet de repérer des ordinateurs et des services en utilisant des noms alphanumériques
faciles à retenir.
- DNS permet également de découvrir des services réseau comme des serveurs de messagerie et
41
des contrôleurs de domaine dans le service d’annuaire Active Directory. Formateur DRAOUI Hassan
Hiérarchie du système DNS :

Domaine racine

Domaine de
niveau supérieur net ma com
(TLD)

Domaine de
google
second niveau ofppt
mx1

Plusieurs niveaux
sud
Sous-domaines
nord pc1 pc2

FQDN de pc1 : pc1.sud.ofppt.ma.


FQDN de pc2 : pc2.sud.ofppt.ma.
Formateur DRAOUI Hassan 42
FQDN de mx1 : mx1.google.ma.
- Un espace de noms DNS :
C’est le nom de domaine complet en prenant considération les domaines parents
jusqu’au domaine racine. (exemple : l’espace de nom du domaine sud est :
sud.ofppt.ma.)

Définition 2 : L’espace de noms de domaine est une arborescence hiérarchisée de noms


utilisée par DNS pour identifier et trouver un hôte donné dans un domaine donné, par
rapport à la racine de l’arborescence.
Définition 3 : Un espace de noms DNS comprend le domaine racine, des domaines de
niveau supérieur, des domaines de niveau secondaire et (éventuellement) des sous
domaines.

- FQDN (Fully Qualified Domain Name / le nom de domaine pleinement qualifié ):


C’est le nom de l’hôte avec le nom de son domaine complet (Espace du noms)
auquel il appartient (exemple : le FQDN de pc1 est : pc1.sud.ofppt.ma.)

Définition 2 : La combinaison de l’espace de noms DNS et du nom d’hôte constitue le


nom de domaine pleinement qualifié.
Définition 3 : Un nom de domaine pleinement qualifié FQDNest un nom de domaine
DNS qui a été défini de façon non ambiguë pour indiquer avec certitude son
emplacement dans l’arborescence de l’espace de noms de domaine
Formateur DRAOUI Hassan 43
Requêtes DNS :
Une requête est une demande de résolution de noms adressée à un serveur DNS.
Il existe deux type de requête DNS :
- Requête récursive
Une requête récursive est une requête envoyée à un serveur DNS dans laquelle le client
DNS demande au serveur de fournir une réponse complète (réponse faisant autorité).
- Requête itérative
Une requête itérative est une requête envoyée à un serveur DNS dans laquelle le client
DNS demande la meilleure réponse que peut fournir le serveur DNS sans faire appel à
d’autres serveurs DNS.

NB : Les requêtes sont émis par un client ou un autre serveur

Remarque importante:
-Requête récursive : toujours depuis un client vers un serveur
-Requête itérative : généralement depuis un serveur vers un autre serveur (sauf si ce
dernier est considéré comme un redirecteur pour le premier)

Formateur DRAOUI Hassan 44


Réponses DNS :
Les réponses DNS sont de deux types selon l’espace de nom du serveur :
• Un serveur DNS qui fait autorité pour l'espace de noms peut :
• Renvoyer l'adresse IP demandée (ou le nom ou bien le nom du serveur =
A/PTR/SRV-)
• Renvoyer un « Non » faisant autorité
• Un serveur DNS qui ne fait pas autorité pour l'espace de noms peut :
• Vérifier son cache
• Utiliser des redirecteurs
• Utiliser des indications de racine

Formateur DRAOUI Hassan 45


Un serveur DNS doit résoudre des noms de domaine DNS.

Serveur DNS
local
Requête itérative (RI):
Requête récursive (RR): ? IP de www.ofppt.ma
? IP de www.ofppt.ma
Demander au DNS de .ma (.)

40.127.178.193
Client DNS

.ma

ofppt.ma

Formateur DRAOUI Hassan 46


Les indications de racine (root hints)
Les indications de racine sont des enregistrements de ressources DNS stockés sur un
serveur DNS qui répertorient les adresses IP (et les nom) des serveurs racines du
système DNS (13 Noms / IP v4 ou v4+v6).
Les redirecteurs (forwarders)
Un redirecteur est un serveur DNS que d’autres serveurs DNS internes désignent
comme responsable du transfert des requêtes pour la résolution de noms de domaines
externes ou hors site.
La mise en cache du serveur DNS
La mise en cache est le processus qui consiste à stocker temporairement (TTL) dans un
sous-système de mémoire spécial des informations ayant fait l’objet d’un accès récent
pour y accéder plus rapidement ensuite.

Exercice 1:
Dessiner un schéma qui illustre la résolution d’un nom internet en supposant que toutes
les caches sont vides?

Formateur DRAOUI Hassan 47


Un redirecteur est un serveur DNS conçu pour résoudre des noms de domaine
DNS externes ou hors site

Serveur DNS Redirecteur


local Requête itérative (RI):
Requête récursive (RR): ? IP de www.ofppt.ma
? IP de www.ofppt.ma
Demander au DNS de .ma (.)

40.127.178.193

.ma

LAN INTERNET ofppt.ma

Client Formateur DRAOUI Hassan 48


Comment les machines connaissent-elles les adresses IPs de leurs destinations ?
Serveur racine :
-Base de données :
-Serveur DNS de (ma) :
Redirecteur: -Nom: ns.ma
Serveur DNS Local : -Serveurs racines :
- Redirecteur : 3.3.3.3 -Adresse: 5.5.5.5
-4.4.4.4 -…
-…

(.)

4.4.4.4
Serveur DNS de (ma) :
2.2.2.2 -Base de données :
3.3.3.3 -Serveur DNS de (ofppt.ma) :
-Nom: dns1.ofppt.ma.
-Adresse : 6.6.6.6 .ma
-…
5.5.5.5

Serveur DNS de (ofppt.ma) :


-Base de données :
-www  40.127.178.193
-…
Client:
- Paramètres TCP/IP:
-… ofppt.ma
-Serveur DNS 1 : 2.2.2.2 6.6.6.6
49
Formateur DRAOUI Hassan
1.1.1.1
Etapes de résolution d’un nom en utilisant un redirecteur :
 Le serveur DNS local vérifie d’abord sa mémoire cache et ses fichiers de zone avant de
transmettre la demande au redirecteur.
Le redirecteur commence alors à interroger d’autres serveurs de noms à l’aide de requêtes
itératives successives jusqu’à la réception d’une réponse complète.
Le serveur redirecteur répond au serveur DNS local qui à son tour répondra au client.

1. Le client DNS envoi une requête récursive au serveur DNS local.


2. Le serveur DNS local transmet la demande au redirecteur (requête récursive).
3. Le redirecteur envoie une requête itérative au serveur racine (13 noms/adresses )
4. Le serveur racine répond par une référence à un serveur DNS plus proche du nom de domaine
demandé (Serveur DNS de .ma).

Le processus continue jusqu’à ce que le redirecteur reçoive une réponse faisant autorité.
5. Le redirecteur envoie ensuite une requête itérative au serveur DNS plus proche du nom de
domaine demandé (Serveur DNS de .ma).
6. Le serveur DNS de .ma répond par une référence à un serveur DNS plus proche du nom de
domaine demandé (Serveur DNS de ofppt.ma)..
7. Le redirecteur envoie ensuite une requête itérative au serveur DNS plus proche du nom de
domaine demandé (Serveur DNS de ofppt.ma).
8. Le serveur DNS de ofppt.ma répond par une réponse faisant autorité (Adresse IP / Nom
inexistant).
9. Le redirecteur envoie la réponse au serveur DNS local
10. Le serveur DNS local transmet la réponse au client DNS. Formateur DRAOUI Hassan 50
Exercice 2 :
Dessiner un schéma qui illustre la résolution d’un nom internet www.google.co.ma en
présence d’un redirecteur en supposant que toutes les caches sont vides?

Exercice 3 :
Dessiner un schéma qui illustre la résolution d’un nom internet ftp.centos.com en
présence d’un redirecteur en supposant que toutes les caches sont vides?

Exercice 4:
Dessiner un schéma qui illustre la résolution d’un nom internet de votre choix (sous la
forme a.b.c.d) en présence d’un redirecteur en supposant que toutes les caches sont
vides?

Formateur DRAOUI Hassan 51


Fonctionnement de la mise en cache DNS :

Requête itérative (RI):


Requête récursive (RR): ? IP de www.ofppt.ma
? IP de www.ofppt.ma
Demander au DNS de .ma (.)

40.127.178.193

.ma

ofppt.ma

Client1 Client2 Formateur DRAOUI Hassan 52


Enregistrement de ressource
Un enregistrement de ressource est une structure de base de données DNS
standard qui contient des informations utilisées pour traiter les requêtes DNS.

SOA (Start Of Autority) : contient des paramètres important….

A : traduit un nom DNS en adresse IPv4.


AAAA : traduit un nom DNS en adresse IPv6.
CNAME : traduit un nom DNS en un autre nom (nommé aussi Alias).

PTR : traduit une adresse IPv4/IPv6 en un nom DNS

MX : localise un serveur de messagerie électronique (Mail eXchanger) pour un


domaine donné.
NS : localise un serveur de nom (DNS) pour un domaine donné.
SRV : localise un serveur offrant un service donné pour un domaine donné.

….

Formateur DRAOUI Hassan 53


Zones DNS :
Est une partie spécifique de l'espace de noms DNS qui contient des enregistrements
DNS.
 Une zone est la représentation physique d’un ou plusieurs domaines DNS
contigu.
Le fichier de zone contient les enregistrements de ressources d’une zone.

ofppt.ma ns1
Fichier de zone ofppt.ma

Zone ofppt.ma

nord.ofppt.ma

dns3

Zone sud.ofppt.ma sud.ofppt.ma

54
Formateur DRAOUI Hassan
Types de zones DNS
- Zone principale
Une zone principale est l’exemplaire faisant autorité de la zone DNS. Les
enregistrements de ressources y sont créés et gérés.
 Pour chaque zone il ya une seule zone principale

- Zone secondaire
Une zone secondaire est une copie en lecture seule de la zone DNS. Les
enregistrements contenus dans la zone secondaire ne peuvent pas être modifiés ;
Les administrateurs peuvent modifier uniquement les enregistrements de la zone DNS
principale.
 Pour chaque zone il y a zéro ou plusieurs zones secondaires.

- Zone de stub
Est une copie partielle d'une zone contenant uniquement des enregistrements utilisés
pour localiser des serveurs de noms pour un domaine donné (SOA, NS et A).
 Une zone de stub est en quelque sorte un signet (SOA, NS et A) qui pointe
simplement vers le serveur DNS qui fait autorité pour la zone DNS concernée.

Chacun de ces types peut être soit :


- Zone de recherche Direct
- ou Zone de recherche inverse Formateur DRAOUI Hassan 55
Utilité d’une zone de stub (raccourci):
Eviter de passer par les serveurs des niveaux parents pour arriver à un serveur
d’un domaine très fréquenté par les clients du serveur DNS local.
Serveur DNS
local
Requête récursive (RR):
? IP de www.ofppt.ma Zone de stub ofppt.ma:
SOA… (.)
ofppt.ma NS ns1.ofppt.ma.
40.127.178.193 ns1.ofppt.ma. A 194.204.225.200
Client DNS

.ma

ofppt.ma

Formateur DRAOUI Hassan 56


Délégation de zone :
Est le processus par lequel le domaine parent donne le pouvoir de résolution des
noms appartenant au domaine enfant à un serveur de ce domaine (enfant)

ofppt.ma. NS ns1.ofppt.ma.
sud.ofppt.ma. NS dns3.sud.ofppt.ma.
ofppt.ma ns1
www A 40.127.178.193
ns1.ofppt.ma. A 194.204.225.200
dns3.sud.ofppt.ma. A 197.230.9.234

Délégation
sud.ofppt.ma. NS dns3.sud.ofppt.ma.
sud.ofppt.ma. MX 1 ml.sud.ofppt.ma.

dns3 dns3.sud.ofppt.ma. A 197.230.9.234


ml.sud.ofppt.ma. A 104.47.4.36
sud.ofppt.ma www A 40.127.178.193

Formateur DRAOUI Hassan 57


Résolution inversée (schéma approché!):
Domaine spécial
in-addr.arpa. ipv6.arpa.
pour IPv4

Premier octet IPv4


0 192 255

Deuxième octet IPv4


0 168 255

Troisième octet IPv4


0 1 255

192.168.1.10/24
Zone 1.168.192.in-addr.arpa.
192.168.1.11/24

FQDN de 192.168.1.10: 10.1.168.192.in-addr.arpa.


FQDN de 192.168.1.11: 11.1.168.192.in-addr.arpa. Formateur DRAOUI Hassan 58
Résolution inversée : Astuces Formateur DRAOUI Hassan

Il nous faut deux informations seulement :


1- Le nom de la zone inverse :

Le nom de la zone inverse est déterminé en prenant les octets de la partie réseau et les
inverser puis ajouter le suffixe in-addr.arpa.
Exemples:
- 10.0.0.0/8  10.in-addr.arpa.
- 10.0.0.0/16  0.10.in-addr.arpa.
- 10.0.1.0/24  1.0.10.in-addr.arpa.
2- La représentation d’une adresse IP dans le système DNS :

Le nom qui représente une adresse IP dans le système DNS est déterminé en inversant
tout les octets de cette adresse et en ajoutant le suffixe in-addr.arpa.
Exemples:
- 10.1.2.3/8  3.2.1.10.in-addr.arpa.

59
Transferts de zone DNS : Formateur DRAOUI Hassan

C’est le processus par lequel le serveur secondaire vérifie si la zone principale a subit
une modification pour demander l’envoi de ces modifications depuis un serveur maitre
(principale ou un autre secondaire) après l’expiration de la durée de rafraichissement
(refresh de SOA) ou pour la création d’une nouvelle zone secondaire.
 Il existe deux type de requête de transfert de zone :
- Transfert de zone complet (requête AXFR)
- Transfert de zone incrémentiel (requête IXFR)
1
Expiration de la durée de
4 rafraichissement
2 Requête SOA de zone
SOA (Old serial)

3 Réponse de requête SOA (New serial)

5 Requête IXFR ou AXFR

6 Réponse de requête IXFR ou AXFR


(zone transférée)
Serveur secondaire Serveur maître
NB : En réalité la demande de transfert de zone est envoyée au serveur principal
60
trouvé dans l’enregistrement SOA
Notification DNS (DNS Notify) :
C’est le processus par lequel le serveur DNS principale informe (notifie) les serveurs
DNS secondaires de la modification d’une zone pour que ces derniers puissent
déclencher le processus de transfert de zone sans attendre l’expiration de la durée de
rafraichissement (refresh).

1
Modifications
SOA (New serial)

2 Notification DNS

3 Requête IXFR ou AXFR

4 Réponse de requête IXFR ou AXFR


(zone transférée)
Serveur secondaire Serveur maître

Q: Comment le serveur maitre connait-il l’adresse des serveurs secondaires ?


R: par les enregistrements NS (et A correspondants) contenus dans le fichier de zone

Formateur DRAOUI Hassan 61


La mise à jour dynamique :
Est le processus par lequel un client DNS (ou serveur DHCP) crée, inscrit ou met à
jour de façon dynamique ses enregistrements dans des zones maintenues par des
serveurs DNS qui peuvent accepter et traiter des messages pour des mises à jour
dynamiques.

Formateur DRAOUI Hassan 62


II- Configuration du service DNS sous CentOS
A- Configuration d’une zone directe principale minimale sous
CentOS :
1. Installer le package bind :
#yum install bind (Connexion Internet obligatoire)
2. Déclarer la zone directe dans le fichier de configuration DNS :
#vim /etc/named.conf
options {
listen-on port 53 {any ;} ;
…………….
allow-query {any ;} ;
directory "/var/named";
};
zone "ofppt.org" {
type master;
file "nom_fichier_de_zone";
}; Formateur DRAOUI Hassan 63
3. Créer et remplir le fichier de zone directe :
#vim /var/named/nom_fichier_de_zone
$TTL 86400
ofppt.org. IN SOA serveurDNS1.ofppt.org. root.ofppt.org. (
2020120100;
14400;
3600;
3600000;
14400;
)
ofppt.org. IN NS serveurDNS1.ofppt.org.
serveurDNS1.ofppt.org. IN A 192.168.1.1

4. (Re)démarrer le service DNS


#service named restart
Formateur DRAOUI Hassan
ofppt.org. : Nom du domaine DNS (zone)
serveurDNS1.ofppt.org. : Nom du serveur DNS principal de la zone
root.ofppt.org. : L’adresse mail du responsable de la zone (root@...) 64
Exercice  TP 3 : DNS Simple directe

On veut configurer un serveur Linux avec les informations suivantes :


Nom de domaine : tri.isgi
Adresse IP : 192.168.1.10
Masque : 255.255.255.0
Adresses des serveurs DNS : 192.168.1.10 et 8.8.4.4

1. Affecter le nom "linux1.tri.isgi" pour la machine en utilisant le


fichier de configuration
2. Afficher les caractéristiques de toutes les cartes réseaux
3. Configurer les paramètres de la carte réseau en utilisant le fichier
de configuration
4. Redémarrer le service NetworkManager ( et/ou network)
5. Afficher les adresses IP et le nom de la machine
6. Créer la zone DNS principale sur ce serveur
7. Tester localement la résolution du nom « linux1.tri.isgi »
65
Formateur DRAOUI Hassan
Solution : Vidéo DNS
Simple

Formateur DRAOUI Hassan 66


Résolution inversée (Rappel)
En résolution inverse l’adresse IP sera considérée comme un nom.
Ainsi si l’adresse IP est o1.o2.o3.o4, son nom correspondant est
o4.o3.o2.o1.in-addr.arpa.
Ce nom sera attribué, selon son masque de sous réseau, à l’un des trois
domaines suivants :
- o1.in-addr.arpa. (si le masque est /8)
- o2.o1.in-addr.arpa. (si /16)
- o3.o2.o1.in-addr.arpa. (si /24)

Formateur DRAOUI Hassan 67


Résolution inversée (Rappel)
Domaine spécial
in-addr.arpa. ipv6.arpa.
pour IPv4

Premier octet IPv4


0 192 255

Deuxième octet IPv4


0 168 255

Troisième octet IPv4


0 1 255

192.168.1.10/24
Zone 1.168.192.in-addr.arpa.
192.168.1.11/24

FQDN de 192.168.1.10: 10.1.168.192.in-addr.arpa.


FQDN de 192.168.1.11: 11.1.168.192.in-addr.arpa. Formateur DRAOUI Hassan 68
B- Configuration d’une zone inverse principale minimale sous
CentOS :

1. Installer le package bind :


#yum install bind (Connexion Internet obligatoire)
2. Déclarer la zone inverse dans le fichier de configuration DNS :
#vim /etc/named.conf
options {
listen-on port 53 {any ;} ;
…………….
allow-query {any ;} ;
directory "/var/named";
};
zone "1.168.192.in-addr.arpa" {
type master;
file "nom_fichier_de_zone_inverse";
};
Formateur DRAOUI Hassan 69
3. Créer et remplir le fichier de zone directe :
#vim /var/named/nom_fichier_de_zone_inverse
$TTL 86400
1.168.192.in-addr.arpa. IN SOA serveurDNS1.ofppt.org. mail.ofppt.org. (
2020120100;
14400;
3600;
3600000;
14400;
)
1.168.192.in-addr.arpa. IN NS serveurDNS1.ofppt.org.
10.1.168.192.in-addr.arpa. IN PTR serveurDNS1.ofppt.org.

4. (Re)démarrer le service DNS


#service named restart

Formateur DRAOUI Hassan 70


Exercice  TP 4 : DNS Simple inverse

On veut configurer un serveur Linux avec les informations suivantes :


Nom FQDN : linux100.tri.isgi.
Adresse IP : 192.168.10.100
Masque : 255.255.255.0
Adresses des serveurs DNS : 192.168.10.100 et 8.8.4.4

1. Affecter le nom pour la machine en utilisant le fichier network


2. Configurer les paramètres de la carte réseau en utilisant le fichier de
configuration
3. Afficher les adresses IP et le nom de la machine
4. Créer la zone DNS principale inverse sur ce serveur
5. Tester localement la résolution inverse de l’adresse 192.168.10.100

Formateur DRAOUI Hassan 71


Solution : Vidéo DNS
Simple inverse

Formateur DRAOUI Hassan 72


C- Configuration d’une zone secondaire sous CentOS :

Etape 1  Sur le serveur principale :

- Autoriser le transfert de zone vers l’adresse IP du serveur secondaire


dans la zone principale dans le fichier de configuration DNS du serveur
principale :

#vim /etc/named.conf
zone "ofppt.org" {
…………….
allow-transfer { Adresse_IP_du_serveur_secondaire ; };
};
#service named restart

- Désactiver le pare-feu
#service iptables stop
Formateur DRAOUI Hassan 73
Etape 2  Sur le serveur secondaire :

0. $ping Adresse_IP_du_serveur_principal

1. Installer le package bind : #yum install bind


2. Déclarer la zone dans le fichier de configuration DNS :
#vim /etc/named.conf
options { listen-on port 53 {any ;} ;
…………….
allow-query {any ;} ;
directory "/var/named"; };
zone "ofppt.org" {
type slave;
masters { Adresse_IP_du_serveur_principal ; };
file "slaves/nom_fichier_de_zone_secondaire";
};
3. Démarrer le service DNS :
#service named start Formateur DRAOUI Hassan 74
Exercice TP 5 : serveurs DNS principal et secondaire
Soit le réseau suivant :

1. Configurer les paramètres ci-dessous sur toutes les machines (par les
fichiers network et ifcfg-* ) en testant leur connectivité :
a. Nom
b. Adresse
c. Passerelle : 192.168.1.254
d. Adresses des serveurs DNS : 192.168.1.1 et 192.168.1.2
e. Nom du domaine : isgi.drps
2. Configurer le service DHCP sur srv1 (Question facultative)
3. Configurer les zones directe et inverse principales sur srv1
4. Configurer les zones directe et inverse secondaires sur srv2
5. Tester la résolution DNS sur les deux serveurs Formateur DRAOUI Hassan
75
TP : Vidéo DNS
Simple Secondaire

Formateur DRAOUI Hassan 76


D- Configuration de la mise à jour dynamique DNS
1- La mise à jour dynamique (DDNS) par les clients
A. Il faut déplacer le fichier de zone vers /var/named/dynamic (pour
les droits)
#mv /var/named/db.* /var/named/dynamic/

B. Configurer les zones principales directe et inverse : pour accepter les


mises à jour dynamique des clients (windows !!!) et indiquer le nouvel
emplacement des fichiers de zone :

#vim /etc/named.conf
zone "ofppt.org" {
………
file "dynamic/db.ofppt.org";
allow-update { any; };
};
#service named restart Formateur DRAOUI Hassan 77
C. Configurer les machines clientes (Windows) pour envoyer la
MAJ dynamique :

1 - Indiquer au moins un serveur DNS de la zone (dans paramètres


TCP/IP)
2 - Indiquer votre nom du suffixe DNS principal :
(propriétés sur ordinateur  Modifier les paramètres  nom de
l’ordinateur …..)
3 - Pour forcer l’opération taper la commande :
/>ipconfig /registerdns

Remarque : De même pour la zone inverse

zone "1.168.192.in-addr.arpa" {
…………
file "dynamic/db.192.168.1";
allow-update { any; };
}; Formateur DRAOUI Hassan 78
Exercice TP 6 : Mise à jour dynamique DNS par clients

1. Configurer les paramètres ci-dessous sur toutes les machines en


prenant comme nom du domaine : isgi.drps
2. Configurer les zones directes et inverse principales sur NameServer
3. Autoriser la mise à jour dynamique des clients pour les deux zones sur
NameServer
4. Configurer le client DNS sur ClientDns :
a. Indiquer l’adresse du serveur DNS (172.16.0.1)
b. Indiquer « isgi.drps » en tant que suffixe DNS principal
c. forcer l’opération par la commande : />ipconfig /registerdns
5. Tester la résolution DNS directe et inverse correspondant à la machine
ClientDns Formateur DRAOUI Hassan 79
2- La mise à jour dynamique (DDNS) par le serveur DHCP

A. Configuration du serveur DHCP

#vim /etc/dhcp/dhcpd.conf
subnet 192.168.1.0 netmask 255.255.255.0 {……………….}
ddns-update ;
ddns-update-style interim ;
ddns-domainname = "ofppt.org";
ddns-rev-domain = "1.168.192.in-addr.arpa";
zone ofppt.org. {
primary 192.168.1.1;
}
zone 1.168.192.in-addr.arpa. {
primary 192.168.1.1 ;
}

#service dhcpd restart Formateur DRAOUI Hassan 81


B. Configuration du serveur DNS principal

 il faut déplacer les fichiers de zones vers /var/named/dynamic


(ou modifier les droits)
#vim /etc/named.conf
zone "ofppt.org" {
type master ;
file "/var/named/dynamic/nom_du_fichier_zone_principale_direct" ;
allow-update {192.168.1.100; };
};

#service named restart

C. Configurer les machines linux pour envoyer leurs noms au


serveurs DHCP
#vim /etc/sysconfig/network-scripts/ifcfg-ethX
DHCP_HOSTNAME=NOM
Formateur DRAOUI Hassan 82
Exercice TP 7 : MAJ dynamique DNS par DHCP

1. Configurer les paramètres ci-dessous sur toutes les machines (par les
fichiers network et ifcfg-* ) en prenant comme domaine : isgi.drps
2. Configurer les zones directes et inverse principales sur NameServer
3. Configurer le service DHCP sur DhcpServer
4. Configurer la mise à jour dynamique entre les serveurs DNS et DHCP
pour les deux zones
5. Configurer le client DHCP sur ClientDhcp en vérifiant
6. Tester la résolution DNS directe et inverse correspondant à la machine
ClientDhcp Formateur DRAOUI Hassan 83
3- Sécuriser la mise à jour dynamique (DNSSEC) entre les serveurs
DNS et DHCP
A. Copie la même clé partagé RNDC (/etc/rndc.key) sur les deux
serveurs
NB:
vous pouvez créer une nouvelle clé RNDC en utilisant la commande:
#dnssec-keygen rndc.key
B. Configuration du serveur DHCP
#vim /etc/dhcp/dhcpd.conf
include "/etc/rndc.key";
ddns-update ;
ddns-update-style interim ;
ddns-domainname = "ofppt.org";
zone ofppt.org. {
primary 192.168.1.1;
key rndc-key;
}
#service dhcpd restart Formateur DRAOUI Hassan 85
C. Configuration du serveur DNS principal

#vim /etc/named.conf
…………………………..
include "/etc/rndc.key";
zone "ofppt.org" {
type master ;
file "/var/named/dynamic/nom_du_fichier_zone_principale_direct" ;
allow-update { 192.168.1.100;
key "rndc.key";
}
};

#service named restart

Formateur DRAOUI Hassan 86


TP 7 bis : Sécuriser la MAJ dynamique entre DNS et DHCP

1. Configurer les paramètres ci-dessous sur toutes les machines (par les
fichiers network et ifcfg-* ) en prenant comme domaine : isgi.drps
2. Configurer les zones directes et inverse principales sur NameServer
3. Configurer le service DHCP sur DhcpServer
4. Configurer la mise à jour dynamique entre les serveurs DNS et DHCP
pour les deux zones
5. Sécuriser la mise à jour dynamique entre DNS et DHCP par RNDC
Formateur DRAOUI Hassan 87
E- Mise en place d’une délégation de zone
Du coté du serveur principale de la zone ofppt.org (ici
serveurDNS1.ofppt.org.) déléguez l’administration de la zone
drps.ofppt.org au serveur (ici serveurDelegue.drps.ofppt.org.) en
modifiant dans le fichier de zone mère «ofppt.org » :

$ORIGIN ofppt.org.
$TTL 86400
ofppt.org. IN SOA serveurDNS1.ofppt.org. root.ofppt.org. (
2021102600 ;
14400 ;
3600 ;
3600000 ;
14400 ;
)
IN NS serveurDNS1.ofppt.org.
drps.ofppt.org. IN NS serveurDelegue.drps.ofppt.org.
serveurDNS1 IN A 192.168.1.1
serveurDelegue.drps IN A 192.168.1.250 88
Formateur DRAOUI Hassan
Exercice TP 8 : Délégation de zone DNS

1. Configurer les paramètres ci-dessous sur toutes les machines (par les
fichiers network et ifcfg-* ) et désactiver les pare-feux
2. Configurer la zone directe « ofppt.ma » sur NameServer1
3. Configurer la zone directe « isgi.ofppt.ma » sur NameServer2
4. Sur NameServer1, déléguer la zone isgi.ofppt.ma à NameServer2
5. Tester la résolution DNS la résolution du nom NameServer2 en
consultant le serveur du domaine parent NameServer1
6. Sur le domaine parent modifier la directive « dnssec-validation » à «
89
no » et refaire la question précédente Formateur DRAOUI Hassan
Remarque importante (serveur non récursif) :
Pour tester ce service sur le serveur délégant (serveurDNS1) il vaut mieux
désactiver le traitement des requêtes récursives comme suit :
#vim /etc/named.conf
options { …………..
recursion no;
};
#service named restart

Pour tester
$nslookup -query=ns drps.ofppt.org. Adresse_serveurDNS1

Formateur DRAOUI Hassan 91


Niveau avancé

Formateur DRAOUI Hassan 92


F- Exemple de fichier de zone directe presque complet :
#vim /var/named/ofppt.org.zone
$TTL 86400
ofppt.org. IN SOA serveurDNS1.ofppt.org. mail.ofppt.org. (
2018101800 ; Serial
14400; Refresh
3600; Retry
3600000; Expire
14400; ) Minimum TTL
; Serveurs DNS de la zone “ofppt.org”
IN NS serveurDNS1.ofppt.org.
@ IN NS serveurDNS2.ofppt.org.
ofppt.org. IN NS serveurDNS3.ofppt.org.
; Enregistrements MX des serveurs de messagerie électronique
IN MX 10 smessagerie1.ofppt.org.
; Noms de machines
serveurDNS1 IN A 192.168.1.1
serveurDNS2 IN A 192.168.1.2
serveurDNS3 IN AAAA 2002::1
sfichier IN A 192.168.1.20
sweb IN A 192.168.1.30
smessagerie1 IN A 192.168.1.40
; Alias
www IN CNAME sweb Formateur DRAOUI Hassan
ftp IN CNAME sfichier 93
mail IN CNAME smessagerie1
Exemple d’enregistrement SRV :

Syntaxe générale :
_service._protocole.domaine. ttl IN SRV priorité poids? port fqdn

service : nom du service (ldap, gc, kerberos, kpass….)


protocole : protocole du couche transport tcp/udp
domaine : nom du domaine DNS où se trouve le service concerné
ttl (facultatif) : la durée du vie de l’enregistrement (dans le cache)
priorité : la priorité du serveur cible, la valeur la plus petite est la plus prioritaire
poids : poids relatif pour les enregistrements de même priorité (valeur de 0 à 65535)
port : numéro du port TCP ou UDP selon le protocole de transport utilisé
fqdn : nom FQDN de la machine hébergeant le service concerné

Exemple :
_ldap._tcp.tri.isgi. IN SRV 1 2 389 dc1.tri.isgi.
_ldap._tcp.tri.isgi. IN 60 SRV 10 20 389 dc2.tri.isgi.

_ldap._tcp._msdcs.tri.isgi. IN SRV 1 2 389 dc1.tri.isgi.


_ldap._tcp._msdcs.tri.isgi. IN 60 SRV 10 20 389 dc2.tri.isgi.

dc1.tri.isgi. IN A 192.168.1.1
dc2.tri.isgi. IN A 192.168.1.2
Formateur DRAOUI Hassan 94
Répartition de charge avec SRV (source : Wikipédia)
Le champ priorité est similaire au champ de même nom
des enregistrements MX. Les clients commencent par utiliser
l'enregistrement SRV de plus basse priorité, et se rabattent sur les autres
enregistrements uniquement en cas d'échec de la connexion.
Ainsi, un service peut avoir un serveur désigné comme serveur de
secours, qui sera seulement utilisé en cas de panne du serveur primaire: il
suffit pour cela d'insérer un enregistrement SRV avec une priorité plus
élevée que pour le serveur primaire.
Lorsqu'un service possède plusieurs enregistrements SRV de même
priorité, les clients utilisent alors le champ poids pour décider quel
serveur utiliser. Le poids ne prend son sens que lorsqu'il est mis en
relation avec le poids des autres enregistrements de même priorité
(toujours pour un service donné).
Dans l'exemple ci-dessous, on utilise à la fois les
champs priorité et poids, afin de fournir simultanément une répartition
de charge et un service de secours.
Formateur DRAOUI Hassan 95
Exemple de répartition de charge et tolérance aux pannes (source : Wikipédia) :
_sip._tcp.example.com. IN SRV 10 60 5060 gros-serveur.example.com.
_sip._tcp.example.com. IN SRV 10 20 5060 petit-serveur1.example.com.
_sip._tcp.example.com. IN SRV 10 20 5060 petit-serveur2.example.com.
_sip._tcp.example.com. IN SRV 20 100 5060 serveur-secours.example.com.

Les trois premiers enregistrements ont tous une priorité de 10. Les clients vont donc
devoir utiliser le champ poids afin de déterminer quel serveur contacter. Pour ce champ,
la somme des trois valeurs est 100, donc gros-serveur.example.com sera utilisé 60 % du
temps, et chacun des deux autres (petit-serveur1 et petit-serveur2) sera utilisé 20 % du
temps.
Si, d'aventure, gros-serveur devenait indisponible, les deux "petits serveurs", seuls en
piste, se partageraient alors la charge, ayant un poids identique.
Par ailleurs, si ces serveurs de priorité 10 deviennent tous trois indisponibles,
l'enregistrement de priorité immédiatement supérieure sera choisi, en
l'occurrence serveur-secours.example.com. Il peut s'agir d'une machine
géographiquement éloignée des trois autres, donc a priori non touchée par la cause de
l'indisponibilité de celles-ci.
La répartition de charge fournie par les enregistrements SRV est forcément limitée,
étant donné que l'information est essentiellement statique. La charge réelle des serveurs
n'est pas prise en compte.
Formateur DRAOUI Hassan 96
Remarques importantes :
- Pour afficher le cache DNS sous Microsoft Windows : /> ipconfig /displaydns
- Pour vider le cache DNS sous Microsoft Windows: />ipconfig /flushdns
- Pour configurer un serveur pour utiliser des redirecteurs il faut ajouter au fichier de
configuration (named.conf) les lignes suivantes ;
forwarders {
11.22.33.44;
55.66.77.88 port 53;
};
- Pour configurer un serveur pour envoyer les notifications (named.conf ): notify yes ;
-Vous pouvez vérifier la syntaxe du fichier de zone par la commande :
#named-checkzone Nom_de_la_zone Chemin_du_fichier_de_ zone
Exemple :
#named-checkzone 1.168.192.in-addr.arpa. /var/named/db.192.168.1
-Vous pouvez vérifier la syntaxe du fichier de configuration « named.conf » par la commande :
#named-checkconf
-Il vaut mieux désactivez les pare feu au niveau des serveurs DNS (pour le moment).
#service iptables stop && chkconfig iptables off

NB : il vaut mieux utiliser la commande « #chkconfig iptables off » pour empêcher


l’activation du pare-feu au prochain démarrage de l’ordinateur.
-Il faut activer le service DNS au démarrage des niveaux utilisés par le serveur physique ! :
#chkconfig named on Formateur DRAOUI Hassan
97
#chkconfig --level 35 named on (activer DNS pour les niveaux 3 et 5)
Champs de l’enregistrement SOA : Formateur DRAOUI Hassan

ofppt.org. IN SOA serveurDNS1.ofppt.org. root.ofppt.org. (


2018101800; serial
14400; refresh
3600; retry
3600000; expire
14400; minimum ou negative TTL
)

ofppt.org. : Le nom de la zone DNS


serveurDNS1.ofppt.org. : Le serveur DNS principale de cette zone
root.ofppt.org. : l’adresse email du responsable de la zone DNS
2018101800 : numéro du série qui doit être incrémenté à chaque modification de la zone
14400 : rafraichissement , durée que doit attendre le serveur secondaire avant de vérifier s’il y a
un changement dans la zone principale.
3600 : reprise, durée que doit attendre le serveur secondaire avant de vérifier s’il y a un
changement dans la zone principale si l’opération de rafraichissement a échouée.
3600000 : expiration, si le serveur secondaire n’a pas pu contacter le serveur maitre pendant
cette durée, le serveur secondaire considère que la zone est expirée et dans ce cas le serveur
secondaire ne répondra plus aux clients DNS.
14400 : minimum/cache TTL, la durée de vie pendant laquelle sont conservées en cache les
réponse qui correspondent à des demandes d’enregistrements inexistants.
99
Tester un serveur DNS depuis une machine CentOS :
$nslookup -query=ns tri.isgi
$nslookup -query=srv _ldap._tcp.tri.isgi. 172.16.0.1

Formateur DRAOUI Hassan 100


Formateur DRAOUI Hassan101
Exercice TP de Transfert 2 : DNS + DHCP complet

1. Configurer l’adresse IP, la passerelle, le nom du domaine (domaine


onp.co.ma) les adresses IP des serveurs DNS (172.16.0.1 et 172.16.0.2) sur
les machines nameserver1 et nameserver2 (par fichier)
2. Configurer le service DNS principal (direct et inverse) sur nameserver1
3. Configurer le service DNS secondaire (direct et inverse) sur nameserver2
4. Autoriser la MAJ dynamique pour tout le réseau local sur les deux zones
5. Configurer la machine XP pour envoyer la mise à jour dynamique en testant
6. Configurer le service DHCP sur nameserver2 en prenant en considération
la mise à jour dynamique des deux zones DNS
7. Configurer la machine XP pour obtenir sa configuration réseau par DHCP
en testant la MAJ dynamique Formateur DRAOUI Hassan 102
Solution Vidéo :
DNS + DHCP
Complet

Formateur DRAOUI Hassan 103


Résumé DHCP : dhcpd.conf
default-lease-time 600;
max-lease-time 7200;
option domain-name-servers 172.18.0.2,8.8.8.8;
option domain-name "ofppt.org";

subnet 172.18.0.0 netmask 255.255.0.0 {


range 172.18.0.3 172.18.0.254;
option routers 172.18.0.1;
option broadcast-address 172.18.255.255;
option subnet-mask 255.255.255.0;
}

host Nom_Client {
hardware ethernet 00:11:22:33:44:55;
fixed-address 172.18.0.100;
}
…………………………………………………… 104
Formateur DRAOUI Hassan
Résumé DHCP avec DDNS : dhcpd.conf
………………………………………….
ddns-update;
ddns-update-style interim;
ddns-domainname="ofppt.org";
ddns-rev-domain="18.172.in-addr.arpa";
zone ofppt.org. {
primary 172.18.0.1;
}
zone 18.172.in-addr.arpa. {
primary 172.18.0.1;
}

Formateur DRAOUI Hassan 105


Résumé DNS : named.conf et fichier de zone directe
zone "ofppt.org" {
type master;
file "dynamic/nom_fichier_de_zone";
allow-transfer { Adresse_IP_du_serveur_secondaire; };
allow-update {Adresse_IP_du_serveur_DHCP; };
};
#vim /var/named/dynamic/nom_fichier_de_zone
$TTL 86400
ofppt.org. IN SOA serveurDNS1.ofppt.org. root.ofppt.org. (
2021110500 14400 3600 3600000 14400 )
ofppt.org. IN NS serveurDNS1.ofppt.org.
ofppt.org. IN NS serveurDNS2.ofppt.org.
ofppt.org. IN NS serveurDNS3.ofppt.org.
serveurDNS1.ofppt.org. IN A 192.168.1.1
serveurDNS2.ofppt.org. IN A 192.168.1.2
serveurDNS3 IN A 192.168.1.3
……………………………………………………………Formateur DRAOUI Hassan 106
Résumé DNS : autres enregistrements directs 107
Formateur DRAOUI Hassan
…………………………………………………………………………….
ofppt.org. IN MX 10 serveur6.ofppt.org.
serveur6.ofppt.org. IN AAAA 2021::11:26
www.ofppt.org. IN CNAME serveur6.ofppt.org.
_sip._tcp.ofppt.org. IN SRV 10 60 5060 VoIP.ofppt.org.
_ldap._tcp.ofppt.org. IN SRV 1 2 389 dc1.ofppt.org
Résumé DNS : named.conf et fichier de zone inverse 108
Formateur DRAOUI Hassan
zone "168.192.in-addr.arpa" {
type master;
file "dynamic/zone_inverse";
allow-transfer { Adresse_IP_du_serveur_secondaire; };
allow-update {Adresse_IP_du_serveur_DHCP; };
};

#vim /var/named/dynamic/zone_inverse
$TTL 86400
168.192.in-addr.arpa. IN SOA serveurDNS1.ofppt.org. root.ofppt.org. (
2021110500 14400 3600 3600000 14400 )
168.192.in-addr.arpa. IN NS serveurDNS1.ofppt.org.
168.192.in-addr.arpa. IN NS serveurDNS2.ofppt.org.
168.192.in-addr.arpa. IN NS serveurDNS3.ofppt.org.
1.1.168.192.in-addr.arpa. IN PTR serveurDNS1.ofppt.org.
2.1.168.192.in-addr.arpa. IN PTR serveurDNS2.ofppt.org.
3.1 IN PTR serveurDNS3.ofppt.org.
Résumé DNS secondaire : named.conf pour les zones secondaires
directe et inverse
zone "ofppt.org" {
type slave;
masters { Adresse_IP_du_serveur_principal_direct; };
file "slaves/directe_secondaire";
};

zone "168.192.in-addr.arpa" {
type slave;
masters { Adresse_IP_du_serveur_principal_inverse; };
file "slaves/inverse_secondaire";
};

109
Formateur DRAOUI Hassan
Services de partage :
NFS, SAMBA et
FTP

Formateur DRAOUI Hassan 114


CHAPITRE VI:
service NFS

Formateur DRAOUI Hassan 115


NFS (network file system) est le protocole natif de partage de dossiers
dans le monde Unix/linux
………………..

Formateur DRAOUI Hassan 116


I- Configuration du serveur NFS sous CentOS :
1. Vérifier si le package nfs-utils est installé :
#rpm -q nfs-utils

2. partager des dossiers en définissant les clients autorisés et leurs


droits d’accès :
#vim /etc/exports
chemin_du_dossier machines_authorisées(droits_d_accès)

NB: droits_d_accès = ro ou rw

3. Recharger les partages présents dans /etc/exports :


#exportfs -a (if vaut mieux utiliser #service nfs restart)

NB: pour voir tous les partages sur le serveur : #exportfs

Formateur DRAOUI Hassan 117


Exemple :
#rpm -q nfs-utils

#mkdir /partage_avec_le_reseau /partage_avec_tout_le_monde

#vim /etc/exports
/home 192.168.1.1(ro)
/partage_avec_le_reseau 192.168.1.0/25(rw) 192.168.1.128/25(ro)
/partage_avec_tout_le_monde *(ro)

#service nfs restart (ou #exportfs -a)

Formateur DRAOUI Hassan 118


II- Configuration du client NFS sous CentOS :
A-Méthode 1 :
L’accès aux données distantes par le client se fait en deux temps :

1.Création d’un nouveau dossier (vide)


$mkdir dossier1
2. Montage du dossier distant dans l’arborescence locale du client :
$mount Adresse_ou_nom_serveur_NFS:chemin_du_partage dossier1

Exemple :
0. Tester d’abord la connectivité avec le serveur NFS :
$ping Adresse_ou_nom_serveur_NFS

1. $mkdir /mnt/home_du_serveur
2. $mount Adresse_serveur_NFS:/home /mnt/home_du_serveur

3. Tester le contenu du partage depuis le client :


$ls /mnt/home_du_serveur ……….. 119
Formateur DRAOUI Hassan
B-Méthode 2 :
1. $mkdir dossier2

2. on peut automatiser le montage au démarrage de l’ordinateur en


ajoutant dans le fichier /etc/fstab la ligne suivante :

#vim /etc/fstab
…………
Serveur_NFS : chemin_du_partage dossier2 nfs defaults 0 0

3. #reboot (OU #mount -a)

NB: Pour démonter un dossier monté :


#umount directory_d_accrochage

Formateur DRAOUI Hassan 120


Exercice TP 9 : NFS Simple Formateur DRAOUI Hassan 121

1. Configurer les adresses sur toutes les machines en testant leurs connectivité
2. Créer le répertoire /mon-partage en donnant tous les droits à tous le monde
(0777)
3. Partager ce répertoire par NFS comme suit :
1. Ecriture pour la machine clientNFS1
2. Lecture seule pour les autres machines du réseau local
4. Configurer clientNFS1 pour accéder au dossier partagé à partir d’un dossier
monté par la commande mount et tester le partage en (lecture/écriture) y créer
un fichier (non vide)
5. Configurer clientNFS2 pour accéder au dossier partagé à partir d’un dossier
monté en permanence (/etc/fstab) et tester le partage en (lecture/écriture)
Solution Vidéo :
NFS Simple

Formateur DRAOUI Hassan 122


Niveau avancé

Formateur DRAOUI Hassan 123


CHAPITRE VII:
services SAMBA

Formateur DRAOUI Hassan 126


SAMBA ou SaMBa (SMB=Server Message Blocks) est un ensemble de
packages qui implémente le protocole SMB (CIFS) de partage de
ressources (dossiers, imprimantes,…) dans le monde Windows.

Ainsi SAMBA permet de partager des ressources sur des machines


Unix/Linux au profit des machines Windows.

SAMBA permet aussi aux machines Unix/Linux d’accéder aux


ressources partagées sur des machines Windows.

Formateur DRAOUI Hassan 127


I- Serveur de partage SAMBA sans authentification (accès anonyme)
Pré-requis :
 Désactiver le pare-feu SELinux par la commande suivante :
#setenforce 0
 Créer le dossier à partager en définissant les droits octales à 777 :
#mkdir /dossier-à-partager-avec-tout-le-monde
#chmod 777 /dossier-à-partager-avec-tout-le-monde

1. Installer le package samba


2. Partager ce dossier avec SAMBA :
#vim /etc/samba/smb.conf
…………………………
[global]
…………………………
security = share
…………………………
[nom-de-partage1]
path = /dossier-à-partager-avec-tout-le-monde
guest ok = yes Formateur DRAOUI Hassan 128
3. Redémarrer le service SAMBA
#service smb restart

Remarque : pour donner le droit de modification ajouter au partage la


ligne suivante :
read only = no

Formateur DRAOUI Hassan 129


II- Clients de partage SAMBA sans authentification (accès anonyme)
0- Pré-requis : connectivité avec le serveur SAMBA
$ping Adresse_IP_du_serveur_SAMBA

1- Client Windows:
Méthode 1 : graphiquement

Méthode 2 : Exécuter \\serveurSMB\nom-de-partage1

NB: serveurSMB est l’adresse IP ou le nom (traduisible en adresse IP)


du serveur de partage samba

130
Formateur DRAOUI Hassan
2- Linux en tant que Client de partage
Méthode 1 :
En utilisant le programme smbclient sous Linux (-N : ne pas demander
un MdP)
#smbclient //serveurSMB/nom-de-partage1 -N

Méthode 2 :
En montant le répertoire dans votre hiérarchie Linux via mount
#mkdir montage
#mount –t cifs //serveurSMB/nom-de-partage1 montage

Méthode 3 : /etc/fstab
#vim /etc/fstab
//serveurSMB/nom-de-partage1 montage cifs defaults 0 0
#mount -a

NB : pour voir tous les montages sur le système : #mount


Formateur DRAOUI Hassan 131
Exercice TP : SAMBA Simple sans authentification
Soit le réseau suivant :

1. Configurer l’adresse IP sur toutes les machines (par fichier) en testant leur connectivité
2. Créer le répertoire /mon-partage2 en le partageant par SAMBA avec le minimum de
configuration (les autres options par défaut)
3. Configurer clientSAMBA1 (Windows) pour accéder au dossier partagé et tester le partage
en (lecture/écriture)
4. Configurer clientSAMBA2 (Linux) par l’outil smbclient pour accéder au dossier partagé
5. Configurer clientSAMBA2 (Linux) par l’outil mount pour accéder au dossier partagé
6. Configurer clientSAMBA2 (Linux) par le fichier /etc/fstab pour accéder au dossier partagé
Formateur DRAOUI Hassan 132
Solution : Vidéo
SAMBA Simple sans
authentification

Formateur DRAOUI Hassan 133


III- Serveur de partage SAMBA avec authentification
Pré-requis :
#setenforce 0
#mkdir /dossier-à-partager-avec-les-utilisateurs-samba
#chmod 777 /dossier-à-partager-avec-les-utilisateurs-samba

134
Formateur DRAOUI Hassan
1. Installer samba
2.
Créer un utilisateur samba en lui donnant un mot de passe système et un
mot de passe samba :
#adduser user-samba
#passwd user-samba (mot de passe système: 123456)
NB: #adduser user-samba --password 123456
#smbpasswd -a user-samba (mot de passe samba: 654321)
3.
#vim /etc/samba/smb.conf
[global]
…………………………
security = user
…………………………
[nom-de-partage2]
path = /dossier-à-partager-avec-les-utilisateurs-samba
4. #service smb restart
Formateur DRAOUI Hassan 135
IV- Clients de partage SAMBA avec authentification
0- Pré-requis : connectivité avec le serveur SAMBA
$ping Adresse_IP_du_serveur_SAMBA

1- Client Windows:
Méthode 1 : graphiquement

Méthode 2 : Exécuter \\serveurSMB\nom-de-partage2


NB: à l’invite donner le nom de l’utilisateur SAMBA (user-samba) et
son mot de passe SAMBA

136
Formateur DRAOUI Hassan
2- Linux en tant que Client de partage
Méthode 1 : En utilisant le programme smbclient sous Linux
#rpm -q samba-client
#smbclient //serveurSMB/nom-de-partage2 -U user-samba
NB: à l’invite donner le mot de passe samba de user-samba (654321)

Méthode 2 : En montant le répertoire dans votre hiérarchie Linux via


mount (ou mount.cifs)
#rpm -q cifs-utils
#mkdir montage
#mount -t cifs //serveurSMB/nom-de-partage2 montage
-o username=user-samba,password=654321

Méthode 3 : Par /etc/fstab (pkg cifs-utils obligatoire)


#mkdir montage2
#vim /etc/fstab
//serveurSMB/nom-de-partage2 cifs montage2 user=user-
samba,pass=654321 0 0
Formateur DRAOUI Hassan 137
#mount -a
Exercice TP : SAMBA Simple avec authentification
Soit le réseau suivant :

1. Configurer l’adresse IP sur toutes les machines (par fichier) en testant leur connectivité
2. Créer l’utilisateur système isgi en lui donnant un mot de passe SAMBA (azerty)
3. Créer le répertoire /mon-partage3 en le partageant par SAMBA en donnant le droit de
modification sur le partage
4. Configurer clientSAMBA1 (Windows) pour accéder au dossier partagé et tester le partage en
(lecture/écriture) Formateur DRAOUI Hassan
5. Configurer clientSAMBA2 (Linux) par l’outil smbclient pour accéder au dossier partagé
6. Configurer clientSAMBA2 (Linux) par l’outil mount pour accéder au dossier partagé
138
7. Configurer clientSAMBA2 (Linux) par le fichier /etc/fstab pour accéder au dossier partagé
Solution : Vidéo
SAMBA Simple avec
authentification

Formateur DRAOUI Hassan 139


Niveau avancé

Formateur DRAOUI Hassan 140


Autres options de partage samba : Formateur DRAOUI Hassan

 writable = yes/no :
 browseable = yes/no :
 valid users = hassan, med, @admins, @utilisateurs :
les utilisateurs et les groupes autorisés à accéder au partage
 write list = hassan, @admins :
les utilisateurs et les groupes qui ont le droit d’écriture sur le partage
force user = nouser :
nouser sera l’utilisateur propriétaire des fichiers/dossiers crées dans le
partage
force group = nogroup :
nogroup sera le groupe propriétaire des fichiers/dossiers crées dans le
partage
create mask = 0766 :
les droits appliqués aux nouveaux fichiers crées dans le partage
directory mask=755 :
les droits appliqués aux nouveaux dossiers crées dans le partage
141
TP : SAMBA avec des permissions différentes
Soit le réseau suivant :

1. Configurer l’adresse IP sur toutes les machines (par fichier) en testant leur connectivité
2. Créer les quatre utilisateurs système suivants : tri101, tri102, tri201 et tri202
3. Créer le répertoire /mon-partage4 en le partageant par SAMBA comme suit :
a. Accès en lecture seule pour : les utilisateurs tri101 et tri102 et le groupe hassan
b. Accès en écriture pour : les utilisateurs tri201 et tri202 et le groupe root
4. Donnez aux utilisateurs tri101,tri102,tri201 et tri202 des mots de passe SAMBA .
5. Configurer clientSAMBA1 (Windows) pour accéder au dossier partagé (tester l’écriture)
6. Configurer clientSAMBA2 (Linux) pour accéder au dossier partagé en utilisant les 3
142
méthodes (tester l’écriture) Formateur DRAOUI Hassan
Solution : Vidéo
SAMBA avec des
permissions
différentes
Formateur DRAOUI Hassan 143
EFF pratique 2013 V31

Formateur DRAOUI Hassan 145


Solution Vidéo :
Pratique EFF 2013
V31

Formateur DRAOUI Hassan 146


Solution Vidéo :
Complément
Pratique EFF 2013
V31
Formateur DRAOUI Hassan 147
CHAPITRE VIII:
service FTP

Formateur DRAOUI Hassan 148


I- Serveur FTP sans authentification (accès anonyme)
Pré-requis :
Désactiver le pare-feu SELinux par la commande suivante :
#setenforce 0

1. Vérifier que le package vsftpd est installé


2. Redémarrer le service FTP
#service vsftpd restart

Formateur DRAOUI Hassan 150


II- Client FTP sans authentification (accès anonyme)
Pré-requis :
$ping serveurFTP

Méthode 1 : graphiquement (par le navigateur sur ftp://serveurFTP)

Méthode 2 :
#ftp serveurFTP
à l’invite taper le nom d’utilisateur : anonymous ou ftp
à l’invite taper n’importe quel mot de passe

NB : Si le package ftp n’est pas installé, installer-le d’abord :


#rpm -ivh Chemin_du_package

Formateur DRAOUI Hassan 151


III- Serveur FTP avec authentification
Pré-requis :
Désactiver le pare-feu SELinux par la commande suivante :
#setenforce 0

1. Vérifier que le package vsftpd est installé


2. Modifier le fichier de configuration /etc/vsftpd/vsftpd.conf :
#vim /etc/vsftpd/vsftpd.conf
…………………….
anonymous_enable = NO
3. Redémarrer le service FTP
#service vsftpd restart

Formateur DRAOUI Hassan 152


VI- Client FTP avec authentification
Pré-requis :
$ping serveurFTP

Méthode 1 : graphiquement (par le navigateur sur ftp://serveurFTP)

Méthode 2 :
$ftp serveurFTP
 à l’invite taper le nom d’utilisateur : utilisateur du système (hassan
par exemple)
 à l’invite taper son mot de passe (par exemple 123456)

Formateur DRAOUI Hassan 153


Exercice TP : FTP Simple sans et avec authentification
Soit le réseau suivant :

1. Configurer l’adresse IP sur toutes les machines (par fichier) en testant leur connectivité
2. Configurer le service FTP anonyme sur serveurFTP.
3. Créer des fichiers et des dossiers dans le dossier /var/ftp (#cat /etc/passwd | grep ftp)
4. Sur clientFTP1 (Windows) accéder au serveur FTP en utilisant un navigateur et ensuite la
ligne de commande . Afficher le répertoire courant et tester (téléchargement/chargement)
5. Créer l’utilisateur système test-ftp en lui donnant le mot de passe : passftp
6. Modifier la configuration du serveur FTP pour n’accepter pas les connexions anonymes
7. Sur clientFTP2 (Linux) accéder au serveur FTP en utilisant un navigateur et ensuite le Shell.
154
Afficher le répertoire courant et tester (téléchargement/chargement) Formateur DRAOUI Hassan
Solution Vidéo :
FTP Simple sans et
avec authentification

Formateur DRAOUI Hassan 155


Services d’accès distant:
Telnet et SSH

Formateur DRAOUI Hassan 158


CHAPITRE IX:
service Telnet

Formateur DRAOUI Hassan 159


I- Configuration du serveur TELNET :
1. Vérifier que le super-service xinetd est installé
2. Vérifier que le package telnet-server est installé
3. Activer le service telnet dans le fichier /etc/xinetd.d/telnet
#vim /etc/xinetd.d/telnet
service telnet {
……..
disable = no
………
}
4. Redémarrer le service xinetd

II- Test à partir d’un client TELNET Linux:

$telnet serveurTELNET

NB: à l’invite donner le nom d’un utilisateur (présent sur le serveur


Telnet) et son mot de passe 160
Formateur DRAOUI Hassan
Niveau avancé

Formateur DRAOUI Hassan 161


Options avancées :
- Modifiez le fichier de configuration de TELNET pour restreindre
l’accès à la machine ayant l’adresse 192.168.1.2 :

#vi /etc/xinetd.d/telnet
service telnet {
…………..
only_from = 192.168.1.2
}

#services xinetd restart

Formateur DRAOUI Hassan 162


- Modifiez le fichier de configuration de TELNET pour écouter sur le
numéro de port 2017 en n’oubliant pas de le modifier aussi dans le
fichier /etc/services :

#vi /etc/xinetd.d/telnet
service telnet {
…………..
port = 2017
}
#vi /etc/services
…………..
telnet 2017/tcp
telnet 2017/udp
…………..
#services xinetd restart
- Testez la connectivité à partir d’une machine cliente ?
$telnet serveurTELNET 2017
163
Formateur DRAOUI Hassan
Recherche avancée :
1. D’après le fichier /etc/xinetd.d/telnet :
a. Quel est le type de socket utilisé par le serveur telnet ?
b. Le serveur telnet fonctionne-il en mono-threading ou en multi-
threading ?
2. Pour Interdire tous les accès dans TCP-Wrapper :
- Commentez toutes les lignes dans /etc/hosts.allow
- Mettre dans /etc/hosts.deny la ligne suivante :
ALL:ALL

3. Pour Vérifiez que rien dans TCP-Wrapper n'interdit l'accès au


service (telnet … ):
- Commentez toutes les lignes dans /etc/hosts.deny
- Mettre dans /etc/hosts.allow
ALL:ALL

3. Pour démarrer le service telnet avec le démarrage du système :


# chkconfig telnet on Formateur DRAOUI Hassan 164
Exercice TP : TELNET Formateur DRAOUI Hassan 165

1. Configurer l’adresse IP sur toutes les machines (par fichier) en


testant leur connectivité
2. Activer le service TELNET sur serveurTelnet et désactiver les
pare-feux
3. Sur clientTelnet1 , Ouvrir une session Telnet sur serveurTelnet en
utilisant le compte d’un utilisateur système non root (interdit sur
serveur Telnet) puis basculer vers root
4. Configurer le service TELNET sur serveurTelnet pour n’accepter
que les connexions depuis clientTelnet2 sur le port 2020
5. Tester sur les clients clientTelnet1 et clientTelnet2
Solution Vidéo :
TELNET

Formateur DRAOUI Hassan 166


CHAPITRE X:
service SSH

Formateur DRAOUI Hassan 167


I- Configuration du serveur SSH par clés (RSA ou DSA):

Pré-requis :
Désactiver le pare-feux iptables

1. Vérifier que le package openssh-server est installé


2. Redémarrer le service sshd

Formateur DRAOUI Hassan 168


II- Configuration d’un client SSH par clés :
Formateur DRAOUI Hassan 169

1. Créer les clés (privée/publique) de type RSA ou DSA :

util3@Client3$ ssh-keygen ( -t rsa )

2. Copier la clé publique du client sur le serveur SSH et la définir en tant


que clé autorisée sur le serveur SSH (…/.ssh/authorised_keys) :

util3@Client3$ ssh-copy-id -i ~/.ssh/id_rsa.pub root@serveurSSH

NB: Dans ce cas l’utilisateur ayant la clé ~/.ssh/id_rsa.pub (par


exemple util3) aura l’accès en tant que root sur le serveur SSH

3. Accès depuis le client :

util3@Client3$ ssh root@serveurSSH

NB: util3 doit rentrer directement sans demande ni de login ni de MdP


Exercice TP : SSH Formateur DRAOUI Hassan 170

1. Configurer l’adresse IP sur toutes les machines (par fichier) en testant leur connectivité
2. Vérifier que openssh-server est installé sur serveurSSH et démarrer le service sshd et y
créer l’utilisateur util-serv1 (avec le mot de passe passserv1)
3. Sur clientSSH1(Windows) utiliser Putty et essayer d’accéder en SSH sur serveurSSH
4. Sur clientSSH2(Linux) créer l’utilisateur util-client2 (avec le mot de passe passclient2)
5. Ouvrir une session pour util-client2 et créer des clés RSA et copier la clé publique sur
serveurSSH en l’autorisant pour l’utilisateur util-serv1
6. Sur serveurSSH refuser les accès SSH par mot de passe (/etc/ssh/sshd_config )
7. Sur clientSSH2(util-client2), accéder en SSH sur serveurSSH (util-serv1) sans mot de passe
Solution Vidéo :
SSH

Formateur DRAOUI Hassan 171


EFF Pratique 2010 - V4
SSH

Formateur DRAOUI Hassan 173


EFF Pratique 2018
SSH

Formateur DRAOUI Hassan 174


Application : EFF 2018
# vim /etc/ssh/sshd_config
Protocol 2
Port 2222
PasswordAuthentication yes
MaxSessions 5
MaxAuthTries 4
PermitRootLogin no
AllowUsers Admin1
DenyUsers Stagiaire1
Banner MyBanner
######Autres
#AllowGroups hassan
#DenyGroups root

# vim /etc/ssh/MyBanner
#########################################################
# …… #
######################################################### 178
Formateur DRAOUI Hassan
EFF 2018  Tests :
# ssh root@127.0.0.1 -p 2222
# ssh hassan@127.0.0.1 -p 2222
# tail -22 /var/log/secure

...User root from localhost not allowed because a group is listed in


DenyGroups
...input_userauth_request: invalid user root
...password check failed for user (root)
...pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0
tty=ssh ruser= rhost=localhost user=root
...Failed password for invalid user root from 127.0.0.1 port 60874 ssh2
...Connection closed by 127.0.0.1
...Accepted password for hassan from 127.0.0.1 port 60875 ssh2
...pam_unix(sshd:session): session opened for user hassan by (uid=0)
-----------------------------------------------------------------

Formateur DRAOUI Hassan 179


Services avancés 1:
HTTP

Formateur DRAOUI Hassan 180


CHAPITRE XII:
service HTTP

Formateur DRAOUI Hassan 181


I - Site par défaut
1. Installer le service web (apache)
#yum install httpd

2. Démarrer le service httpd


#service httpd start

 Tester localement :
Ouvrez Firefox et tapez : http://localhost (ou http://127.0.0.1)

Formateur DRAOUI Hassan 182


II - Création d’un site web simple dans l’emplacement par défaut
Préparation :
- Sauvegarder le fichier de configuration initial de httpd :
#cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.old

- Donner au serveur l’adresse 192.168.1.10

- Configurer la résolution de noms localement par le fichier « /etc/hosts »


pour résoudre les noms en adresse IP :
#vim /etc/hosts
192.168.1.10 www.tri.isgi

Formateur DRAOUI Hassan 183


1. #rpm -q httpd
2. Modifier de fichier de configuration web (apache)
#vim /etc/httpd/conf/httpd.conf

Listen 192.168.1.10:80

3. Créer un site web dans le répertoire de base par défaut (fichiers html):
#vim /var/www/html/index.html
"Bienvenue chez l’ISGI Laayoune"

4. Redémarrer le service httpd :


#service httpd restart

Formateur DRAOUI Hassan 184


Partie III : Création de 2 sites différents avec 2 adresses différentes
Préparation :
- Restaurer le fichier de configuration initial de httpd :
#cp /etc/httpd/conf/httpd.conf.old /etc/httpd/conf/httpd.conf
- Donner au serveur les adresses 192.168.1.12 et 192.168.1.13 :
#ifconfig eth1:0 192.168.1.12/24 up (par fichier !!!!!!)
#ifconfig eth1:1 192.168.1.13/24 up (par fichier !!!!!!)
- Configurer la résolution de noms localement par le fichier "/etc/hosts" :
#vim /etc/hosts
192.168.1.12 www.isgi.drps
192.168.1.13 www.ista.drps

- Créer les dossiers (déclarés ci-dessus) qui contiendront les deux sites :
#mkdir /var/www/html/isgi
#mkdir /var/www/html/ista
- Créer le contenu des sites dans chacun des dossiers ci-dessus :
#echo " Welcome to ISGI Laayoune " > /var/www/html/isgi/index.html
#echo " Welcome to ISTA Laayoune " > /var/www/html/ista/index.html
Formateur DRAOUI Hassan 185
1. #rpm -q httpd 186
Formateur DRAOUI Hassan

2. Modifier le fichier de configuration du serveur web :


#vim /etc/httpd/conf/httpd.conf
Listen *:80

<VirtualHost 192.168.1.12:80>
DocumentRoot /var/www/html/isgi
</VirtualHost>

<VirtualHost 192.168.1.13:80>
DocumentRoot /var/www/html/ista
</VirtualHost>

5. Redémarrer le service web


Partie IV : Création de 2 sites différents avec 2 ports différents
Préparation :
- Restaurer le fichier de configuration initial de httpd :
#cp /etc/httpd/conf/httpd.conf.old /etc/httpd/conf/httpd.conf
- Donner au serveur l’adresse 192.168.1.15
- Modifier le fichier /etc/hosts
#vim /etc/hosts
192.168.1.15 www.isgi.drps
192.168.1.15 www.ista.drps

- Créer le dossier qui contiendront les sites (les fichiers html)


#mkdir /var/www/html/isgi
#mkdir /var/www/htm l/ista
- Créer les fichiers des sites :
#vim /var/www/html/isgi/index.html
<h1> hello isgi </h1>
#vim /var/www/html/ista/inedex.html
<h1> hello ista </h1> 187
Formateur DRAOUI Hassan
1. #rpm -q httpd

2. Modifier le fichier de configuration web


#vim /etc/httpd/conf/httpd.conf
Listen 192.168.1.15:8080
Listen 192.168.1.15:80

<VirtualHost 192.168.1.15:8080>
DocumentRoot /var/www/html/isgi
</VirtualHost>

<VirtualHost 192.168.1.15:80>
DocumentRoot /var/www/html/ista
</VirtualHost>

3.Redémarrer le service web

Formateur DRAOUI Hassan 188


Partie V : Création de 2 sites différents avec le même port et la
même adresse IP
Préparation :
- Restaurer le fichier de configuration initial de httpd :
#cp /etc/httpd/conf/httpd.conf.old /etc/httpd/conf/httpd.conf
- Donner au serveur l’adresse 192.168.1.17
- Modifier le fichier /etc/hosts
#vim /etc/hosts
192.168.1.17 www.isgi.drps
192.168.1.17 www.ista.drps

- Créer les dossiers :


#mkdir /var/www/html/isgi
#mkdir /var/www/html/ista
- Créer les sites :
#vim /var/www/html/isgi/index.html
« Bienvenue ISGI - DRPS »
#cat « Bienvenue ISTA - DRPS » > /var/www/html/ista/index.html189
Formateur DRAOUI Hassan
1. #rpm -q httpd

2. Modifier le fichier de configuration web


#vim /etc/httpd/conf/httpd.conf

Listen 192.168.1.17:80
NameVirtualhost 192.168.1.17:80

<VirtualHost 192.168.1.17:80>
DocumentRoot /var/www/html/isgi
ServerName www.isgi.drps
</VirtualHost>
<VirtualHost 192.168.1.17:80>
DocumentRoot /var/www/html/ista
ServerName www.ista.drps
</VirtualHost>

3. Redémarrer le service web 190


Formateur DRAOUI Hassan
Exercice TP : APACHE

1. Configurer l’adresse IP sur toutes les machines (par fichier) en


testant leur connectivité
2. Vérifier si le package httpd est installé sur le serveur
3. Créer deux dossiers /var/www/html/tri et /var/www/html/tmsir et y
créer des fichiers index.html contenants des lignes différentes
4. Publier les deux sites WEB ci-dessus (pour www.tri.isgi et
www.tmsir.isgi )
5. Configurer le fichier /etc/hosts du la machine clientWEB pour
résoudre les noms www.tri.isgi et www.tmsir.isgi en 172.16.0.1 (S’il
n’y a pas de service DNS)
6. Tester les deux sites sur la machine clientWEB
191
NB: DirectoryIndex index.html Formateur DRAOUI Hassan
Solution Vidéo :
APACHE

Formateur DRAOUI Hassan 192


Services avancés 2:
MTA : postfix, sendmail
MDA : dovecot
(fetchmail)

Formateur DRAOUI Hassan 196


CHAPITRE XIII:
service SMTP par postfix

Formateur DRAOUI Hassan 197


I- Configurer le serveur SMTP pour le domaine tri.isgi :
1. #rpm -q postfix

2. #vim /etc/postfix/main.cf

77 myhostname = serveurSMTP
85 mydomain = tri.isgi

118 inet_interfaces = all

166 mydestination = ....., $mydomain

421 home_mailbox = Maildir/

3. #service postfix start

Formateur DRAOUI Hassan 198


NB:
pour configurer l’écoute sur les deux protocoles IPv4 et IPv6 :
#vim /etc/postfix/main.cf
inet_protocols = all

Formateur DRAOUI Hassan 199


II-Envoyer un email par l'outil TELNET (facultatif) :
$ telnet serveurSMTP 25
EHLO hassan
MAIL FROM: user1@tri.isgi
RCPT TO: user2@tri.isgi
DATA
Mail envoyé de USER1 à USER2

.
QUIT

NB: L’utilisateur user2 doit être


présent sur le serveur SMTP

Formateur DRAOUI Hassan 200


Vérification sur le serveur :
#cat /home/user2/Maildir/new/*

III-TROUBLESHOOTING
#tail /var/log/maillog

Formateur DRAOUI Hassan 201


Exercice TP : POSTFIX Simple
Soit le réseau suivant :

1. Configurer l’adresse IP sur toutes les machines (par fichier) en testant leur connectivité
2. Vérifier que le package « postfix » est installé et désactiver les pare-feux
3. Configurer le service SMTP pour le domaine « drps.ofppt »
4. Créer les utilisateurs :isgi1 et ista1
5. En utilisant l’outil telnet envoyer un mail de isgi1 à ista1 depuis le client

Formateur DRAOUI Hassan 202


Solution Vidéo :
POSTFIX

Formateur DRAOUI Hassan 203


Niveau avancé

Formateur DRAOUI Hassan 204


IV- Configurer le serveur SMTP pour accepter les courriels d’un
domaine drps.ofppt

#vim /etc/postfix/main.cf

166 mydestination = ....., $mydomain, drps

#service postfix restart

V- Autoriser le relayage (routage) des mails (en utilisant les


enregistrements MX)

#vim /etc/postfix/main.cf

mynetworks = …… , reseau1/masque1

Formateur DRAOUI Hassan 205


CHAPITRE XIV:
services POP3/IMAP
par dovecot

Formateur DRAOUI Hassan 207


I- Configurer DOVECOT pour servir les service POP3 et IMAP:
1. #rpm -q dovecot
2.
#vim /etc/dovecot/dovecot.conf
protocols = imap pop3
#listen = *

#vim /etc/dovecot/conf.d/10-mail.conf
mail_location = maildir:~/Maildir

#vim /etc/dovecot/conf.d/10-auth.conf
disable_plaintext_auth = no

#vim /etc/dovecot/conf.d/10-ssl.conf
#ssl = required
ssl = yes

3. #service dovecot restart 208


Formateur DRAOUI Hassan
Ou…………..
----------------------------------------------------
#vim /etc/dovecot/dovecot.conf
protocols = imap pop3
#listen = *
mail_location = maildir:~/Maildir
disable_plaintext_auth = no
ssl = yes
#service dovecot restart
----------------------------------------------------

Vérification
#netstat -tulpen | grep dovecot

Formateur DRAOUI Hassan 209


II- Récupérer les emails par l'outil TELNET (facultatif) :
$ telnet serveurPOP3 110
user user2
pass 123456
list
….
top 1 1
….
quit

NB:L’utilisateur user2 doit être présent sur le serveur POP3

Formateur DRAOUI Hassan 210


Exercice TP : DOVECOT Simple +POSTFIX
Soit le réseau suivant :

1. Configurer l’adresse IP sur toutes les machines (par fichier) en testant leur connectivité
2. Vérifier que le package « postfix » est installé et désactiver les pare-feux
3. Configurer le service SMTP pour le domaine « drps.ofppt »
4. Créer les utilisateurs sur le serveur : isgi2 et ista2 en leur donnant des mots de passe
5. En utilisant l’outil telnet envoyer un mail de isgi2 à ista2 depuis le client
6. Vérifier que le package « dovecot » est installé
7. Configurer « dovecot » pour les services POP3 et IMAP
8. En utilisant l’outil telnet, sur le client, récupérer les email de ista2 depuis le serveur POP3

Formateur DRAOUI Hassan 211


Services avancés 3:
LDAP

Formateur DRAOUI Hassan 212


CHAPITRE XI:
service LDAP

Formateur DRAOUI Hassan 213


I – Configuration simple du serveur LDAP

#rpm -q openldap openldap-clients openldap-severs

#locate slapd.conf ( /usr/share/openldap-servers/slapd.conf.obsolete )


#cp /usr/share/openldap-servers/slapd.conf.obsolete /etc/openldap/slapd.conf
#rm -Rf /etc/openldap/slapd.d/

#slappasswd
…………..
resultat_slappasswd

#vim /etc/openldap/slapd.conf
by dn.exact="cn=Manager,dc=tri,dc=isgi" read (ligne 107)
suffix "dc=tri,dc=isgi" (ligne 115)
rootdn "cn=Manager,dc=tri,dc=isgi" (ligne 117)
rootpw resultat_slappasswd

#service slapd start

Formateur DRAOUI Hassan 214


II– Configuration du client LDAP

#rpm -q openldap openldap-clients

#vim /etc/openldap/ldap.conf
BASE dc=tri,dc=isgi
URI ldap://Adresse_Du_Serveur_LDAP

Exemple de recherche :
Affichage de la base de données LDAP complète :
#ldapsearch -x -W -D "cn=Manager,dc=tri,dc=isgi"

-x :
-W :
-D :

Formateur DRAOUI Hassan 215


III – Remplissage de la base de données LDAP (sur le serveur) :
#vim /home/hassan/Bureau/peuplement_min.ldp
dn: dc=tri,dc=isgi
objectClass: domain

dn: ou=utilisateurs,dc=tri,dc=isgi
objectClass: organizationalUnit

dn: cn=admin2,ou=utilisateurs,dc=tri,dc=isgi
objectClass: organizationalRole

dn: cn=user1,ou=utilisateurs,dc=tri,dc=isgi
objectClass: person
sn: user1

#ldapadd -W -D cn=Manager,dc=tri,dc=isgi -xf /home/hassan/Bureau/peuplement_min.ldp

-f : lire les opérations à faire depuis le fichier (devant cette option)


-c : Pour ignorer les erreurs (do not stop on errors)

NB :refaites la recherche : #ldapsearch -x -W -D "cn=Manager,dc=tri,dc=isgi" et contempler


les attributs ajoutés automatiquement par openldap (dc, ou , cn)
Formateur DRAOUI Hassan 216
VI – Modification/Suppression de la base de données LDAP (sur le serveur) :
Modification :
#vim /home/hassan/Bureau/modif.ldp
dn: cn=user1,ou=utilisateurs,dc=tri,dc=isgi
changetype: modify
replace: telephoneNumber
telephoneNumber: 0444444444
#ldapmodify -W -D cn=Manager,dc=tri,dc=isgi -xf /home/hassan/Bureau/modif.ldp

Suppression :
#ldapdelete -W -v -D cn=Manager,dc=tri,dc=isgi -x
cn=user1,ou=utilisateurs,dc=tri,dc=isgi
V – Recherche dans la base de données LDAP (sur les clients) :
Syntaxe générale :
$ldapsearch -x -b dn [attribut=valeur]

Exemples de recherche :
$ldapsearch -x -b “dc=tri,dc=isgi”
$ldapsearch -x -b “ou=utilisateurs,dc=tri,dc=isgi”
$ldapsearch -x -b “dc=tri,dc=isgi” “objectClass=person”
$ldapsearch -x -b “dc=tri,dc=isgi” “cn=admin2”

-b : d’où on doit commencer la recherche


“objectClass=person”, “cn=admin2” : exemples de filtres de recherche (attribut=valeur)217
Formateur DRAOUI Hassan
Exercice TP : LDAP Simple
Soit le réseau suivant :

1. Configurer l’adresse IP sur toutes les machines (par fichier) en testant leur connectivité
2. Vérifier que les packages de « openldap » sont installés et désactiver les pare-feux
3. Configurer le service LDAP pour le domaine « drps.ofppt »
4. Créer les objets suivants : Unité organisationnel :ISGI, les utilisateurs :TRI1 et TRI2 dans
l’OU ISGI
5. Configurer le client LDAP sur la machine clientLDAP et tester en affichant la base de
données LDAP complète

Formateur DRAOUI Hassan 218


Solution Vidéo :
LDAP avec fichier de
configuration

Formateur DRAOUI Hassan 219


EFF Pratique 2013
V31

Formateur DRAOUI Hassan 220


Solution Vidéos :
EFF Pratique 2013
V31

Formateur DRAOUI Hassan 221


OpenLDAP pour
l’authentification

Formateur DRAOUI Hassan 222


Liste non-exhaustive des attributs (Authentification!!!!!):
dn: uid=admin3,ou=utilisateurs,dc=tri,dc=isgi
#uid exige inetOrgPerson
objectClass: inetOrgPerson
# inetOrgPerson exige sn
sn: admin33
#
objectClass: posixAccount
# posixAccount exige uid,cn,uidNumber,gidNumber,homeDirectory
cn: admin3
uidNumber: 1111
gidNumber: 1111
homeDirectory: /home/admin3
# loginShell est un attribut facultatif qui s’utilise seulement si posixAccount existe
loginShell: /bin/bash
#
userPassword: secret3

dn: cn=admin3,ou=utilisateurs,dc=tri,dc=isgi
objectClass: posixGroup
gidNumber: 1111
#posixGroup exige seulement gidNumber
cn: admin3
Formateur DRAOUI Hassan 223
memberUid: admin3
Clients LDAP : authentification par LDAP
Configuration du client d’authentification:
#rpm -q sssd
#rpm -qa | grep authconfig

#authconfig --enableldap --enableldapauth --ldapserver=ldap://192.168.1.1 \


--ldapbasedn="dc=tri,dc=isgi" --enablemkhomedir --update
=========#authconfig-tui
=========#authconfig-gtk ( ou # system-config-authentication )
NB: Après l’exécution de cette commande vérifier le contenu de /etc/openldap/ldap.conf

Tests depuis un client (on va voir LDAPS plus tard ):


$id admin3
$su -l admin3 : ne se connecte pas pour des raison de sécurité (exige LDAPS)
#su -l admin3 : se connecte sans demander de MdP ( -l : se connecter au répertoire personnel)
$getent passwd
$getent passwd admin3

NB: Vous pouvez ajouter des paramètres de authconfig sans affecter les autres paramètres :
#authconfig --enablemkhomedir --update
#authconfig --disableldaptls --update

Formateur DRAOUI Hassan 224


Niveau avancé :
Autres Attributs

Formateur DRAOUI Hassan 227


Liste non-exhaustive des attributs :
dn: dc=tri,dc=isgi
dc: tri
objectClass: top
objectClass: domain
objectClass: domainRelatedObject
associatedDomain: tri.isgi
description: c'est le domaine TRI.ISGI

dn: cn=admin4,ou=utilisateurs,dc=tri,dc=isgi
objectClass: simpleSecurityObject
objectClass: organizationalRole
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: shadowAccount
cn: admin4
sn: admin44
uid: admin4
userPassword: secret4
loginShell: /bin/bash
uidNumber: 1111
gidNumber: 1111
homeDirectory: /home/admin4
Formateur DRAOUI Hassan 228
dn: cn=group1,ou=utilisateurs,dc=tri,dc=isgi
objectClass: posixGroup
gidNumber: 1111
memberuid: cn=admin4,ou=utilisateurs,dc=tri,dc=isgi

Formateur DRAOUI Hassan 229


CHAPITRE XV:
Sauvegarde et restauration
(tar, cpio, rsync, dd)

Formateur DRAOUI Hassan 231


I- Sauvegarde et restauration :
La sauvegarde est la duplication de données importantes dans un autre emplacement pour pouvoir
les restaurer complètement ou en partie en cas de perte.

Types de sauvegarde :
- Complète : On sauvegarde toutes les données.
- Différentielle : On sauvegarde seulement les fichiers modifiés depuis la dernière sauvegarde
complète.
(on ignore les autres sauvegardes même qu'ils sont plus récentes).
- Incrémentielle : On sauvegarde seulement les fichiers modifiés depuis la dernière sauvegarde.

Remarque importante:
La première sauvegarde doit être toujours complète

Procédures:
- Sauvegarde Complète : lors d'une sauvegarde complète, on met le bit d'archive à 0 pour tous les
fichiers.
- Sauvegarde Différentielle : lors d'une sauvegarde Différentielle, on met le bit d'archive reste
inchangé pour tous les fichiers.
- Sauvegarde Incrémentielle : lors d'une sauvegarde Incrémentielle, on met le bit d'archive à 0
pour les fichiers modifiés qui ont été sauvegardés seulement.
NB: La modification d'un fichier met (ou création) met le bit d'archive à 1

Formateur DRAOUI Hassan 232


Restauration :
- Sauvegarde Complète : on récupère la dernière sauvegarde complète.
- Sauvegarde Différentielle : on récupère la dernière sauvegarde complète puis la dernière
sauvegarde différentielle.
-Sauvegarde Incrémentielle : on récupère la dernière sauvegarde complète puis toutes les
sauvegardes incrémentielles dans l'ordre.

Avantages :
- Sauvegarde Complète :
- Sauvegarde Différentielle :
-Sauvegarde Incrémentielle :

Inconvénients :
- Sauvegarde Complète :
- Sauvegarde Différentielle :
-Sauvegarde Incrémentielle :

Formateur DRAOUI Hassan 233


Stratégie de sauvegarde :
chaque organisme doit éventuellement combiner plusieurs types sauvegarde pour répondre à ces
contraintes:
- criticité des données
- périodicité des modifications
- quantité des données
- le temps des sauvegardes
- ...
Ces contraintes aideront à réponde au questions suivantes :
- Quoi sauvegarder ?
- Sur quoi sauvegarder (Support) ?
- Quand sauvegarder ?
- Quel type de sauvegarde ?
-...

Exemple de stratégie de sauvegarde :


- Sauvegarde complète au début de chaque semaine(Lundi)
- Sauvegarde différentielle au début de chaque jour (à 8h)
- Des sauvegardes incrémentielles à la tête de chaque heure ouvrable (de 9h à 17h)

Formateur DRAOUI Hassan 234


II- Sauvegarde par TAR :
Syntaxe :
-->Archivage simple (sans compression)
$tar -c -f NomArchive.tar source1 source2 ...

-->Afficher le contenu d'un archive :


$tar -t -f NomArchive.tar

-->Extraire un archive :
$tar -x -f NomArchive.tar

Options importantes :
-z, --gzip : compresse l'archive par GZIP
-j, --bzip2 : compresse l'archive par BZIP2
-J, --xz : compresse avec double compression (!!!!!gzip et bzip2)

NB: utiliser la commande "time" pour voir le temps d'éxécution de chaque commande
Autres options importantes :
-->Archiver les données dont les chemins se trouvent dans un fichier:
$tar -c -f NomArchive.tar --files-from=CheminDuFichier
-->Ajouter des fichiers à un archive existant (-r, --append):
$tar --append -f NomArchive.tar source3
-->Ajouter d'autres archives à un archive existant(-A, --catenate, --concatenate):
$tar -Af NomArchive.tar AutreArchive.tar Formateur DRAOUI Hassan 235
Exemples
-->Archivage simple (sans compression)
tar [-vv] -cf Mon-archive1.tar source1 source2
tar -tf Mon-archive1.tar
tar -xf Mon-archive1.tar

-->Archivage avec compression gzip (-z, --gzip)


tar -zcvf Mon-archive2.tgz source1
tar -ztvf Mon-archive2.tgz
tar -zxvf Mon-archive2.tgz

-->Archivage avec compression bzip2 (-j, --bzip2)


tar -jcvf Mon-archive3.tar.bz2 source1
tar -jtvf Mon-archive3.tar.bz2
tar -jxvf Mon-archive3.tar.bz2

-->Archivage avec double compression ( -J, --xz )


tar --xz -cvf Mon-archive4.tar.xz source1
tar --xz -tvf Mon-archive4.tar.xz
tar --xz -xvf Mon-archive4.tar.xz

-->Comparer les tailles :


$ls -lrth
Formateur DRAOUI Hassan 236
Quelques options de tar :
#man tar
--delete : supprimer des fichiers d’une archive
-f, --file=ARCHIVE
-r, --append
-A, --catenate, --concatenate
-c, --create
--add-file=FICHIER
-t, --list
-u, --update
-g, --listed-incremental=FICHIER

Formateur DRAOUI Hassan 237


-->Archivage incrémentiel (-g, --listed-incremental=FICHIER):
On utilise un fichier de snapshot (META) d'extension snar par exemple (snar = snapshot + tar) :
- Si le fichier n'existe pas encore, la commande crée une sauvegarde complète
- Sinon, la commande crée une sauvegarde incrémentielle et met à jour le fichier du snapshot

Exemple :

Sauvegarde :
mkdir /source
echo fichier1 > /source/fichier1
echo fichier2 > /source/fichier2
tar -cvf Mon-archive.1.tar /source -g Mon-archive.snar
echo fichier3 > /source/fichier3
tar -cvf Mon-archive.2.tar /source -g Mon-archive.snar
echo fichier1-bis >> /source/fichier1
tar -cvf Mon-archive.3.tar /source -g Mon-archive.snar
-------------------------------------------------------------------------------
rm -rf /source/fichier2
tar -cvf Mon-archive.4.tar /source -g Mon-archive.snar

Vérifications
#ls -lrth
#tar -tvf Mon-archive.x.tar Formateur DRAOUI Hassan 238
Restauration :

rm -rf /source
tar -xvf Mon-archive.1.tar -g /dev/null
tar -xvf Mon-archive.2.tar -g /dev/null
tar -xvf Mon-archive.3.tar -g /dev/null
-----------------------------------------------------
tar -xvf Mon-archive.4.tar
cat /source/fichier2
tar -xvf Mon-archive.4.tar -g /dev/null
cat /source/fichier2

Formateur DRAOUI Hassan 239


-->Astuce pour faire un archivage différentiel par TAR:

Exemple:

Sauvegarde
mkdir /source
echo fichier1 > /source/fichier1
echo fichier2 > /source/fichier2
tar -cvf Mon-archive.1.tar /source -g Mon-archive.snar
cp Mon-archive.snar Mon-archive.snar.1
echo fichier3 > /source/fichier3
tar -cvf Mon-archive.2.tar /source -g Mon-archive.snar.1
cp Mon-archive.snar Mon-archive.snar.1
echo fichier1-bis >> /source/fichier1
tar -cvf Mon-archive.3.tar /source -g Mon-archive.snar.1
cp Mon-archive.snar Mon-archive.snar.1
rm -rf /source/fichier2
tar -cvf Mon-archive.4.tar /source -g Mon-archive.snar.1
cp Mon-archive.snar Mon-archive.snar.1

Restauration :
tar -xvf Mon-archive.1.tar -g /dev/null
tar -xvf Mon-archive.4.tar -g /dev/null
Formateur DRAOUI Hassan 240
III- Sauvegarde par RSYNC
Syntaxe :
#rsync -a source destination

Remarque :
#rsync -a source/ destination : sauvegarde les données directement dans la destination
#rsync -a source destination : créer un dossiers nommé "source" dans la destination

Exemples
mkdir /rsync
touch /rsync/{1.txt,2.mp3,3.mp4}
mkdir -p /rsync/{doss1,doss2,doss3}
mkdir /rsync2
rsync -avr /rsync/ /rsync2/
rm -rf /rsync/doss3
rsync -avr --delete /rsync/ /rsync2/
rsync -avr --include '*/' --include '*.txt' --exclude '*' /rsync/ /rsync2/
rsync -avr --delete-excluded --include '*/' --include '*.txt' --exclude '*' /rsync/ /rsync2/

options :
-a: archive (ie archiver)
-r : recursive
-m : ignorer les dossiers vides
--delete-excluded : supprimer les fichiers/dossiers exclus de la destination 241
Formateur DRAOUI Hassan
IV- Sauvegarde par CPIO
Syntaxe :
--> Archivage :
#"commande retournant des fichiers/dossiers" | cpio -o > NomArchive.cpio
ou
#"commande retournant des fichiers/dossiers" | cpio -o -F NomArchive.cpio

--> Extraction :
#cpio -i < NomArchive.cpio
ou
#cpio -i -F NomArchive.cpio

--> Afficher le contenu d'un archive CPIO:


#cpio -it < NomArchive.cpio
ou
#cpio -it -F NomArchive.cpio

Formateur DRAOUI Hassan 242


Exemples:
--> Archivage
#cd ~
#ls | cpio -o > NomArchive.cpio

--> Afficher le contenu d'un archive CPIO:


#cpio -it -F NomArchive.cpio

--> Extraction :
mkdir /cpio
cd /cpio/
#cpio -i < ~/NomArchive.cpio
#ls

Autres Exemples:
#find /home | cpio -o --format=tar -F username@ServerBackupIP:/dev/sdb \
--rsh-command=/usr/bin/ssh
#find / -print -depth | cpio -ov > FichiersSurLaRacine.cpio
#find . -iname "*.txt" | cpio -ov -H tar > FichiersTeste.tar

Formateur DRAOUI Hassan 243


--> Compression et décompression d'un archive CPIO :
#find / -print -depth | cpio -ov | gzip > FichiersSurLaRacine.cpio.gz
#gunzip FichiersSurLaRacine.cpio.gz && cpio -i < FichiersSurLaRacine.cpio
ou
#gunzip -c FichiersSurLaRacine.cpio.gz | cpio -i

options:
-H, --format=
-d

Formateur DRAOUI Hassan 244


V- Sauvegarde par DD
Syntaxe :
--> Archivage par Blocks (octets) :
#dd if=FichierSource of=FichierDestination [bs=TailleDuBlock count=NbrDeBlocks]

--> Extraction par Blocks (octets) :


Interchanger les fichiers source et destination

Exemples :
--> Sauvegarder le MBR du premier disque dur:
#dd if=/dev/sda of=FichierDestination1 bs=512 count=1
--> Sauvegarder le fichier /etc/hosts :
#dd if=/etc/hosts of=FichierDestination2
--> Sauvegarder la première partition du deuxième disque dur :
#dd if=/dev/sdb1 of=FichierDestination3
--> Copier CD (avec METADONNEES=boot...) :
#dd if=/dev/cdrom of=FichierDestination4.iso

Formateur DRAOUI Hassan 245


CHAPITRE XVI:
Programmation des tâches
(cron, anacron, at)

Formateur DRAOUI Hassan 246


I- Service CRON

Le service cron permet la programmation de tâches périodiques synchrones (à une minute près).
Il fonctionne à l’aide d’une table, appelée une crontab qui est un simple fichier texte.

Pour programmer une tâche périodique :


-$crontab -e : commande qui va ouvrir (créer) la table crontab, pour l’utilisateur en cours,
contenant des tâches périodiques ( le fichier est dans /var/spool/cron/ portant le nom
d’utilisateur).
-/etc/crontab : fichier contenant les tâches système (Obsolète, remplacé par /etc/anacrontab)
-/etc/cron.d/ : dossier contenant des tables crontab système pour les tâches périodiques de
différents utilisateurs

Formateur DRAOUI Hassan 247


Explication de la syntaxe crontab (à partir du fichier /etc/crontab )

Utilisez le format suivant pour les valeurs périodiques :


- Valeur : une seule valeur, Ex : 5 dans le champ minute signifie la cinquième minute.
- Valeur1,..,ValeurN :plusieurs valeurs, Ex : 4,7 dans le champ mois pour avril et juillet.
- Valeur1-ValeurN : intervalle, Ex : 1-5 dans le champ jour de la semaine signifie du lundi au
vendredi (jours ouvrables ).
- * : toutes les valeurs possibles, Ex : * dans le champ jour du mois signifie tous les jours du mois.
- */Valeur : chaque passage de la durée "valeur", Ex : */5 dans le champ heure signifie chaque
5 heures.
-@yearly, @monthly, @daily, @hourly, @reboot (au démarrage) Formateur DRAOUI Hassan 248
Exemples :
-Exécution chaque minute :
* * * * * echo "1min passed" >> /root/cron-root
-Exécution chaque 2 minutes :
*/2 * * * * echo "+2min" >> /home/hassan/cron-hassan

- Exécution deux fois par heure à 17min et à 34min:


17,34 * * * * -------------

-Exécution à 17h00 pendant les jours ouvrables (Lundi à Vendredi)


0 17 * * 1-5 /chemin/vers/mon-script.sh

-
25 8-18 * 9-12,1-7 1-6 tar -cf /home/hassan/cron.tar ~/Bureau/

Formateur DRAOUI Hassan 249


Droit d’exécution de taches planifiées pour les utilisateurs:

-Liste noir : /etc/cron.deny (/etc/cron.d/cron.deny)


-Existe et vide par défaut
-Contient la liste des utilisateurs qui ne peuvent pas utiliser cron
-Format : nom utilisateur par ligne

-Liste blanche : /etc/cron.allow (ou /etc/cron.d/cron.allow)


-Absent par défaut
-Contient la liste des utilisateurs qui peuvent utiliser cron
-Format : nom utilisateur par ligne
-Dans ce cas la liste cron.deny est ignorée

-Si /etc/cron.allow existe et est vide : seul l’utilisateur root est autorisé.

Formateur DRAOUI Hassan 250


Informations utiles :
-Les fichiers crontabs sont sauvés dans /var/spool/cron
-Lister les crontabs actives : $ crontab -l
-Supprimer la crontab active : $ crontab -r
- La configuration crontab générale pour le système est dans /etc/crontab et les fichiers
/etc/cron.*

Formateur DRAOUI Hassan 251


Obsolète (remplacé par /etc/anacrontab )
Exemple du fichier crontab système (/etc/crontab) :
La configuration crontab générale pour le système est dans /etc/crontab.
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly

Ici tous les jours à 4h02 du matin run-parts /etc/cron.daily est exécuté. Le script run-parts
accepte en paramètre un répertoire et exécute tous les programmes présents dans ce répertoire.

# ls /etc/cron.daily/
cups makewhatis.cron prelink logrotate mlocate.cron readahead.cron tmpwatch

Parmi les programmes présents ici :


-logrotate qui permet d’effectuer des sauvegardes et de renommer des fichiers logs et des
journaux du système afin que ceux-ci ne deviennent pas inexploitables à cause de leur taille.
-tmpwatch est chargé de nettoyer le système des fichiers inutilisés (dans /tmp par exemple).
252
Formateur DRAOUI Hassan
Extrait de l’aide de la commande cron :
$man cron :

……………….
Cron searches /var/spool/cron for crontab files which are named after accounts in
/etc/passwd; The found crontabs are loaded into the memory. Cron also searches for
/etc/anacrontab and any files in the /etc/cron.d directory, which have a different for‐
mat (see crontab(5)). Cron examines all stored crontabs and checks each job to see if
it needs to be run in the current minute. When executing commands, any output is
mailed to the owner of the crontab (or to the user specified in the MAILTO environment
variable in the crontab, if such exists). Any job output can also be sent to syslog by
using the -s option.
………
/etc/crontab
system crontab. Nowadays the file is empty by default. Originally it was usu‐
ally used to run daily, weekly, monthly jobs. By default these jobs are now run
through anacron which reads /etc/anacrontab configuration file. See
anacrontab(5) for more details.

/etc/cron.d/
directory that contains system cronjobs stored for different users.

/var/spool/cron
directory that contains user crontables created by the crontab command. 253
Formateur DRAOUI Hassan
II- Service ANACRON

Le service ancron permet la programmation de tâches périodiques asynchrones (à un jour près).


Il fonctionne à l’aide de la table /etc/anacrontab qui contient la liste des tâches programmées.
NB : anacron utilise cron pour fonctionner.

Formateur DRAOUI Hassan 254


Exemple

- Modifier les paramètres par défaut (pour tester) :


#vim /etc/anacrontab
---------------------------------------------------------------------------------------------------------------------
RANDOM_DELAY=1

#period in days delay in minutes job-identifier command


1 1 cron.daily nice run-parts /etc/cron.daily
7 25 cron.weekly nice run-parts /etc/cron.weekly
@monthly 45 cron.monthly nice run-parts /etc/cron.monthly
---------------------------------------------------------------------------------------------------------------------

- Créer le script :
#vim /etc/cron.daily/test-anacron.sh
---------------------------------------------------------------------------------------------------------------------
#!/bin/sh
mkdir -p /home/hassan/Bureau/test-anacron
echo Bonjour >> /home/hassan/Bureau/test-anacron/echo.txt
---------------------------------------------------------------------------------------------------------------------
#chmod +x /etc/cron.daily/test-anacron.sh

-Forcer l’ exécution des « anacrontab » pour tester (modifier le timestamp …)


#anacron -f (voir #tail /var/log/cron) Formateur DRAOUI Hassan 255
Extrait de l’aide de la commande anacron :

$man anacon :
………
Anacron reads a list of jobs from the /etc/anacrontab configuration file (see anacrontab(5)).
This file contains the list of jobs that Anacron controls. Each job entry specifies a period in
days, a delay in minutes, a unique job identifier, and a shell command.

For each job, Anacron checks whether this job has been executed in the last n days, where n is
the time period specified for that job. If a job has not been executed in n days or more, Anacron
runs the job's shell command, after waiting for the number of minutes specified as the delay
parameter.

After the command exits, Anacron records the date (excludes the hour) in a special timestamp
file for that job, so it knows when to execute that job again.

When there are no more jobs to be run, Anacron exits.

Formateur DRAOUI Hassan 256


Extrait de l’aide du fichier anacrontab :
$man anacontab :
………
DESCRIPTION
The /etc/anacrontab configuration file describes the jobs controlled by anacron(8). It
can contain three types of lines: job-description lines, environment assignments, or
empty lines.

Job-description lines can have the following format:

period in days delay in minutes job-identifier command

The period in days variable specifies the frequency of execution of a job in days.
This variable can be represented by an integer or a macro (@daily, @weekly, @monthly),
where @daily denotes the same value as the integer 1, @weekly the same as 7, and
@monthly specifies that the job is run once a month, independent on the length of the
month.

The delay in minutes variable specifies the number of minutes anacron waits, if neces‐
sary, before executing a job. This variable is represented by an integer where 0 means
no delay.

The job-identifier variable specifies a unique name of a job which is used in the log
files. Formateur DRAOUI Hassan 257
III- Service AT

Le service at permet la programmation de tâches non périodiques (ponctuelles) .

Syntaxe 1:
$at HHMM [MMJJAA]
$/bin/bash
$commande1
….
$commandeN
$<EOT> (Ctrl+D)

Syntaxe 2:
$at -t [[CC]YY]MMDDhhmm[.ss]

Syntaxe 3:
$at … -f FichierContenantDesCommandes

Autres commandes :
-La commande atq (at queue) permet de lister les tâches programmées :
-La commande atrm permet de supprimer une tâche :
$ atrm NumeroDeLaTache

NB : Les jobs (tâches) sont placées dans le répertoire /var/spool/at/ 258


Formateur DRAOUI Hassan
L’heure peut être formatée ainsi :
-HHMM ou HH:MM.
-L’heure peut être au format 24h
-ou 12h, à cet format, vous pouvez préciser AM (matin) ou PM (après midi).
- midnight (minuit), noon (midi), teatime (16h00), tomorrow.
- HHMM {MMJJAA, MM/JJ/AA, JJ.MM.AA} pour une date précise.
- now : maintenant.
-... +n minutes/hours/days/weeks : l’heure courante auquel on ajoute n
minutes/heures/jours/semaines.

NB: la commande batch permet de planifier des tâches selon l’utilisation du processeur (80%)
NB: pour vérifier le SHELL actuel : #cat /proc/$$/cmdline

$man at
…………………………
FILES
/var/spool/at
/var/spool/at/spool
/proc/loadavg
/var/run/utmp
/etc/at.allow
/etc/at.deny
Formateur DRAOUI Hassan 259
Exemples:

at 13:56
at 1356
at 13:59 051920
at 13:59 051921
at -t 2005201413
at now
at now +2 minutes
at now +2 weeks
at midnight
at noon
at teatime
at 03PM tomrrow
at 03PM + 30 minutes
batch
at 03AM + 30 minutes
ls -lrth /var/spool/at/

Formateur DRAOUI Hassan 260


CHAPITRE XVII:
Virtualisation par KVM

Formateur DRAOUI Hassan 261


1. Préparer KVM
--> Activer la virtualisation sur BIOS (ou Vmware)

--> Vérifier que le(s) processeur(s) supporte la virtualisation :


# grep -E '(vmx|svm)' /proc/cpuinfo

--> Installer l'hyperviseur KVM


# yum install -y qemu-kvm libvirt-client virt-manager

--> Démarrer le service de virtualisation (par défaut démarré)


# systemctl start libvirtd

--> Configurer le service de virtualisation pour démarrer avec l'OS (par défaut)
# systemctl enable libvirtd

--> Vérifier l'existence du module KVM :


# lsmod | grep kvm

Formateur DRAOUI Hassan 262


--> Préparer les sources d'installation (par exemple image ISO):
***********************************************************************
**********************************ISO**********************************
***********************************************************************
Copier l'image ISO de CentOS dans le bureau
# chmod 777 /home/hassan/Bureau/CentOS-7-x86_64-Minimal-1908.iso
# chown qemu.qemu /home/hassan/Bureau/CentOS-7-x86_64-Minimal-1908.iso
ou
Insérer le DVDROM dans le lecteur DVD:
# dd if=/dev/sr0 of=centos6.iso
***********************************************************************

Formateur DRAOUI Hassan 263


2. Démonstration :
--> Utiliser l'interface graphique pour créer et gérer les VMs
# virt-manager
--> Installer une nouvelle machine virtuelle
--> Cloner une machine virtuelle
--> Réduire la RAM à une machine virtuelle
--> Ajouter d'autres cartes réseau à une VM
--> Créer des réseaux virtuels
--> Configurer les VMs pour démarrer avec l'OS

3.
--> Utiliser les commandes pour gérer les VMs
# virsh list
# virsh destroy CentOS7.7
# virsh start CentOS7.7
………..

Formateur DRAOUI Hassan 264


Formateur DRAOUI Hassan 265
CHAPITRE XVII:
Gestion de stockage
(fdisk,parted,RAID,LVM,FS,Quota)

Formateur DRAOUI Hassan 266


I- partitionner un disque dur en utilisant l’outil fdisk
Ajouter un disque dur à la machine

#ls -al /dev/sdb

#fdisk -l

#fdisk /dev/sdb
m
n
p
<Enter>
<Enter>
+500M (K,M,G)
w

#fdisk -l

NB:
Mode d'emploi de fdisk :
Pour voir les commandes disponibles, tapez m
Pour afficher les partitions déjà créées, tapez p (print).
Pour créer une nouvelle partition, tapez n
Vous pouvez supprimer une partition en appuyant sur d 267
Formateur DRAOUI Hassan
#mkfs.ext4 /dev/sdb1

#mkdir /mnt/partition1
#mount /dev/sdb1 /mnt/partition1/

#cat /etc/mtab

#umount /dev/sdb1 /mnt/partition1/ (ou umount /dev/sdb1)

#vi /etc/fstab
..............
/dev/sdb1 /mnt/partition1 ext4 defaults 0 0
#mount -a

Champs de /etc/fstab :
- périphérique à monter. Par exemple, /dev/hda2 ou un répertoire réseau
- point de montage. Par exemple, /home
- type de système de fichiers. Par exemple, ext3
- options. defaults si pas d'option
- ce 5ème champ indique si la partition doit être sauvegardée. 0 pour non et 1 pour oui
- ce 6ème champ indique si la partition doit être vérifiée (par fsck) au démarrage. 0 ne vérifie pas
la partition, 1 pour le système de fichier racine (prioritaire) et 2 pour tout autre système de fichier.

Formateur DRAOUI Hassan 268


Autre commandes fdisk
--> Après partitionnement :
-------> definir le type de partition (exemple LVM)
#fdisk Disque
t
NbrPartition
L (pour voir tous les types disponibles)
8e (LVM)
w
-------> vérifier
#fdisk -l Disque
#lsblk

NB: pour supprimer d

Formateur DRAOUI Hassan 269


II- partitionner un disque dur en utilisant l’outil parted

#rpm -q parted

#parted NomDisque
help
mklabel TablePartition
print
mkpart
[TypePartition -si TablePartition=msdos-] (primary ou secondary)
ext4 (ext3 ....)
PremierBlock(DEBUT)
DernierBlock(FIN)
print

Methode2:#parted  mkpart PART-TYPE [FS-TYPE] DEBUT FIN

#mkfs.ext4 NomPartition
#vim /etc/fstab

$man parted
mklabel label-type Create a new disklabel (partition table) of label-type. label-
type should be one of "bsd", "dvh", "gpt", "loop", "mac", "msdos","pc98",
or "sun". Formateur DRAOUI Hassan 270
Exemple:
#parted /dev/sdb
help
mklabel msdos
print
mkpart
primary
ext4
1
10000
[ignore]
print
quit

#mkfs.ext4 /dev/sdb1

#mkdir /partition1
#vim /etc/fstab
/dev/sdb1 /partition1 ext4 defaults 00
#mount -a

Formateur DRAOUI Hassan 271


Autres options:
--> Ajouter un drapeau (fanion, flag) à la partition:
#parted /etc/sdb
print
set NumeroPartition {boot/raid/lvm} on
print
quit

--> supprimer une partition:


#umount /etc/sdb1
#parted /etc/sdb
print
rm NumeroPartition
print
quit

--> restaurer une partition:


#parted /etc/sdb
print
rescue
PremierBlock
DernierBlock
yes
Formateur DRAOUI Hassan 272
III- Système RAID

https://fr.wikipedia.org/wiki/RAID_(informatique)

Avantages des systèmes RAID :


-Augmenter la taille de stockage
-Tolérance aux pannes
-Améliorer les performances de :
-Lecture des données
-Ecriture des données

Types des systèmes RAID :


- Le RAID logiciel
- RAID matériel

Formateur DRAOUI Hassan 273


Principe de la parité :
Soit la donnée A : A=A1A2A3

Soit la parité de A : Ap=A1 xor A2 xor A3

Disque1 Disque2 Disque3 Disque4


A1 A2 A3 Ap

Exemple:
A=101
Ap=1 xor 0 xor 1= (1 xor 0) xor 1 = 1 xor 1 = 0

D1 D2 D3 D4
1 0 1 0

On suppose qu'on a perdu D2:


A2=1 xor 1 xor 0 = 0 xor 0 = 0

XOR
K L K xor L
0 0 0
1 0 1
0 1 1
1 1 0 Formateur DRAOUI Hassan 274
Niveau de Min Description Avantages Inconvenant exemple
RAID Disques
Striping 2 Entrelacement de Performances élevées Aucune protection de
(0) données sans données
redondance

Mirror 2 Mise en mirrore de -haute performance Cout de mise en couvre


(1) disque (Duplication -haute protection de élevée
de données) données

Volume agrégé 3 Entrelacement de -excellent protection -performance d’écriture


parité repartie données + parité de données très lentes
(5) -lecture / écriture -si un deuxième disque
simultanées tombe en panne on perd
-régénération de les données sur les deux
données en cas de disques
Parte
(6) 4 Parité double Gérer 2 pannes de -Non prise change
disque simultanées charge par tous les
contrôleurs
-performance inferieur
à RAID5
RAID 10 4 Entrelacement de Haut performance + Surcout élevé
(1+0) données /Mirror niveau de protection
élevé
Formateur DRAOUI Hassan 275
Exemple :
Ajouter 4 disques dur à votre machine de 5Go,6Go,7Go et 8Go
En utilisant fdisk, créer sur chaque disque dur 4 partitions de 1Go

Créer un volume raid0 (volume1) sur la première partition de chaque disque dur :
#mdadm --create /dev/md/volume1 --level=raid0 --raid-devices=4 /dev/sdb1
/dev/sdc1 /dev/sdd1 /dev/sde1

Créer un volume raid1 (volume2) sur la deuxième partition des trois premier disque dur
et configurer la deuxième partition du disque 4 en tant que partition de secours
#mdadm --create /dev/md/volume2 --level=raid1 --raid-devices=3 /dev/sdb2
/dev/sdc2 /dev/sdd2 [--spare-devices=1 /dev/sde2]

Créer un volume raid5 (volume3) sur la troisième partition des trois premier disque dur
et configurer la troisième partition du disque 4 en tant que partition de secours
#mdadm --create /dev/md/volume3 --level=raid5 --raid-devices=3 /dev/sdb3
/dev/sdc3 /dev/sdd3 [--spare-devices=1 /dev/sde3]

Créer un volume raid5 (volume3) sur la troisième partition des trois premier disque dur
et configurer la troisième partition du disque 4 en tant que partition de secours
#mdadm --create /dev/md/volume4 --level=raid6 --raid-devices=4 /dev/sdb4
/dev/sdc4 /dev/sdd4 /dev/sde4

NB : Les volumes crées seront nommés automatiquement : /dev/md127….. /dev/md0 276


Formateur DRAOUI Hassan
Vérifier les tailles de volumes crées
#fdisk -l /dev/md/volume1
#fdisk -l /dev/md/volume2
#fdisk -l /dev/md/volume3
#fdisk -l /dev/md/volume4

Que remarquez-vous ?

Formater les volumes crées (ext4)


#mkfs.ext4 /dev/md/volume1
#mkfs.ext4 /dev/md/volume2
#mkfs.ext4 /dev/md/volume3
#mkfs.ext4 /dev/md/volume4

Monter les volume sur /mnt/volumeX (X=1 ou 2 ou 3 ou 4)


#mkdir /mnt/volume1 /mnt/volume2 /mnt/volume3 /mnt/volume4
#vi /etc/fstab
..............
/dev/md/volume1 /mnt/volume1 ext4 defaults 0 0
/dev/md/volume2 /mnt/volume2 ext4 defaults 0 0
/dev/md/volume3 /mnt/volume3 ext4 defaults 0 0
/dev/md/volume4 /mnt/volume4 ext4 defaults 0 0
#mount -a Formateur DRAOUI Hassan 277
TEST à refaire

Créer des donneés dans les dossiers /mnt/volumeX


echo test1 > /mnt/volume1/test
echo test2 > /mnt/volume2/test
echo test3 > /mnt/volume3/test
echo test4 > /mnt/volume4/test

Vérifier le contenu des volumes


cat /mnt/volume1/test
cat /mnt/volume2/test
cat /mnt/volume3/test
cat /mnt/volume4/test

Déconnecter le premier disque dur --5Go--(Si vous avez de la chance !!!!! )


************REBOOT !!!!!***************

Revérifier le contenu des volumes


cat /mnt/volume1/test
cat /mnt/volume2/test
cat /mnt/volume3/test
cat /mnt/volume4/test

Que remarquez-vous ? Formateur DRAOUI Hassan 279


Déconnecter le deuxième disque dur --6Go--(Si vous avez de la chance !!!!! )
************REBOOT !!!!!***************

Revérifier le contenu des volumes


cat /mnt/volume1/test
cat /mnt/volume2/test
cat /mnt/volume3/test
cat /mnt/volume4/test

Que remarquez-vous ?

Déconnecter le troisième disque dur --7Go--(Si vous avez de la chance !!!!! )


************REBOOT !!!!!***************

Revérifier le contenu des volumes


cat /mnt/volume1/test
cat /mnt/volume2/test
cat /mnt/volume3/test
cat /mnt/volume4/test

Que remarquez-vous ?

Formateur DRAOUI Hassan 280


IV- LVM ( Logical Volume Manager ) :
Un LVM permet de créer des espaces de données logiques sur plusieurs disques.

Le LVM regroupe les disques physiques, ou tout autre support de stockage dit physique (disque,
RAID matériel, RAID logiciel, etc …), qu’il appelle des volumes physiques PV (Physical
Volume) en un groupe de volumes VG (Volume Group). Ce groupe VG est vu par le LVM
comme une sorte de métadisque, dans lequel vous allez créer des volumes logiques LV (Logical
Volume) à volonté.

Vérifier que LVM est installé


#rpm -qa | grep lvm2

Vérifier que le service LVM est démarré :


# service lvm2-lvmetad status (#systemctl status lvm2-lvmetad)

Formateur DRAOUI Hassan 281


Exemple:

Ajouter 4 disques dur à votre machine de 5Go,6Go,7Go et 8Go

Définir les trois premiers disques en tant que volumes physiques


#pvcreate /dev/sdb /dev/sdc /dev/sdd

NB: Pour vérifier #pvdisplay

Créer un groupe de volumes (vg1) pour les volumes physiques précedemment crés
#vgcreate vg1 /dev/sdb /dev/sdc /dev/sdd

NB:#vgdisplay vg1 (/dev/vg1)

Créer deux volumes logiques (volume1 et volume2) de 5Go chacun


#lvcreate -n /dev/vg1/volume1 -L 5g vg1
#lvcreate -n volume2 -L 5g vg1

NB : n /dev/vg1/volume1 --> /dev/mapper/vg1-volume1 --> /dev/dm-N (N: un entier)

NB: #lvdisplay /dev/vg1/volume1

Formateur DRAOUI Hassan 283


Formater le volume en ext4
# mkfs -t ext4 /dev/vg1/volume1
# mkfs -t ext4 /dev/vg1/volume2

Monter les volumes .......


#mkdir /mnt/volume1 /mnt/volume2
#mount -t ext4 /dev/vg1/volume1 /mnt/volume1
#mount -t ext4 /dev/vg1/volume2 /mnt/volume2

.........fstab

NB:#df /mnt/volume1

cp /etc/*.conf /mnt/volume1
cp /etc/*.conf /mnt/volume2

Formateur DRAOUI Hassan 284


Redimensionnement

Rajouter le quatrième disque au groupe de volume vg1


#pvcreate /dev/sde
#vgextend vg1 /dev/sde

Ajouter 5Go au volume logique volume1


#lvextend -L +5G /dev/vg1/volume1
(Vérifier les tailles :#lvdisplay /dev/vg1/volume1 # df -h /dev/vg1/volume1)
#resize2fs /dev/vg1/volume1

(Vérifier les tailles :#lvdisplay /dev/vg1/volume1 # df -h /dev/vg1/volume1)

Réduire le volume logique volume2 à 4Go


#df -h /dev/vg1/volume2
#umount /dev/vg1/volume2
#fsck -f /dev/vg1/volume2
#resize2fs /dev/vg1/volume2 4G
#lvreduce -L 4G /dev/vg1/volume2
#mount /dev/vg1/volume2 /mnt/volume2
Formateur DRAOUI Hassan 285
Autres commandes LVM:
pvscan
vgscan
lvscan

pvs
vgs
lvs

Formateur DRAOUI Hassan 286


Exemple :
#pvcreate /dev/sdb /dev/sdc /dev/sdd
#vgcreate GroupeV1 /dev/sdb /dev/sdc /dev/sdd
#lvcreate -n partition1 -L 5g GroupeV1
#mkfs.ext4 /dev/GroupeV1/partition1
#mkdir /mnt/partition1
#mount /dev/GroupeV1/partition1 /mnt/partition1

#cp -r /etc/*.conf /mnt/partition1


#du -s /mnt/partition1

#lvcreate -s -L 200M -n partition1-snapshot /dev/GroupeV1/partition1


#lvs (voir "Pool Origin" et le pourcentage "Data%" )

Remarque importante: On peut monter le snapshot en écriture et faire des modifications


------------------------------------------------------------------------------------------
#rm -rf /mnt/partition1/*
#lvs (voir "Pool Origin" et le pourcentage "Data%" )
#du -s /mnt/partition1

#umount /mnt/partition1
#lvconvert --merge /dev/GroupeV1/partition1-snapshot
#mount /dev/GroupeV1/partition1 /mnt/partition1
#du -s /mnt/partition1 Formateur DRAOUI Hassan 288
NB: En cas de problèmes !!!!!!!:
#umount /mnt/partition1
#lvchange -a n /dev/GroupeV1/partition1
#lvchange -a y /dev/GroupeV1/partition1
#mount /dev/GroupeV1/partition1 /mnt/partition1

Formateur DRAOUI Hassan 289


V- Quota

Formateur DRAOUI Hassan 290


rpm -q quota

Activer le quota sur une partition(montage!!!)


1--> Ajouter les options du quota dans /etc/fstab :
#vim /etc/fstab
defaults, usrquota,grpquota
NB: defaults, usrjquota=quser,grpjquota=qgroup,jqfmt=vfsv0
#mount -a
NB:#mount -o remount (partition)

2--> Créer les fichiers « aquota.group » et « aquota.user » dans la partition(montage!!!)


# setenforce 0
#quotacheck -cugv (partition)
#ls (partition)

3-->Activer le quota pour les utilisateurs et les groupes (-a=all, -u=user, g=group)
#quotaon -av

Créer un quota sur (le disque dur) pour un utilisateur :


#edquota -u username

Configurer le délai de grâce


#edquota -t
Formateur DRAOUI Hassan 291
Commandes utiles
--> Créer un quota sur (le disque dur) pour un groupe :
#edquota -g groupname

--> ...........Vérififier les informations des quota :


#quotacheck -amvug

--> Rapport pour les quotas utilisateur et groupe :


#repquota -avs

--> Afficher les informations de quota pour un utilisateur user1 donné :


#quota user1

--> Créer un quota pour un utilisateur user2 à partir du quota appliqué à un autre utilisateur user1
#edquota -p user1 user2

TEST1
#time dd if=/dev/zero of=(partiton)/test bs=1024 count=10000

TEST2
Ajouter plusieurs fichiers (inode) …………..
Formateur DRAOUI Hassan 292
VI- ACL

Formateur DRAOUI Hassan 293


Exemple :
mkdir /acl
chown root.root /acl
cd /acl
echo "test ACL" >> /acl/fichierACL.txt
chmod -R 770 /acl
----> ouvrir un autre terminal de test en tant qu'un utilisateur standard (hassan)
ls -al /acl
----> tester la création du fichier par l’utilisateur standard et la lecture du fichier « fichierACL »
setfacl -Rm "u:hassan:rwx" /acl
ls -al /acl
getfacl /acl
----> tester la création du fichier par l’utilisateur standard et la lecture du fichier « fichierACL »
setfacl -dRm "u:hassan:rwx" /acl
getfacl /acl
------------------------------------
setfacl -Rm "u:root:rwx" /acl
setfacl -dRm "u:root:rwx" /acl
setfacl -x "u:hassan" /acl
getfacl /acl
setfacl -k /acl
getfacl /acl
setfacl -b /acl
getfacl /acl Formateur DRAOUI Hassan 294
------------------------------------

Vous aimerez peut-être aussi