Vous êtes sur la page 1sur 103

Administration réseau

sous Linux

P-1 S@id OubghouZ


Des Vedios Sur Youtube

- Réaliser par :
- Said OubghouZ

- Formateur :
- Ouhamou Mounir

P-2 S@id OubghouZ


Somaire :
 Configuration des paramètres TCP/IP
 Les fichiers de configuration réseau
 Configuration d’une carte réseau
 Le routage sous Linux
 Les outils d’administration réseau
 Les Serveurs
 Le serveur BIND
 Le serveur DHCP
 L’Agent de Relay
 Les Serveurs de partages
 NFS
 Samba
 Les Serveurs d’accès à distance
 Telnet
 xinetd
 SSH
 Les Serveurs d’échanges de fichiers
 Vstfp
 Gestion des disques durs
 Partitionnement
 parted
 fdisk
 Le Formatage
 Le Montage
 Les LVM
 Raid
 Raid -0
 Raid -1
 Raid -5
 Quota de disque

P-3 S@id OubghouZ


Configuration des paramètres
TCP/IP
 Les fichiers les plus utilisé dans la
configuration réseau
/etc/hosts :
Ce fichier contient toutes les adresses IP connues de l’ordinateur local. Il permet de résoudre la
correspondance entre les noms des ordinateurs et leurs adresses IP.
#/etc/hosts
#IP Ordinateur Alias
127.0.0.1 localhost.localdomain localhost
/etc/networks :
Ce fichier permet de résoudre la correspondance entre les noms des réseaux et les adresses réseau.
Il permet d'affecter un nom logique à un réseau .
#/etc/networks
0.0.0.0 Default
127.0.0.0 loopback
169.254.0.0 link-local
192.168.1.0 ista.ma
Cette option permet par exemple d'adresser un réseau sur son nom, plutôt que sur son adresse
route add –net
ista.ma
Au lieu de route add -net 192.168.1.0
/etc/host.conf :
Ce fichier contient des paramètres nécessaires pour le pilotage de la bibliothèque de résolution des
noms(Resolver).
#/etc/host.conf
Order hosts,bind
Multi on
/etc/resolv.conf :
Ce fichier joue également un rôle très important dans la configuration de la bibliothèque Resolver. Si ce
fichier est présent, c’est le serveur de noms qui apparaît en premier qui est interrogé.
#/etc/resolv.conf
Search ista.ma
#adresse du serveur de noms
Nameserver 192.168.1.1
/etc/sysconfig/network :
Le fichier /etc/sysconfig/network précise les informations de routage et le nom de l’hôte pour
toutes les interfaces réseau.

P-4 S@id OubghouZ


NETWORKING=yes
HOSTNAME=Server.ista.ma
GATEWAY=192.168.1.10

 Configuration d’une carte réseau.

Les cartes réseau sont souvent détectées au démarrage. Si ce n'est pas le cas il faudra charger les modules
correspondants. Pour obtenir la liste des interfaces réseau qui ont été détectées, on peut utiliser dans
l'invite de commandes :
ifconfig –a

Explications :
– Ligne 1: l'interface est de type Ethernet. La commande nous donne l'adresse MAC de l'interface.
– Ligne 2 : on a l'adresse IP celle de broadcast, celle du masque de sous-réseau
– Ligne 3 : l'interface est active (UP), les modes broadcast et multicast le sont également, le MTU est de

P-5 S@id OubghouZ


1500 octets, le Metric de 1
– Ligne 4 et 5 : RX (paquets reçus), TX (transmis), erreurs, suppressions, engorgements, collision
Voici les principaux arguments utilisés :
– interface logique ou physique, il est obligatoire,
– up active l'interface
– down désactive l'interface
– mtu définit l'unité de transfert des paquets
– netmask affecter un masque de sous-réseau
– broadcast définit l'adresse de broadcast
– arp ou -arp activer ou désactiver l'utilisation du cache arp de l'interface
– metric paramètre utilisé pour l'établissement des routes dynamiques, et déterminer le “
coût ” (nombre de sauts ou “ hops ”) d'un chemin par le protocole RIP.
– multicast OU -multicast active ou non la communication avec des machines qui sont
hors du réseau.
– promisc ou -promisc activer ou désactiver le mode promiscuité de l'interface. En mode
promiscuous, tous les paquets qui transitent sur le réseau sont reçus également par
l'interface. Cela permet de mettre en place un analyseur de trame ou de protocole.
Une fois votre carte reconnue par le noyau, vous devez au moins préciser son adresse IP et son masque
de sous-réseau. Dans le cas d'un réseau local connecté à l'internet.
Pour attribuer une adresse IP à une interface réseau :
Graphiquement :

On ligne de commande


On peut utiliser la commande ifconfig

ifconfig <interface> <adresse ip> up

Le masque de sous-réseau est déterminé automatiquement en fonction de la classe de


l'adresse IP

Par example :

P-6 S@id OubghouZ


ifconfig eth0 192.168.1.12
Spécifier un masque de sous reseau
ifconfig eth0 192.168.1.12 netmask 255.255.255.252

Remarque : lorsque le redémarrage de la machine, il faut le retaper les commandes pour attribuer
l’adresse IP a l’interface réseau. Pour éviter ce problème on a une méthode d’attribution des adresses IP
par la modification de fichier des interfaces.
Configuration automatique au démarrage par le fichier
(attribuer une adresse IP fix )
[root@user]# vim etc/sysconfig/network-scripts/ifcfg-eth0
#appuyer sur « i » pour modifier le fichier
DEVICE=eth0
NETWORK=192.168.1.0
BROADCAST=192.168.1.255
ONBOOT=YES
TYPE=Ethernet
BOOTPROTO=none # FIX
IPADDR0=192.168.1.254
PREFIX0=24
GATEWAY0=192.168.1.1
DNS1=192.168.1.1
USERCTL=no
#lorsque vous avez terminé la modifications appuyer sur « echap » puis sur « :wq » ou « :x » .
Les paramètres pouvant être configurés dans un fichier de configuration d'interface Ethernet :
BOOTPROTO=<protocol> où <protocol> correspond à l'une des valeurs suivantes :
none - ou static Indique qu'aucun protocole de démarrage ne doit être utilisé.
bootp - Indique que le protocole BOOTP doit être utilisé.
dhcp - ndique que le protocole DHCP doit être utilisé.
BROADCAST=<address> où <address> correspond à l'adresse de diffusion. Cette directive a été
abandonnée car la valeur est calculée automatiquement.
DEVICE=<name> où <name> correspond au nom du périphérique physique.
DNS{1,2}=<address>où <address> correspond à l'adresse d'un serveur devant être placée dans
/etc/resolv.conf
GATEWAY=<address>où <address> correspond à l'adresse IP du routeur réseau ou du périphérique
de passerelle.
IPADDR=<address> où <address> correspond à l'adresse IP.
NETMASK=<mask> où <mask> correspond à la valeur du masque réseau.
NETWORK=<address>où <address> correspond à l'adresse du réseau. Cette directive a été
abandonnée car la valeur est calculée automatiquement.
HWADDR=<MAC-address>où <MAC-address> correspond à l'adresse matérielle
du périphérique Ethernet sous la forme AA:BB:CC:DD:EE:FF. Cette directive ne devrait pas être utilisée
avec MACADDR.
ONBOOT=<answer>
yes - Indique que ce périphérique doit être activé au démarrage.
no - Indique que ce périphérique ne doit pas être activé au démarrage.
USERCTL=<answer>
yes - Les utilisateurs autres que le super-utilisateur sont autorisés à contrôler ce périphérique.
no - Les utilisateurs autres que le super-utilisateur ne sont pas autorisés à contrôler ce périphérique.

P-7 S@id OubghouZ


pour une interface utilisant DHCP est différent, car les informations IP sont fournies par le serveur DHCP :
DEVICE=eth0
BOOTPROTO=dhcp
ONBOOT=yes
Apres chaque modification il faut le redémarrer le service réseau
[root@user]# service Network restart
Arrêt du démon NetworkManager : [ OK ]
Configuration des paramètres réseau... [ OK ]
Démarrage du démon NetworkManager : [ OK ]
OU : /etc/init.d/network restart
La commande ifconfig permet aussi d’activer et de désactiver une interface réseau :
ifconfig <interface> <[down|up]>
Example :
Ifconfig eth0 up

Tester le réseau
Pour vérifier que la carte réseau fonctionne, on peut essayer de communiquer avec une autre machine :
 Désactive le ParFeu.
 Configurer les deux machines dans même Vmnet,switch...

ping <adresse ip>


ping 127.0.0.1 #adresse loopback

La commande ping envoi un paquet à l'adresse IP puis attend que la machine réponde. Elle affiche ensuite le
temps qu'a pris toute l'opération, en millisecondes

 Le routage sous Linux

Le routage est un processus qui permet de sélectionner des chemins dans un réseau pour transmettre
des données depuis un expéditeur jusqu'à un ou plusieurs destinataires.
Il existe 2 types de routages :

P-8 S@id OubghouZ


- le routage statique
- le routage dynamique.
On combine en général le routage statique sur les réseaux locaux au routage dynamique sur les réseaux
importants ou étendus.
Pour afficher une table de routage .a l’aide de la commande route

.
Explication :
Destination : adresse de destination de la route
Gateway : adresse IP de la passerelle pour atteindre la route, * sinon Genmask : masque à utiliser.
Flags : indicateur d'état (U - Up, H - Host - G - Gateway, D - Dynamic, M - Modified)
Metric : coût métrique de la route (0 par défaut)
Ref : nombre de routes qui dépendent de celle-ci
Use : nombre d'utilisation dans la table de routage
Iface : interface eth0, eth1, lo
Pour Ajout ou suppression d'une route
route [del-add] [net | host] addr [gw passerelle] [métric coût] [ netmask masque] [dev interface]
Explication :
- net ou host indique l'adresse de réseau ou de l'hôte pour lequel on établit une route,
- addr : adresse de destination,
- gw : adresse de la passerelle,
- valeur métrique de la route,
- masque de la route à ajouter,
- dev : interface réseau à qui on associe la route.
Example :
Ajout d’une route :
route add –net @réseau netmask Masque dev interface
route add –net 192.168.1.0 netmask 255.255.255.0 dev eth0
route add –host 192.168.1.10 netmask 255.255.255.0 dev eth0
Suppression d’une route :
route del –net @réseau
route del –net 192.168.1.0
Pour activer le routage :
echo 1 > /proc/sys /net/ipv4/ip_forward

ARP (Address Resolution Protocol)


Le cache ARP ou table ARP est une table de couples adresse IPv4-adresse MAC contenue dans la mémoire
d'un ordinateur qui utilise le protocole ARP, ce qui est le cas des ordinateurs qui sont connectés à un
réseau IP sur un segment Ethernet.
La commande arp permet de visualiser ou modifier la table du cache arp de l'interface. Cette table peut
être statique et (ou) dynamique. Elle donne la correspondance entre une adresse IP et une adresse MAC
(Ethernet).
les principales options de la commande arp :
P-9 S@id OubghouZ
(ajouter une entrée statique),
– arp -s
exemple : arp -s 192.168.1.2 00:40:33:2D:B5:DD
(supprimer une entrée),
– arp -d
exemple : arp -d 192.168.1.2

 Les outils d’administration réseau.


La commande netstat (network statistics )
La commande netstat permet d'afficher les statistiques sur les interfaces réseau actives. C'est utile pour
voir les paquets perdus, les engorgements :
# netstat –i

Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flags
eth0 1500 0 634733 10 0 1 184352 0 0 0 BMRU
eth1 1500 0 43 0 0 0 22 0 0 0 BMRU
lo 16436 0 135704 0 0 0 135704 0 0 0 LRU
ppp0 1492 0 206579 208740 0 0 182191 0 0 0 MOPRU

Avec l'option -a, on peut voir toutes les connections, y compris celles qui ne font que écouter, et avec
l'option -t on ne voit que les sockets TCP :
# netstat –ta
La commande ping (Packet InterNet Groper)
Vérifie la connectivité IP d'un ordinateur utilisant le protocoles TCP/IP en envoyant des messages Requête
d'écho ICMP (Internet Control Message Protocol). La Réponse à "Requête écho" correspondants s'affiche,
avec les temps des parcours circulaires. Ping est la principale commande TCP/IP utilisée pour résoudre les
problèmes de connectivité, d'accessibilité et de résolution de nom. Utilisée sans paramètres, la commande
Ping affiche l'aide

Syntaxe

PING [-t] [-a] [-n Nombre] [-l Taille] [-f] [-i TTL] [-v TOS]
[-r Nombre] [-s Nombre] [{-j ListeHôte | -k ListeHôte}]
[-w DélaiAttente] [NomCible]

-t Spécifie que la commande Ping continue d'envoyer des messages Requête d'écho à
destination jusqu'à son interruption
-a Spécifie que la résolution de nom inversé est faite sur l'adresse IP de destination
-n Nombre Spécifie le nombre de messages Requête d'écho envoyés. La valeur par défaut est 4.
-I Taille Spécifie la longueur, en octets, du champ Données dans les Requête d'écho envoyés. La
valeur par défaut est 32. La taille maximale est 65 527
$ ping 192.168.8.1

PING 192.168.8.1 (192.168.8.1) 56(84) bytes of data.

64 bytes from 192.168.8.1: icmp_seq=1 ttl=64 time=0.733 ms

64 bytes from 192.168.8.1: icmp_seq=2 ttl=64 time=0.719 ms

La commande traceroute (tracer la route)


la commande traceroute qui vous donne le chemin parcouru pour arriver jusqu’à une machine ou adresse.
Cela correspond à une liste de machine, routeurs par où on passe pour arriver à la machine demandée.
Par exemple voici le résultat d’un traceroute sur www.ubuntu-fr.org:
P-10 S@id OubghouZ
$ traceroute www.ubuntu-fr.org
traceroute to www.ubuntu-fr.org (213.95.41.13), 30 hops max, 40 byte packets
1 192.168.8.1 (192.168.8.1) 1.755 ms 2.491 ms 3.158 ms
2 1.114-67-87.adsl-dyn.isp.belgacom.be (87.67.114.1) 10.724 ms 12.454 ms 14.002 ms
3 93.251-244-81.adsl-static.isp.belgacom.be (81.244.251.93) 17.766 ms 19.006 ms
4 ge0-0.intlstr1.isp.belgacom.be (194.78.0.46) 23.415 ms ge1-0.intlstr1.isp.belgacom.be
(194.78.0.146) 23.968 ms 25.596 ms
5 80.84.20.34 (80.84.20.34) 28.274 ms 29.891 ms 31.404 ms
6 80.84.18.26 (80.84.18.26) 38.934 ms 15.355 ms 15.928 ms
7 80.84.18.24 (80.84.18.24) 23.469 ms 24.521 ms 25.561 ms
8 gec1-rt1-ffm2.core.noris.net (80.81.192.88) 28.011 ms 29.210 ms 31.862 ms
9 vl604-rt3-nbg3.core.noris.net (213.95.0.197) 36.367 ms 39.095 ms 39.801 ms
10 vl31-rt1-nbg3.access.noris.net (62.128.25.137) 41.825 ms 43.582 ms 44.712 ms
11 lisa.ubuntu-eu.org (213.95.41.13) 46.736 ms 50.008 ms 51.416 ms

Les Commandes test et diagnostique DNS


La commande dig(diagnostiquer)
Dig est une commande qui permet de diagnostiquer les dysfonctionnements dans la résolution
de nom.
Voir les mx d'un domaine :
dig mx midia.fr +short
10 mail.midia.fr.
20 mail1.midia.fr.

Connaitre l'adresse ip du serveur dns gèrent un domaine :


dig midiatek.com
; <<>> DiG 9.3.6-P1-RedHat-9.3.6-4.P1.el5_4.2 <<>> midiatek.com
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 39706
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;midiatek.com. IN A
;; ANSWER SECTION:
midiatek.com. 3564 IN A 66.199.187.181
;; Query time: 2 msec
;; SERVER: 126.10.0.1#53(126.10.0.1)
;; WHEN: Wed Mar 24 17:09:44 2010
;; MSG SIZE rcvd: 45

Même chose mais en plus clair :


dig midiatek.com +short
66.199.187.181

Trouver le hostname complet en ayant une ip (reverse):


dig -x 92.121.176.140 +short
srvlol.system-linux.eu.

Un espece de traceroute dig :


dig system-linux.eu +trace

P-11 S@id OubghouZ


NS g.root-servers.net. from server 126.10.0.1 in 1 ms.
NS m.root-servers.net. from server 126.10.0.1 in 1 ms.
NS b.root-servers.net. from server 126.10.0.1 in 1 ms.
NS f.root-servers.net. from server 126.10.0.1 in 1 ms.
NS k.root-servers.net. from server 126.10.0.1 in 1 ms.

La commande host
La commande host permet de rechercher un nom d'hôte mais aussi une adresse IP en effectuant une
requête de serveur de noms.
#host www.cnn.com
pour obtenir diverses adresses IP à partir d'un nom d'hôte. Réessayez host plusieurs fois. Observez que
l'ordre de sortie des adresses change de manière aléatoire. Ceci montre que la charge est distribuée
sur divers serveurs cnn.com. A présent, prenez une des adresses IP et tapez:
#host <adresse-IP>
Cette commande retourne le nom d'hôte cnn.com.
La commande Nslookup(Name Server Lookup)
Nslookup est une commande qui permet de tester la résolution des noms
d'hôtes en adresses IP et inversement. Elle permet un rapide diagnostique des problèmes de
résolution DNS. Lorsque vous tapez nslookup dans une invite de commande, le nom d'hôte et l'adresse IP du
serveur DNS sont affichées par défaut.
Lorsque l’on saisie un nom d'hôte ou un FQDN, une adresse IP est renvoyée.
De même si vous saisissez une adresse IP, nslookup renvoie le FQDN.
De plus Nslookup indique si la réponse fait autorité ou non sur le domaine.
Une réponse faisant autorité (authoritative answer) signifie qu'une zone dns (donc un fichier sur le
serveur DNS auquel on est connecté) contient le domaine sur lequel on effectue la requête et qu'il
n'y a donc pas besoin de récupérer l'information auprès d'une autorité racine ou de transférer la
requête à un redirecteur.
Une réponse ne fait pas autorité ( Non-authoritative answer) signifie que que l’information à été
récupérée depuis un serveur DNS qui ne fait pas autorité sur la zone

P-12 S@id OubghouZ


Les Serveurs

 Le serveur BIND

P-13 S@id OubghouZ


Fiche Sur DNS
DNS Domain Name server
BIND Berkeley Internet Name Domain
Numéro de port 53
UDP pour la résolution de Nom pour les
clients.
TCP pour le Transfer des zones
Fichiers de configuration /etc/named.conf
Fichiers de /var/named
configuration de zones
Nom de package bind-9.3.4-10.P1.el5.i386.rpm
Nom de service named

Introduction à la résolution de noms


Pour pouvoir communiquer, chaque machine présente sur un réseau doit avoir un identifiant unique. Avec le
protocole IP (Internet protocole), cet identifiant se présente sous la forme d'un nombre d'une longueur de 32
bits. On parle d'adresses IP. Cependant pour un utilisateur, il est impensable de retenir les adresses IP de
chaque ordinateur. C'est pourquoi des mécanisme de résolution de noms ont été mis en place. Un mécanisme
de résolution de noms permet de traduire des noms en adresses IP et inversement.

Au départ, chaque machine stockait localement les mappages noms / adresse IP (un mappage est une
correspondance entre un nom et une adresse IP). Cependant ce système a l'inconvénient de demander une
trop lourde charge administrative. En effet, à chaque ajout de machine dans le réseau ou bien à chaque
modification de la configuration d'une machine, il faut éditer manuellement le fichier contenant les mappages
noms / adresse IP.

Le premier mécanisme de résolution de noms mis en place sous Windows est


NetBIOS (NetBIOS Extended User Interface), un protocole crée par IBM dans les
années 80. Cette méthode de résolution de noms a de nombreux inconvénients :
• Les noms NetBIOS sont limités à 16 caractères (15 caractères pour le noms de la machine et un
16è caractère indiquant le type de services hébergés par la machine).
• Le protocole NetBIOS utilise la diffusion (ou broadcast) pour résoudre les noms en adresses IP ce qui
surcharge la bande passante du réseau.
• Les noms NetBIOS ne possèdent pas de hiérarchie ce qui les rends inutilisables sur Internet.
• Le protocole NetBIOS n'est pas utilisé sur les plateformes non Microsoft ce qui pose un problème
d'interopérabilité.
C'est pourquoi sous Windows 2000/2003/XP un nouveau système de résolution de
noms appelé DNS (Domain Name System) a été adopté. Il corrige les inconvénients
du protocole NetBIOS.
Le système DNS (Domain Name Server)

P-14 S@id OubghouZ


Diffenition : Le DNS (Domain Name System) est un système essentiel au fonctionnement d'Internet. C'est
entre autres, le service qui permet d'établir la correspondance entre le nom de domaine et son adresse IP.
Le DNS est dynamique Les enregistrements doivent pouvoir être ajoutés de façon unique dans le système,
et devenir rapidement disponibles pour tous.
Le DNS est répliqué
On ne peut se permettre de dépendre d’un seul serveur, et les informations existent toujours en plusieurs
exemplaires.
Le DNS est hiérarchisé
Les informations sont classées en une arborescence qui permet leur organisation. Chaque niveau de la
hiérarchie est appelé « zone », et le sommet de cette hiérarchie est la zone « . ».
Le DNS est distribué
Les informations sont réparties en une multitude de « sousbases » (les zones DNS), et l’ensemble de ces
petites bases d’informations compose l’intégralité des enregistrements DNS. Ce fonctionnement a l’avantage
de faciliter l’administration en répartissant la charge sur des milliers de serveurs.
Le DNS est sécurisé
Cet impératif est apparu plus tardivement, et n’est pas encore implémenté sur tous les serveurs DNS. On a
toutefois désormais la possibilité de sécuriser de bout en bout les opérations du DNS. Les services de sécurité
disponibles sont l’authentification, le contrôle d’accès et le contrôle d’intégrité.

La structure hiérarchique de l’espace de noms de domaines est telle que :


• Domaine Racine : qui se trouve en haut de la structure du noms de domaine, représente par point.
• Domaine de niveau supérieur : représente les TLDs (on a 224 TLD=Top Level Domain, comme : com, fr,
ma…)
• Domaine de niveau second : est un nom unique de logueur variable, il est enregistré directement auprès
des entreprises.
• Sous-domaines : permet à une organisation de subdiviser son nom de domainepar département ou service
Ex microsof.s.com

P-15 S@id OubghouZ


1- Les composants de serveur DNS :
- Serveur DNS : Ordinateur exécute le serveur DNS
- Client DNS : Ordinateur exécute le service client DNS
- Enregistrement de ressources DNS : entrée de base de données DNS qui mappe les noms d’hôtes à des
ressources.
2- Les requêtes DNS : Une requête est une demande de résolution des noms envoyée à un serveur DNS.
Il existe 2 types de requête :
récursive et itérative. La requête peut être lancé par client/serveur
- Requête récursive : est un requête envoyée à un serveur DNS dans laquelle le client DNS demande au
serveur DNS de fournir une réponse complète.
- Requête itérative : est un requête envoyée à un serveur DNS dans laquelle le client DNS demande au
serveur DNS de fournir une meilleure réponse.
3- Les indications de racine : Les indications de racine sont des enregistrements de ressource DNS stocké sur
un serveur DNS qui répertorient les adresse IP des serveurs racines du système DNS. Ils sont trouvés dans
‘cache.dsn’ qui se trouve dans le dossier ‘%systemroot%\system32\dns\’.
4- Les redirecteurs : 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 des noms de domaines externes ou hors sites.
5- La mise en cache de serveur DNS : La mise en cache est le processus qui consiste à stocker temporairement
(durant le TTC de la réponse) dans un sous système de mémoire spéciale des informations ayant fait l’objet
d’un accès récent pour y accéder plus rapidement ensuite Les enregistrements et les zones DNS : 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.

P-16 S@id OubghouZ


Il existe plusieurs types des enregistrements de ressources :
- A (Host) : résous un nom d’hôte en adresse IP.
- PTR (Pointeur) : résous un adresse IP en nom d’hôte.
- SOA (Start Of Autority) : Premier enregistrement dans tout les fichiers de la zone.
- SRV (Service) : Résoud les noms des serveurs qui fournissent des services.
- NS Name Server Identifie le serveur DNS associé à chaque zon
- MX (Mail eXchange : Chemin pour messagerie) : Identifie le serveur de messagerie à chaque zone.
- CNAME (Canonical NAME : Nom officiel) : Un nom d’hôte qui fait la référence d’un autre nom d’hôte.
2- Les types des zones : Une zone est un ensemble des mappages de noms d’hôtes à adresses IP. Il existe
différents types de la zone :
- Zone Principale Standard : (Lecture/Ecriture) : Doit toujours être crée en premier pour une nouvelle zone.
- Zone Secondaire Standard : (Lecture seule) : Contient toutes les modifications effectuées sur le fichier de la
zone principale. On utilise la zone secondaire pour avoir une tolérance en panne et pour réduire les charges
pour la zone principale.
3- La zone de recherche directe et la zone inversée :
- Zone de recherche directe : c’est une zone utilisée pour résoudre les noms d’hôtes en adresses IP.
- Zone de recherche inversée : c’est une zone utilisée pour résoudre les adresses IP en noms d’hôtes.
- Domaine in-addr.arpa
- Ce nom de zone correspond à une résolution inverse pour permettre de trouver le nom d'hôte à partir de
l'adresse IP .

Réplication et transfert de zones Réplication La présence de serveurs de noms de domaine secondaires DNS
permet la réplication des fichiers de zones. Cette pratique se justifie dans les cas suivants :

- Offrir une redondance en cas de panne du serveur DNS principal.


- Réduire le trafic lorsque le domaine est dans des sites différents reliés par des liaisons WAN.
- Réduire la charge du serveur de noms DNS principal.

Transfert de zone La réplication des fichiers de zones se fait au cours d’une opération appelée transfert de
zone.Transfert de zone complet.Il y a un transfert complet du fichier de zone lorsqu’un nouveau serveur de
noms DNS secondaire est installé. On parle de transfert de zone complet (AXFR) Transfert de zone
incrémentiel

Une fois le transfert de zone complet effectué, il se fait une mise à jour des fichiers de zones dans les serveurs
de noms secondaire au cours d’une opération nommée transfert de zone incrémentiel (IXFR)

P-17 S@id OubghouZ


 DNS sur Linux
Le serveur DNS
Les services DNS s’exécutant sur Linux sont presque exclusivement basés sur le logiciel BIND (Berkeley
Internet Name Domain)

Les Fichiers, structures et contenus.

-Sur linux nous allons utiliser deux types de fichiers :


le fichier /etc/named.conf, qui décrit la configuration générale du serveur DNS,
• les fichiers qui contiennent les enregistrements de ressources pour la zone dans
/var/named (l'emplacement dépend de la distribution).
On crée, en général, un fichier pour la résolution directe d'une zone, et un fichier pour la
résolution inverse.
- Les enregistrements ont une structure et un rôle que nous verrons. Le daemon se nomme named,
prononcé « naime dé ».

La délégation
- Le niveau supérieur délègue la responsabilité administrative de ses sous-domaines
- Le responsable d’un domaine peut :
• Découper son domaine en sous-domaines
• Déléguer ces sous-domaines à d’autres organisations (celles-ci, à leur tour, peuvent à nouveau
découper…)
• Nommer des hôtes
Serveur primaire et serveur secondaire.
- Serveur de noms primaire : Il maintient la base de données de la zone dont il a l’autorité
administrative.
- Serveur de noms secondaire : Il obtient les données de la zone via un serveur de noms primaire qu'il
interroge périodiquement pour mettre à jour ses données ; Il possède donc une copie de la base de
données.
- Pour une zone il y a un seul serveur primaire et généralement plusieurs serveurs secondaires.
- Cette redondance permet la défaillance éventuelle du primaire et du (des) secondaire(s). Il est
même souhaitable d'installer les serveurs sur des réseaux différents pour palier la défaillance du

P-18 S@id OubghouZ


réseau.
- Un serveur de nom peut être primaire pour une (des) zone(s) et secondaire pour d’autre(s).
Le cache.
- L'organisation d'Internet est assez hiérarchique. Chaque domaine dispose de ses propres serveurs
de noms. Les serveurs peuvent être sur le réseau physique dont ils assurent la résolution de nom
ou sur un autre réseau. Chaque zone de niveau supérieur (edu, org, fr...) dispose également de
serveurs de nom de niveau supérieur. L'installation du service DNS, installe une liste de serveurs de
noms de niveaux supérieurs. Cette liste permet au serveur de résoudre les noms qui sont extérieurs
à sa zone. Le serveur enrichit son cache avec tous les noms résolus. Si votre réseau n'est pas relié à
Internet, vous n'avez pas besoin d'activer cette liste.
- Ce fichier est un peu particulier. Il est fourni avec les distributions. Il est utilisé par le serveur de
noms à l'initialisation de sa mémoire cache. Si vos serveurs sont raccordés à Internet, vous pourrez
utiliser une liste officielle des serveurs de la racine (ftp.rs.internic.net).
- Sous Windows : Afficher le contenu du cache : # ipconfig /displaydns
Vider le cache : # ipconfig /flushdns
- Sous Linux : Afficher le contenue du cache : #rndc dumpdb -cache
Vider le contenu du cache : # rndc flush

Les résolveurs

- Ce sont les processus clients qui contactent les DNS


- Le résolveur :
• Contacte les DNS
• Interprète les réponses et éventuelles anomalies
• Retourne l’information au logiciel demandeur (navigateur, courrielleur, etc.)
• Stocke l’information dans un cache
- Le client DNS
• Les machines Linux disposent nativement d’un client DNS appelé resolver. Toute application
fonctionnant sur Linux et ayant besoin de faire une requête DNS s’appuiera sur ce composant.
• Il exploite le fichier de configuration simple /etc/resolv.conf.
• Format simplifié du fichier /etc/resolv.conf
search domaine
domain domaine
nameserver A.B.C.D

P-19 S@id OubghouZ


BIND en tant que serveur de nom.
Le fichier /etc/named.conf
- La configuration globale de Bind est placée dans le fichier /etc/named.conf. La configuration détaillée
des zones est placée dans /var/named. La première concerne la configuration globale des options de
Bind. La seconde est la déclaration des zones pour les domaines individuels.
- La configuration globale est placée dans la section options. Voici un détail de quelques options
importantes (le point-virgule doit être précisé) :
• directory "filename" : emplacement des fichiers contenant les données des zones.
• statistics-file : Spécifie un autre emplacement des fichiers de statistiques. Par défaut, les statistiques
named sont enregistrées dans le fichier /var/named/named.stats.
• forwarders { adresse-ip ; } : si le serveur bind ne peut résoudre lui-même la requête, elle est renvoyée
à un serveur DNS extérieur, par exemple celui du fournisseur d’accès.
• Forward : Contrôle le comportement de retransmission d'une directive forwarders. Les options
suivantes sont acceptées :
- first - Indique que les serveurs de noms répertoriés dans la directive forwarders doivent être
interrogés avant les tentatives nommées de résolution du nom lui-même.
- only - Indique que named ne tente pas la résolution de nom elle-même dans le cas où les
requêtes aux serveurs de noms spécifiés dans la directive forwarders échouent.
• listen-on-port 53 {127.0.0.1 ; adresse-ip ; } : port d’écoute du DNS suivi des adresses d’écoute. On
indique ici les adresses IP des interfaces réseau de la machine. Il ne faut pas oublier 127.0.0.1.
• allow-query { 127.0.0.1 ; réseau ; } : machine(s) ou réseau(x) autorisés à utiliser le service DNS. Par
exemple 192.168.1/24. Si la directive est absente, tout est autorisé.
• allow-recursion { 127.0.0.1; };: Semblable à allow-query, cette option s'applique à des demandes
récursives. Par défaut, tous les hôtes sont autorisés à effectuer des demandes récursives sur le
serveur de noms.
• Blackhole { 192.168.1.2 ; }: Spécifie les hôtes qui ne sont pas autorisés à interroger le serveur de
noms.
• allow-transfer { 192.168.1.2 ; } : machine(s) ou réseau(x) autorisés à copier la base de données dans
le cas d’une relation maître et esclave. Par défaut aucune copie n’est autorisée.
P-20 S@id OubghouZ
• notify no : on notifie ou non les autres serveurs DNS d’un changement dans les zones ou d’un
redémarrage du serveur.
• include : indique le nom d’un "sous-fichier" de configuration. Evite d’avoir un fichier named.conf trop
grand pour être administré confortablement

Types courants de déclarations.


- Parmi les options les plus courantes de la déclaration de zone figurent :
• allow-query : Spécifie les clients qui sont autorisés à demander des informations à propos de cette
zone. Par défaut toutes les requêtes d'informations sont autorisées.
• allow-transfer : Spécifie les serveurs esclaves qui sont autorisés à demander un transfert des
informations relatvies à la zone. Par défaut toutes les requêtes de transfert sont autorisées.
• allow-update : Spécifie les hôtes qui sont autorisés à mettre à jour dynamiquement les informations
dans leur zone. Par défaut aucune requête de mise à jour dynamique n'est autorisée.
• file : Spécifie le nom du fichier qui figure dans le répertoire de travail named et qui contient les
données de configuration de la zone.
• masters : Specifie les adresses des serveurs masters.
• notify : Détermine si named notifie les serveurs esclaves lorsqu'une zone est mise à jour. Cette
directive accepte les valeurs suivantes : - yes -no
• type : Définit le type de zone :
• forward : redirection de toutes les requêtes pour cette zone vers d’autres serveurs.
• hint : pour les serveurs racine
• master : serveur maître d’une zone
• slave : réplique depuis un master
Balaise de commentaire.
Les commentaires commencent par un # ou / /.

L’installation :
Apres la configuration du serveur BIND il faut fixer une adresse IP statiquement.
Avant de fixer l’adresse IP. Il faut installer le package BIND.
- Monter le CD des packages.
- #rpm -ivh /media/RHEL_5.3\ i386\ DVD/Server/bind-9.3.4-10.P1.el5.i386.rpm

La configuration globale de Bind est placée dans le fichier /etc/named.conf. La configuration détaillée des
zones est placée dans /var/lib/named. /etc/named.conf est composé de deux parties. La première concerne la
configuration globale des options de Bind. La seconde est la déclaration des zones pour les domaines
individuels. Les commentaires commencent par un # ou / /.

 Configuration du serveur BIND

Le fichier /etc/named.conf

P-21 S@id OubghouZ


# vim /etc/named.conf
options {
dirictory ‘’/var/named ‘’ ; //chemin des Zones
statistics-file "data/named_stats.txt";
memstatistics-file "data/named_mem_stats.txt";
dump-file ‘’data/cache_dump.db’’ //la cache de Serveur cache
query-source * port 53; //numéro de port d’écoute
listen-on port 53 {192.168.1.1 ;} ; //les interfaces d’écoute
allow-query { localhost;192.168.1.0/24; }; //machines, réseaux autorisé ,par défaut tout AUTORISE
recursion yes | no; //(allow query pour demander la résolution récursif
allow-recursion {192.168.1.0/24 ;} ; //les demandes récursif
blockhole {192.168.1.100 ;} ; //bloquer une machine ou réseau
allow-transfer {192.168.1.3 ;} ; //pour le transfert des zones
notify yes ; //les modification instantané
allow-update {192.168.1.2 ;} ; //MAJ de DHCP
forward only | first ; //la redirection(first récursif-cache) (only cache-récursif)
forwarders {192.168.1.12 ;} ; //redirection la demande (exp : FAI)
include ‘’sous-fichier’’ ; //complété la configuration dans un autre fichier
key ‘’rndc-key’’
{ //on déclare une clé pour les transactions (DHCP ou Slave)
Algorithm hmac-md5 ; //algorithme de cryptage
Secret ‘’Rg7hzsjfgwnp97vwz2-n4f21r’’ ;
};
zone "." IN { //la racine ;la résolution vers les @ internet
type hint ;
file "named.root"; //ce fichier est déjà créé par défaut
};
zone "localhost" IN { //la zone pour résoudre localhost
type master;
file "localhost.zone"; //ce fichier est déjà créé par défaut
};
zone "0 .0.127.in-addr.arpa" IN { //la zone inverse de localhost
type master ;

P-22 S@id OubghouZ


file "named.local"; };
zone "localhost" IN { //la zone pour resoudre localhost
type hint ;
file "localhost.zone"; //ce fichier est déjà créé par défaut
};
zone "2tri.lan" IN {
type master;
file "ista.zone"; };
zone "1.168.192.in-addr.arpa" IN {
type master;
file "ista.rev"; };

Section de zones
la zone peut être maître Master ou esclave Slave :
• Master : le serveur contient la totalité des enregistrements de la zone dans ses fichiers de zone. Lorsqu’il
reçoit une requête, il cherche dans ses fichiers (ou dans son cache) la résolution de celle-ci.
• Slave : le serveur ne contient par défaut aucun enregistrement. Il se synchronise avec un serveur maître
duquel il récupère toutes les informations de zone. Ces informations peuvent être placées dans un fichier.
Dans ce cas l’esclave stocke une copie locale de la base. Lors de la synchronisation, le numéro de série de
cette copie est comparé à celui du maître. Si les numéros sont différents, une nouvelle copie a lieu, sinon la
précédente continue à être utilisée.

Les Fichiers de zone (dans le répertoire /var/named/)


- Attention les noms des machines doivent se terminer par un point.
Pour la Zone directe

# vi /var/named/ista.zone
$TTL 300
@ IN SOA Serv1. ista.ma. root. ista.ma. (
2013122100 ; Serial
3H ; Refresh
1H ; Retry
1W ; Expire
1H ) ; Minimal
IN NS Serv1. ista.ma.
Serv1 IN A 192.168.1.254
client1 IN A 192.168.1.1

Pour la Zone inverse

# vi /var/named/ista.rev
$TTL 300
@ IN SOA Serv1.ista.ma. root.ista.ma. (
2013122100 ; Serial
3H ; Refresh
1H ; Retry
1W ; Expire

P-23 S@id OubghouZ


1H ) ; Minimal
IN NS Serv1. ista.ma.
254 IN PTR Serv1.ista.ma.
1 IN PTR client1.ista.ma

Apres cette configuration il faut le redémarrer le service


Le nom de service s’appelle named.
# service named start
Ou : # /etc/init.d/named start

Explication :
$TTL : Time To Live (durée de vie) : indique la durée de conservation en secondes des données en
mémoire cache. Cette valeur est précédée par la directive $TTL.
• domain : c’est le nom de la zone.
• primary-name-server : le nom sur le serveur DNS maître sur cette zone. Il ne faudra pas oublier de le
déclarer dans la liste des hôtes (enregistrements PTR ou A).
• hostmaster-email : adresse de courrier électronique de l’administrateur du serveur de nom. Le
caractère @ étant déjà réservé à un autre usage, on utilise un point pour le remplacer. Ainsi «
admin@domaine.org » devra s’écrire « admin.domaine.org. » .
• serial-number : Elle est utilisée pour la synchronisation avec les serveurs esclaves. Si le numéro de
série est le même qu’à la dernière synchronisation les données ne sont pas rafraîchies. Par
convention on place YYYYMMDDNN (année-mois-jour-numéro) sur dix chiffres.
• time-to-refresh : indique à tout serveur esclave combien de temps il doit attendre avant de
demander au serveur de noms maître si des changements ont été effectués dans la zone.
• time-to-retry : indique au serveur esclave combien de temps attendre avant d’émettre à nouveau une
demande de rafraîchissement si le serveur maître n’a pas répondu.
• time-to-expire : si malgré les tentatives, le serveur n’a pas répondu au bout de la durée indiquée dans
time-to-expire, le serveur esclave cesse de répondre aux requêtes pour cette zone.
• Minimum-TTL : le serveur de nom demande aux autres serveurs de noms de mettre en cache les
informations pour cette zone pendant au moins la durée indiquée
 Transfer de Zones
Apres le penser de transférer les zones depuis le serveur master vers le serveur slave. il faut tester le Ping
entre les serveurs.
La configuration qu’il faut configurer au niveau de serveur master

P-24 S@id OubghouZ


La configuration qu’il faut configurer au niveau de serveur Slave

Après tout ca il faut modifier les droit d’accès au niveau de repertoire /var/named de serveur slave .
#chmod g+w /var/maed
Les journaux
- Si vous êtes en phase de configuration, pensez (ce doit être un réflexe) à consulter les fichiers de
journalisation, notamment /var/log/messages. Cette opération permet dans bien des cas de corriger
des erreurs qui se trouvent dans les fichiers de configuration

 La Sécurité du DNS
Utilisation de rndc
- Comme tous les services Unix ou Linux, BIND est lancé ou arrêté par un script dans /etc/init.d/rndc.
Cette commande associée à quelques mots clés permet de transmettre au serveur diverses

P-25 S@id OubghouZ


instructions.
- Il n’est pas obligatoire d’utiliser rndc dans le cadre d’une administration courante. Mais alors toute
modification d’un fichier de configuration quel qu’il soit imposerait le redémarrage complet du service,
et donc son interruption temporaire. rndc devrait donc être utilisé systématiquement, surtout si le
serveur gère un grand nombre de zones, comme c’est le cas pour un hébergeur par exemple.
Configuration de /etc/named.conf
- Pour que rndc puisse se connecter à un service named, une déclaration controls doit être présente
dans le fichier /etc/named.confdu serveur BIND.
- La déclaration controls, décrite dans l'exemple qui suit, permet à rndc de se connecter à partir d'un
hôte local
controls {
inet 127.0.0.1 allow { localhost; } keys { <key-name>; };
};

- Cette déclaration indique à named qu'il doit écouterle port TCP 953 par défaut de l'adresse inversée et
doit 'autoriser les commandes rndc provenant de l'hôte local, si la clé adéquate est donnée. Le <keyname> fait
référence à la déclaration key, qui se trouve dans le fichier /etc/named.conf. L'exemple
suivant illustre une déclaration key.

key "<key-name>" {
algorithm hmac-md5;
secret "<key-value>";
};

- Dans ce cas, la déclaration <key-value> utilise l'algorithme HMAC-MD5. Afin de créer des clés à l'aide
de l'algorithme HMAC-MD5, utilisez la commande suivante :

#dnssec-keygen -a hmac-md5 -b <bit-length> -n HOST <key-file-name>

- Une clé d'au moins 256 bits de long est un bon choix. La clé qui doit être placée dans la zone <keyvalue> se
trouve dans le fichier <key-file-name> généré par cette commande.
Remarque :
Étant donné que /etc/named.conf est lisible par tout un chacun, il est judicieux de placer la déclaration key
dans un fichier séparé que seul le super-utilisateur (ou root) peut lire et d'utiliser ensuite une déclaration
include pour le référencer. Par exemple : include "/etc/rndc.key";
Configuration de /etc/rndc.conf
- La déclaration key représente la déclaration la plus importante du fichier /etc/rndc.conf.

key "<key-name>" {
algorithm hmac-md5;
secret "<key-value>";
};
- Les éléments <key-name> et <key-value> doivent être absolument identiques aux paramètres les
concernant qui figurent dans /etc/named.conf.
- Pour établir la correspondance entre les clés spécifiées dans le fichier /etc/named.conf du serveur
cible, ajoutez les lignes reproduites ci-dessous au fichier /etc/rndc.conf.

options {
P-26 S@id OubghouZ
default-server localhost;
default-key "<key-name>";
};

- Cette directive détermine une clé globale par défaut. Toutefois, le fichier de configuration rndc peut
également spécifier différentes clés pour différents serveurs, comme le montre l'exemple suivant :

server localhost {
key "<key-name>";
};

- Pour obtenir davantage d'informations sur le fichier /etc/rndc.conf, consultez la page de manuel
de rndc.conf.
Options de ligne de commande
- Une commande rndc se présente sous le format suivant :
rndc <options> <command> <command-options>
- Lors de l'exécution de rndc sur un hôte local configuré de façon appropriée, les commandes suivantes
sont disponibles :
halt — Arrête immédiatement le service named.
querylog — Journalise toutes les requêtes effectuées auprès de ce serveur de noms.
refresh — Rafraîchit la base de données du serveur de noms.
reload — Recharge les fichiers de zone mais conserve toutes les réponses précédemment mises en
cache. Cette commande permet également d'apporter des changements aux fichiers de zone sans
perdre toutes les résolutions de nom stockées. Si les changements n'affectent qu'une zone
particulière, rechargez seulement cette zone en ajoutant le nom de la zone après la commande reload.
stats — Vide les statistiques courantes de named vers le fichier /var/named/named.stats.
stop — Arrête correctement le serveur, en enregistrant préalablement toute mise à jour dynamique et
toute donnée Incremental Zone Transfers (IXFR).
reconfig Charge les fichiers de configuration pour les nouvelles zones uniquement.
flush Efface le cache du serveur.
flush zone Efface le cache du serveur pour la zone spécifiée.
status Affiche l’état du serveur
- Dans certaines situations, il sera peut-être nécessaire d'annuler les paramètres par défaut contenus
dans le fichier /etc/rndc.conf. Les options suivantes sont disponibles :
-c <configuration-file> — Spécifie l'autre emplacement d'un fichier de configuration.
-p <port-number> — Spécifie le numéro de port à utiliser pour la connexion de rndc, autre que le port
par défaut 953.
-s <server> — Spécifie un serveur autre que le default-server (serveur par défaut) précisé
dans /etc/rndc.conf.
-y <key-name> — Spécifie une clé autre que l'option default-key (clé par défaut) présente dans le
fichier /etc/rndc.conf.
- Des informations supplémentaires sur ces options sont disponibles dans la page de manuel de rndc

Gérer un serveur DNS


BIND possède un utilitaire appelé rndc qui permet d’administrer le démon named à partir de la console
locale ou d’un hôte distant.
Démarrage du serveur DNS

P-27 S@id OubghouZ


Il est possible de démarrer le serveur de nom manuellement à l’aide de la commande suivante :
service named start
Recharger la configuration d’un serveur DNS
Après chaque modification des fichiers de configuration le serveur DNS doit être relancer. La commande
suivante permet de changer la nouvelle configuration : rndc reload
Arrêt du serveur de noms
La commande suivante permet d’arrêter le serveur de noms : rndc stop
Afficher les statistiques
L’utilitaire rndc permet aussi d’afficher différentes statistiques : rndc stats
Cette commande crée un fichier nommé named.stats situé dans le répertoire /var/named.
BIND en tant que serveur de cache.

1etape :
Copier les fichiers « localdomain.zone localhost.zone named.local named.root
named.broadcast named.zero » depuis /usr/share/doc/bind-
9. 3.4/etc/simple/var/named vers /var/named
Et copier les fichiers « named.rfc1912.zones named.root.hints » depuis
/usr/share/doc/bind-9.3.4/sipmle/etc vers /etc
2etape :
# vim /etc/named.conf
options {
dirictory ‘’/var/named ‘’ ;
statistics-file "data/named_stats.txt";
memstatistics-file "data/named_mem_stats.txt";
dump-file ‘’data/cache_dump.db’’ //la cache
query-source * port 53;
listen-on port 53 {192.168.1.1 ;} ;
forward first ;
forwarders {192.168.1.12 ;} ;
};
P-28 S@id OubghouZ
Include ‘’/etc/named.rfc1912.zones’’ ;
Include ‘’/etc/named.root.hints’’ ;

 Le serveur DHCP

Fiche Sur DHCP


DHCP dynamique host configuration Protocol
Numéro de port UDP/67 - UDP/68
UDP/67 pour le serveur
UDP/68 pour le client,il permet de configurer
dynamiquement les hôtes (Attribution d'@IP,
Masque, Durée de bail, plage d'exclure,DNS,
WINS, NomNB...)
Fichiers de /etc/dhcpd.conf
configuration
Nom de package dhcp-3.0.5-18.el5.i386.rpm
Nom de service dhcpd

P-29 S@id OubghouZ


Définition du terme DHCP Il s'agit d'un protocole qui permet à un ordinateur qui se connecte sur un réseau
d'obtenir dynamiquement (c'est-à-dire sans intervention particulière) sa configuration réseau. Le but principal
étant la simplification de l'administration d'un réseau.
Fonctionnement du protocole DHCP
Il faut dans un premier temps au moins un serveur DHCP qui distribue des adresses IP. Cette machine va servir
de base pour toutes les requêtes DHCP, aussi elle doit avoir une adresse IP fixe.
NB: Dans un réseau, on peut donc n'avoir qu'une seule machine avec adresse IP fixe le serveur DHCPLes
requetses DHCP
En fait, il existe plusieurs types de paquets DHCP susceptibles d'être émis soit par le client pour le ou les
serveurs, soit par le serveur DHCP vers un client :
• DHCPDISCOVER découvrir (pour localiser les serveurs DHCP disponibles)
• DHCPOFFER proposer (réponse du serveur à un paquet DHCPDISCOVER, qui contient les premiers
paramètres)
• DHCPREQUEST (requête diverse du client pour par exemple prolonger son bail)
• DHCPACK (réponse du serveur qui contient des paramètres et l'adresse IP du client)
• DHCPNAK (réponse du serveur pour signaler au le client que son bail est échu ou si le client annonce une
mauvaise configuration réseau)
• DHCPDECLINE refuser (le client annonce au serveur que l'adresse est déjà utilisée)
• DHCPRELEASE libérer (le client libère son adresse IP)
• DHCPINFORM informer (le client demande des paramètres locaux, il a déjà son adresse IP)
Le bail
Pour des raisons d'optimisation des ressources réseau, les adresses IP sont délivrées avec une date
de début et une date de fin de validité. C'est ce qu'on appel un bail. Un client qui voit son bail arriver à terme
peut demander au serveur une prolongation du bail par un
DHCPREQUEST (?). De même, lorsque le serveur verra un bail arrivé à terme, il émettra un paquet
DHCPNAK(?) pour demander au client s'il veut prolonger son bail. Si le serveur ne reçoit pas de réponse
valide, il rend disponible l'adresse IP.
Demande de bail IP
• Le processus de création de bail commence lorsqu’un ordinateur client démarre ou initialise le protocole
TCP/IP pour la première fois. Il commence également lorsqu’un ordinateur client tente de renouveler son bail
et est rejeté (déplacement d’un client vers un autre sous réseaux).
• Le client diffuse un message DHCPDISCOVER pour les informations d’adressage IP. Le client ne dispose pas
encore d’adresse IP, Il utilise donc 0.0.0.0 comme adresse source. Étant donné que le client ne connaît pas
l’adresse IP du serveur DHCP, il utilise 255.255.255.255 comme adresse de destination. Le massage est diffusé
à l’ensemble des sous réseaux.
• Le message de demande contient également l’adresse MAC et le l’adresses IP de ordinateur client pour que
les serveurs DHCP puissent déterminer le client qui a envoyé la demande.
Proposition de bail IP
• Tous les serveurs DHCP qui disposent d’une adresse IP valide pour le segment de réseau auquel le client est
connecté répondent avec un messageDHCPOFFER, qui contient les informations suivantes :
• L’adresse matérielle du client
• Une adresse IP proposée
• Un masque de sous réseau
• La durée du bail
• l’adresse IP du serveur DHCP qui fait la proposition
• Chaque serveur DHCP qui répond réserve l’adresse IP proposée pour ne pas la proposer à un autre client
avant l’acceptation par le client ayant fait la demande.

P-30 S@id OubghouZ


• Le client DHCP attend l’offre pendant une seconde. S’il ne la reçoit pas, il rediffuse la demande quatre fois
selon des intervalles de 2,4,8 et 16 secondes, plus une durée aléatoire comprise entre 0 et 1000 millisecondes.
• Si le client ne reçoit pas d’offre après les quatre demandes, il utilise une adresse IP de la plage réservée
comprise entre 169.254.0.1 et 169.254.255.254. Le client DHCP continue à rechercher un serveur DHCP toutes
les cinq minutes.
• Lorsqu’un serveur DHCP est enfin disponible, les clients reçoivent des adresses IP valides. Ce qui leur permet
de communiquer avec des hôtes internes et externes.
Choix du bail IP
Le client DHCP répond à la première offre qu’il reçoit en diffusant un
message DHCPREQUEST pour l’accepter. Celui-ci contient l’identification du serveur dont il a accepté l’offre.
Tous les autres serveurs DHCP retirent alors leur offre et conservent leurs adresses IP pour d’autres demandes
de bail IP.
Accusé de réception du bail IP
Le serveur DHCP qui émet l’acceptation de l’offre envoie un message d’accusé de réception DHCPACK pour
notifier le bail. Ce massage contient un bail valide pour
l’adresse IP et d’autres informations de configuration (passerelle par défaut, serveur DNS …..)

Renouvellement automatique d’un bail


• Lorsqu'un client redémarre, il tente d'obtenir un bail pour la même adresse avec le serveur DHCP d'origine,
en émettant un DHCPREQUEST. Si la tentative se solde par un échec, le client continue à utiliser la même
adresse IP s'il lui reste du temps sur son bail.
• Un client DHCP tente automatiquement de renouveler son bail lorsque 50% sa durée a expiré. Pour
renouveler un bail, le client DHCP envoie un message DHCPREQUEST directement au serveur DHCP duquel il a
obtenu ce bail. Si le serveur DHCP est disponible il envoie un DHCPACK avec la nouvelle durée et
éventuellement les mises à jour des paramètres de configuration.
• Si le serveur DHCP n’est pas disponible, le client continue à utiliser ses paramètres de configuration actuels.
Il diffuse ensuite un message DHCPDISCOVER pour mettre à jour le bail de son adresse lorsque 87,5% de la
durée a expiré. A ce stade, le client DHCP accepte un bail émis par importe quel serveur DHCP.
• Si le bail expire, le client doit immédiatement cesser d'utiliser l'adresse IP en cours. Le client DHCP
commence alors le processus de création d’un bail DHCP en vue d’obtenir une nouvelle adresse IP.
Renouvellement manuel d’un bail
Vous pouvez renouveler manuellement un bail IP si vous devez mettre à jour immédiatement les informations
de configuration DHCP. Par exemple, si vous souhaitez que les clients DHCP obtiennent immédiatement d’un
serveur DHCP l’adresse d’un nouveau routeur, renouvelez le bail à partir du
client pour changer cette configuration. Pour renouveler le bail manuellement, utilisez les commandes :
# dhclient -r eth0
Demande au client DHCP d'abandonner l'adresse IP utilisée par l'interface réseau. (Sous Windows utilisez la
commande ipconfig /release)
# dhclient eth0
Provoque l'émission d'une demande de renouvellement du bail par le client DHCP. (Sous Windows utilisez la
commande ipconfig /renew).

P-31 S@id OubghouZ


 Configuration d'un serveur DHCP Sous Linux
L’installation :
Apres la configuration du serveur DHCP il faut fixer une adresse IP statiquement.
Avant de fixer l’adresse IP. Il faut installer le package DHCP.
- Monter le CD des packages.
- #rpm -ivh /media/RHEL_5.3\ i386\ DVD/Server/dhcp-3.0.5-18.el5.i386.rpm
Il existe deux types de déclarations dans le fichier de configuration :
• Paramètres — Les paramètres règlent l'exécution d'une tâche, la façon dont une tâche est exécutée ou les
options de configuration réseau à envoyer au client.
• Déclarations — Les déclarations décrivent la topologie du réseau, les clients ; elles fournissent des adresses
pour les clients ou appliquent un groupe de paramètres à un groupe de déclarations.
• Les paramètres qui commencent avec le mot-clé option sont considérés comme des options. Ces options
configurent les options DHCP alors que les paramètres eux, configurent des valeurs qui ne sont pas
facultatives ou contrôlent le comportement du serveur DHCP.
• Les paramètres (y compris les options) déclarés avant une section entre accolades ( { } ) sont considérés
comme des paramètres globaux. Ceux-ci s'appliquent à toutes les sections se trouvant en dessous.
• Si vous modifiez le fichier de configuration, les modifications ne prendront pas effet tant que vous n'aurez
pas redémarré le démon DHCP à l'aide de la commande service dhcpd restart .
cp /usr/share/doc/dhcp-3.0.5/dhcpd.conf.sample /etc/dhcpd.conf
Le fichier /etc/dhcp/dhcpd.conf

# vi /etc/dhcp/dhcpd.conf
options domain-name "ista.ma"; //le domain
ddns-update-style interim | none ; //specifier le type de MAJ du DNS ;(ad-hoc | interim)
ignore client-updates; //en bloque les MAJ du DNS derectement par les clients
ddns-domain-name=’’ista.ma’’;//zone directe de domain
ddns-rev-domain=’’1.168.192.in-addr.arpa’’;//zone inverse de domain
authoritative;// (cas de DNS=DHCP dans même machine, ou l’autorité)
update-static-leases on;//les entres static des @ip
option domain-name-servers serv1.ista.ma;//FQDN de serveur de domain ista.ma
default-lease-time 600;//la durée de bail
max-lease-time 7200;//la durée maximal de durée de bail
option routers 192.168.1.1;//la passerelle
key ‘’rndc-key’’
{ //on declare une clé pour les transactions entre DHCP et DNS pour plus de securite
Algorithm hmac-md5 ;
Secret ‘’Rg7hzsjfgwnp97vwz2-n4f21r’’ ;
};
zone ista.ma { //zone directe
primary 192.168.1.3;//@ip de serveur DNS
key rndc-key ; //specifie la cle a utilise pour les transactions
}
1.168.192.in-addr.arpa { //zone inverse
primary 192.168.1.3;
}
subnet 192.168.1.0 netmask 255.255.255.0 { //notre sous Resau

P-32 S@id OubghouZ


range 192.168.1.1 192.168.1.100; //pool des @ip
}
host pc1 { //Attribution statique « Réservation »
hardware ethernet 08:00:27:B7:AA:01;
fixed-address 192.168.1.10;
}
Apres cette configuration il faut redémarrer le service responsable par le service DHCP qui
s’appelle dhcpd par la commande suivant :
# service dhcpd restart
OU : # /etc/init.d/dhcpd restart
La configuration de base pour un réseau local
# Fichier de configuration du serveur DHCPd : /etc/dhcpd.conf
# Durée par défaut du bail IP en secondes (0 = infini)
default-lease-time 3600;
# Durée maximale de bail IP possible en secondes
# (Si le client demande une durée de bail plus importante)
max-lease-time 7200;
# Demande de non-prise en charge du DNS dynamique
ddns-update-style none;
# Déclaration de sous-réseau 10.0.0.0
# Il faut obligatoirement déclarer chaque sous-réseau auxquels le
# serveur DHCP sera connecté
subnet 10.0.0.0 netmask 255.0.0.0 {
# Masque de sous-réseau du client
option subnet-mask 255.0.0.0;
# Adresse de broadcast préférentielle
option broadcast-address 10.255.255.255;
# Nom de domaine auxquels appartiendront les clients
option domain-name "unix.ebc-informatique.com";
# Adresses IP des serveurs de noms par ordre croissant de préférence
option domain-name-servers 10.0.0.1;
# Adresses IP des routeurs par ordre croissant de préférence
option routers 10.0.0.1;
# Adresses IP des serveurs WINS par ordre croissant de préférence
option netbios-name-servers 10.0.0.1;
# Etendue des adresses IP distribuables
range 10.0.100.2 10.0.100.254;
range 10.0.101.2 10.0.101.254;
}
# Affectation d’une adresse IP fixe à un client
host Directeur{
# Adresse ETHERNET de la carte réseau du client
hardware ethernet 08:00:2b:4c:59:23;
# Adresse IP associée
fixed-address 192.168.1.222;
}

P-33 S@id OubghouZ


Base de données d'attribution
Sur le serveur DHCP, le fichier /var/lib/dhcpd/dhcpd.leases stocke la base de données d'attribution client
DHCP. Ne modifiez pas ce fichier. Les informations d'attribution DHCP pour toutes les adresses IP récemment
attribuées sont automatiquement stockées dans cette base de données. Ces informations incluent :
• la durée de l'attribution,
• le destinataire de l'adresse IP,
• les dates de début et de fin pour l'attribution
• et l'adresse MAC de la carte d'interface réseau qui a été utilisée pour l'attribution. Restaurer ses fichiers de
configuration
• Si vous avez précédemment sauvegardé vos fichiers de configuration DHCP, vous pouvez les restaurez en
déplaçant le fichier « dhcpd.leases » dans le répertoire que le programme vous a indiqué précédemment ainsi
qu’en déplacant le fichier « dhcpd.conf » dans /etc/
- Configuration du client sous Linux
• Pour configurer manuellement un client DHCP, vous devez modifier le fichier /etc/sysconfig/network afin
d'activer la mise en réseau. Ce fichier doit contenir la ligne suivante:
• NETWORKING=yes
• Les fichiers paramétrant les périphériques réseau doivent aussi être modifiés. Par exemple pour activer le
client DHCP de l’interface eth0, le fichier /etc/sysconfig/network-scripts/ifcfg-eth0 doit contenir les lignes ci-
dessous:
#vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=dhcp
ONBOOT=yes
La configuration de la carte est terminée, vous pouvez tester en relançant le service réseau :
# service network restart
Test du fonctionnement du serveur DHCP
• Le test du bon fonctionnement du serveur DHCP consiste à vérifier si les clients arrivent à communiquer
avec le serveur et à obtenir des adresses IP de la plage que celui-ci fournie.
• Test au niveau du client Linux
– Après toute configuration faite au niveau du serveur et du client Linux, lancez la commande ifconfig.
• Test au niveau du client sous Windows
– Pour vérifier si le client Windows a récupéré une adresse IP du serveur DHCP lancez la commande ipconfig
/all à partir de l’invite de commandes.

Pour que le Serveur DHCP peut enregistrer certain offre dans la base de données de DNS on a parlé par DNS
dynamique.
Une Configuration avec prise en charge du DNS dynamique.

La machine qui supporte le serveur DHCP est également le serveur DNS du réseau. Dans la configuration
suivante, le serveur DHCP côtoie le serveur DNS maître du domaine « ebc-informatique.com. ». Ce serveur
comprend deux interfaces réseaux : eth0 qui est connecté au réseau « ebcinformatique.com. » (adresses IP
172.16.x.x) et eth1 qui est connecté au sous-réseau dynamique « unix.ebcinformatique.com. » (adresses IP
10.x.x.x). Le serveur DHCP, cette fois-ci à l’écoute de la seule interface eth0, devra donc informer le serveur
DNS de l’arrivée d’un client sur le sousréseau 10.0.0.0 afin que celui-ci modifie les correspondances DNS en
conséquences.
La configuration Au niveau de serveur DHCP

P-34 S@id OubghouZ


:
# Fichier de configuration du serveur DHCP /etc/dhcpd.conf
default-lease-time 3600;
max-lease-time 7200;
ddns-update-style ad-hoc; # Demande de prise en charge du DNS dynamique
# Déclaration d’une clé de protection pour les MAJ du DNS
key DHCP_UPDATER { # (ATTENTION : il faudra configurer le serveur DNS en conséquence)
algorithm HMAC-MD5.SIG-ALG.REG.INT;
secret pRP5FapFoJ95JEL06sv4PQ==;
}
# Déclaration d’informations DNS spécifiques à certaines zones (Comme par exemple
la clé de MAJ à transmettre) zone ebc-informatique.com.
{
primary 127.0.0.1;
key DHCP_UPDATER; # Serveur primaire du domaineprimary 127.0.0.1;
key DHCP_UPDATER;
}

subnet 10.0.0.0 netmask 255.0.0.0 { # Déclaration de sous-réseau 10. 0.0.0


option subnet-mask 255.0.0.0; # Masque de sous-réseau du client
option broadcast-address 10.255.255.255; # Adresse de broadcast préférentielle
option domain-name "unix.ebc-informatique.com"; # Nom de domaine auxquels
appartiendront les clients
option domain-name-servers 10.0.0.1; # Adresses IP des serveurs de noms par ordre
croissant de préférence
option routers 10.0.0.1; # Adresses IP des routeurs par ordre croissant de préférence
option netbios-name-servers 10.0.0.1; # Adresses IP des serveurs WINS par ordre
croissant de préférence
# Etendue des adresses IP distribuables
range 10.0.100.2 10.0.100.254;
range 10.0.101.2 10.0.101.254;
}
host client_windows { # Affectation d’une adresse IP fixe à un client
hardware ethernet 08:00:2b:4c:59:23; # Adresse ETHERNET de la carte réseau du
client
fixed-address 192.168.1.222; # Adresse IP associée
}
La configuration Au niveau de serveur DNS
# vim /etc/named.conf
options {
dirictory ‘’/var/named ‘’ ; //chemin des Zones
statistics-file "data/named_stats.txt";
memstatistics-file "data/named_mem_stats.txt";
dump-file ‘’data/cache_dump.db’’ //la cache de Serveur cache
query-source * port 53; //numéro de port d’écoute
listen-on port 53 {192.168.1.1 ;} ; //les interfaces d’écoute
allow-query { localhost;192.168.1.0/24; }; //machines, réseaux autorisé ,par défaut tout
AUTORISE
key ‘’rndc-key’’
{ //on déclare une clé pour les transactions (DHCP ou Slave)
Algorithm hmac-md5 ; //algorithme de cryptage
P-35 S@id OubghouZ
Secret ‘’Rg7hzsjfgwnp97vwz2-n4f21r’’ ;
};
zone "2tri.lan" IN {
type master;
file "ista.zone";
allow-update {rndc-key;} ; };
zone "1.168.192.in-addr.arpa" IN {
type master;
file "ista.rev";
allow-update {rndc-key;} ; };

après un redémarrage de service DNS. il faut changer les droits d’accès de répertoire
/var/named :
#chmod g+w /var/named

 L’agent de Relay

P-36 S@id OubghouZ


Fiche Sur L’agent de Relay
Numéro de port 67 - 68
UDP - TCP chargé de faire suivre les demandes DHCP et
BOOTP entre les clients et un ou plusieurs
serveurs DHCP situés sur d'autres sous réseaux
IP.
Fichiers de /etc/sysconfig/dhcrelay
configuration
Nom de packages dhcp-devel-3.0.5-18 .el5.i386.rpm
Nom de service dhcrelay

Définition : Un agent de Relay est un serveur qui permet de faire une relation entre les clients DHCP d’un
réseau à un serveur DHCP qu’il y a dans un autre réseau.
Pour utiliser un serveur .en tant qu’un agent de Relay il faut le contenir par deux carte réseaux ou plus.
L’installation :
Apres la configuration du serveur BIND il faut fixer une adresse IP statiquement.
Avant de fixer les adresses IP des cartes réseaux. Il faut installer le package d’agent de
Relay
- Monter le CD des packages.
#rpm -ivh /media/RHEL_5.3\ i386\ DVD/Server/dhcp-devel-3.0.5-18 .el5.i386.rpm

La configuration
Dans le fichier #vi /etc/sysconfig/dhcrelay
#command line options here
INTERFACES= ‘’eth0 eth1’’ #les interfaces d’entrée/sortie
DHCPSERVERS= ‘’192.168.1.1’’ #adresse IP de serveur DHCP

Apres il faut le redémarrer le service .


#service dhcrelay restart

Dans le fichier #vi /etc/dhcpd.conf


Il faut déclarer deux réseaux.
- une pour le réseau de serveur DHCP.
- et une pour le réseau des clients DHCP.
default-lease-time 3600;
max-lease-time 7200;
ddns-update-style ad-hoc;

subnet 10.0.0.0 netmask 255.0.0.0 {


option routers 10.0.0.1;

P-37 S@id OubghouZ


range 10.0.100.2 10.0.100.254;
}
subnet 192.168.1.0 netmask 255.255.255.0 {
option routers 192.168.1.1;
range 10.0.100.2 10.0.100.254;
}

Apres il faut le redémarrer le service .


#service dhcpd restart
Apres cette configuration. il faut activer le routage. L’agent de Relay joue le rôle d’un agent
de Relay et d’une passerelle en même temps.
echo 1 > /proc/sys /net/ipv4/ip_forward

Les Serveurs de partages


 NFS

Fiche Sur NFS


NFS Network File System
TCP Numéro de port 2049
Fichiers de /etc/exports
configuration
Nom de package Il est déjà installer
Nom de service nfs
portmap
nfslock

P-38 S@id OubghouZ


Définition : c'est un service qui permet de partager les dossiers entre les systèmes
Linux/Linux.
Installation de Serveur NFS.
- Démarrage et arrêt de service.
NFS s’appuie sur le portmapper (portmap), le support nfs du noyau et les services rpc.nfsd et
rpc.mountd.
Pour lancer le service NFS, portmap et nfs doivent être lancés (en vérifier le statut avant).
# service portmap status # /etc/init.d/portmap status ou rpcinfo -p
# service nfs status
# service portmap start
# service nfs start
# service nfslock start
Pour savoir si le service est disponible sur un hôte distant :
# rpcinfo -p hote
Voici maintenant les processus qui doivent être actifs sur le serveur NFS.
portmap gére le catalogue des programmes RPC,
mountd est chargé des opérations de montage/démontage d’arborescence,
nfsd exécute les primitives d’accès aux fichiers - requêtes émanant des clients

Configuration NFS.
Partage côté serveur
La liste des systèmes de fichiers à exporter se trouve dans /etc/exports. Il contient un partage
par ligne.
#vi /etc/exports
# Rep exportes Autorisations d’acces
/ poste1(rw) poste2(rw,no_root_squash)
/projects *.mondomaine.org (rw)
/home/joe poste *.mondomaine.org (rw)
/pub 192.168.1.0/255.255.255.0 (ro)
/projet samir(rw) (ro)

Chaque ligne est composée de deux parties. La première est le chemin du répertoire exporté.
La seconde contient les autorisations d’accès.
L’autorisation d’accès est composée de paires hôtes/permissions selon le format suivant :
host(permissions)
Si l’hôte n’est pas défini, c’est tout le réseau (portée dite mondiale) qui sera concerné par les
permissions. Si les permissions ne sont pas définies, l’export sera en lecture seule. Il ne faut
surtout pas mettre d’espaces entre l’hôte et les permissions. L’hôte peut être :

P-39 S@id OubghouZ


• un nom d’hôte unique
• un domaine
• un réseau ou un sous-réseau
• une combinaison de l’ensemble avec des caractères de substitution ( * , ?). Les permissions
peuvent être :
• ro : lecture seule
• rw : lecture écriture
• no_root_squash : le root distant équivaut au root local
• root_squash : si root se connecte au partage, son uid sera remplacé par celui d’un
utilisateur anonyme. Ainsi il n’y a pas de
risques que l’utilisateur root d’un poste local puisse être root sur un partage distant
• all_squash : étend la règle précédente à tous les utilisateurs
• anonuid / anongid : uid et gid pour l’utilisateur anonyme.
Pour une gestion correcte des droits et des permissions, les utilisateurs de même nom (login)
doivent avoir les mêmes UID et GID
sur le serveur et le client. NFS se base en effet sur ces valeurs pour la sécurité des données du
partage. Le nom de login seul ne suffit pas.
Dans l’exemple ci-dessus, l’utilisateur joe est autorisé à accéder au partage /home/joe (on
suppose que c’est son répertoire personnel) sur tous les postes du domaine. L’utilisateur joe
doit être déclaré de la même manière (même UID) sur le serveur et sur tous les postes. C’est
pour cela que l’on utilise souvent NIS avec NFS.

La commande exportfs
La commande exportfs permet de contrôler les partages.
 exportfs -r : rafraîchit la liste des partages après modification de /etc/exports
 exportfs -v : liste des partages
 exportfs -a : exporte (ou recharge) tous les partages de /etc/exports ou un partage donné
 exportfs -u : stoppe le partage donné. -a pour tous. (-ua désactive tout les partages de
/etc/exports)
 exportfs –o rw,async host1:/data : exporte le répertoire /data.
showmount -e host : montre les partages d’un hôte donné.
nfsstat : Affiche des statistiques consernant les RPC et NFS
Installation côté client.
Le serveur NFS exporte (ou publie) un système de fichiers auquel le client peut accéder par
une instruction mount.

Connexion aux dossiers partagés au démarrage.


Le support NFS est inclus sous forme de module du noyau. Il est automatiquement chargé à
l’utilisation d’un accès NFS.
Dans /etc/fstab notez les modifications :

P-40 S@id OubghouZ


server1:/pub /mnt/pub nfs defaults 0 0
Le périphérique est remplacé par le chemin du partage sous la forme serveur:chemin. Le
système de fichiers est nfs. C’est identique avec la commande mount :
mount -t nfs serveur1:/pub /mnt/pub
Si les montages NFS sont définis dans /etc/fstab, mount -a ne va pas les monter. Un service est
généralement présent dans chaque
distribution pour les monter et les démonter aux arrêts relances. Sur Red Hat, le service
/etc/rc.d/init.d/netfs les montera
automatiquement au démarrage.
NFS dispose d’options de montage spécifiques :
• nolock : option de compatibilité avec d’anciens serveurs NFS
• intr : interrompt une requête NFS si le serveur ne répond pas
• hard : bloque les processus qui tentent d’accéder à un partage inaccessible
• soft : un processus retournera une erreur en cas d’accès infructueux
• rsize=8192, wsize=8192 : taille des blocs de lecture/écriture sur le serveur. Une écriture de
8 ko est plus rapide que 8 écritures de 1 ko.

Sécurité d'un serveur NFS


Sécurité de l'accès aux services NFS à travers le programme TCP Wrapper:
Déclarer les machines/réseaux qui ont le droit d'accéder au service
dans le fichier /etc/hosts.allow
Interdire toutes les autres dans le fichier /etc/hosts.deny
Exemple : Dans /etc/hosts.allow
portmap: 192.168.0.1 , 192.168.0.2
mountd: 192.168.0.1 , 192.168.0.2
Dans /etc/hosts.deny
portmap: ALL
lockd: ALL

P-41 S@id OubghouZ


 Samba

Fiche Sur Samba


smb Server Message Block
TCP -Port 389 – for LDAP (Active Directory Mode)
-Port 445 – NetBIOS was moved to 445 after 2000 and
beyond, (CIFS)
-Port 901 – for SWAT service (not related to client
communication)
Fichiers de /etc/samba/smb.conf
configuration
Nom de Perl-Convert-ASN1-0.20-1.1.noarch.rpm
package Pour le Serveur :samba-common-3.0.33-3.7.el5.i386.rpm
Pour le Client : samba-client-3.0.33-3.7.el5.i386.rpm
Pour le swat : samba-swat-3.0.33-3.7.el5.i386.rpm
Nom de smb
service

Présentation :
Un serveur Samba permet de faire paraître une machine Linux comme étant une machine
Windows. Une station Windows est capable d'accéder à des répertoires et des fichiers se
trouvant sur une machine Linux de la même façon que s’ils se trouvaient sur une machine
Windows. Les principales fonctionnalités de Samba sont les suivantes :
- Partager un disque Linux pour des machines Windows
- Partager une imprimante Linux avec des machines Windows
- Partager une imprimante Windows à partir d’un hôte Linux Devenir un contrôleur de domaine
(simuler le système Windows NT Server) et permettre ainsi les authentification réseaux sur un
domaine, le stockage centralisé des profiles Windows et l'exécution de scripts de démarrage
P-42 S@id OubghouZ
- Gérer des listes de machines présentes sur le réseau et leur mise à disposition pour tous types
de clients (cf : voisinage réseau)
- Devenir membre d'un domaine NT existant et ainsi être capable d'utiliser un CPD NT pour
authentifier toutes les connexions faites par des utilisateurs Windows

Samba est un ensemble de serveurs implémentant les protocoles SMB/CIFS et NetBIOS/WINS


pour Unix. Son
utilisation la plus connue est le partage de ressources entre Windows et Unix, mais il
fonctionne parfaitement bien entre
deux Unix. Un partage est aussi appelé service. Samba est composé de deux services :
• smbd : serveur SMB/CIFS.
- Authentification et autorisation.
- Partages de fichiers et d’imprimantes.
• nmbd : serveur de noms NetBIOS.
- Parcours des ressources.
- Serveur WINS.
Un troisième service, winbindd, permet d’utiliser les comptes utilisateur d’un domaine
Microsoft. Les dernières versions
de Samba (3 et suivantes) permettent aussi de se raccorder à Active Directory.
Les fonctions principales de Samba sont :
• Authentification des utilisateurs.
• Partage de fichiers et d’imprimantes.
• Parcours des ressources partagées du réseau.
• Résolution de noms (indépendante de DNS) Nom NetBIOS IP ou vice versa.
L’installation :
- Monter le CD des packages.
Pour le Serveur :
#rpm -ivh /media/RHEL_5.3\ i386\ DVD/Server/ Perl-Convert-ASN1-0.20-1.1.noarch.rpm
#rpm -ivh /media/RHEL_5.3\ i386\ DVD/Server/ samba-common-3.0.33 3.7.el5.i386.rpm
Pour le Client :
#rpm -ivh /media/RHEL_5.3\ i386\ DVD/Server/ Perl-Convert-ASN1-0.20-1.1.noarch.rpm
#rpm -ivh /media/RHEL_5.3\ i386\ DVD/Server/ samba-client-3.0.33-3.7.el5.i386.rpm

Configuration Samba.
La configuration de Samba se trouve dans /etc/samba/smb.conf. Vous pouvez tester sa
syntaxe avec l’outil testparm.
La commande findsmb permet de lister les differents ordinateurs visible depuis le réseau.
Le fichier smb.conf reprend la syntaxe des fichiers de configuration de Windows de type ini
avec des sections
délimitées par des crochets [ ].
Parmi ces sections, certaines ont une signification particulière :
- [global] : contient l'ensemble des directives de configuration générale
P-43 S@id OubghouZ
du serveur ainsi que les paramètres par défaut des partages ;
- [homes] : permet de partager simplement le répertoire de chacun des
utilisateurs ;
- [printers] : pour fournir les paramètres par défaut de toutes les
imprimantes partagées du système.
Les commentaires commencent par un point-virgule ou un dièse #

[global]
workgroup = nomgroupe # nom du groupe de travail ou du domaine identique à celui sous
Windows
server string = monserveur # description de la machine

netbios name = monserveur # nom Netbios de la machine

guest account = nobody # compte sur lequel seront connectés les invités si ils sont autorisés à
se connecter, le compte ne doit donc pas posséder beaucoup de droits comme le compte nobody

interfaces = 100.29.36.246/255.255.254.0 # Adresse IP et masque de sous-réseau de


l'interface qui servira à établir la liaison entre SAMBA et les stations clientes

Linuxprintcap = /etc/printcap # emplacement du fichier printcap contenant toutes les


imprimantes installées sur le serveur

load printers = yes # partage toutes les imprimantes définies dans printcap

log file = /var/log/samba/log.%m # emplacement et identification du fichier journal de Samba pour


chaque machine qui se connecte

security = user# mode de sécurité : (user / share / server)


#user : les utilisateurs doivent obligatoirement posséder un compte sur le serveur
#share : tout le monde est connecté sous le même mot de passe
#server : samba relais la vérification du login et du mot de passe à un autre serveur

hosts allow = 100.29.36. 127 # liste des sous-réseaux autorisés à se connecter


# ou la liste des sous-réseaux autorisés à se connecter en excluant une machine

# hosts allow = 100.29.36. EXCEPT 100.29.36. 6

hosts deny = ALL # liste des machines non autorisées à se connecte, en mettant ALL, on
empêche l'accès à toutes les
machines sauf celles spécifiées dans hosts allow

read only = yes/no # indique si le partage est en lecture seul

writeable = yes/no # écriture possible ou non

invalid user = @groupe ou utilisateur. # possibilité d’exclusion

create mask = yyy # masque de création de fichier egale à chmod=yyy


directory mask = yyy # masque de création de répertoire

P-44 S@id OubghouZ


Les variables de samba
Variable Définition
Variables du client
%a Architecture du client , Exemple: WinXP, WinNT,Samba ...
%I Adresse IP du client
%m Nom NetBios du client
%M Nom DNS du client
Variables utilisateur
%g Groupe primaire de l'utilisateur %u
%H Répertoire home de l'utilisateur %u
%u Nom de l'utilisateur unix courant
Variables de partage
%P Racine du partage actuel
%S Nom du partage actuel
Variables du serveur
%h Nom DNS du serveur Samba
%L Nom NetBios du serveur Samba
%v Version de Samba
Variables diverses
%T La date et l'heure courantes

[global]
# Paramètres généraux
workgroup = LUKE
load printers = yes
security = user
# Valeur par défaut pour les partages
writable = yes
[homes]
comment = Espaces personnels
browseable = no
[printers]
# Valeurs par défaut pour toutes les imprimantes
writable = no
printable = yes
[partage]
comment = Espace commun
path = /home/shared

Section [global]
Paramètres généraux
workgroup = string
server string = string
Paramètres d'impression
load printers = yes/no
printing = bsd/lprng/cups/etc.
Paramètres de sécurité
allow hosts = list
P-45 S@id OubghouZ
deny hosts = list
guest account = string
Paramètres d'authentification
security = share/user/server/domain
encrypt passwords = yes/no
Paramètres des journaux
log file = string
max log size = integer
debug level = integer
Partage
Paramètres généraux
comment = string
browseable = yes/no
path = string
Paramètres de case des caractères
mangle case = yes/no
case sensitive = yes/no
default case = upper/lower
preserve case = yes/no
short preserve case = yes/no
Par défaut, Samba n'est pas sensible à la case des caractères mais il la préserve.
Paramètres de contrôle d'accès
valid users = list
public = yes/no
invalid users = list
write list = list
read list = list
Paramètres de gestion des droits
read only = yes/no
writable = yes/no
create mask = rights
directory mask = rights
force user = string
Une liste d'utilisateurs peut contenir des groupes : @groupe.
Les droits s'expriment sous forme octale : 0644.
Exemple :
[global]
# Une très bonne idée
invalid users = root
[ressources]
comment = Ressources d'installation
path = /home/data/ressources
read only = yes
write liste = @admins
public = yes
[temp]

P-46 S@id OubghouZ


comment = Attention, ce répertoire est nettoyé toutes les nuits
path = /home/data/temp
create mask = 0666
directory mask = 0777
public = yes
read only = no
Imprimantes
Paramètres généraux
printable = yes/no
printer = string
De plus, les partages d'imprimantes étant des partages particuliers,
l'ensemble des directives applicables aux partage, vues précédemment,
le
sont également aux imprimantes (bien que certaines n'aient pas de
sens
dans ce contexte).
Exemple
[global]
load printers = yes
[printers]
browseable = no
path = /tmp
printable = yes
[couleur]
public = yes
printer = lpcolor
writable = no
valid users = seb @staff
create mode = 0700
browseable = no
path = /tmp
printable = yes
writable = no
create mode = 0700
comment = Imprimante couleur

Le résolveur nmbd
Le démon smbd a les tâches suivantes :
- fournir les parties cliente et serveur de WINS ;
- participer aux élections ;
- répondre aux requêtes du réseau pour les résolutions de nom.
Il est configuré via certaines directives de la section [global] du fichier
smb.conf.
Attention : l'activation de certaines valeurs sur certaines directives
peuvent rendre bancale le réseau Microsoft si des contrôleurs de domaine ou « master browsers » sont déjà
présents.
P-47 S@id OubghouZ
Paramètres de résolution de noms
name resolve order = list of lmhosts host wins bcast
dns proxy = yes/no
Paramètres WINS
wins support = yes/no
wins server = address
(ces directives s'excluent mutuellement)
Paramètres affectant le comportement du « browser »
local master = yes/no
preferred master = yes/no
os level = integer
domain master = yes/no

Exemple :
Configuration typique si Samba est PDC
[global]
workgroup = MYNET
name resolve order = lmhosts host bcast
wins support = yes
local master = yes
preferred master = yes
os level = 10
domain master = yes
Configuration à utiliser si un PDC NT ou 2000 existe pour le domaine MYNET
[global]
workgroup = MYNET
name resolve order = wins bcast
wins server = 192.168.2.10
local master = no
preferred master = no
domain master = no

Authentification
Samba, à travers la directive security, reconnaît quatre configurations possibles pour l'authentification :
- share : mot de passe par partage ;
- user : mot de passe par utilisateur (base Unix) ;
- server : authentification auprès d'un serveur NT ;
- domain : authentification auprès du PDC ou BDC d'un domaine.
Par ailleurs, la directive encrypt passwords contrôle si les mots de passe
doivent être cryptés par les clients.
Elle doit avoir la valeur yes obligatoirement pour les authentification
server ou domain. Si l'authentification est share ou user, alors la directive smb passwd file doit être utilisée
pour donner le nom du fichier qui stocke les mots de passe cryptés.

UID et GID

P-48 S@id OubghouZ


Quelque soit la méthode d'authentification utilisée, au final, un utilisateur
(UID) et un groupe (GID) Unix doivent être associés au client qui se
connecte à un partage. Ce qui veut dire :
- que l'utilisateur et le groupe doivent exister dans la base Unix (fichers
/etc/passwd et /etc/group) ;
- ou que des directives telles que guest ok, user, etc. sont utilisées au niveau du partage ;
- ou qu'un mécanisme est mis en place pour aller chercher ces
informations dans une base externe (NIS, LDAP, domaine NT via winbind, etc.).

Authentification share
Cette méthode est plutôt désuète. Elle fait référence à la méthode
d'authentification qui était utilisée par les clients « Windows for Workgroups » 3.11
!
Exemple :
[global]
security = share
[unpartage]
path = /home/partage
user = partage
Authentification user
Cette authentification est utilisée lorsque le serveur Samba est utilisé seul dans le domaine. Les mots de passe
des utilisateurs sont vérifiés auprès de la base des mots de passe Unix ou du fichier smbpasswd s'ils sont
cryptés (ce qui est désormais généralement le cas).
Exemple :
[global]
security = user
encrypt passwords = yes
smb passwd file = /etc/samba/smbpasswd
unix password sync = yes
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\spassword:* %n\n *Retype\snew\spassword:*
%n\n
[unpartage]
path = /home/partage
Le programme smbpasswd
Le fichier des mots de passe cryptés smbpasswd peut être géré avec la
commande... smbpasswd !
Exemple :
Ajouter un utilisateur (le mot de passe est demandé)
puck:~# smbpasswd -a seb
Modifier le mot de passe d'un utilisateur
puck:~# smbpasswd seb
Désactiver/activer un utilisateur
puck:~# smbpasswd -d seb

P-49 S@id OubghouZ


puck:~# smbpasswd -e seb
Supprimer un utilisateur
puck:~# smbpasswd -x seb
Ajouter une machine au domaine (si Samba est PDC)
puck:~# smbpasswd -m "ys$"
Rappel : L'utilisateur doit, au préalable, être connu du système Unix !

Authentification domain
Cette configuration d'authentification nécessite au préalable que le serveur Samba soit enregistré comme
membre du domaine auprès du PDC.
Les mots de passe doivent être cryptés.
Les utilisateurs et les groupes doivent exister dans la base des utilisateurs et groupes d'Unix.
Exemple :
[global]
security = domain
encrypt passwords = yes
password server = *
[unpartage]
path = /home/partage

Afin que le serveur Samba soit membre du domaine, suivre ces étapes :
- Configurer smb.conf ainsi
security = server
workgroup = DOMAIN
password server = PDCServer
- Avec l'utilitaire « Gestionnaire de server pour les domaines » de Windows NT, ajouter le nom du serveur
Samba comme membre du domaine.
Puis utiliser la commande : smbpasswd -j DOMAIN
- Utiliser la commande : smbpasswd -j DOMAIN -U username%password
(où username est un compte du domaine ayant les droits nécessaires pour ajouter une machine au
domaine).
- Changer ces 2 options ainsi : security = domain password server = *

Deux contrôles d’accès aux ressources


- Contrôle Partage Samba
- Contrôle Linux droits permissions
Démarrage et arrêt de service.
#service smb start|stop|restart

Création des utilisateurs SAMBA.


Les mots de passe du protocole SMB n’ont pas la même forme que les mots de passe Unix/Linux. Il faut
recréer les mots de
passe pour chaque utilisateur devant utiliser SMB avec la commande smbpasswd. Les utilisateurs doivent déjà
exister sous Unix.
smbpasswd -a toto
Les utilisateurs SMB sont présents dans /etc/samba/smbpasswd. La commande mksmbpasswd peut réaliser
P-50 S@id OubghouZ
cela en batch :
cat /etc/passwd | mksmbpasswd > /etc/samba/smbpasswd
Vous pouvez établir une table de correspondance entre les noms d’utilisateurs Windows et ceux de Unix dans
/etc/samba/smbusers.
# Unix_name = SMB_name1 SMB_name2 ...
root = administrator admin administrateur
Commande smbpasswd pour désactiver un compte samba
smbpasswd -d nom_compte
Commande smbpasswd pour réactiver un compte samba
smbpasswd -e nom_compte
Commande smbpasswd pour supprimer un compte samba
smbpasswd -x nom_compte
Accès depuis client linux.

En ligne
Toute machine sous Microsoft Windows peut accéder aux partages Samba. Les navigateurs des
environnements de bureau KDE et GNOME acceptent la navigation dans les partages grâce au protocole smb:/
dans les URL. KDE propose même l’équivalent d’un voisinage réseau.
L’outil smbclient est une sorte de client FTP pour le protocole SMB. Les chemins d’accès aux ressources sont
de la forme :
//machine/partage
Par exemple pour se connecter au service (ici un partage) d’une machine :
smbclient //machine/service -U login%passwd
Pour lister les services proposés par une machine:
smbclient -L hostname -U login%passwd # liste des ressources
Le client de samba (Smbclient) permet d'acceder à differentes ressources sur le réseau. Pour connaitre les
partages disponibles sur le réseau à une adresse tapez:
smbclient -L adressip
La commande smbclient \\\\nom_de_lordinateur//partage permet d'accéder au partage de la machine. Un
mot de passe est toujours demandé lors de la connexion à un partage. Si le partage est configuré pour être
public alors tapez ce que vous voulez dans la zone password.
Exp : Accèder a une imprimante:
smbclient \\serveur_samba//imprimante -P
Voir les partages d'un serveur :
[smbclient@host] /% smbclient -L mon_serveur -U login
Télécharger un fichier sur le partage d'un serveur :
[smbclient@host] /% smbclient //mon_serveur/mon_partage -U login
smb: \> ls
smb: \> cd mon_repertoire_distant
smb: \> lcd mon_repertoire_local
smb: \> get myFile.txt
smb: \> quit
Uploader un fichier sur le partage d'un serveur :
[smbclient@host] /% smbclient //mon_serveur/mon_partage -U login
smb: \> ls
smb: \> cd mon_repertoire_distant
smb: \> lcd mon_repertoire_local
P-51 S@id OubghouZ
smb: \> put myFile.txt
smb: \> quit
Imprimer un fichier PostScript en utilisant l'imprimante partagée d'un serveur
[smbclient@host] /% smbclient //mon_serveur/mon_imprimante -U login
smb: \> print fichier2.ps
smb: \> quit
Montage
Montez un système de fichiers SMB avec la commande smbmount.
smbmount //machine/partage /mnt/mountpoint -o username=login
ou
mount -t smbfs //machine/partage /mnt/mountpoint -o username=login
On peut aussi réaliser le montage dans /etc/fstab. Tout comme avec nfs, c’est un service spécialisé qui
montera et démontera les partages. Les derniers noyaux Linux ont remplacé smbfs par cifs :
//machine/partage /mnt/mountpoint cifs defaults,username=nobody 0 0

Outils
Samba est installé avec un ensemble d'outils :
- testparm : permet de tester la validité du fichier smb.conf ;
- smbstatus : liste l'ensemble des connexions et des fichiers ouverts ;
- smbpasswd : pour manipuler le fichier des mots de passe cryptés ;
- make_smbcodepage : création des pages de codes pour les clients ;
- make_printerdef : permet l'« auto-installation » des imprimantes ;
- smbcontrol : envoie de messages aux démons Samba ;
- smbclient : pour accéder aux fichiers d'un partage distant ;
- smbmount : pour monter un système de fichier distant ;
- smbtar : sauvegarde automatique de partages distants ;
- nmblookup : résoudre un nom NetBIOS

Administrez samba avec Swat (Samba Web Administration Tools)

P-52 S@id OubghouZ


SWAT (Samba Web Administration Tool) est installé avec samba et vous permet d'administrer les partages
SMB via un simple navigateur web L’utilitaire Swat permet une gestion graphique du fichier smb.conf. Il
fonctionne via un serveur web sur le port 901. Attention par défaut swat ne peut s’utiliser qu’en local.
Swat est géré par un fichier de configuration etc/xinetd.d/swat
service swat
{
port = 901
only_from = localhost
user = root
server = /usr/local/samba/bin/swat
disable= no
}
Adresse pour accéder à swat
http://127.0.0.1:901
http://localhost:901

Configurer Samba en tant que contrôleur de domaine.


Paramétrage du serveur
Création d’utilisateurs mixtes (compte linux et compte Samba) : Fichier etc/passwd et etc/samba/smbpasswd
Paramétrage du serveur samba : Edition et modification du fichier /etc/samba/smb.conf
[Section global]
workgroup = LINUXGP
netbios = SERVLINUX

P-53 S@id OubghouZ


encrypt passwords = yes
domain logons = yes
domain master = true
wins support = yes
security = user
Inscription des postes clients
Les pc doivent être ajoutés dans : /etc/passwd (linux) /etc/samba/smbpasswd (samba)
Attention n’oubliez pas le dollar ! portable$

Paramétrage des postes clients


Vous devez être administrateur du client Windows.
Vérifiez que votre adresse IP et compatible avec celle du serveur.
Indiquez que linux est serveur wins
Ajouter votre poste au domaine samba
Il vous faudra indiquer utilisateur : root et son mot de passe

P-54 S@id OubghouZ


Les Serveurs d’accès à distance
 Telnet

Fiche Sur Telnet


Telnet Terminal Network ou telecommunication network
TCP Numero de port 23
Fichiers de /etc/xinetd.d/telnet
configuration
Nom de package –Le client Telnet :telnet-0.17-23.rpm
–Le serveur Telnet :telnet-server-0.17-23.rpm
Nom de service telnetd

Le service Telnet permet de se connecter à des serveurs telnet, qui demandaient un identifiant, puis un mot de
passe, et donnaient une ligne de commande sur la machine distante en échange. Le service telnet fonctionne par le
demon XINETD

- Services réseaux xinetd

P-55 S@id OubghouZ


Le démon xinetd est un « superservice » permettant de contrôler l’accès à un ensemble de services, telnet
par exemple. Beaucoup de services réseaux peuvent être configurés pour fonctionner avec xinetd, comme les
services ftp, ssh, samba, rcp, http, etc.

Configuration
Les fichiers de configuration sont :
– /etc/xinetd.conf : configuration globale
– /etc/xinetd.d/* : répertoire contenant les fichiers
spécifiques aux services. Il existe un fichier par service, du même nom que celui précisé dans /etc/services.

Contenu de xinetd.conf :
Defaults
{
Instances = 60
Log_type = SYSLOG authpriv
Log_on_success = HOST PID
Log_on_failure = 25 30
Cps
}
Includedir /etc/xinetd.d

• instances : nombre maximal de requêtes qu’un service xinetd peut gérer à un instant donné.
• log_type : dans notre cas, les traces sont gérées par le démon syslog via authpriv et les
traces
sont placées dans /var/log/secure. FILE /var/log/xinetd aurait placé les traces dans
/var/log/xinetd.
• log_on_success : xinetd va journaliser l’événement si la connexion au service réussit. Les
informations tracées sont l’hôte (HOST) et le PID du processus serveur traitant la connexion.
• log_on_failure : idem mais pour les échecs. Il devient simple de savoir quels hôtes ont tenté
de se connecter si par exemple la connexion n’est pas autorisée.
• cps : xinetd n’autorise que 25 connexions par secondes à un service. Si la limite est atteinte,
xinetd attendra 30 secondes avant d’autoriser à nouveau les connexions.
• includedir : inclut les options des fichiers présents dans le répertoire indiqué.

Telnet
L’installation :
- Monter le CD des packages.
Pour le Serveur :
#rpm -ivh /media/RHEL_5.3\ i386\ DVD/Server/ telnet-server-0.17-23.rpm
Pour le Client :
#rpm -ivh /media/RHEL_5.3\ i386\ DVD/Server/ telnet-0.17-23.rpm

Tester le serveur
Telnet peut être démarré selon deux modes : le mode de saisie et le mode de commande. Le

P-56 S@id OubghouZ


basculement d’un mode à l’autre est réalisé en tapant la combinaison de touches Ctrl + [ au
démarrage de .Telnet. Lorsque l’ordinateur hôte est indiqué, le programme passe
automatiquement en mode de saisie. Telnet peut être démarrer avec les paramètres
suivants :
telnet [-d] [-a] [-n fichier] [-e char] [[-l user] host [port]]
Les paramètres sont décrits dans le tableau
ci-après :

• Le paramètre host est le nom ou l’adresse Internet de l’ordinateur contacté.


• Si le paramètre port est indiqué, Telnet communique à travers ce port. Ce paramètre est rarement utilisé. Le
port par défaut (23/tcp) est défini dans le fichier /etc/services.
• Lors du démarrage de Telnet, si le nom de l’ordinateur cible n’est pas indiqué, le programme démarre en
mode commande. L’invite de Telnet est affiché, et la liste des commandes apparaît en réponse à la commande
?.
Exemple /etc/xinetd.d/telnet :
#defaults : on
#description : The telnet server serves telnet sessions ; it uses \
Unencrypted username/password pairs for authentication
Service telnet
Disable = on
Flags = RESUSE
Socket_type = stream
Wait = no
User = root
Server = /user/sbin/in.telnetd
Log on failure += USERID

• La première ligne en commentaire, default, a une importance particulière. Elle n’est pas
interprétée par xinetd mais par ntsysv ou chkconfig pour déterminer si le service est actif.

P-57 S@id OubghouZ


• service : nom du service qui correspond à un service défini dans /etc/services.
• disable : indique si le service est actif ou non.
• flags : attributs pour la connexion. REUSE indique que la socket sera réutilisée pour une
connexion telnet.
• socket_type : spécifie le type de socket. Généralement stream (tcp) ou dgram (udp). Une
connexion directe IP se fait par raw.
• wait : indique si le serveur est single-threaded (yes) ou multithreaded (no).
• user : sous quel compte utilisateur le service sera lancé.
• server : chemin de l’exécutable devant être lancé.
• log_on_failure : le += indique qu’on rajoute l’option associée au fichier de trace en plus de
celles par défaut. Ici : le login.
Certaines options peuvent améliorer les conditions d’accès et la sécurité :
• only_from : permet l’accès uniquement aux hôtes spécifiés.
• no_access : empêche l’accès aux hôtes spécifiés (ex : 172.16.17.0/24).
• access_times : autorise l’accès uniquement sur une plage horaire donnée (ex :09:00-18:30).
Démarrage et arrêt des services
Premier cas, le service xinetd est un service comme un autre dont le démarrage
ou l’arrêt peut s’effectuer avec la commande service ou directement via
l’exécution de /etc/init.d/xinetd.
# service xinetd start
Second cas, comme xinetd gère plusieurs services, l’arrêt de xinetd arrête tous les
services associés, et le démarrage de xinetd lance tous les services associés. Il n’est
pas possible de choisir quels services de xinetd seront lancés dans tel ou tel niveau
d’exécution. Mais vous pouvez choisir d’activer ou de désactiver simplement un
service avec chkconfig.
# chkconfig telnet on
NB :
Les sessions telnet en tant que root ne sont permises que sur les terminaux
locaux. C’est à dire que par défaut une session telnet distante en tant que root
n’est pas permise, car la connexion n’utilise pas un terminal local(tty) mais plutôt
un pseudo terminal (pts).
• Pour autoriser les sessions telnet en tant que root sur les pseudos terminaux, ajouter les
pseudos terminaux en question (pts/0 : pseudo terminal 0) dans le fichier /etc/securetty :

P-58 S@id OubghouZ


 SSH

Fiche Sur SSH


SSH Secure Shell
TCP Numero de port 22
Fichiers de /etc/ssh/sshd-config
configuration
Nom de package Pour le serveur : openssh-server-4.3p2-
29.el5. i386.rpm
Pour le client : openssh-clients-4.3p2-
29.el5. i386.rpm
Nom de service sshd

P-59 S@id OubghouZ


Difinition : Secure Shell (SSH) est à la fois un programme informatique et un protocole de
communication sécurisé. Le protocole de connexion impose un échange de clés de
chiffrement en début de connexion. Par la suite, tous les segments TCP sont authentifiés et
chiffrés. Il devient donc impossible d'utiliser un sniffer pour voir ce que fait l'utilisateur.
Le protocole SSH a été conçu avec l'objectif de remplacer les différents protocoles non chiffrés
comme rlogin, telnet, rcp, ftp et rsh

Le protocole SSH existe en deux versions majeures : la version 1.0 et la version 2.0.

 La première version permet de se connecter à distance à un ordinateur afin d'obtenir


un shell ou ligne de commande. Cette version souffrait néanmoins de problèmes de sécurité
dans la vérification de l'intégrité des données envoyées ou reçues, la rendant vulnérable à des
attaques actives. En outre, cette version implémentait un système sommaire de transmission
de fichiers, et du port tunneling.
 La version 2 qui était à l'état de brouillon jusqu'en janvier 2006 est déjà largement utilisée à
travers le monde
OpenSSH est un protocole de shell sécurisé, un mécanisme qui permet l’authentification
sécurisée, l’exécution à distance et la connexion à distance. Il permet aussi le transport
sécurisé du protocole X Window. En fait, il est capable d’encapsuler des protocoles non
sécurisés en redirigeant les ports.
Les packages à utiliser pour un serveur sont openssh, openssl et openssh-clients. Pour X on
rajoute les packages openssh-askpass* (il peut y en avoir plusieurs suivant l’environnement de
bureau). La liste des packages à installer dépend de chaque distribution.
L’utilisation la plus commune reste l’accès distant sécurisé à une machine via le client ssh.

Configuration :
/etc/ssh/sshd_config
Quelques options sont éventuellement à modifier :
• Port : le numéro de port, par défaut 22
• Protocol : fixé à 2,1 il autorise SSH1 et SSH2. On préférera SSH2 et donc on laissera la valeur 2 seule
• ListenAddress : par défaut ssh écoute sur toutes les IP du serveur. On peut autoriser uniquement
l’écoute sur une interface donnée
• PermitRootLogin : ssh autorise les connexions de root. On peut placer la valeur à « no ». Dans ce
cas, il faudra se connecter en simple utilisateur et passer par su
• Banner : chemin d’un fichier dont le contenu sera affiché aux utilisateurs lors de la connexion.
• PermitEmptyPasswords (autoriser ou non mot d passe vide )
• PasswordAuthentication (s'authentifier ou non)
Ssh est un service System V à lancer avec service ou directement par /etc/init.d/sshd.
# service sshd start
Utilisation :
La commande ssh permet d’établir une connexion.
$ ssh -l login host

P-60 S@id OubghouZ


$ ssh login@host
L’option -X permet d’activer la redirection (forwarding) du protocole X Window.
$ ssh -X login@host
Il est possible d’établir une connexion automatique vers une autre machine sans saisir de mot de passe. Pour
cela, il est nécessaire depuis le compte utilisateur du client (la machine qui va se connecter) de générer une
paire de clés, privée et publique. Aucune passphrase ne doit être saisie.
Du côté du serveur ssh, la clé publique du client doit être placée dans un fichier contenant les clés autorisées à
se connecter dans le compte de destination.
Côté client
Générez une clé au format RSA avec la commande ssh-keygen :
$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/bean/.ssh/id_rsa):
Created directory ’/home/bean/.ssh’.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/bean/.ssh/id_rsa.
Your public key has been saved in /home/bean/.ssh/id_rsa.pub.
The key fingerprint is:
f6:39:23:4e:fa:53:d0:4e:65:7f:3f:fd:a3:f4:8e:2a bean@p64p17bicb3
Le répertoire de l’utilisateur contient maintenant un répertoire .ssh :
$ cd .ssh
$ ls
id_rsa id_rsa.pub
Le fichier id_rsa.pub contient la clé publique :
$ cat id_rsa.pub
ssh-rsa
AAAAB3NzaC1yc2EAAAABIwAAAQEArB/VskR9v708J2EDG1LM1Q6HmKJcP2UenurnSr7rWTSZK5w9Hzn4DCz
5iMzLAPc4659I0uKJbmF3vBXozIgLrCdCZCQEhhPLwJVLXbGNc8lMf742E/WqkkJ/uQYb31iPAU7Efosei+DVZ21
No725XjiSCZ2qzKKx7ZuNQEtxW0eVkwvlA0u7Hvrwn+FQksW3NXwTxwHhudSw7S6kIC3tyF5rkzfkvu7zQbOG
DGGPiF3aOvdoSBNgiJtZ+M0PaoXXI3brMd66WkGfSwf4ofYKNDCA/3TQ4xU6WxkxqTBcsjEm1gIymFAyxDo+zz
f63jxLGO8Pp50DKf7DUqBx7+rjw== bean@slyserver
Côté serveur
Allez dans le répertoire .ssh du compte auquel vous souhaitez accéder sur le serveur (créez-le s’il
n’existe pas) :
$ cd /home/ali/.ssh
Éditez le fichier authorized_keys (créez-le s’il n’existe pas) et copiez-y sur une nouvelle ligne le
contenu du fichier id_rsa.pub du client. Sauvez.
$ echo "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEArB/VskR9v708J2EDG1LM1Q6HmKJcP2UenurnSr7
rWTSZK5w9Hzn4DCz5iMzLAPc4659I0uKJbmF3vBXozIgLrCdCZCQEhhPLwJVLXbGNc8lMf742E/WqkkJ/uQYb31
iPAU7Efosei+DVZ21No725XjiSCZ2qzKKx7ZuNQEtxW0eVkwvlA0u7Hvrwn+FQksW3NXwTxwHhudSw7S6kIC3t
yF5rkzfkvu7zQbOGDGGPiF3aOvd0oSBNgiJtZ+M0PaoXXI3brMd66WkGfSwf4ofYKNDCA/3TQ4xU6WxkxqTBcs
jEm1gIymFAyxDo+zzf63jxLGO8Pp50DKf7DUqBx7+rjw== ali@slyserver" >> autorized_keys
P-61 S@id OubghouZ
NB: à voir cette commande: ssh-copy-id -i ~/.ssh/id_rsa.pub ali@slyserver -p 3333
Tentez une connexion, le mot de passe n’est pas demandé :
$ ssh ali@slyserver
Autres fichiers de configuration d'OpenSSH
Les informations de configuration SSH qui s'appliquent à l'ensemble du système sont stockées
dans le répertoire /etc/ssh :
moduli — Fichier contenant les groupes Diffie-Hellman utilisés pour l'échange de clés Diffie-
Hellman qui est crucial pour la création d'une couche de transport sécurisée. Lorsque les clés
sont échangées au début d'une session SSH, une valeur secrète partagée ne pouvant être
déterminée que conjointement par les deux parties, est créée. Cette valeur est ensuite utilisée
pour effectuer l'authentification de l'hôte.
ssh_config — Fichier de configuration client SSH pour l'ensemble du système. Il est écrasé
si un même fichier est présent dans le répertoire personnel de l'utilisateur (~/.ssh/config).
ssh_host_dsa_key — Clé DSA privée utilisée par le démon sshd.
ssh_host_dsa_key.pub — Clé DSA publique utilisée par le démon sshd.
ssh_host_key— Clé RSA privée utilisée par le démon sshd pour la version 1 du protocole
SSH.
ssh_host_key.pub — Clé RSA publique utilisée par le démon sshd pour la version 1 du
protocole SSH.
ssh_host_rsa_key — Clé RSA privée utilisée par le démon sshd pour la version 2 du
protocole SSH.
ssh_host_rsa_key.pub — Clé RSA publique utilisée par le démon sshd pour la version 2
du protocole SSH.
Les informations de configuration SSH spécifiques à l'utilisateur sont stockées dans son
répertoire personnel à l'intérieur du répertoire ~/.ssh/ où figurent :
authorized_keys — Fichier contenant une liste de clés publiques autorisées pour les
serveurs. Lorsque le client se connecte à un serveur, ce dernier authentifie le client en vérifiant
sa clé publique signée qui est stockée dans ce fichier.
id_dsa — Fichier contenant la clé DSA privée de l'utilisateur.
id_dsa.pub — Clé DSA publique de l'utilisateur.
id_rsa — Clé RSA privée utilisée par ssh pour la version 2 du protocole SSH.
id_rsa.pub — Clé RSA publique utilisée par ssh pour la version 2 du protocole SSH.
identity — Clé RSA privée utilisée par ssh pour la version 1 du protocole SSH.
identity.pub — Clé RSA publique utilisée par ssh pour la version 1 du protocole SSH.
known_hosts — Fichier contenant les clés d'hôtes DSA des serveurs SSH auxquels
l'utilisateur a accédé. C fichier est très important car il permet de garantir que le client SSH se
connecte au bon serveur SSH.

Important
Si la clé d'hôte d'un serveur SSH a changé, le client informe l'utilisateur que le processus de
connexion ne peut pas se poursuivre tant que la clé d'hôte du serveur n'a pas été supprimée du
fichier known_hosts à l'aide d'un éditeur de texte. Avant de procéder à cette opération, il est
toutefois conseillé de contacter l'administrateur système du serveur SSH pour vous assurer que
le serveur n'est pas compromis.

Les mots-clefs possibles /etc/ssh/sshd_config


AllowGroups
seuls les utilisateurs dont le groupe principal ou les groupes supplémentaires correspondent à un des motifs
sont autorisés à se connecter.
AllowUsers

P-62 S@id OubghouZ


seuls les noms d'utilisateurs correspondant à un des motifs sont autorisés à se connecter. Par défaut, la
connexion est autorisée pour tous les utilisateurs.
AuthorizedKeysFile
Spécifie le fichier contenant les clefs publiques à utiliser pour l'authentification de l'utilisateur.
AuthorizedKeysFile peut contenir des jetons de la forme %T qui sont substitués lors des réglages de la
connexion. Les jetons suivant sont définis : %% est remplacé par le caractère « % », %h est remplacé par le
répertoire de base (home directory) de l'utilisateur qui s'authentifie et %u est remplacé par le nom de cet
utilisateur. Après substitution, AuthorizedKeysFile peut être un chemin absolu ou relatif au répertoire de base
de l'utilisateur. Par défaut « .ssh/authorized_keys ».
Banner
Pour certaines juridictions, l'envoi d'un message avant l'authentification est nécessaire pour disposer d'une
protection légale. Le contenu du fichier spécifié est envoyé à l'utilisateur distant avant d'autoriser la
connexion.
ClientAliveInterval
Règle un intervalle de temporisation en secondes après lequel, si aucune donnée n'est reçue de la part du
client, sshd envoie un message dans le canal crypté pour demander une réponse du client. Par défaut 0, ce qui
signifie que ces messages ne sont pas envoyés au client. Cette option ne s'applique qu'à la version 2 du
protocole.
ClientAliveCountMax
Règle le nombre de messages de maintien de la connexion (voir ci-dessus) à envoyer sans réponse de la part
du client pour sshd Si ce seuil est atteint tandis que les messages de maintien de la connexion ont été
envoyés, sshd déconnecte le client et termine la session.
Compression
Spécifie si on autorise la compression. L'argument doit être « yes » ou « no ». Par défaut « yes ».
DenyGroups
Les utilisateurs dont le groupe principal ou les groupes secondaires correspondent à un des motifs ne sont pas
autorisés à se connecter.
DenyUsers
Les utilisateurs dont le nom correspond à un des motifs ne sont pas autorisés à se connecter
HostbasedAuthentication
Spécifie si on autorise une authentification par rhosts ou /etc/hosts.equiv conjointement avec une
authentification de machine cliente réussie par clef publique (authentification par machines). Cette option est
similaire à l'option RhostsRSAAuthentication et ne s'applique qu'à la version 2 du protocole. Par défaut « no
».
HostKey Spécifie un fichier contenant une clef privée de machine utilisée par SSH. Par défaut
/etc/ssh/ssh_host_key pour la version 1 du protocole, et /etc/ssh/ssh_host_rsa_key et
/etc/ssh/ssh_host_dsa_key pour la version 2 du protocole.
Note : sshd refuse d'utiliser un fichier accessible au groupe ou aux autres. On peut avoir plusieurs fichiers de
clef de machine. Les clefs « rsa1 » sont utilisées pour la version 1 du protocole, et les clefs « dsa » ou « rsa »
sont utilisées pour la version 1 du protocole SSH.
IgnoreRhosts
Spécifie que l'on utilise pas les fichiers .rhosts et .shosts pour les authentification activées par les
options RhostsAuthentication RhostsRSAAuthentication ou HostbasedAuthentication
Les fichiers /etc/hosts.equiv et /etc/ssh/shosts.equiv sont néanmoins utilisés. Par défaut « yes ».
IgnoreUserKnownHosts Spécifie si sshd doit ignorer le fichier $HOME/.ssh/known_hosts de l'utilisateur lors
des authentifications des options RhostsRSAAuthentication ou HostbasedAuthentication Par défaut « no ».
KeepAlive Spécifie si le système doit envoyer des messages TCP de maintien de la connexion. Si ces messages
sont envoyés, la rupture d'une connexion ou le plantage d'une des machines seront correctement signalés.

P-63 S@id OubghouZ


Toutefois, cela signifie que la connexion sera interrompue si la route entre le serveur et le client est
temporairement coupée, et quelques personnes trouvent ceci gênant. D'un autre côté, si on n'envoie pas de
messages de maintien de la connexion, il est possible que des sessions restent en suspens indéfiniment sur le
serveur, en laissant des utilisateurs fantômes, et en consommant les ressources du serveur. Par défaut « yes »
(pour envoyer les messages de maintien de la connexion), et le serveur signale les coupures réseau ou les
plantages des machines. Ceci évite les sessions indéfiniment en suspens. Pour désactiver ces messages de
maintien de la connexion, il faut régler cette valeur à « no ».
KeyRegenerationInterval
Dans la version 1 du protocole, la clef éphémère du serveur est regénérée automatiquement après ce nombre
de secondes (si elle a été utilisée). Le but de la regénération est d'éviter le décryptage de sessions capturées
en s'introduisant plus tard sur la machine et en volant la clef. La clef n'est jamais stockée nulle part. Si la
valeur est 0, la clef n'est jamais regénérée. Par défaut 3600 (secondes).
ListenAddress
Spécifie l'adresse locale d'écoute sur laquelle le démon sshd doit attendre les connexions. On peut utiliser les
formes suivantes :
ListenAddress host | IPv4_addr | IPv6_addr
ListenAddress host | IPv4_addr : port
ListenAddress [host | IPv6_addr : port ]
Si port n'est pas spécifié, le démon sshd écoute sur l'adresse et toutes les options Port spécifiées au préalable.
Par défaut, on écoute sur toutes les adresses locales. On peut spécifier de multiples options ListenAddress En
outre, toute option Port doit précéder cette option pour les adresses sans port spécifié.
LoginGraceTime
Le serveur se déconnecte après ce délai si l'utilisateur ne s'est pas connecté. Si la valeur est 0, il n'y a aucune
limite de temps. Par défaut 600 (secondes).
LogLevel
Donne le niveau de verbosité utilisé lors de l'enregistrement des messages du démon sshd Les valeurs
possibles sont : QUIET, FATAL, ERROR, INFO, VERBOSE, DEBUG, DEBUG1, DEBUG2 and DEBUG3. Par défaut
INFO. DEBUG et DEBUG1 sont équivalents. DEBUG2 et DEBUG3 spécifient des niveaux plus élevés de sortie de
débogage. L'enregistrement à l'aide d'un niveau DEBUG a tendance à empiéter sur la vie privée des
utilisateurs et n'est pas recommandé.
MaxStartups
Spécifie un nombre maximal de connexions concurrentes au démon sshd non authentifiées. Les connexions
supplémentaires sont purgées si elles ne peuvent pas s'authentifier ou si le délai de grâce défini à l'aide de
l'option LoginGraceTime expire pour une connexion. Par défaut 10.
Par ailleurs, on peut activer une purge hâtive aléatoire en spécifiant un triplet « début:taux:total » (par
exemple,
« 10:30:60 »). sshd refuse les tentatives de connexion avec une probabilité de « taux/100 » (30 %) s'il y a «
début » (10) connexions non authentifiées en cours. La probabilité augmente linéairement et toutes les
tentatives de connexion sont refusées si le nombre de connexions non authentifiées atteint « total » (60).
PasswordAuthentication
Spécifie si l'authentification par mot de passe est autorisée. Par défaut « yes ».
PermitEmptyPasswords
Si l'authentification par mot de passe est autorisée, spécifie si le serveur autorise les connexions à des
comptes dont les mots de passe sont des chaînes de caractères vides. Par défaut « no ».
PermitRootLogin
Spécifie si root peut se connecter par ssh(1). L'argument est « yes », « without-password », « forced-
commands-only » ou « no ». Par défaut « yes ».
Si cette option est réglée à « without-password », l'authentification par mot de passe est désactivée pour

P-64 S@id OubghouZ


root.
Si cette option est réglée à « forced-commands-only », les connexions de root sont autorisées avec une
authentification par clef publique, mais seulement si l'option command est spécifiée (ce qui peut être utile
pour effectuer des sauvegardes à distance même si les connexions de root sont normalement interdites).
Toutes les autres méthodes d'authentification sont désactivées pour root.
Si cette option est réglée à « no », root n'est pas autorisé à se connecter.
PidFile
Spécifie l'emplacement du fichier contenant l'identifiant du processus du démon sshd Par défaut
/var/run/sshd.pid
Port
Spécifie le port d'écoute du démon sshd Par défaut 22. On peut spécifier plusieurs de ces options. Voir aussi
ListenAddress
PrintLastLog
Spécifie si sshd doit afficher la date et l'heure de la dernière connexion de l'utilisateur. Par défaut « yes ».
PrintMotd
Spécifie si sshd doit afficher le contenu du fichier /etc/motd quand un utilisateur se connecte en mode
interactif. Sur certains systèmes, il est aussi affiché par l'interpréteur de commandes (shell), par le fichier
/etc/profile ou équivalent. Par défaut « yes ».
Protocol
Spécifie les versions du protocole que le démon sshd gère. Les valeurs possibles sont « 1 » et « 2 ». Pour
spécifier plusieurs versions, il suffit de les séparer par des virgules. Par défaut « 2,1 ».
PubkeyAuthentication
Spécifie si on autorise l'authentification par clef publique. Par défaut « yes ». Note : Cette option ne s'applique
qu'à la version 2 du protocole.
RhostsAuthentication
Spécifie si l'authentification par les fichiers rhosts ou /etc/hosts.equiv est suffisante. Normalement, cette
méthode ne devrait pas être autorisée parce qu'elle n'est pas sécurisée. Il est préférable d'utiliser
RhostsRSAAuthentication à la place, parce qu'elle effectue une authentification de machine basée sur RSA en
plus de l'authentification normale par rhosts ou /etc/hosts.equiv. Par défaut « no ». Cette option ne
s'applique qu'à la version 1 du protocole.
RhostsRSAAuthentication
Spécifie si on autorise une authentification par rhosts ou /etc/hosts.equiv couplée avec une authentification
de machine RSA réussie. Par défaut « no ». Cette option ne s'applique qu'à la version 1 du protocole.
RSAAuthentication
Spécifie si on autorise la pure authentification RSA. Par défaut « yes ». Cette option ne s'applique qu'à la
version 1 du protocole.
ServerKeyBits
Définit le nombre de bits de la clef éphémère pour la version 1 du protocole. La valeur minimale est 512 et la
valeur par défaut est 768.
StrictModes
Spécifie si sshd doit vérifier les modes et le propriétaire des fichiers de l'utilisateur et du répertoire de base
(home directory) de l'utilisateur avant d'accepter une connexion. C'est normalement souhaitable, parce que
quelquefois, les novices laissent accidentellement leur répertoire ou leurs fichiers en accès complet à tout les
monde. Par défaut « yes ».
Subsystem
Configure un sous-système externe (par exemple un démon de transfert de fichiers). Les arguments doivent
être un nom de sous-système et une commande à exécuter lors d'une requête à ce sous-système. La
commande sftp-server8 implémente le sous-système de transfert de fichiers « sftp ». Par défaut, aucun sous-

P-65 S@id OubghouZ


système n'est défini. Note : Cette option ne s'applique qu'à la version 2 du protocole.
UsePrivilegeSeparation
Spécifie si sshd sépare les privilèges en créant un processus fils non privilégié pour prendre en charge le trafic
réseau entrant. Après une authentification réussie, un autre processus est créé avec les privilèges de
l'utilisateur authentifié. Le but de la séparation de privilèges est d'éviter l'escalade de privilèges si le processus
non privilégié est corrompu. Par défaut « yes ».
VerifyReverseMapping
Spécifie si sshd essaie de vérifier que le nom de la machine distante et le nom obtenu par résolution de
l'adresse IP distante correspondent à la même adresse IP. Par défaut « no ».

L’agent SSH

ssh-agent est l'agent d'authentification inclus dans la suite logicielle OpenSSH.


Un agent SSH stocke en mémoire les clés privées utilisées lors de l'authentification par clef publique (RSA,
DSA, ECDSA) pendant toute la durée de la session. L'utilisation d'un agent, évite donc d'avoir à retaper
la phrase secrète à chaque fois que l'on sollicite l'utilisation de la clé privée. L'agent se lance au début d'une
session (graphique ou non) et tous les appels (fenêtres ou autres programmes) sont réalisés en tant que client
du programme de l'agent SSH. Grâce à des variables d'environnement, l'agent peut être trouvé et être utilisé
pour l'authentification lors de la connexion à d'autres machines en SSH.

Pour les administrateurs ayant fréquemment besoin d’accéder à plusieurs machines par SSH, un « agent SSH
», lancé par la commande ssh-agent, permet de conserver en mémoire les clés privées utilisées pour les
authentifications. Les clés privées sont transmises une fois pour toutes à l’agent par la commande ssh-add. Si
un mot de passe de protection de la clé est nécessaire, il est demandé à cette occasion. Les clés sont ensuite
disponibles sans intervention directe de l’utilisateur pour toute authentification. La commande ssh-add
consulte le répertoire .ssh dans le répertoire personnel de l’utilisateur et recherche d’éventuelles clés privées
dans les fichiers id_rsa, id_dsa, et identity. Les clés stockées par l’agent SSH peuvent être consultées par la
commande ssh-add -l. Lancement de l’agent par la commande ssh-agent .
L’agent alimente des variables lors de son fonctionnement qui permettent de le gérer plus facilement
ali@localhost: ~$ ssh-agent
SSH_ AUTH_SOCK=/tmp/ssh-sRuvox4519/agent.4519 ;export SSH_AUTH_SOCK ;
SSH_ AUTH_PID=4520 ; exports SSH_AGENT_PID ;
Echo Agent pid 4520 ;
ali@localhost:~$~

SSH_ AUTH_SOCK Le pid de l’agent en cours d’exécution.

P-66 S@id OubghouZ


SSH_ AUTH_PID Le socket crée par le presseuse.
Prise en compte de clés par l’agent SSH
La commande ssh-add sans argument permet la prise en compte des clés par l’agent SSH qui doit
naturellement avoir été lancé auparavant.
ali@localhost: ~$ ssh-add
Entrer passphrase for /home/ali/.ssh/id_rsa :
Identity added : /home/ali/.ssh/id_rsa (/home/ali/.ssh/id_rsa)
ali@localhost: ~$
Visualisation des clés privées stockées par le ssh-agent
La commande ssh-add -l permet de vérifier que les clés ont bien été prises en compte par l’agent

Copie de fichiers avec SSH


La commande scp s’appuie sur le démon SSH et permet de copier des fichiers de façon sécurisée avec les services
d’authentification et de confidentialité offerts par SSH. La copie peut se faire du client vers le serveur ou depuis le
serveur vers le client Copie de fichier du client vers le serveur avec scp
scp fichier_local utilisateur@adresse_serveur:fichier_distant
Copie de fichier depuis le serveur vers le client avec scp
scp utilisateur@adresse_serveur:fichier_distant fichier_local
-L’option -r indique la récursivité
-L’option -p préserve les dates de modification, d’accès, et les modes des anciens fichiers.
fichier_local Chemin relatif ou absolu du fichier local devant être copié.
fichier_distant Chemin absolu du fichier distant devant être copié.
utilisateur Compte utilisateur existant sur le serveur utilisé pour la copie.
adresse_serveur Adresse IP du serveur hébergeant le service SSH.

Utilisation d’applications dans des tunnels SSH


La création d’un tunnel SSH permet de sécuriser une communication client-serveur pour un protocole à priori
peu sécurisé. On établit depuis le poste client un tunnel SSH vers le serveur, et tout le trafic entre ces deux
machines est sécurisé. Le serveur génère alors un autre trafic non sécurisé vers la machine cible du trafic. Les
connexions des clients qui souhaitent emprunter le tunnel se font en fait vers le client SSH.
ssh –L port:cible_trafic:port_cible utilisateur@serveur -L
Renvoie un port local vers un serveur SSH (établissement de tunnel).
port Le port local à renvoyer.
cible_trafic Adresse IP ou nom de la machine cible du trafic.
port_cible Port vers lequel renvoyer le trafic sur la machine cible.
utilisateur Compte utilisateur sur le serveur utilisé pour l’établissement du tunnel.
serveur Adresse IP ou nom du serveur extrémité du tunnel.
Dans ce fonctionnement, un tunnel est établi entre un client et un serveur. Sur le client, le trafic à destination
du port local est renvoyé au travers du tunnel SSH vers la machine cible sur le port cible.

P-67 S@id OubghouZ


Les Serveurs d’échanges de fichiers
 Vsftp

Fiche Sur VsFTP-FTP


vsftpd Very Secure FTP Daemon
FTP File Transfer Protocol
TCP le port 21 du serveur, et où les données sont
envoyées depuis le port 20 et à l’initiative du
serveur vers un port quelconque du client .
Fichiers de /etc/vsftpd/vsftpd.conf
configuration
Nom de package
Nom de service vstpd

Définition : Le serveur FTP le plus courant est. Il a l’avantage d’être très petit, performant et
rapide tout en étant tout de même très configurable (moins toutefois que Proftpd ou
d’autres). Il convient dans la quasi-totalité des situations. C’est un service qui peut aussi bien
être lancé par xinetd que (dans les dernières versions des distributions) en tant que service
seul. Deux niveaux de sécurité sont utilisables :
• Anonyme : tout le monde peut se connecter au serveur FTP en tant que utilisateur ftp ou
anonymous.
l’environnement FTP est chrooté.
• Utilisateur : les utilisateurs qui existent sur le serveur peuvent se connecter avec leur mot de
passe et ont un
accès complet à leurs données dans leur répertoire personnel.

P-68 S@id OubghouZ


• Les utilisateurs anonymes étant considérés comme l’utilisateur ftp, c’est le répertoire
personnel de ce compte
qui est la racine du ftp.
Mode FTP actif et FTP passif
Historiquement, les clients FTP travaillaient en mode actif où la session est établie sur le port 21 du serveur,
et où les
données sont envoyées depuis le port 20 et à l’initiative du serveur vers un port quelconque du client. Ce
fonctionnement qui date d’avant la généralisation des parefeu ne va pas sans poser de problème dans la
mesure où il est vu par le parefeu comme une session ouverte depuis le serveur sur un port imprévisible
du client.
Le mode passif est venu corriger cet état de fait en faisant établir les deux sessions par le client. Le port
utilisé pour les
données est alors quelconque, annoncé par le serveur en mode commande, et utilisé par le client pour
l’ouverture de la session de données. Le fichier de configuration est présent dans : /etc/vsftpd/vsftpd.conf.
• La racine du ftp par défaut est dans /var/ftp.
• Le script de lancement est /etc/init.d/vsftpd (service vsftpd start).
• Pour activer ou non l’accès anonyme on modifie le fichier de configuration. Dans ce cas, l’utilisateur peut se
connecter en tant que anonymous ou ftp. Dans tous les cas, il sera reconnu comme utilisateur « ftp » du
serveur
une fois connecté :
anonymous_enable=YES/NO
• Pour activer ou non l’envoi de fichiers sur le serveur par des anonymes. Dans ce cas, l’autorisation d’écriture
dans un répertoire est fonction des droits du répertoire sur le serveur (notamment si l’utilisateur ftp a le droit
d’écrire ou non dans un répertoire) :
anon_upload_enable=YES/NO
• Vous pouvez interdire à des utilisateurs de se connecter en plaçant leurs noms dans /etc/vsftpd/ftpusers.
• Vous pouvez ajouter des utilisateurs dans /etc/vsftpd.user_list si userlist_enable=YES. Dans ce cas, c’est la
valeur de userlist_deny (YES/NO) qui déterminera si le fichier contient les utilisateurs interdits ou autorisés.
• On peut créer dans chaque répertoire du serveur un fichier .message. Dans ce cas, son contenu sera affiché
lors
de l’accès au répertoire.
# Port d'ecoute
listen_port=21
# Bannière de bienvenue
ftpd_banner=Bienvenue sur mon ftp perso
# Fichier de config PAM
pam_service_name=vsftpd
# Mode "standalone"
listen=YES
# Je ne veux pas de connexion anonyme
anonymous_enable=Yes
# On autorise les connexions des utilisateurs locaux. C'est indispensable
# pour que les utilisateurs virtuels (mappes sur un utilisateur local)
# puissent se connecter (les "vrais" utilisateurs locaux sont ensuite désactives
# avec le fichier user_list
local_enable=YES
# Fichier de users
userlist_file=/etc/vsftpd/user_list
# Chargement de la liste userlist_file
P-69 S@id OubghouZ
userlist_enable=YES
# On refuse les utilisateurs de la liste
userlist_deny=YES
# trop restrictif, un utilisateur virtuel pourra ainsi télécharger un fichier même s'il n'est pas world readable
anon_world_readable_only=NO
# Refus des droits d'écriture pour les anonymes (et donc utilisateurs virtuels) par défaut
# les autorisations seront données au cas par cas :
# pas d'upload
anon_upload_enable=NO
# pas de création de répertoire
anon_mkdir_write_enable=NO
# pas de création, suppression, renommage de répertoire ...
anon_other_write_enable=NO
# On fait en sorte que les utilisateurs "guest" (non-anonymes) soient mappés sur le compte local "ftp"
guest_enable=YES
guest_username=ftp
# chroot des utilisateurs
chroot_local_user=YES
# Nombre maximum de connexions simultanées
max_clients=50
# Nombre maximum de connexion venant de la même IP
max_per_ip=4
# Dossier de configuration spécifique des utilisateurs
user_config_dir=/etc/vsftpd/vsftpd_user_conf
# On active le log
xferlog_enable=YES

Les clients FTP


Les clients FTP graphiques
Les clients FTP graphiques sont nombreux et existent pour toutes les platesformes. On peut citer filezilla qui est
un produit open source très populaire sur les systèmes Windows. La configuration et l’usage des clients FTP
graphique variant selon les produits et ne présentant pas de difficulté majeure, leur utilisation ne sera pas
traitée ici
Wiki-My Server

P-70 S@id OubghouZ


FileZilla

Navigateur

P-71 S@id OubghouZ


P-72 S@id OubghouZ
Gestion des disques durs
Les étapes de gestions des disques durs
Etape -1 Ajouter les disques durs
Etape -2 Partionnement
Etape -3 Formatage
Etape -4 Montage

P-73 S@id OubghouZ


 Le Partitionnement

Le partitionnement d'un disque dur se fait après le formatage physique de celui-ci et avant le
formatage logique. Il consiste à créer des zones sur le disque dont les données ne seront pas
mélangées. Cela sert par exemple à installer des systèmesd'exploitation différents n'utilisant pas le
même système de fichiers.

La commande parted
GNU Parted est un éditeur de partitions libre permettant de créer, supprimer, modifier, vérifier
ou simplement copier des partitions. Il est distribué sous la forme d'une bibliothèque, libparted,
et d'une interface en ligne de commande, parted.
De nombreux utilisateurs souhaitent consulter la table des partition existantes, modifier la
taille des partitions, supprimer des partitions ou ajouter des partitions à partir d'espace libre ou
de disques durs
supplémentaires. L'utilitaire parted vous permet de réaliser ces tâches. Ce chapitre traite de
l'utilisation de parted pour la réalisation de tâches systèmes de fichiers.
Le paquetage parted doit être installé si vous voulez utiliser l'utilitaire parted. Pour lancer
parted, connectez-vous en tant que super-utilisateur et, à l'invite du shell, tapez la commande
parted /dev/hdb dans laquelle /dev/hdb correspond au nom de périphérique du disque que
vous souhaitez configurer. Vous verrez apparaître une invite (parted). Tapez help pour obtenir
une liste des commandes disponibles
La liste des commandes parted couramment utilisées :
Commandes Description
Réaliser une vérification simple du système de
check num-mineur
fichiers
Copier un système de fichiers d'une partition à
cp de à une autre ; de et à sont les numéros mineurs
des partitions

P-74 S@id OubghouZ


help Afficher une liste des commandes disponibles
Créer une étiquette de disque pour la table des
mklabel étiquette
partitions
mkfs num-mineur type- Créer un système de fichiers de type type
système-fichiers système-fichiers
mkpart type-partition type-fs Réaliser une partition sans créer de nouveau
mo-début mo-fin système de fichiers
mkpartfs type-partition type- Réaliser une partition et créer le système de
fs mo-début mo-fin fichiers spécifié
move num-mineur mo-début
Déplacer la partition
mo-fin
print Afficher la table des partitions
quit Quitter parted
Sauver une partition perdue de mo-début à mo
rescue mo-début mo-fin
fin
resize num-mineur mo-début Redimensionner la partition de mo-début à mo
mo-fin fin
rm num-mineur Supprimer la partition
Sélectionner un périphérique différent à
select périphérique
configurer
set num-mineur indicateur Configurer l'indicateur sur une partition ; état
état est réglé sur on ou of

La table de partitions ne devrait pas être modifiée tout en étant en cours d'utilisation. En effet,
il se peut que le noyau ne reconnaisse pas les modifications. Les données peuvent être écrasées
en écrivant la mauvaise partition vu que la table de partitions et les partitions montées ne
correspondent pas. La manière la plus simple de procéder consiste à démarrer votre système
en mode de secours. Si le disque ne contient pas de partitions en cours d'utilisation, vous
pouvez les démonter à l'aide de la commande umount et désactiver l'espace de swap du disque
dur à l'aide de la commande swapoff.

Affichage de la table des partitions


Après avoir lancé parted, tapez la commande suivante pour afficher la table des partitions :
print
Une table similaire à celle reproduite ci-dessous apparaîtra alors :

Disk geometry for /dev/hda: 0.000-9765.492 megabytes


Disk label type: msdos
Minor Start End Type Filesystem Flags
1 0.031 101.975 primary ext3 boot
2 101.975 611.850 primary linux-swap
3 611.851 760.891 primary ext3
4 760.891 9758.232 extended lba
5 760.922 9758.232 logical ext3

La première ligne affiche la taille du disque, la deuxième le type d'étiquette du disque et le


reste de cette sortie, la table des partitions. Dans cette dernière, le numéro Minor correspond
P-75 S@id OubghouZ
au numéro de la partition. Par exemple, la partition au numéro mineur 1 correspond à
/dev/hda1. Les valeurs Start (début) et End (fin) sont données en méga-octets. Le Type est
primaire, étendue ou logique. La colonne Filesystem (système de fichiers) correspond au type
de système de fichiers. La colonne Flags (indicateurs) répertorie l'ensemble des indicateurs
pour la partition. Les indicateurs disponibles sont boot, root, swap, hidden, raid, lvm ou lba.

Création d'une partition


Lancez la commande parted dans laquelle /dev/hda correspond au périphérique sur lequel la
partition doit être créée :
parted /dev/hda
Affichez la table des partitions en cours pour déterminer si l'espace disponible est suffisant :
print

Réalisation de la partition
À partir de la table des partitions, déterminez d'une part les points de début et de fin de la
nouvelle partition et d'autre part, son type.
Par exemple, pour créer une partition primaire avec un système de fichiers ext3 de 1024
méga-octets à 2048 méga-octets sur un disque dur, tapez la commande suivante :
mkpart primary ext3 1024 2048

NB : Si, à la place, vous utilisez la commande mkpartfs, le système de fichiers sera créé
après la création de la partition. Cependant, parted ne prend pas en charge la création d'un système
de fichiers ext3. Si vous souhaitez créer ce dernier, utilisez mkpart et créez le système de fichiers
avec la commande mkfs, comme nous le décrivons plus loin.

Les modifications prennent effet dès que vous appuyez sur [Entrée] ; vérifiez donc la
commande avant de l'exécuter.
Une fois la partition créée, utilisez la commande print pour confirmer d'une part qu'elle existe
bien dans la table des partitions et d'autre part que le type de partition, le type de système de
fichiers et la taille sont bien corrects. Souvenez-vous également du numéro mineur de la
nouvelle partition, afin de pouvoir l'étiqueter.
Affichez également les résultats de la commande
cat /proc/partitions
pour vérifier que le noyau reconnaît bien la nouvelle partition.

Formatage de la partition
La partition n'a toujours pas de système de fichiers. Créez-le à l'aide de la commande :
mkfs -t ext3 /dev/hdb3

Étiquetage de la partition
Ensuite, étiquetez la partition. Par exemple, si la nouvelle partition est /dev/hda3 et que vous voulez
lui donner l'étiquette /work, tapez la commande suivante :
e2label /dev/hda3 /work
Par défaut, le programme d'installation utilise le point de montage de la partition comme étiquette afin
de garantir une étiquette unique. Vous pouvez néanmoins utiliser l'étiquette de
votre choix.

P-76 S@id OubghouZ


Création du point de montage
En tant que super-utilisateur, créez le point de montage :
mkdir /work

Ajout à /etc/fstab
En tant que super-utilisateur, éditez le fichier /etc/fstab de manière à ce qu'il inclut la
nouvelle partition. La nouvelle ligne devrait ressembler à celle reproduite ci-dessous :
LABEL=/work /work ext3 defaults 1 2
Si la quatrième colonne contient le mot defaults, la partition sera montée au démarrage. Pour
monter la partition sans redémarrer le système, tapez la commande suivante en tant que
super-utilisateur :
mount /work

Suppression d'une partition


N'essayez pas de supprimer la partition d'un périphérique en cours d'utilisation.
Avant de supprimer une partition, démarrez en mode de secours (ou démontez les partitions
et désactivez l'espace de swap sur le périphérique).
Lancez la commande parted, dans laquelle /dev/hda correspond au périphérique sur lequel
la partition doit être supprimée :
parted /dev/hda
Affichez la table des partitions en cours afin de déterminer le numéro mineur de la partition à
supprimer :
print
Supprimez la partition à l'aide de la commande rm. Par exemple, pour supprimer la partition
portant le numéro mineur 3, tapez :
rm 3
Les modifications prenant effet dès que vous appuyez sur la touche [Entrée], vérifiez bien la
commande avant de l'exécuter.
Une fois que vous avez supprimé la partition, utilisez la commande print pour confirmer sa
suppression de la table de partition. Affichez également les résultats de la commande :
cat /proc/partitions
pour vous assurer que le noyau est informé de la suppression de la partition.
La dernière étape consiste à supprimer cette partition du fichier /etc/fstab. Trouvez la ligne
déclarant la partition supprimée et supprimez-la du fichier.

Redimensionnement d'une partition


N'essayez pas de redimensionner une partition d'un périphérique en cours d'utilisation.
Avant de redimensionner une partition, démarrez en mode de secours (ou démontez les
partitions et désactivez l'espace de swap sur le périphérique).
Lancez la commande parted, dans laquelle /dev/hda correspond au périphérique sur lequel
la partition doit être redimensionnée :
parted /dev/hda
Affichez la table des partitions en cours afin de déterminer le numéro mineur de la partition à
redimensionner, ainsi que les points de début et de fin de la partition :
print

P-77 S@id OubghouZ


Pour redimensionner la partition, utilisez la commande resize suivie du numéro mineur de la
partition, du point de départ et du point de fin en méga-octets. Par exemple :
resize 3 1024 2048
Une fois le redimensionnement de la partition effectué, utilisez la commande print pour
confirmer que la partition a été correctement redimensionnée et que son type et le type de
système de fichiers sont corrects.
Après avoir redémarré le système en mode normal, utilisez la commande df pour vérifier
d'une part que la partition a été montée et d'autre part qu'elle est bien reconnue avec sa
nouvel.

La commande fdisk
fdisk sous Linux
L'utilitaire fdisk de Linux permet de créer des partitions sur votre disque dur au même titre que
son homologue sous DOS, toutefois la version Linux de fdisk est plus compliquée à utiliser que la
version MS-DOS, il est donc conseillé de créer les partitions à partir de MS-DOS (créez une disquette
système afin de pouvoir formater votre partition DOS et installer le noyau DOS après installation de
Linux)
Le partitionnement avec fdisk entraînera la perte de toutes les données présentes sur le disque sur
lequel vous effectuez les opérations!

L'invocation de fdisk se fait à l'aide de la commande fdisk. Sans aucun argument fdisk utilisera le
premier disque dur qu'il trouve. Si jamais vous voulez préciser à fdisk le disque à partitionner, il
faut lui passer le nom du périphérique comme argument. Dans l'exemple suivant on indique
explicitement à fdisk que l'on désire partitionner le second disque dur : fdisk /dev/hdb

Noms des disques durs


Sous Linux, le nom des périphériques de stockage varie selon qu'il s'agit de disques SCSI ou
IDE.
- Pour des disques IDE, le premier sera nommé hda, le second hdb, ...
- Pour des disques SCSI, le premier s'appellera sda, le second sdb, ...

Commandes de fdisk
Sous Linux, les commandes de fdisk sont appelées par des touches, voici la liste des plus
importantes :

Commande Description
d destruction d'une partition
l liste des types de partitions
m Impression du menu en cours
n création d'une nouvelle partition
p Affichage des partitions
q Sortie de fdisk sans sauvegarde des paramètres
t Modification du type de partition
v Vérification de la table des partitions
w Sauvegarde des modifications et sortie de fdisk
Pour informer le noyau du changement sur la table de partitions, faire un :
# partprobe

P-78 S@id OubghouZ


 Le Formatage

Difinition : le formatage c’est de Créer un système de fichiers ext2 ou ext3 sur un


espace de stockage, pour le utiliser.

NB : Avant cela il faut quelques fois démonter et non éjecter votre disque.
Créer un système de fichiers en ext2 sur hda1
# mke2fs /dev/hda1
Créer un système de fichiers en ext3 sur hda1
# mke2fs -j /dev/hda1
Le paramètre « -c » permet de vérifier les secteurs avant de formater :
# mke2fs -j -c /dev/hda1
Pour plus d’infos : man mke2fs
Il existe deux autres commandes plus faciles à retenir :
# mkfs.ext2 /dev/hda1

P-79 S@id OubghouZ


et :
# mkfs.ext3 /dev/hda1
Remarque : En fait, les commandes : mke2fs, mkfs.ext2 et mkfs.ext3 sont les mêmes
reliées par un lien dur. La différence entre ext2 et ext3 se fait avec le nom (comme
paramètre virtuel, c’est comme gzip et gunzip qui sont les mêmes et ou c’est le nom
d’appel qui fait la différence de comportement).

 Le Montage

P-80 S@id OubghouZ


Difinition : En informatique, un point de montage est un répertoire à partir duquel sont accessibles
les données se trouvant sous forme d'un système de fichiers sur une partition de disque dur ou un
périphérique.

Sous UNIX, il y a un seul système de fichiers ``racine'' qui s'étend éventuellement sur plusieurs
disques. Les différents répertoires peuvent exister sur des disques physiques différents.
La commande mount est utilisée de cette manière:
mount [-t <système_de_fichier>] [-o <option>] <périphérique> <répertoire>
umount [-f] [<périphérique>|<répertoire>]

Il existe deux fichiers de montage:


Le fichier fstab (file systems table) est la table des différents systèmes de fichiers sur un ordinateur
sous Unix/Linux : il contient une liste des disques utilisés au démarrage et des partitions de ces
disques. Pour chaque partition, il indique comment elle sera utilisée et intégrée à l’arborescence
du système de fichiers global (c'est-à-dire le point de montage). Il se trouve généralement à /etc/fstab.

Le fichier mtab est la table des différents systèmes de fichiers sur un ordinateur sous Unix/Linux : il
contient une liste des disques utilisés dans ce moment des partitions de ces disques

Montage de CD-ROMs.
Placez le disque CD-ROM de votre distribution dans le lecteur adéquat et montez-le ainsi:
ls /mnt/cdrom
mount -t iso9660 -o ro <périphérique> <répertoire>
Lorsque vous aurez terminé de consulter les fichiers du CD-ROM, passez dans un autre répertoire
que <répertoire> et procédez à l'opération de démontage :
umount /dev/hdb
eject /dev/hdb

Réparation des systèmes de fichiers: fsck.


La commande fsck permet la vérification du système de fichiers (file system check). fsck effectue un
balayage du système de fichiers, tout en affichant un rapport et en fixant les erreurs. En principe, celles-ci
apparaissent seulement lorsque le noyau a été arrêté avant que le système de fichiers n'ait été démonté.
Dans ce cas, il se peut qu'une opération d'écriture soit inachevée: le système de fichiers se retrouve alors
dans un état incohérent. Ceci se produit lors d'une panne de courant brutale. Dans la terminologie
anglo-saxonne, le système est qualifié d'unclean.
fsck est utilisé de la manière suivante:
fsck [-V] [-a] [-t <système_de_fichiers>] <périphérique>
-V indique qu'il faut produire une sortie en mode bavard (verbose);
-a force la vérification du système de fichiers de manière non-interactive, c'est-à-dire en ne consultant
pas l'utilisateur avant d'effectuer les réparations.
La commande que vous utiliserez normalement avec LINUX si vous ne connaissez pas l'ensemble des
propriétés du système de fichiers ext2 est:
fsck -a -t ext2 /dev/hda1
bien que vous puissez négliger l'option -t puisque LINUX autodétecte le système de fichiers. Notez que
vous ne devriez pas exécuter fsck sur un système de fichiers monté. Dans certains cas exceptionnels, il est
possible de lancer la commande fsck sur un système de fichiers monté en lecture seule.

P-81 S@id OubghouZ


Il existe deux types de montage:

Montage manuelle :
La commande mount est utilisée de cette manière:
mount [-t <système_de_fichier>] [-o <option>] <périphérique> <répertoire>

Exapmle :
#mount -t ext2 /dev/sdb1 /root/Desktop/mont
Cette commande est modifier au niveau de fichier /etc/mtab
Ce type de montage ,lorsque le redemarage de la machine il faut le remonter.

Montage automatique :fstab


Les montages manuels expliqués dans la section précédente sont destinés aux nouveaux
périphériques ou aux éléments amovibles. Naturellement, il est nécessaire d'automatiser le
montage au cours de l'initialisation de la machine (boot). Le fichier /etc/fstab contient la
description des périphériques à monter et leur méthode de montage.
/etc/fstab devrait ressembler à ceci :

Les trois premiers champs (ou colonnes) indiquent respectivement :


- les partitions,
- les répertoires où elles doivent être montées
- les systèmes de fichiers qui sont associés
- les options, c'est-à-dire les arguments passés à l'option -o de la commande mount.
- le cinquième champ précise si le système de fichiers contient des fichiers réels.
Le dernier champ nous indique l'ordre dans lequel un fsck devrait être réalisé sur les
partitions. La partition / devrait être la première concernée (avec un 1) suivie de toutes les
autres partitions (avec un 2).

P-82 S@id OubghouZ


- defaults : Utilisation des options par défaut : rw, suid, dev, exec, auto, nouser, et async.
- async : Toutes les entrées/sorties sur le système de fichiers seront asynchrones.
- auto : Peut être monté par l'argument -a.
- dev : Interpréter les fichiers spéciaux de périphériques présents sur le système de fichiers.
- exec : Permettre l'exécution de fichiers binaires.
- nodev : Ne pas interpréter les fichiers spéciaux de périphériques présents sur le système de fichiers.
- noexec : Ne pas permettre l'exécution de fichiers binaires sur le système de fichiers monté. Ceci peut
être utile sur un serveur qui contient des fichiers binaires pour des architectures autres que la sienne.
- nosuid : Ne pas tenir compte des bits Set-UID ou Set-GID.
- Remount : Remonter un système de fichiers déjà monté. Ceci est utilisé pour changer les attributs de
montage, principalement pour autoriser l'écriture sur un système en lecture seule.
- ro : Montage du système en lecture seule.
- rw : Montage du système en lecture/écriture.
- owner : Autoriser un utilisateur ordinaire (non root) à monter le système de fichiers s'il est le
propriétaire du périphérique.
- atime : Mise à jour des horodatages d'accès à chaque accès. Option par défaut.
- group : Autoriser à un utilisateur ordinaire de monter le système de fichiers si l'un des groupes
auxquels il appartient correspond au groupe du périphérique. Cette option intègre les options nosuid et
nodev.
- noauto : Ne peut être monté qu'explicitement (l'invocation de mount avec l'argument -a ne montera
pas le système de fichiers).
- nouser : Ne pas autoriser d'utilisateur ordinaire (non root) à monter le système de fichiers. C'est le
comportement par défaut.
- user : Autoriser les utilisateurs ordinaires à monter le système de fichiers. Le nom de l'utilisateur est
noté dans mtab pour qu'il puisse le démonter ensuite. Ceci entraîne l'utilisation des options noexec,
nosuid, et
nodev.
- users : Permettre à tous les utilisateurs de monter et démonter le système de fichiers. Cette option
intègre les options noexec, nosuid, et nodev.

P-83 S@id OubghouZ


 Les LVM

Architecture des volumes logiques


Un volume logique est l’équivalent fonctionnel d’une partition traditionnelle, il est identifié
par un fichier spécial en mode bloc, et supportera généralement un filesystem en vue d’un
montage. Dans une architecture LVM basée sur plusieurs volumes physiques, la défaillance du
moindre d’entre eux rend tous les volumes logiques qui en dépendent inopérants. Il
conviendra donc de ne créer des volumes physiques que depuis des volumes à tolérance de
panne comme des éléments soumis à RAID, qu’il soit logiciel ou matériel.

P-84 S@id OubghouZ


Les Commandes LVM
Les commandes de gestion des LVM sont construites selon un préfixe lié à l’objet
qu’on veut gérer, et un suffixe selon l’action à entreprendre.

Création des éléments


Création des volumes physiques
pvcreate device
Où device représente le fichier spécial blocs qui héberge le volume physique, disque ou partition.
Création du groupe de volumes
vgcreate nom_vg pv_device
nom_vg : Nom du groupe de volume.
pv_device : Valeur au choix.
Fichier spécial blocs qui héberge le ou les pv qui alimentent le vg.
Le groupe de volume ainsi créé apparaîtra sous forme de répertoire du nom du groupe de volume
créé, directement sous /dev. Attention, ce répertoire n’apparaîtra réellement que lorsqu’un premier
volume logique sera créé à partir du groupe de volume.
Création du volume logique
Les volumes logiques sont créés avec la commande lvcreate. On peut créer autant de volumes logiques
que l’on veut tant qu’il reste de l’espace disponible dans le Volume Group.
lvcreate -L taille -n nom_lv nom_vg
taille : Taille du volume logique, sous forme de valeur numérique directement suivie de l’unité.
nom_lv : Nom du volume logique. Valeur au choix.
nom_vg : Nom du groupe de volume à partir duquel le volume logique sera créé.

- Diagnostics LVM
Affichage des informations de volume physique
Les informations détaillées de tous les volumes physiques présents sur un système seront affichées par
la commande pvdisplay. Si vous préférez la concision, vous pouvez essayer pvs.
Affichage des informations de groupes de volumes
Les informations détaillées de tous les groupes de volumes présents sur un système sont affichées par
la commande vgdisplay. Si vous préférez la concision, vous pouvez essayer vgs.
Affichage des informations de volumes logiques
Les informations détaillées de tous les volumes logiques présents sur un système seront affichées par
la commande lvdisplay. Pour la concision, essayez lvs.
- Extension de volume logique
Extension d’un Volume Group
vgextend nom_vg pv_device
nom_vg : Nom du groupe de volume à étendre.
pv_device : Fichier spécial blocs qui héberge le ou les PV qui alimentent le VG.
Extension d’un Logical Volume
lvextend -L taille lv taille : Taille du volume logique étendu, sous forme de valeur numérique directement
suivie de l’unité. Si la taille est précédée d’un signe +, cette taille s’ajoute à celle du volume existant.
lv : Volume logique à étendre, désigné par son fichier spécial en mode blocs.

P-85 S@id OubghouZ


- Réduction de LV
Réduction d’un Logical Volume
lvreduce -L taille lv
taille : Taille à retirer du volume logique étendu, sous forme de valeur numérique directement suivie de
l’unité.
lv : Volume logique à réduire, désigné par son fichier spécial en mode blocs.
Réduction d’un Volume Group
vgreduce vg pv
vg : Le groupe de volume à réduire.
pv: Le (ou les) volumes physiques à retirer du groupe de volumes.
Exploitation des volumes logiques
Données sur les volumes logiques
création d’un file system ext3 sur un LV
# mke2fs -j /dev/vg1/lv99
il sera nécessaire pour exploiter ce filesystem de monter le volume logique, que ce soit de façon
manuelle ou par le biais du fichier /etc/fstab.
Exemple de montage de volume logique
# mount /dev/vg1/lv99 /mnt/data99
Réalisation du snapshot
Le snapshot se fait avec la commande lvcreate. Un snapshot est donc un volume logique à part
entière, et il pourra être monté et exploité en cas de besoin.
L’espace exploité par le snapshot pourra être surveillé avec la commande lvdisplay.
Syntaxe de la commande lvcreate pour la création de snapshot
lvcreate -L taille -s -n nom_snapshot lv_origine
-L taille Option qui indique qu’on crée un snapshot de volume logique, et non un volume logique
ordinaire.
-s Taille du snapshot à créer. Le nom du volume de snapshot. Il est recommandé d’avoir une convention de
-n nom_snapshot
dénomination explicite.
Le nom du volume logique en production à partir duquel le snapshot sera réalisé.
lv_origine
Exemple de création de snapshot :Le snapshot est un volume logique presque comme les autres .
# lvcreate -L 1G -s -n clicclac /dev/vg1/data1
# lvdisplay /dev/vg1/clicclac

Outils de manipulation des PV

P-86 S@id OubghouZ


Outils de manipulation des VG

Outils de manipulation des VG

Utilisation LVM (Logical Volume Manager) sous Linux


LVM (Logical Volume Manager) permet de gérer des partitions logiques, et non pas physiques, ce qui a notamment
comme avantage de pouvoir plus facilement modifier leur taille.
Un petit schéma :

Partition(s) de disque
|----> Volume Group
|----> Logicals Volumes
|----> système de fichiers

P-87 S@id OubghouZ


Au lieu de :
Une partition de disque
|---->un système de fichier

Ces couches intermédiaires vont donc permettre une meilleure mobilité de nos systèmes de fichiers
Le volume physique (PV) :
- Typiquement une partition ou un disque entier
- Label dans les premiers secteurs pour le marquer comme PV LVM
Le groupe de volumes (VG) :
- Est utilisé pour regrouper les PV (un seul ou plusieurs)
- Nommage possible : utile pour les différencier facilement
Le volume Logique (LV) :
- Un LV dans un VG est comme une partition sur un disque
- C'est lui que l'on va formater avec le système de fichiers de notre choix
- Possibilité d'agrandir ou rétrécir sa taille au besoin (selon le système de fichiers embarqué

Pré-requis
Partition non formatée
Il faut disposer d'une partition non formatée. Dans notre cas, il s'agit de /dev/sda9, qui dispose d'un peu plus de
300 Go de libres.

Installation du package LVM


Sur une distribution de type redhat :

# rpm –i lvm2*

P-88 S@id OubghouZ


Création du volume physique
La mise en place de volumes logiques est un modèle à trois couches :
- Volume physique
- Volume group
- Volume logique

On peut lister les volumes physiques avec la commande pvdisplay. Exemple :

Création du Volume Group


Avant de pouvoir créer des volumes logiques, il faut avoir créé un Volume Group. Ceci s'effectue via la
commande vgcreate. La syntaxe est la suivante :

vgcreate NOM-du-VG NOM-Du-PV

Exemple :
# vgcreate vmvg /dev/sda9
Volume group "vmvg" successfully created

On peut vérifier que cela est répercuté au niveau du volume physique. Le paramètre VG Name est maintenant
renseigné:

P-89 S@id OubghouZ


On obtient plus d'informations via la commande vgdisplay. Par exemple :

# vgdisplay vmvg
--- Volume group ---
VG Name vmvg
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 1
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 0
Open LV 0
Max PV 0
Cur PV 1
Act PV 1
VG Size 316,17 GiB
PE Size 4,00 MiB
Total PE 80940
Alloc PE / Size 0 / 0
Free PE / Size 80940 / 316,17 GiB
VG UUID kd3LKL-tMjA-eIq4-EhMs-LdWV-LFVl-2rBhk1

Création d'un volume logique


A ce niveau, il est possible de créer des volumes logiques sur notre VG, via la commande lvcreate,
avec la syntaxe :

lvcreate -L[taille] -n[nom-du-lv] [nom-du-vg]


Dans notre exemple, ce serait :
lvcreate -L8000 -n vm_redhat5 vmvg
Logical volume "vm_wheezy" created
Cette comande aura pour effet de créer un volume logique de 8 Go sur le volume groupe
vmvg, et nommé vm_redhat5.
On peut avoir la liste des LV créés avec la commande lvscan :
P-90 S@id OubghouZ
# lvscan
ACTIVE '/dev/vmvg/vm_wheezy' [7,81 GiB] inherit

La commande lvdisplay donne les détails d'un volkume logique

Remarquons que le nombre LE est de 2000.


Le LE est le nombre d'unités de PE affectées à votre volume logique.
LE * Size d'un PE = Taille du LV
ici: 2000 * 4M = 8G
Les volumes logiques sont prêts à être utilisés par virt-manager...
Quelques commandes utiles
pvscan : liste les différents volumes physiques disponibles
# pvscan
PV /dev/sda9 VG vmvg lvm2 [316,17 GiB / 300,55 GiB free]
Total: 1 [316,17 GiB] / in use: 1 [316,17 GiB] / in no VG: 0 [0 ]
vgscan : liste les différents volume groups
# vgscan
Reading all physical volumes. This may take a while...
Found volume group "vmvg" using metadata type lvm2
lvscan : liste les différents volumes logiques
# lvscan
ACTIVE '/dev/vmvg/vm_wheezy' [7,81 GiB] inherit
ACTIVE '/dev/vmvg/vm_redhat5' [7,81 GiB] inherit

Supprimer un volume logique


Pour supprimer un volume logique, il suffit d'utiliser la commande lvremove, une fois que le volume logique est
démonté.
Exemple :

P-91 S@id OubghouZ


Formatage du volume logique
Afin de pouvoir monter le volume logique, il est nécessaire de le formater auparavant, via les
commandes mkfs. Par exemple, pour formater en ext4, on utilisera la commande :
mkfs -t ext4 /dev/vmvg/Vol1
On peut ensuite monter le volume comme une partition "normale" :
mkdir /Essai1
mount /dev/mvg/Vol1 /Essai1
df -h
Redimensionner un volume logique
L'un des avantages principaux des volumes logiques est de permettre de redimensionner la partition
"à la volée" ou presque, beaucoup plus facilement et sans perte de données par rapport à une
partition physique.
Pour ce faire, il est possible d'utiliser la commande lvextend. Par exemple :

lvextend -L12G /dev/vmvg/Vol1


va étendre la taille du volume logique à 12 GB.
lvextend -L+1G /dev/vmvg/Vol1
va ajouter 1 GB au volume logique. Il faut ensuite retailler le file system qui repose sur ce volume
logique :
umount /dev/vmvg/Vol1
e2fsck -f /dev/vmvg/Vol1
resize2fs /dev/vmvg/Vol1
mount /dev/vmvg/Vol1
Bien sûr, il faut avoir contrôlé auparavant que le volume group a suffisamment d'espace libre, avec la
commande vgdisplay
Opérations sur les VGs
Comment ajouter une partition au VG?
La gestion d'un VG consiste principalement en l'ajout d'une partition dans un VG, ou en sa suppression..
vgextend NOM-du-VG /dev/hdb1
permet de rajouter au VG film_vg la première partition du disque hdb.
Vous pouvez ensuite rajouter/modifier/etendre vos LVs à souhait.

Comment enlever une partition au VG?


Pour enlever une partition :
vgreduce NOM-du-VG /dev/hda1
Attention !
on ne peut pas enlever une partition s'il ne reste pas assez de place sur les autres partitions du VG

P-92 S@id OubghouZ


Glossaire
Logical Volume Manager, nom du système de gestion dynamique des systèmes de
LVM
fichier.
VG Volume Group, Groupe de partitions créant la première couche au-dessus des partitions
LV Logical Volume, Volume créé sur un VG, comportant un nombre entier(LE) de PE
PV Physical Volume, Volume physique, correspond aux partitions
FS Filesystem, système de fichier formaté sur le LV. Ext2/Ext3 sont les plus répandus.
PE Plus petite unité du VG. Sa taille détermine le plus petit LV pouvant être créé.
LE Nombre entier de PE contenu dans un LV.

Manipuler un LVM
But : Manipuler des PV, VG et LV.
- Modifiez les partitions du TD précédent avec le type 8e :
/dev/sdb2
/dev/sdb3
16847 18152 10490445 8e Linux LVM
18153 19457 10482412+ 8e Linux LVM

- Créez deux PV avec ces deux partitions :


# pvcreate /dev/sdb2
Physical volume "/dev/sdb2" successfully created
# pvcreate /dev/sdb3
Physical volume "/dev/sdb3" successfully created

- Créez un groupe de volumes vgLOCAL avec le premier PV :


slyserver:/home/seb # vgcreate vgLOCAL /dev/sdb2
Volume group "vgLOCAL" successfully created

- Vérifiez l’état du VG. Notamment, notez la taille d’un Physical Extend :


# vgdisplay vgLOCAL
--- Volume group ---
VG Name vgLOCAL
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 1

- Créez un volume logique lv_L1 de 8 Go (adaptez en fonction de la taille de


votre VG), en utilisant
les Logical extends. Ici il faut 2048 extends. Puis formatez le LV en ext3.
# lvcreate -n lv_L1 -l 2048 vgLOCAL
Logical volume "lv_L1" created
# mkfs -t ext3 /dev/vgLOCAL/lv_L1

P-93 S@id OubghouZ


mke2fs 1.41.1 (01-Sep-2008)…
Écriture des superblocs et de l’information de comptabilité du système de fichiers : complété

- Agrandissez lv_L1 à 15 Go. Pour cela, ajoutez le second PV dans le groupe


de volumes puis agrandissez le LV et enfin agrandissez le système de fichiers.
# vgextend vgLOCAL /dev/sdb3
Volume group "vgLOCAL" successfully extended
# lvextend -L +3G /dev/vgLOCAL/lv_L1
Extending logical volume lv_L1 to 11,00 GB
Logical volume lv_L1 successfully resized
# resize2fs /dev/vgLOCAL/lv_L1
resize2fs 1.41.1 (01-Sep-2008)
Resizing the filesystem on /dev/vgLOCAL/lv_L1 to 2883584 (4k) blocks.
Le système de fichiers /dev/vgLOCAL/lv_L1 a maintenant une taille de 2883584 blocs.

- Réduisez le volume logique lv_L1 à 5 Go. Pour cela, réduisez d’abord le


système de fichiers { cette taille puis le volume logique. Vous devrez confirmer
cette dernière opération car si vous oubliez de réduire la taille du système de
fichiers elle peut être destructrice.
# resize2fs /dev/vgLOCAL/lv_L1 5G
resize2fs 1.41.1 (01-Sep-2008)
Resizing the filesystem on /dev/vgLOCAL/lv_L1 to 1310720 (4k) blocks.
Le système de fichiers /dev/vgLOCAL/lv_L1 a maintenant une taille de 1310720 blocs.
# lvreduce -L 5G /dev/vgLOCAL/lv_L1
WARNING: Reducing active logical volume to 5,00 GB THIS MAY DESTROY YOUR DATA
(filesystem etc.) Do you really want to reduce lv_L1? [y/n]: y
Reducing logical volume lv_L1 to 5,00 GB
Logical volume lv_L1 successfully resized

- Enfin, détruisez complètement le groupe de volumes. Commencez par détruire


le volume logique lv_L1 et tous les volumes logiques éventuellement présents.
Puis, retirez tous les volumes physiques du groupe de volumes, sauf un. Enfin,
détruisez le groupe de volumes.
# lvremove /dev/vgLOCAL/lv_L1
Do you really want to remove active logical volume "lv_L1"? [y/n]: y
Logical volume "lv_L1" successfully removed
# vgreduce vgLOCAL /dev/sdb3
Removed "/dev/sdb3" from volume group "vgLOCAL"
# vgremove vgLOCAL
Volume group "vgLOCAL" successfully removed

P-94 S@id OubghouZ


 Raid
Redundant Array of Independent/Inexpensive Disks

En informatique, le RAID (Redundant Array of Independent/Inexpensive Disks),


une technologie qui tire profit de l'utilisation de plusieurs disques durs ; leRAID,
une unité de la police nationale française (a reçu par rétroacronymie le sens
Recherche, Assistance, Intervention, Dissuasion)

Raid – 0

P-95 S@id OubghouZ


RAID 0 (également appelé mode FAST dans certains dispositifs LaCie) est le mode RAID le plus
rapide. Nécessitant au moins 2 disques, RAID 0 « stripe » les données sur chaque disque. Les capacités
disponibles de chaque disque sont ajoutées afn qu'un seul volume logique apparaisse sur l'ordinateur.
En cas de panne d'un disque physique de la matrice, les données de tous les disques ne sont plus
accessibles étant donné que seules certaines parties des données ont été enregistrées sur tous les disques.
Applications
RAID 0 est idéal pour les utilisateurs qui nécessitent une vitesse et une capacité maximales. Les éditeurs
de vidéo travaillant avec des fchiers très volumineux peuvent utiliser RAID 0 lors de l'édition de
plusieurs flux vidéo afn d'obtenir des performances de lecture optimales. Une matrice RAID 0 convient
plus à des personnes travaillant activement avec des fchiers (par exemple les éditeurs vidéo) et ne doit
pas être utilisée comme une simple solution de stockage et de sauvegarde ou sur des systèmes vitaux.
Produits LaCie équipés de la technologie RAID 0
✦LaCie 2big quadra
✦LaCie 4big quadra
✦LaCie big disk quadra (intégré)
✦LaCie little big disk quadra (intégré)
✦LaCie 5big network
Calcul de la capacité RAID 0
Tous les disques d'un système RAID 0 doivent
avoir la même capacité.
La capacité de stockage d'une confguration
RAID de niveau 0 est calculée en multipliant le
nombre de disques par la capacité de disque,
soit C = n*d, où :
C = capacité disponible
n = nombre de disques
d = capacité de disque
Par exemple, dans une matrice RAID 0 avec
quatre lecteurs chacun d'une capacité de
1000 Go, la capacité totale de la matrice serait de 4000 Go :
C = (4*1000)
Configuration d’un disque en RAID 0
1. Installation de la gestion RAID
Sur le serveur alpha, installez les outils de gestion RAID en tapant la commande suivante :
apt-get install mdadm
Si l’assistant vous propose des options de personnalisation, acceptez tous les choix par défau
2. Inventaire des disques installés
Manipulations
1. Dans le répertoire /dev, listez tous les éléments commençant par hd ou sd.
2. Consultez le « ring buffer » du noyau pour vérifier que les disques ont bien été reconnus au
démarrage du noyau.
3. Identifiez le disque système (celui qui doit être partitionné) et les deux disques ajoutés.
4. Constatez la présence dans le répertoire /dev de deux fichiers spéciaux en mode bloc sda et
sdb.

P-96 S@id OubghouZ


Résumé des commandes et résultat à l’écran
Affichage des fichiers spéciaux de /dev commançant par hd ou sd :
# cd /dev
# ls [hs]d*
hda hda1 hda2 hda5 hdc sda sdb
3. Création du disque RAID
Manipulations
1. Créez un disque RAID 0 sous le nom md0.
2. Vérifiez la présence du disque RAID créé par deux moyens différents.
Résumé des commandes et résultat à l’écran
Création du disque RAID 0 :
# mdadm -C /dev/md0 -l 0 -n 2 /dev/sda /dev/sdb
mdadm: array /dev/md0 started.
Vérification de la présence du disque RAID 0 par trois moyens différents :
# ls /dev/md0
/dev/md0
# cat /proc/mdstat
Personalities : [raid0]
md0 : active raid0 sdb[1] sda[0]
4194176 blocks 64k chunks
unused devices: <none>
# mdadm -D /dev/md0
/dev/md0:
Version : 00.90
Creation Time : Wed Sep 1 13:31:52 2010
Raid Level : raid0
Array Size : 4194176 (4.00 GiB 4.29 GB)
Raid Devices : 2
Total Devices : 2
Preferred Minor : 0
Persistence : Superblock is persistent
Update Time : Wed Sep 1 13:31:52 2010
State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
Chunk Size : 64K
UUID : 678f9e3e:f92b3780:1b3376be:99c3df95 (local to host alpha)
Events : 0.1
Number Major Minor RaidDevice State
0 8 0 0 active sync /dev/sda
1 8 16 1 active sync /dev/sdb

Raid - 1

P-97 S@id OubghouZ


RAID 1 (également appelé mode SAFE dans certains dispositifs LaCie) est un mode RAID sûr qui
nécessite au moins 2 disques et fonctionne avec des paires de disques. Un volume logique apparaît sur
l'ordinateur et la capacité disponible combinée des deux disques est limitée à la capacité du disque de
capacité inférieure. Si l'un des deux disques tombe en panne, les données sont immédiatement
disponibles sur l'autre disque. Aucune donnée n'est perdue si l'un des deux disques tombe en panne.
Applications
RAID 1 fournit une sécurité maximale des données en cas de panne d'un seul disque mais étant donné
que les données sont enregistrées deux fois, les performances sont légèrement réduites lors de
l'écriture. RAID 1 est un bon choix lorsque la sécurité est plus importante que la vitesse.
Produits LaCie équipés de la technologie RAID 1
✦ LaCie 2big quadra
✦ LaCie 2big network1
Calcul de la capacité RAID 1
Tous les disques d'un système RAID 1 doivent avoir la même capacité. La capacité de stockage d'une
confguration RAID de niveau 1 est calculée en multipliant le nombre de disques par la capacité de
disque et en divisant par 2, soit
C = n*d/2
où :
C = capacité disponible
n = nombre de disques
d = capacité de disque
Par exemple, dans une matrice RAID 1 avec quatre lecteurs chacun d'une capacité de
1000 Go, la capacité totale de la matrice serait de 2000 Go : C = (4*1000)/2

But : utiliser les commandes fdisk et mdadm pour gérer un RAID1


1. Sur votre disque dur, créez deux partitions de taille identique. La taille n’a pas
d’importance. Donnez-leur le type f d , comme dans l’exemple suivant. Reportez-vous au
chapitre Les disques et le système de fichiers pour l’utilisation de fdisk. Éventuellement
utilisez la commande partprobe
pour rafraîchir la table des partitions du noyau.
P-98 S@id OubghouZ
# fdisk /dev/sdb
Commande (m pour l’aide): p
Disque /dev/sdb: 160.0 Go, 160041885696 octets
255 heads, 63 sectors/track, 19457 cylinders
Units = cylindres of 16065 * 512 = 8225280 bytes
Disk identifier: 0x000eab03

# partprobe /dev/sdb

2. Créez le RAID avec la commande mdadm. C’est la syntaxe courte qui est donnée ici :
# mdadm -C /dev/md0 -l 0 -n 2 /dev/sdb2 /dev/sdb3
mdadm: array /dev/md/0 started.
3. Vérifiez l’état du raid en regardant le contenu de /proc/mdstat :
# cat /proc/mdstat
Personalities : [raid0]
md0 : active raid0 sdb3[1] sdb2[0]
20972672 blocks 64k chunks
4. Comparez ce résultat avec celui de la commande mdstat pour un affichage détaillé.
/proc/mdsta fournit un instantané de l’état du RAID vu du noyau. La sortie de mdstat
fournit, outre l’état actuel, les informations sur la conception et le mode de
fonctionnement du RAID :
# mdadm --detail /dev/md0
/dev/md0:
Version : 0.90
Creation Time : Wed May 13 20:16:49 2009
Raid Level : raid0
Array Size : 20972672 (20.00 GiB 21.48 GB)
Raid Devices : 2
Total Devices : 2
Preferred Minor : 0
Persistence : Superblock is persistent
Update Time : Wed May 13 20:16:49 2009
State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
Chunk Size : 64K
P-99 S@id OubghouZ
UUID : 3cac5942:d2777be8:1f7b0fb3:3386758f (local to host slyserver)
Events : 0.1
Number Major Minor
0 8 18
1 8 19
unused devices: <none>
5. Simulez une panne du second disque. Puis regardez l’état du RAID. Est-il encore en bon
état ? Oui car le RAID 1 est un miroir, les données sont identiques sur les deux disques.
# mdadm /dev/md0 -f /dev/sdb3
mdadm: set /dev/sdb3 faulty in /dev/md0
# mdadm --detail /dev/md0|grep State
State : clean
6. Stoppez le RAID et détruisez-le :
# mdadm --stop /dev/md0
mdadm: stopped /dev/md0
Pour détruire définitivement le RAID, il faut supprimer les informations des superblocs
des disques composant le RAID. C’est l{ que sont écrites les informations sur le RAID. Ceci
ce fait avec
le paramètre --zero-superblock :
# mdadm --zero-superblock /dev/sdb2 /dev/sdb3
Raid – 5

RAID 5
RAID 5 combine striping de RAID 0 et rédondance des données dans une matrice avec
un minimum de trois disques. La différence entre RAID 3 et RAID 5 est que la
confguration RAID 3 offre de meilleures performances mais une capacité globale
légèrement inférieure. Les données sont en striping sur tous les disques et un bloc de
parité (P) est enregistré sur la même bande pour chaque bloc de données. Si l'un des
deux disques tombe en panne, les données du disque défaillant peuvent être
reconstruites sur un disque de remplacement. Aucune donnée n'est perdue en cas de

P-100 S@id OubghouZ


panne d'un seul disque, mais si un deuxième disque tombe en panne avant que les
données n'aient pu être reconstruites sur un disque de remplacement, toutes les
données de la matrice seront perdues.
Applications
RAID 5 combine sécurité des données et utilisation effcace de l'espace disque. La panne
d'un disque n'entraîne pas d'interruption de service car les données sont lues à partir de
blocs de parité. RAID 5 est utile pour l'archivage ainsi que pour les personnes qui
souhaitent un certain niveau de performance et ont besoin d'avoir constamment accès à
leur données, par exemple les éditeurs vidéo.
Produits LaCie équipés de la technologie RAID 5
✦ LaCie 4big quadra
✦ LaCie 5big network
Calcul de la capacité RAID 5
Tous les disques d'un système RAID 5 doivent
avoir la même capacité.
La capacité de stockage d'une confguration
RAID de niveau 5 est calculée en soustrayant
1 au nombre de disques et en multipliant par
la capacité de disque, soit
C = (n-1)*d
où :
C = capacité disponible
n = nombre de disques
d = capacité de disque
Par exemple, dans une matrice RAID 5 avec
quatre lecteurs chacun d'une capacité de
1000 Go, la capacité totale de la matrice serait de 3000 Go :
C = (4-1)*1000

Création et exploitation d’un volume logique sur le


disque RAID 0

P-101 S@id OubghouZ


Extension du volume logique

P-102 S@id OubghouZ


 Quota de disque

Difinition : Les quotas sont une option du système d'exploitation qui vous permet de limiter la
quantité d'espace disque et/ou le nombre de fichiers auxquels ont droit un utilisateur ou tous les
utilisateurs d'un même groupe, sur un système de fichiers donné.

P-103 S@id OubghouZ

Vous aimerez peut-être aussi