Vous êtes sur la page 1sur 63

Support de cours BTS SRI2

Lyce technique Chichaoua

GNU/Linux

Support de cours Introduction


Rappels :
1. Le chargement du noyau Linux
2. Shell Script
Partie 1

Le chargement du noyau Linux


Lorsque l'on allume son ordinateur, la carte mre effectue un test automatique qui se charge de tester
le bon fonctionnement des composants de la carte mre (processeur, mmoire, etc.). Ce test s'appelle
le POST (Power-On Self Test). Si tout est OK, ce test se termine par un (et un seul) bip.
Ceci fait, le BIOS charge ensuite le programme stock dans le boot secteur du disque dur.
Sur architecture PC, il existe deux programmes permettant de charger le noyau Linux, ou un autre
systme d'exploitation.

LILO
LILO (LInux LOader) a t le premier logiciel permettant d'effectuer cette opration.
Exemple de fichier de configuration de Lilo (/etc/lilo.conf) :
boot=/dev/hda
map=/boot/map
install=/boot/boot.b
default=linux
prompt
timeout=50
message=/boot/message
# Premiere section : boot Windows
other=/dev/hda1
label=windows
table=/dev/hda
# Deuxieme section: boot Linux
image=/boot/vmlinuz
label=linux
root=/dev/hda4
append="acpi=off"
read-only
# Troisieme section: boot Linux - mode mono-utilisateur
image=/boot/vmlinuz
label=linux_single_user
root=/dev/hda4
append="single acpi=off"
read-only

Ce fichier se compose de paramtres communs (disque dur de boot, timeout ...) et de sections pour
chaque systme d'exploitation booter.
Chaque fois que l'on modifie ce fichier, il faut excuter la commande lilo afin de re-crire dans le boot
secteur l'emplacement exact du noyau sur le disque dur.
# lilo
Added windows
Added linux
Added linux_single_user

GRUB

Support de cours BTS SRI2


Lyce technique Chichaoua

GNU/Linux

Aujourd'hui, on utilise le programme GRUB (GRand Unified Bootloader) car il offre des possibilits
supplmentaires.
Contrairement Lilo, Grub sait lire une partition Linux (ext2/3, XFS, reiserFS ...) afin de charger son
fichier de configuration (/boot/grub/menu.lst) et le(s) noyau(x) Linux.
Exemple de fichier de configuration de Grub (/boot/grub/menu.lst)
default
0
timeout
30
color cyan/blue white/blue
# Premiere section : Linux
title
Debian GNU/Linux, kernel 2.6.18-5-686
root
(hd1,0)
kernel
/vmlinuz-2.6.18-5-686 root=/dev/sdb2 ro acpi=off
initrd
/initrd.img-2.6.18-5-686
savedefault
# Deuxieme section : Linux mode mono-utilisateur
title
Debian GNU/Linux, kernel 2.6.18-5-686 (single-user mode)
root
(hd1,0)
kernel
/vmlinuz-2.6.18-5-686 root=/dev/sdb2 ro acpi=off single
initrd
/initrd.img-2.6.18-5-686
savedefault
# Troisieme section : Windows
title
Windows NT/2000/XP (loader)
root
(hd0,0)
savedefault
makeactive
chainloader
+1

A la diffrence de Lilo, il n'est pas ncessaire d'excuter une commande particulire lorsque l'on
modifie ce fichier.

les messages du noyau Linux


Une fois charg en mmoire, le noyau va se charger de dtecter et d'initialiser les composants de la
carte mre et les priphriques prsents.
Ces messages sont affichs sur l'cran lors du dmarrage.
La commande dmesg permet de consulter ces messages ultrieurement.
Exemples :

# dmesg
Linux version 2.6.18-5-686 (Debian 2.6.18.dfsg.1-13) (dannf@debian.org) (gcc
version 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)) #1 SMP Fri Jun 1 00: 47:00
UTC 2007
BIOS-provided physical RAM map:
BIOS-e820: 0000000000000000 - 000000000008f000 (usable)
...

A noter que la commande dmesg affiche tous les messages dtects durant le boot, ainsi que les
messages du noyau affichs par la suite (cad durant le fonctionnement du systme).
Dans certains cas, l'affichage de la commande dmesg peut tre tronqu (notamment les messages
affichs durant le boot). Dans ce cas, on peut consulter le fichier /var/log/dmesg qui ne contient que
les messages du boot.

Le processus init
Une fois que le noyau a dtect l'ensemble des composants de l'ordinateur, il lance le processus du
systme : init.
Le processus init a comme particularit d'avoir le PID (Process IDentifiant) n1 (c'est le premier
processus), et de fait, il est le pre de tous les autres.
Le processus dispose d'un fichier de configuration, c'est le fichier /etc/inittab.
La syntaxe de ce fichier est la suivante :
code:niveau:action:commande
Exemple de fichier /etc/inittab :
# Indique le runlevel par dfaut (ici le 2)
id:2:initdefault:
# Script d'initiation du boot du systme

Support de cours BTS SRI2


Lyce technique Chichaoua

GNU/Linux

si::sysinit:/etc/init.d/rcS
# mode mono-utilisateur
~~:S:wait:/sbin/sulogin
# runlevel 0 : arret du systme
l0:0:wait:/etc/init.d/rc 0
# runlevel 1 : mono-utilisateur
l1:1:wait:/etc/init.d/rc 1
# runlevel 2 : runlevel par dfaut sur Debian
l2:2:wait:/etc/init.d/rc 2
# runlevel 3, 4 et 5 : autres runlevels disponible
l3:3:wait:/etc/init.d/rc 3
l4:4:wait:/etc/init.d/rc 4
l5:5:wait:/etc/init.d/rc 5
# runlevel 6 : redmarrage du systme
l6:6:wait:/etc/init.d/rc 6
# mode emergency
z6:6:respawn:/sbin/sulogin
# lance le reboot quand on appuie sur CTRL-ALT-DEL
ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now
# Dmarre les tty en mode console
1:2345:respawn:/sbin/getty 38400 tty1
2:23:respawn:/sbin/getty 38400 tty2
3:23:respawn:/sbin/getty 38400 tty3
4:23:respawn:/sbin/getty 38400 tty4
5:23:respawn:/sbin/getty 38400 tty5
6:23:respawn:/sbin/getty 38400 tty6

Les runlevels et les scripts de dmarrage


Une fois que le systme a effectu le runlevel S (initialisation minimale, comme par exemple vrifier
l'intgrit des systmes de fichiers), il va dans le runlevel 2 (Debian).
Les niveaux de Runlevel

S : Initialisation commune tous les runlevels


0 : Arrt de la machine
1 : Single-User
2,3,4,5 : Fonctionnement normal
6 : Reboot de la machine

Commandes pour manipuler les runlevel


La commande runlevel permet de connatre le runlevel dans lequel on est :
# runlevel
N 2

Dans cet exemple, on est dans le runlevel n2 (fonctionnement sous Debian). Le N nous indique le
runlevel prcdent (N (No) : pas de runlevel prcdent)
La commande init ou la commande telinit permet de changer de runlevel. Exemple :
# init 6

Arrter ou redmarrer le systme


Pour arrter le systme :
Commun tous les UNIX : shutdown
Spcifique Linux et systmes rcents : halt et reboot
# shutdown -h now "changement de noyau" &

NB : on rajoute un & pour garder la main


Il existe diffrentes options telles que :

-h (h pour halt) : arrt immdiat


-r now (r pour reboot) : redmarrage immdiat
-h +10 : arrt diffr dans 10 minutes
-h 10:30 : arrt 10h30
-c : annule l'arrt

Sommaire du dmarrage.
Image complte du processus de dmarrage d'un systme UNIX:

Support de cours BTS SRI2


Lyce technique Chichaoua

GNU/Linux

1. le premier secteur est charg en mmoire RAM et excut -l'invite LILO:GRUB


apparat,
2. le noyau est charg depuis la liste de secteurs,
3. le noyau est excut et dcompress,
4. le noyau initialise les priphriques matriels,
5. le noyau monte le systme de fichier racine, disons /dev/hda1,
6. le noyau excute /sbin/init avec un PID=1,
7. init exccute tous les scripts du niveau d'excution par dfaut dfini dans
/etc/inittab,
8. init engendre les programmes getty sur chaque terminal.
9. getty affiche l'invite de connexion,
10. getty excute /bin/login pour authentifier l'utilisateur,
11.le programme login lance un shell.
Partie 2
Rappel Shell Scipt

Exercices dintroduction

Existance dun fichier


#!/bin/sh
echo -n "Entrez un nom de fichier: "
read file
if [ -e "$file" ]; then
echo "Le fichier existe!"
else
echo "Le fichier n'existe pas, du moins n'est pas dans le
rpertoire d'excution du script"
fi
exit 0

Les oprateurs logiques


Il y a en 3 :

le et logique : -a ou &&

le ou logique : -o ou ||

le non logique : !

La structure : `if`
Pour pouvoir voir la valeur d'une variable il faut faire prcder son nom du caractre $ .

#!/bin/sh

Support de cours BTS SRI2


Lyce technique Chichaoua

GNU/Linux

echo -n "Voulez-vous voir la liste des fichiers Y/N : "


read ouinon
if [ "$ouinon" = "y" ] || [ "$ouinon" = "Y" ]; then
echo "Liste des fichiers :"
ls -la
elif [ "$ouinon" = "n" ] || [ "$ouinon" = "N" ]; then
echo "Ok, bye! "
else
echo "Il faut taper Y ou N!! Pas $ouinon"
fi

La structure `while`
La commande while excute ce qu'il y a dans son bloc tant que la condition est respecte :

#!/bin/sh
cmpt=1
cm=3
echo -n "Mot de passe : "
read mdp
while [ "$mdp" != "ubuntu" ] && [ "$cmpt" != 4 ]
do
echo -n "Mauvais mot de passe, plus que "$cm" chance(s): "
read mdp
cmpt=$(($cmpt+1))
cm=$(($cm-1))
done
echo "Non mais, le brute-force est interdit en France !!"
exit 0

La structure `case`
simples :

case variable in
modle [ | modle] ...) instructions;;
modle [ | modle] ...) instructions;;
...
esac
Pour vous donner une ide prcise de ce que peuvent raliser toutes ces instructions, voici un petit script cens refaire un prompt avec
quelques commandes basiques :

Support de cours BTS SRI2


Lyce technique Chichaoua

GNU/Linux

#!/bin/bash
clear
echo
echo "#################### Script ############################"
echo
echo "#############################"
echo -n "LOGIN: "
read login
echo -n "Hte: "
read hote
echo "#############################"
echo
echo "### Pour l'aide tapez help ###"
echo
while [ 1 ]; do

# permet une boucle

infinie
echo -n ""$login"@"$hote"$ "

# qui s'arrte avec

break
read reps
case $reps in
help | hlp )
echo "A propos de TS --> about"
echo "ls --> liste les fichiers"
echo "rm --> dtruit un fichier (guid)"
echo "rmd --> efface un dossier (guid)"
echo "noyau --> version du noyau Linux"
echo "connect --> savoir qui s'est connect dernirement";;
ls )
ls -la;;
rm )
echo -n "Quel fichier voulez-vous effacer : "
read eff
rm -f $eff;;
rmd | rmdir )
echo -n "Quel rpertoire voulez-vous effacer : "

Support de cours BTS SRI2


Lyce technique Chichaoua

GNU/Linux

read eff
rm -r $eff;;
noyau | "uname -r" )
uname -r;;
connect )
last;;
about | --v | vers )
echo "Script simple pour l'initiation aux scripts shell";;
quit | "exit" )
echo Au revoir!!
break;;
* )
echo "Commande inconnue";;
esac
done
exit 0

La structure for
Sa syntaxe est la suivante :

for variable in valeurs; do


instructions
done
#!/bin/sh
for var in *.txt; do
echo "$var"
done
exit 0
#!/bin/sh
for var in 1 2 3 4 5 6 7 8 9; do
echo $var
done
exit 0
Examinez le script suivant. Lancez-le, puis expliquez ce qu'il fait. Annotez le script, puis r-crivez-le d'une faon plus
compacte et plus lgante.

#!/bin/bash
MAX=10000

Support de cours BTS SRI2


Lyce technique Chichaoua

GNU/Linux

for((nr=1; nr<$MAX; nr++))


do
let "t1 = nr % 5"
if [ "$t1" -ne 3 ]
then
continue
fi
let "t2 = nr % 7"
if [ "$t2" -ne 4 ]
then
continue
fi
let "t3 = nr % 9"
if [ "$t3" -ne 5 ]
then
continue
fi
break

# Que se passe-t-il quand vous mettez cette ligne en commentaire

?
# Pourquoi ?
done
echo "Nombre = $nr"

exit 0

CH2 : Technologie
RAID

Support de cours BTS SRI2


Lyce technique Chichaoua

GNU/Linux

En informatique, le mot RAID (Redundant Array of Independent (or inexpensive) Disks)


regroupement redondant de disques indpendants dsigne les techniques permettant de rpartir
des donnes sur plusieurs disques durs afin d'amliorer soit la tolrance aux pannes, soit la scurit,
soit les performances de l'ensemble, ou une rpartition de tout cela.

Schma de principe d'une grappe de disques en RAID 5

Historique
En 1978, un employ d'IBM, Norman Ken Ouchi, dposa un brevet concernant un Systme de
rcupration de donnes stockes dans une unit de stockage dfectueuse , et dont la description tait
ce que deviendrait plus tard le RAID 5. Ce brevet fait galement mention du miroitage (mirroring) de
disque (qui sera appel plus tard RAID 1), ainsi que de la protection avec une parit ddie (qui sera
appel plus tard RAID 3 et 4).
La technologie RAID a t labore par un groupe de chercheurs de l'Universit de Berkeley
(Californie) en 1987. Ces derniers tudirent la possibilit de faire reconnatre deux disques durs ou
plus comme une seule entit par le systme. Ils obtinrent pour rsultat un systme de stockage aux
performances bien meilleures que celles des systmes disque dur unique, mais dot d'une trs
mauvaise fiabilit. Les chercheurs s'orientrent alors vers des architectures redondantes, afin
d'amliorer la tolrance aux pannes du systme de stockage.

Description et concepts
Comparaison RAID/SLED
Depuis sa cration, la particularit principale de l'architecture RAID est sa capacit combiner de
nombreux priphriques de stockage bon march et une technologie courante dans une matrice
unique, de sorte que ce groupement offre une capacit, une fiabilit et/ou des performances accrues, ce
pour un cot largement infrieur un priphrique de stockage unique quivalent exploitant des
technologies de pointe. L'architecture RAID s'oppose donc l'architecture SLED (Single Large
Expensive Disk), qui est fonde sur l'utilisation d'un seul et mme disque dur de grande capacit, donc
d'un prix lev, car celui-ci doit non seulement pouvoir stocker beaucoup d'informations, mais il doit
de plus tre d'excellente qualit pour garantir au mieux la prennit et l'accessibilit de son contenu.
En effet, dans une architecture de type SLED, la bonne conservation des donnes est dpendante de la
moindre dfaillance du disque dur. Lorsqu'une panne survient, non seulement le systme est
inexploitable le temps du remplacement du matriel dfectueux, mais la seule manire de rcuprer
les donnes est de procder une restauration de la dernire sauvegarde, ce qui peut prendre plusieurs
heures durant lesquelles le systme est toujours inutilisable.

Support de cours BTS SRI2


Lyce technique Chichaoua

GNU/Linux

Si un tel temps d'inactivit est acceptable pour l'ordinateur d'un particulier, il est en revanche
rdhibitoire pour le systme informatique d'une entreprise, pour qui une telle panne peut avoir des
consquences non ngligeables sur sa sant financire. L'utilisation d'une architecture RAID, du
moins dans la plupart de ses niveaux fonctionnels, permet justement d'apporter une rponse ces
besoins car non seulement la dfaillance d'un des disques de la grappe ne gne pas le fonctionnement
des autres disques, ce qui permet au systme de continuer de fonctionner, mais de surcrot, une fois le
disque en panne chang, son contenu est reconstruit partir des autres disques pendant le
fonctionnement normal du systme. Ainsi, l'activit de l'entreprise continue de faon ininterrompue et
transparente pendant toute la dure de l'incident.
Le RAID, suivant ses niveaux fonctionnels, s'il donne des temps de rponse identiques ceux des
disques s'ils taient utiliss individuellement, offre des dbits particulirement soutenus, mme en
utilisant des disques durs bons marchs et de performances moyennes, tout en garantissant une bien
meilleure fiabilit (sauf pour le RAID 0 qui lui la rduit d'autant que le nombre de disques). Dans de
telles situations, les architectures RAID se rvlent donc idales, tant du point de vue de leurs
performances que de leur fiabilit. Dans tous les cas, le RAID reste compltement transparent
l'utilisateur qui, quel que soit le nombre de disques physiques utiliss pour construire le RAID, ne
verra jamais qu'un seul grand volume logique, auquel il accdera de faon tout fait habituelle.

Parit et redondance
Le miroitage s'avre tre une solution onreuse, puisqu'il est ncessaire d'acqurir les priphriques de
stockage en plusieurs exemplaires. Aussi, partant du principe que plusieurs units de stockage ont une
faible probabilit de tomber en panne simultanment, d'autres systmes ont t imagins, dont ceux
permettant de rgnrer les donnes manquantes partir des donnes restant accessibles et d'une ou
plusieurs donnes supplmentaires, dites de redondance.
Le systme de redondance le plus simple et le plus largement utilis est le calcul de parit. Ce systme
repose sur l'opration logique XOR (OU exclusif) et consiste dterminer si sur bits de donnes
considrs, le nombre de bits l'tat est pair ou impair. Si le nombre de est pair, alors le bit de
parit vaut . Si le nombre de est impair, alors le bit de parit vaut . Lorsque l'un des
bits de
donnes ainsi forms devient indisponible, il est alors possible de rgnrer le bit manquant en
appliquant nouveau la mme mthode sur les lments restants. Cette technique est utilise dans
les systmes RAID 5.
Il existe des systmes de redondance plus complexes et capables de gnrer plusieurs lments de
redondance afin de supporter l'absence de plusieurs lments. Le RAID 6 utilise par exemple une
technique de calcul de parit fonde sur des polynmes.

Les diffrents types de systmes RAID


Le systme RAID est :

soit un systme de redondance qui donne au stockage des donnes une certaine tolrance aux
pannes matrielles (ex : RAID1).

soit un systme de rpartition qui amliore ses performances (ex : RAID0).

soit les deux la fois mais avec une moins bonne efficacit (ex : RAID5).

Le systme RAID est donc capable de grer d'une manire ou d'une autre la rpartition et la cohrence
de ces donnes. Ce systme de contrle peut tre purement logiciel ou utiliser un matriel ddi.

Support de cours BTS SRI2


Lyce technique Chichaoua

GNU/Linux

Le RAID logiciel
En RAID logiciel, le contrle du RAID est intgralement assur par une couche logicielle du systme
d'exploitation. Cette couche s'intercale entre la couche d'abstraction matrielle (pilote) et la couche du
systme de fichiers.
Avantages

C'est la mthode la moins onreuse puisqu'elle ne demande aucun matriel supplmentaire.

Cette mthode possde une grande souplesse d'administration (logicielle).

Cette mthode prsente l'avantage de la compatibilit entre toutes les machines quipes du
mme logiciel de RAID (cest--dire du mme systme d'exploitation)

Inconvnients

L'inconvnient majeur rside dans le fait que cette mthode repose sur la couche d'abstraction
matrielle des priphriques qui composent le volume RAID. Pour diverses raisons, cette
couche peut tre imparfaite et manquer de certaines fonctions importantes comme, par
exemple, la dtection et le diagnostic des dfauts matriels et/ou la prise en charge du
remplacement chaud (Plug And Play) des units de stockage.

La gestion du RAID monopolise des ressources systmes (lgrement le processeur et surtout


le bus systme) qui pourraient tre employes d'autres fins. La baisse de performances due
la gestion logicielle du raid est particulirement sensible dans des configurations o le systme
doit transfrer plusieurs fois les mmes donnes comme, par exemple, en RAID1, et, assez
faible, dans des configurations sans redondance : exemple, le RAID 0.

L'utilisation du RAID sur le disque systme n'est pas toujours possible.

Le RAID pseudo-matriel
L'extrme majorit des contrleurs RAID bon march intgrs de nombreuses cartes mres rcentes
en 2004/2005 grent souvent le RAID 0 et 1 sur des disques IDE ou SATA. Malgr le discours
marketing qui tend systmatiquement induire en erreur sur ce point, il ne s'agit pas de RAID
matriel proprement parler mais plutt d'un contrleur de disque dot de quelques fonctions
avances.
D'un point de vue strictement matriel, cette solution hybride n'est pas diffrente d'un RAID logiciel.
Elle diffre cependant sur l'emplacement des routines logicielles de gestion du RAID.
Avantages

L'intrt principal de ce type de RAID est d'apporter une solution au troisime problme du
RAID logiciel, savoir qu'il ne peut pas toujours servir hberger les fichiers du systme
d'exploitation puisque c'est justement ce dernier qui permet d'y accder.

Dans ce type de RAID, la prsence d'un BIOS intgrant les routines logicielles basiques de
gestion du RAID permet de charger en mmoire les fichiers essentiels du systme
d'exploitation (le noyau et les pilotes essentiels).

Support de cours BTS SRI2


Lyce technique Chichaoua

GNU/Linux

Puis, le pilote du contrleur intgre les mmes routines logicielles de gestion du RAID et
fournit alors aux couches suprieures de l'OS non pas un accs aux priphriques mais un
accs au volume RAID qu'il mule.

Inconvnients
En dehors de cet avantage important, ce type de RAID cumule les dfauts des deux autres approches :

Les limitations de performances sont les mmes que pour le raid logiciel car il s'agit
effectivement d'un RAID logiciel camoufl.

Un problme important pos par ces contrleurs hybrides est leur pitre gestion des dfauts
matriels et leurs fonctionnalits BIOS gnralement limites.

L'interoprabilit est trs mauvaise surtout si l'on considre qu'il s'agit gnralement de
matriel intgr aux cartes mres des ordinateurs. Pire, le changement de carte-mre (voire
simplement de version de bios), si la nouvelle utilise des jeux de puces diffrents, peut imposer
de reconstruire le RAID entirement. De manire gnrale, une reconstruction est possible si
l'on reste dans des contrleurs RAID de mme marque mais de modles diffrents, mais il
n'existe pas de rgle dfinie de compatibilit.

La fiabilit annonce de ces dispositifs est assez controverse.

Le RAID matriel
Dans le cas du RAID matriel, une carte ou un composant est ddi la gestion des oprations. Le
contrleur RAID peut tre interne l'unit centrale (carte d'extension) ou dport dans une baie de
stockage.
Un contrleur raid est en gnral dot d'un processeur spcifique, de mmoire, ventuellement d'une
batterie de secours, et est capable de grer tous les aspects du systme de stockage RAID grce au
microcode embarqu (firmware).
Du point de vue du systme d'exploitation, le contrleur RAID matriel offre une virtualisation
complte du systme de stockage. Le systme d'exploitation considre chaque volume RAID comme
un disque et n'a pas connaissance de ses constituants physiques.
Avantages

Les contrleurs RAID matriels permettent la dtection des dfauts, le remplacement chaud
des units dfectueuses et offrent la possibilit de reconstruire de manire transparente les
disques dfaillants. Mais les systmes d'exploitation volus permettent galement cela si le
matriel le permet.

La charge systme (principalement l'occupation du bus) est allge. (surtout dans des
configurations avec beaucoup de disques et une forte redondance)

Les vrifications de cohrence, les diagnostics et les maintenances sont effectus en arrire
plan par le contrleur sans solliciter de ressources systme.

Inconvnients

Support de cours BTS SRI2


Lyce technique Chichaoua

GNU/Linux

Les contrleurs RAID matriels utilisent chacun leur propre systme pour grer les units de
stockage. En consquence, au contraire d'un RAID logiciel, des disques transfrs d'un
systme un autre ne pourront pas tre rcuprs si le contrleur RAID n'est pas exactement le
mme (firmware compris). Il est donc conseill de possder une deuxime carte en cas de
panne de la premire.

Les cartes d'entre de gamme possdent des processeurs de puissance bien infrieure celle
des ordinateurs actuels. On peut donc avoir de bien moins bonnes performances pour le mme
prix qu'un RAID logiciel.

Le cot : l'entre de gamme se situe aux alentours de 200 mais les cartes plus performantes
peuvent souvent dpasser les 1000 .

Le contrleur RAID est lui-mme un composant matriel, qui peut tomber en panne. Son
logiciel (firmware) peut contenir des erreurs, ce qui constitue un autre risque de panne (un
nouveau "single-point-of-failure"). Il est peu probable qu'un RAID actuel contienne des erreurs
de programmation (bugs) car il est garanti en moyenne une dizaine d'annes.

Les diffrents fabricants de contrleurs RAID fournissent des outils de gestion logicielle trs
diffrents les uns des autres (et de qualit parfois ingale). l'oppos, les outils de gestion du
RAID logiciel fournis avec un systme d'exploitation sont gnralement bien intgrs dans ce
systme.

La dure du support d'un contrleur RAID par son constructeur (correction de bugs dans le
firmware, par exemple), parfois lie l'arrive de nouveaux produits rendant les anciens
obsoltes, peut tre moins longue ou plus volatile que le support du RAID logiciel par le
fournisseur du systme d'exploitation. Le constructeur peut mme disparaitre (ce qui est assez
rare parmi les fabricants de systmes d'exploitation).

Une moindre souplesse par rapport au RAID logiciel, qui dispose d'une couche d'abstraction
permettant de grer du RAID au-dessus de tout types de priphriques blocs supports par le
systme d'exploitation, locaux ou distants (ATA, SCSI, ATA over Ethernet, iSCSI... et toutes
les combinaisons possibles entre eux). Les contrleurs RAID sont spcialiss pour un seul type
de priphrique bloc.

Les diffrents niveaux de RAID


Les niveaux standard
Les diffrents types d'architecture RAID sont numrots partir de 0 et peuvent se combiner entre eux
(on parlera alors de RAID 0+1, 1+0, etc.).
RAID 0 : volume agrg par bandes

Support de cours BTS SRI2


Lyce technique Chichaoua

GNU/Linux

RAID 0
Le RAID 0, galement connu sous le nom d' entrelacement de disques ou de volume agrg par
bandes (striping en anglais) est une configuration RAID permettant d'augmenter significativement
les performances de la grappe en faisant travailler disques durs en parallle (avec
).

Capacit :
La capacit totale est gale celle du plus petit lment de la grappe multipli par le nombre
d'lments prsent dans la grappe, car le systme d'agrgation par bandes se retrouvera bloqu
une fois que le plus petit disque sera rempli (voir schma). L'espace excdentaire des autres
lments de la grappe restera inutilis. Il est donc conseill d'utiliser des disques de mme
capacit.

Fiabilit :
Le dfaut de cette solution est que la perte d'un seul disque entrane la perte de toutes ses
donnes.

Cot :
Dans un RAID 0, qui n'apporte aucune redondance, tout l'espace disque disponible est utilis
(tant que tous les disques ont la mme capacit).

Dans cette configuration, les donnes sont rparties par bandes (stripes en anglais) d'une taille fixe.
Cette taille est appele granularit .
Exemple : avec un RAID 0 ayant une bande de 64 Ko et compos de deux disques (disque
Disk 0 et disque Disk 1), si l'on veut crire un fichier A de 500 Ko, le fichier sera dcoup en 8
bandes (car
), appelons-les 1, 2, 3, 4, 5, 6, 7 et 8, qui seront rparties sur
l'ensemble des disques de la faon suivante :
Disk 0 : 1, 3, 5, 7
Disk 1 : 2, 4, 6, 8
Ainsi l'criture du fichier pourra tre effectue simultanment sur chacun des disques en un
temps quivalent l'criture de 256 kio.

Support de cours BTS SRI2


Lyce technique Chichaoua

GNU/Linux

Ainsi, sur un RAID 0 de disques (avec


), chaque disque ne doit lire et crire que des
donnes, ce qui a pour effet de diminuer les temps d'accs (lecture et criture) aux donnes; les
disques se partageant le travail, les traitements se trouvent acclrs.
Ce type de RAID est parfait pour des applications requrant un traitement rapide d'une grande quantit
de donnes. Mais cette architecture n'assure en rien la scurit des donnes ; en effet, si l'un des
disques tombe en panne, la totalit des donnes du RAID est perdue.
RAID 1 : Disques en miroir

RAID 1
Le RAID 1 consiste en l'utilisation de disques redondants (avec
), chaque disque de la grappe
contenant tout moment exactement les mmes donnes, d'o l'utilisation du mot miroir
(mirroring en anglais).

Capacit :
La capacit totale est gale celle du plus petit lment de la grappe. L'espace excdentaire
des autres lments de la grappe restera inutilis. Il est donc conseill d'utiliser des lments
identiques.

Fiabilit :
Cette solution offre un excellent niveau de protection des donnes. Elle accepte une dfaillance
de
lments.

Cot :
Les cots de stockage sont levs et directement proportionnels au nombre de miroirs utiliss
alors que la capacit totale reste inchange. Plus le nombre de miroirs est lev, et plus la
scurit augmente, mais plus son cot devient prohibitif.

Les accs en lecture du systme d'exploitation se font sur le disque le plus facilement accessible ce
moment-l. Les critures sur la grappe se font de manire simultane sur tous les disques, de faon
ce que n'importe quel disque soit interchangeable tout moment.
Lors de la dfaillance de l'un des disques, le contrleur RAID dsactive, de manire transparente pour
l'accs aux donnes, le disque incrimin. Une fois le disque dfectueux remplac, le contrleur RAID

Support de cours BTS SRI2


Lyce technique Chichaoua

GNU/Linux

reconstitue, soit automatiquement, soit sur intervention manuelle, le miroir. Une fois la
synchronisation effectue, le RAID retrouve son niveau initial de redondance.
RAID 5 : volume agrg par bandes parit rpartie

RAID 5
Le RAID 5 combine la mthode du volume agrg par bandes (striping) une parit rpartie. Il s'agit
l d'un ensemble redondance
. La parit, qui est incluse avec chaque criture se retrouve
rpartie circulairement sur les diffrents disques. Chaque bande est donc constitue de blocs de
donnes et d'un bloc de parit. Ainsi, en cas de dfaillance de l'un des disques de la grappe, pour
chaque bande il manquera soit un bloc de donnes soit le bloc de parit. Si c'est le bloc de parit, ce
n'est pas grave, car aucune donne ne manque. Si c'est un bloc de donnes, on peut calculer son
contenu partir des
autres blocs de donnes et du bloc de parit. L'intgrit des donnes de
chaque bande est prserve. Donc non seulement la grappe est toujours en tat de fonctionner, mais il
est de plus possible de reconstruire le disque une fois chang partir des donnes et des informations
de parit contenues sur les autres disques.
On voit donc que le RAID 5 ne supporte la perte que d'un seul disque la fois. Ce qui devient un
problme depuis que les disques qui composent une grappe sont de plus en plus gros (1 To et plus). Le
temps de reconstruction de la parit en cas de disque dfaillant est allong. Il est gnralement de 2 h
pour des disques de 300 Go contre une dizaine d'heures pour 1 To. Pour limiter le risque il est courant
de ddier un disque dit de spare. En rgime normal il est inutilis. En cas de panne d'un disque il
prendra automatiquement la place du disque dfaillant. Cela ncessite une phase communment
appele "recalcul de parit". Elle consiste pour chaque bande recrer sur le nouveau disque le bloc
manquant (donnes ou parit).
Bien sr pendant tout le temps du recalcule de la parit le disque est disponible normalement pour
l'ordinateur qui se trouve juste un peu ralenti.
Exemple pratique : Considrons quatre disques durs A, B, C et D, de tailles identiques. Le
systme va enregistrer les premiers blocs en les rpartissant sur les disques A, B et C comme
en mode RAID 0 (striping) et, sur le disque D, le rsultat de l'opration OU exclusif entre les
autres disques (ici A xor B xor C). Ensuite le systme va enregistrer les blocs suivants en les
rpartissant sur les disques D, A et B, puis la parit (soit D xor A xor B) sur le disque C, et
ainsi de suite en faisant permuter circulairement les disques, chaque bloc. La parit se trouve
alors rpartie sur tous les disques.
En cas de dfaillance d'un disque, les donnes qui s'y trouvaient pourront tre reconstitues par
l'opration xor. En effet, l'opration XOR ( ) a la proprit suivante : si on considre blocs
de taille identique
et si
alors
, et de faon
gnrale,
.

Support de cours BTS SRI2


Lyce technique Chichaoua

GNU/Linux

C'est--dire que n'importe quel bloc de donnes


perdu cause d'un disque dfaillant sur un
RAID 5 de
disques peut-tre rcupr grce au bloc de donnes de contrle.
On voit donc que si on veut crire dans un bloc, il faut lire le bloc modifier. Lire le bloc de
parit de la bande. crire le bloc de donnes et le bloc de parit. L'opration xor permet
heureusement de calculer la nouvelle parit sans avoir besoin de lire les blocs de donnes de
la bande. Augmenter le nombre de disque d'une grappe RAID 5 n'allonge donc pas le temps de
lecture ou d'criture. Cependant si plusieurs processus veulent crire simultanment dans un ou
plusieurs blocs de donnes d'une mme bande la mise jour du bloc de parit devient un point
de blocage. Les processus concurrents sont suspendus la libration du bloc de parit et de fait
cela limite le dbit d'criture. Plus le nombre de disque d'une grappe RAID 5 augmente plus le
temps de reconstruction d'un disque dfaillant augmente. Puisque pour reconstituer le bloc
manquant d'une bande il faut lire tous les autres blocs de la bande et donc tous les autres
disques.
Ce systme ncessite imprativement un minimum de trois disques durs. Ceux-ci doivent
gnralement tre de mme taille, mais un grand nombre de cartes RAID modernes autorisent des
disques de tailles diffrentes.
La capacit de stockage utile relle, pour un systme de disques de capacit identiques est de
. En cas d'utilisation de disques de capacits diffrentes, le systme utilisera dans la
formule prcdente la capacit minimale.
Ainsi par exemple, trois disques de 100 Go en RAID 5 offrent 200 Go utiles ; dix disques, 900 Go
utiles.
Ce systme allie scurit (grce la parit) et bonne disponibilit (grce la rpartition de la parit),
mme en cas de dfaillance d'un des priphriques de stockage.

TP RAID : en utilisant une machine virtuelle (VMWAR ou


VIRTUALBOX)
Voir le support tp-RAID.PDF

CH 3 - Utilisation LVM (Logical Volume Manager) sous Linux

LVM (Logical Volume Manager) permet de grer des partitions logiques, et non pas physiques, ce qui a
notamment comme avantage de pouvoir plus facilement modifier leur taille.

Partition non formate


Il faut disposer d'une partition non formate. Dans notre cas, il s'agit de /dev/sda9, qui dispose d'un peu plus de
300 Go de libres. Cette partition sera utilise principalement pour grer des images de machines virtuelles
cres avec KVM.
# fdisk -l /dev/sda
Disk /dev/sda: 750.2 GB, 750156374016 bytes
255 ttes, 63 secteurs/piste, 91201 cylindres, total 1465149168 secteurs
Units = secteurs de 1 * 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 4096 octets

Support de cours BTS SRI2


Lyce technique Chichaoua

GNU/Linux

taille d'E/S (minimale / optimale) : 4096 octets / 4096 octets


Identifiant de disque : 0x73a05bd4
Priphrique Amorce

Dbut

/dev/sda1

Blocs

Id

2048

102402047

51200000

HPFS/NTFS/exFAT

/dev/sda2

102402048

204802047

51200000

HPFS/NTFS/exFAT

/dev/sda3

204804094

1465147391

630171649

tendue

Fin

Systme

La partition 3 ne dbute pas sur une frontire de cylindre physique.


/dev/sda5

204804096

284803071

39999488

83

Linux

/dev/sda6

284805120

294567935

4881408

82

partition d'change Linux / Solaris

/dev/sda7

294569984

392224767

48827392

83

Linux

/dev/sda8

392226816

802082815

204928000

83

Linux

/dev/sda9

802084864

1465147391

331531264

83

Linux

Installation du package LVM


Sur une distribution de type Debian/Ubuntu :
# apt-get install lvm2

Cration du volume physique


La mise en place de volumes logiques est un modle trois couches :

Volume physique

Volume group

Volume logique
# pvcreate /dev/sda9
Writing physical volume data to disk "/dev/sda9"
Physical volume "/dev/sda9" successfully created

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


# pvdisplay
"/dev/sda9" is a new physical volume of "316,17 GiB"
--- NEW Physical volume --PV Name

/dev/sda9

VG Name
PV Size

316,17 GiB

Allocatable

NO

PE Size

Total PE

Free PE

Allocated PE

PV UUID

ReKoL9-gneB-DXfg-5MpV-pKyP-n5Rl-TRdnXh

Cration du Volume Group


Avant de pouvoir crer 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 :

Support de cours BTS SRI2


Lyce technique Chichaoua

GNU/Linux

# vgcreate vmvg /dev/sda9


Volume group "vmvg" successfully created

On peut vrifier que cela est rpercut au niveau du volume physique. Le paramtre VG Name est maintenant
renseign :
# pvdisplay
--- Physical volume --PV Name

/dev/sda9

VG Name

vmvg

PV Size

316,17 GiB / not usable 0

Allocatable

yes

PE Size

4,00 MiB

Total PE

80940

Free PE

80940

Allocated PE

PV UUID

ReKoL9-gneB-DXfg-5MpV-pKyP-n5Rl-TRdnXh

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


# vgdisplay vmvg
--- Volume group --VG Name

vmvg

System ID
Format

lvm2

Metadata Areas

Metadata Sequence No

VG Access

read/write

VG Status

resizable

MAX LV

Cur LV

Open LV

Max PV

Cur PV

Act PV

VG Size

316,17 GiB

PE Size

4,00 MiB

Total PE

80940

Alloc PE / Size

0 / 0

Free

80940 / 316,17 GiB

PE / Size

VG UUID

kd3LKL-tMjA-eIq4-EhMs-LdWV-LFVl-2rBhk1

Cration d'un volume logique


A ce niveau, il est possible de crer 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_debian6 vmvg
Logical volume "vm_wheezy" created

Support de cours BTS SRI2


Lyce technique Chichaoua

GNU/Linux

Cette comande aura pour effet de crer un volume logique de 8 Go sur le volume groupe vmvg, et
nomm vm_debian6.
On peut avoir la liste des LV crs avec la commande lvscan :
# lvscan
ACTIVE

'/dev/vmvg/vm_wheezy' [7,81 GiB] inherit

La commande lvdisplay donne les dtails d'un volkume logique :


# lvdisplay
--- Logical volume --LV Path

/dev/vmvg/vm_wheezy

LV Name

vm_wheezy

VG Name

vmvg

LV UUID

bOAd1B-Xg0e-Unj3-onj2-IZUY-k654-tqdvtd

LV Write Access

read/write

LV Creation host, time portable-vli, 2012-11-22 16:53:41 +0100


LV Status

available

# open

LV Size

7,81 GiB

Current LE

2000

Segments

Allocation

inherit

Read ahead sectors

auto

- currently set to

256

Block device

252:0

Les volumes logiques sont prts tre utiliss par virt-manager...

Quelques commandes utiles


pvscan : liste les diffrents 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 diffrents volume groups


# vgscan
Reading all physical volumes.

This may take a while...

Found volume group "vmvg" using metadata type lvm2

lvscan : liste les diffrents volumes logiques


# lvscan
ACTIVE

'/dev/vmvg/vm_wheezy' [7,81 GiB] inherit

ACTIVE

'/dev/vmvg/vm_debian6' [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
dmont. Exemple :
# lvscan
ACTIVE

'/dev/vmvg/vm_wheezy' [7,81 GiB] inherit

Support de cours BTS SRI2


Lyce technique Chichaoua

GNU/Linux

ACTIVE

'/dev/vmvg/vm_debian6' [7,81 GiB] inherit

ACTIVE

'/dev/vmvg/vm_seven' [15,62 GiB] inherit

# lvremove /dev/vmvg/vm_wheezy
Do you really want to remove active logical volume vm_wheezy? [y/n]:
Logical volume "vm_wheezy" successfully removed
# lvscan
ACTIVE

'/dev/vmvg/vm_debian6' [7,81 GiB] inherit

ACTIVE

'/dev/vmvg/vm_seven' [15,62 GiB] inherit

Formatage du volume logique


Afin de pouvoir monter le volume logique, il est ncessaire 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
vole" ou presque, beaucoup plus facilement et sans perte de donnes 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 sr, il faut avoir contrl auparavant que le volume group a suffisamment d'espace libre, avec la
commande vgdisplay

CH 4 : Configuration rseau LAN sous GNU/Linux (Ubuntu)


Voir la partie correspondante sur le manuel PDF : Support de cours reseaux.PDF
La faon la plus simple de configurer son rseau est sans contexte dutiliser le Network Manager.
Network Manager est une applet Gnome se trouvant dans la zone de notification de la barre des
tches. Il nempche quil peut tre intressant par curiosit intellectuelle ou parce que vous vous
trouvez face une machine quipe de Ubuntu Server, de savoir dans quels fichiers se trouvent les
paramtres du rseau et quel outils utiliser pour le configurer la main partir dun terminal.
La premire commande connatre est ifconfig. Cette commande vous donne la configuration actuelle
(pour autant que le rseau soit configur) de votre rseau.(ifconfig a affiche toutes la configuration )

Support de cours BTS SRI2


Lyce technique Chichaoua

GNU/Linux

$ ifconfig eth0
eth0
Lien encap:Ethernet HWaddr 00:0E:A6:6C:10:D9
inet adr:192.168.8.3 Bcast:192.168.8.255 Masque:255.255.255.0
adr inet6: fe80::20e:a6ff:fe6c:10d9/64 Scope:Lien
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
Packets reus:64680 erreurs:0 :0 overruns:0 frame:0
TX packets:54728 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:1000
Octets reus:79475594 (75.7 MB) Octets transmis:6773621 (6.4 MB)
Interruption:19

La ligne intressante est:


inet adr:192.168.8.3

Bcast:192.168.8.255

Masque:255.255.255.0

qui vous dit que linterface eth0 a comme adresse rseau 192.168.8.3 et comme masque
255.255.255.0. Cest ladresse actuelle de mon PC. Mais do sort cette adresse, o est-elle stocke?
Il y a deux fichiers de configuration importants contenant les informations du rseau et quUbuntu lit
au dmarrage de la machine pour configurer le rseau. Il sagit de /etc/network/interfaces, et de
/etc/hosts et/ou /etc/resolv.conf.
Le premier fichier /etc/network/interfaces contient la configuration de chaque interface de votre PC.
Exemple :
$ more /etc/network/interfaces
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
address 192.168.8.3
netmask 255.255.255.0
gateway 192.168.8.1
auto eth1
iface eth1 inet dhcp
auto eth2
#iface eth2 inet dhcp
auto ath0
#iface ath0 inet dhcp
auto wlan0
#iface wlan0 inet dhcp

On voit que linterface rseau eth0 est configure et que son adresse IP est 192.168.8.3, son masque
255.255.255.0 et que le gateway (passerelle) est 192.168.8.1.
A noter aussi que les autres interfaces non utilises sont, par dfaut, configure pour travailler en
DHCP.
Le fichier /etc/resolv.conf contient ladresse IP des serveurs DNS utiliss lorsque stablit une
connexion Internet. Par exemple,:
$ more /etc/resolv.conf
nameserver 172.17.10.3
search mon_domaine.com
nameserver 172.17.20.3

On retrouve les deux adresses des DNS primaire et secondaire mais galement le suffixe de domaine
(domaine de recherche) ajouter pour former une adresse complte.

Configurer son rseau la main

Support de cours BTS SRI2


Lyce technique Chichaoua

GNU/Linux

Pour modifier la configuration de votre interface rseau depuis un terminal, il suffit dabord de
1- dsactiver linterface rseau:
$ sudo ifdown eth0

2- Ensuite, diter les fichiers /etc/network/interfaces et /etc/resolv.conf pour y mettre les

paramtres que vous dsirez:


$ sudo gedit /etc/network/interfaces /etc/resolv.conf

3- Terminez en ractivant linterface rseau:


$ sudo ifup eth0

Cest tout. Nanmoins, cela demande quand mme pas mal doprations et il faut que gedit soit
install et donc Gnome. Dans le cas dune version serveur dUbuntu, ce nest pas le cas. De plus,
ifdown et ifup font appel ifconfig et route pour reconfigurer le rseau. Pourquoi donc ne pas utiliser
directement ifconfig alors? Voil comment reconfigurer une interface au moyen de ifconfig et route:
1- Dabord dsactiver linterface:
$ sudo ifconfig eth0 inet down

2- Ensuite, la configurer et la ractiver en une seule commande:


$ sudo ifconfig eth0 inet up 192.168.8.1 netmask 255.255.255.0 broadcast
192.168.8.255

3- Ajouter le gateway en crant une route:


$ sudo route add default gw 192.168.8.1

Editez /etc/resolv.conf en utilisant gedit ou vi par exemple et votre interface sera configure:
$ sudo gedit /etc/resolv.conf

Support de cours BTS SRI2


Lyce technique Chichaoua

GNU/Linux

TP: Rseau LAN de 3 ordinateurs et Partage NFS


Etablir un rseau LAN entre 3 ordinateurs pour permettre l'change et le partage de fichiers avec le
minimum de contraintes :
Chaque ordinateur dispose d'un espace accessible aux autres sans contraintes lies aux droits d'accs.
Le montage des rpertoires est automatique
On reprsente trois ordinateurs appartenant un mme rseau local (celui de User1, User2 et User3).

Chacun d'eux partage (exporte) le rpertoire /home/partage,


Chacun d'eux rcupre (importe) les partages mis disposition par les autres ordinateurs dans
/media

Support de cours BTS SRI2


Lyce technique Chichaoua

GNU/Linux

Les lignes en pointills figurent le montage des rpertoires "partage" sur les systmes de fichiers des
diffrents clients.

A- Connatre les adresses IP locales de Serveur et de Client


Dans le terminal lancer ifconfig , l'adresse est la ligne inet adr: , paragraphe eth si vous
tes connect en ethernet, wlan pour une connexion Wi-Fi.
Pour la suite de cet exemple, on considrera que User1 User2 et User3 ont les adresses locales
suivantes

User1: 192.168.1.10

User2 : 192.168.1.11

User3 : 192.168.1.12

Ordinateur 1
Utilisateur principal User1 UID=1000 group "users" espace partag /home/partage. Point de montage
des dossiers partags des autres ordinateurs :

/media/chez_user_2

/media/chez_user_3
Adresse IP : 192.168.1.10

Ordinateur2
Utilisateur principal User2 UID=1000 group "users" espace partag /home/partage. Point de montage
des dossiers partags des autres ordinateurs :

/media/chez_user_1

/media/chez_user_3
Adresse IP : 192.168.1.11

Ordinateur 3
Utilisateur principal User3 UID=1000 group "users" espace partag /home/partage. Point de montage
des dossiers partags des autres ordinateurs :

Support de cours BTS SRI2


Lyce technique Chichaoua

GNU/Linux

/media/chez_user_1

/media/chez_user_2
Adresse IP : 192.168.1.12

B- Installation des paquets et configuration


Sur chacun des ordinateurs installer les paquets suivants : nfs-common et nfs-kernel-server.

C- Cration des rpertoires partags


La procdure est identique sur chacun des ordinateurs. Les commandes suivantes sont entres dans
un Terminal.
sudo mkdir /home/partage
sudo chown User1:users /home/partage

Une vrification par


ls -ld /home/partage

Donne comme rponse pour User1:


drwxr-xr-x 2 User1 users 4096 aaaa-mm-jj /home/partage

D- Cration des points de montage et commandes de montage


Pour l'ordinateur de User2
sudo mkdir /media/chez_user_1
sudo mkdir /media/chez_user_3

Puis pour assurer le montage automatique, ajouter les lignes suivantes dans /etc/fstab :
192.168.1.10:/home/partage /media/chez_user_1 nfs rw 0 0
192.168.1.12:/home/partage /media/chez_user_3 nfs rw 0 0

Pour l'ordinateur de User3


sudo mkdir /media/chez_user_1
sudo mkdir /media/chez_user_2

Puis pour assurer le montage automatique, ajouter les lignes suivantes dans /etc/fstab :
192.168.1.11:/home/partage /media/chez_user_2 nfs rw 0 0
192.168.1.10:/home/partage /media/chez_user_1 nfs rw 0 0

Pour l'ordinateur de User1


sudo mkdir /media/chez_user_2
sudo mkdir /media/chez_user_3

Puis pour assurer le montage automatique, ajouter les lignes suivantes dans /etc/fstab :
192.168.1.11:/home/partage /media/chez_user_2 nfs rw 0 0
192.168.1.12:/home/partage /media/chez_user_3 nfs rw 0 0

E- Prparation de l'exportation et commande


Pour l'ordinateur de User1
Ajouter la ligne suivante dans /etc/exports
/home/partage 192.168.1.11(rw,all_squash,anonuid=1000,anongid=100,sync)
192.168.1.12(rw,all_squash,anonuid=1000,anongid=100,sync)

et relancer le serveur NFS par :


sudo /etc/init.d/nfs-kernel-server restart

Pour l'ordinateur de User2


Ajouter la ligne suivante dans /etc/exports
/home/partage 192.168.1.10(rw,all_squash,anonuid=1000,anongid=100,sync)
192.168.1.12(rw,all_squash,anonuid=1000,anongid=100,sync)

et relancer le serveur NFS par :


sudo /etc/init.d/nfs-kernel-server restart

Support de cours BTS SRI2


Lyce technique Chichaoua

GNU/Linux

Pour l'ordinateur de User3


Ajouter la ligne suivante dans /etc/exports
/home/partage 192.168.1.11(rw,all_squash,anonuid=1000,anongid=100,sync)
192.168.1.10(rw,all_squash,anonuid=1000,anongid=100,sync)

et relancer le serveur NFS par :


sudo /etc/init.d/nfs-kernel-server restart

F- Gestion des autorisations


Pour tous les ordinateurs
L'objectif de cette tape est de scuriser l'installation. ce stade, n'importe quel ordinateur du rseau
local est susceptible d'accder aux partages NFS que nous avons mis en place. Nous allons prsent en
restreindre l'accs.
Editer le fichier /etc/hosts.allow et y ajouter les lignes suivantes :
portmap: 192.168.1.10 192.168.1.11 192.168.1.12
lockd: 192.168.1.10 192.168.1.11 192.168.1.12
mountd: 192.168.1.10 192.168.1.11 192.168.1.12
rquotad: 192.168.1.10 192.168.1.11 192.168.1.12
statd: 192.168.1.10 192.168.1.11 192.168.1.12

Editer le fichier /etc/hosts.deny et y ajouter les lignes suivantes :


portmap: ALL
nfsd: ALL
mountd: ALL

G- Finalisation
Redmarrer tous les ordinateurs. Si le montage n'a pas eu lieu, lancer la commande de montage suivante
(adresse adapter) dans un terminal.
sudo mount -t nfs -o rw 192.168.1.x:/home/partage /media/chez_user_x

Prsentation de Telnet
Telnet est un protocole permettant d'muler un terminal distance, cela signifie qu'il permet d'excuter
des commandes saisies au clavier sur une machine distante. L'outil Telnet est une implmentation du
protocole Telnet, cela signifie qu'il s'agit de la traduction des spcifications en langage informatique
pour crer un programme permettant d'muler un terminal.
Telnet fonctionne dans un environnement client/serveur, c'est--dire que la machine distante est
configure en serveur et par consquent attend qu'une machine lui demande un service. Ainsi, tant
donn que la machine distante envoie les donnes afficher, l'utilisateur a l'impression de travailler
directement sur la machine distante. Sous UNIX, le service est fourni par ce que l'on appelle un
dmon, une petite tche qui fonctionne en arrire-plan. Le dmon Telnet s'appelle Telnetd.

Support de cours BTS SRI2


Lyce technique Chichaoua

GNU/Linux

a. Protocole et implmentation
Telnet est aussi un protocole, c'est--dire un ensemble de rgles et de procdures qui ont t dfinies
afin de standardiser la communication sous Telnet. Ainsi, Telnet a rapidement t implment (adapt
partir des spcifications du protocole) sous de nombreuses plateformes.

b. Excution de Telnet
Telnet est fourni en standard sous diverses plateformes, dont UNIX, Windows95, WindowsNT,
Linux...
La commande pour initier une session Telnet est gnralement la suivante :
telnet nom_du_serveur

nom_du_serveur reprsente bien videmment le nom de la machine distante laquelle on dsire se


connecter. Il est aussi possible de donner son adresse IP, par exemple :
telnet 125.64.124.77

Enfin il est galement possible de prciser le port utiliser en faisant suivre l'adresse IP ou le nom du
serveur par le numro de port :
telnet 125.64.124.77 80

c. Commandes sous Telnet


Une fois que vous vous connectez la machine distante, un nom d'utilisateur (login) et un mot de
passe (password) vous seront demands pour des raisons de scurit afin de restreindre l'accs aux
seules personnes autorises. En effet, Telnet est un protocole puissant puisqu'il permet l'excution de
commandes distance. Les commandes pouvant tre excutes sous une session Telnet sont dfinies
par l'administrateur rseau. Il s'agit gnralement de commandes UNIX tant donn que la plupart des
serveurs Telnet fonctionnent sous UNIX. Les commandes standard sont les suivantes :
Comma
nde
?
close
display
environ
logout
mode
open
quit
set
unset

Description
Affiche l'aide
Termine la session Telnet
Affiche l'cran les paramtres de la connexion (type de terminal, port)
Permet de dfinir les variables d'environnement du systme d'exploitation
Permet de se dconnecter
Bascule entre les modes de transfert ASCII (transfert d'un fichier en mode
texte) et BINARY (transfert d'un fichier en binaire)
Permet de lancer une autre connexion partir de la connexion en cours
Quitte l'application Telnet
Modifie les paramtres de la connexion
Charge les paramtres de connexion par dfaut

Introduction au protocole FTP


FTP (File Transfer Protocol) est un protocole, c'est--dire un langage standard de communication
entre deux machines, permettant des machines de types diffrents (ou dont le systme d'exploitation
est diffrent) de transfrer des fichiers sur un rseau fonctionnant sous TCP/IP.
Le rle du protocole FTP
Le protocole FTP dfinit la faon selon laquelle des donnes doivent tre transfres sur un rseau
TCP/IP. Le protocole FTP a pour objectifs de :

permettre un partage de fichiers entre machines distantes


permettre une indpendance aux systmes de fichiers des machines clientes et
serveur

Support de cours BTS SRI2


Lyce technique Chichaoua

GNU/Linux

permettre de transfrer des donnes de manire efficace

Le protocole FTP s'inscrit dans un modle client-serveur, c'est--dire qu'une machine envoie des
ordres (le client) et que l'autre attend des requtes pour effectuer des actions (le serveur).
Lors d'une connexion FTP, deux canaux de transmission sont ouverts :

Un canal pour les commandes (canal de contrle)


Un canal pour les donnes

Ainsi, le client comme le serveur possdent deux processus permettant de grer ces deux types
d'information :

le DTP (Data Transfer Process) est le processus charg d'tablir la connexion et


de grer le canal de donnes. Le DTP ct serveur est appel SERVER-DTP, le DTP
ct client est appel USER-DTP
le PI (Protocol Interpreter) est l'interprteur de protocole permettant de
commander le DTP l'aide des commandes reues sur le canal de contrle. Il est
diffrent sur le client et sur le serveur :
o Le SERVER-PI est charg d'couter les commandes provenant d'un USER-PI
sur le canal de contrle sur un port donn, d'tablir la connexion pour le
canal de contrle, de recevoir sur celui-ci les commandes FTP de l'USER-PI,
d'y rpondre et de piloter le SERVER-DTP
o Le USER-PI est charg d'tablir la connexion avec le serveur FTP, d'envoyer
les commandes FTP, de recevoir les rponses du SERVER-PI et de contrler
le USER-DTP si besoin

Les logiciels clients sont nombreux, certains sont en ligne de commande (par exemple la commande
ftp, implmente en standard sous de nombreux systmes d'exploitation), mais une grande majorit
permet de manipuler des fichiers sous une interface graphique (FileZella, CuteFTP par exemple),
rendant les transferts de fichiers plus conviviaux.
Le protocole FTP permet d'changer un fichier la fois, dans les deux sens entre la machine client
(celle qui a initi la connexion, donc la machine appelante) et la machine serveur (celle qui fournit le
service FTP, donc la machine appele). Le protocole FTP permet aussi d'autres actions telles que la
cration et la suppression de rpertoires ( condition qu'il soit vide), le listage des fichiers, la
suppression et le renommage de fichiers, etc.
Dmarrage d'une session FTP
La commande ftp est disponible en standard sous diverses plateformes, dont UNIX, Windows et
Linux. La commande permettant d'initier une session FTP est gnralement la suivante :

ftpnom_du_serveur

nom_du_serveur reprsente le nom ou l'adresse IP de la machine distante laquelle on dsire se


connecter. Il faut bien videmment que la machine cible dispose d'un service FTP. Lors de
l'initialisation de la connexion, un certain nombre de lignes de texte apparat l'cran. La premire
ligne signale que vous tes connect un serveur FTP, les lignes suivantes constituent un message de
bienvenue, pouvant indiquer le type de site FTP dont il s'agit (i.e quel genre de fichiers il hberge ou
l'organisme auquel il appartient), ou bien des recommandations pour les utilisateurs.
Sous FTP, chaque ligne commence par un numro indiquant un code relatif un chec ou une russite.
Dans le cas du message de bienvenue, la ligne est par exemple prcde du nombre 220, qui signifie
que "le service est prt pour le nouvel utilisateur". Le serveur vous demande de saisir votre nom

Support de cours BTS SRI2


Lyce technique Chichaoua

GNU/Linux

d'utilisateur (aussi appel login ou identifiant), afin de dfinir des privilges d'accs (comme le droit
d'criture ou de lecture). Aprs validation, une ligne commenant par le nombre 331 vous invite
saisir votre mot de passe (password), celui-ci est masqu, c'est--dire qu'il n'apparat pas l'cran. Il se
peut que le serveur soit public, auquel cas l'accs peut se faire anonymement, il faudra donc rentrer
comme login: "anonymous".
Commandes FTP
Les commandes FTP usuelles sont les suivantes :
Comman
de

Description

help

Affiche l'ensemble des commandes supportes par le serveur FTP

status

Permet de connatre certains paramtres de la machine cliente

binary

Cette commande vous fait basculer du mode ASCII (envoi de documents textes) au
mode binary (envoi de fichiers en mode binaire, c'est--dire pour les fichiers non texte,
comme des images ou des programmes)

ascii

Bascule du mode binary au mode ascii. Ce mode est le mode par dfaut

type

Permet d'afficher le mode courant de transfert (binary ou ascii)

user

Vous permet de rouvrir une session sur le site FTP en cours avec un nom d'utilisateur
diffrent. Un nouveau mot de passe vous sera alors demand

ls

Permet de lister les fichiers prsents dans le rpertoire courant. La commande "ls -l"
donne des informations supplmentaires sur les fichiers

pwd

Affiche le nom complet du rpertoire courant

cd

Cette commande signifie change directory, elle permet de changer le rpertoire


courant. La commande "cd .." permet d'accder au rpertoire de niveau suprieur

mkdir

La commande mkdir (sous UNIX, ou md sous systme Microsoft) permet de crer un


rpertoire dans le rpertoire courant. L'utilisation de cette commande est rserve aux
utilisateurs ayant un accs le permettant

rmdir

La commande rmdir (sous UNIX, ou rd sous systme Microsoft) permet de supprimer


un rpertoire dans le rpertoire courant. L'utilisation de cette commande est rserve
aux utilisateurs ayant un accs le permettant
Cette commande permet de rcuprer un fichier prsent sur le serveur

get

put

Si la commande est suivie d'un nom de fichier, le fichier distant est transfr
sur la machine locale dans le rpertoire local en cours
Si la commande est suivie de deux noms de fichiers, le fichier distant (le
premier nom) est transfr sur la machine locale dans le rpertoire local en
cours, avec le nom de fichier prcis (le deuxime nom)
Si jamais le nom de fichier contient des espaces il faut veiller le saisir entre
guillemets
Cette commande permet d'envoyer un fichier local sur le serveur

Si la commande est suivie d'un nom de fichier, le fichier local est transfr sur
le serveur dans le rpertoire distant en cours
Si la commande est suivie de deux noms de fichiers, le fichier local (le premier
nom) est transfr sur le serveur dans le rpertoire distant en cours, avec le
nom de fichier prcis (le deuxime nom)

Support de cours BTS SRI2


Lyce technique Chichaoua

GNU/Linux

Si jamais le nom de fichier contient des espaces il faut veiller le saisir entre guillemet
open

Ferme la session en cours et ouvre une nouvelle session sur un autre serveur FTP

close

Ferme la session en cours, en laissant le logiciel FTP client actif

bye

Dconnecte le logiciel client du serveur FTP et le met en tat inactif

quit

Dconnecte le logiciel client du serveur FTP et le met en tat inactif

Ch5 Serveur DHCP : isc-dhcp-server


Le protocole DHCP (Dynamic Host Configuration Protocol (en) : Protocole de configuration dynamique des htes (fr)) est un
service rseau TCP/IP. Il permet aux ordinateurs clients l'obtention automatique d'une configuration rseau. Il vite la configuration
de chaque ordinateur manuellement. Les ordinateurs configurs pour utiliser DHCP n'ont pas le contrle de leur configuration
rseau qu'ils reoivent du serveur DHCP. La configuration est totalement transparente pour l'utilisateur.

Introduction

Support de cours BTS SRI2


Lyce technique Chichaoua

GNU/Linux

Tout ordinateur d'un rseau TCP/IP (Internet ou Intranet) ncessite une adresse IP pour pouvoir communiquer avec les autres
ordinateurs du rseau.
Ces adresses IP sont attribues :

statiquement, en configurant le rseau directement sur l'ordinateur,

dynamiquement, avec un serveur DHCP qui attribue les adresses en fonction de son fichier de configuration.

Ne pas confondre fixe et statique : le serveur DHCP peut attribuer des adresses IP fixes (toujours la mme) en fonction de
l'adresse MAC (Media Access Control, Adresse de contrle d'accs au mdia) reue.
Configure pour utiliser le protocole DHCP, une carte rseau son dmarrage envoie une demande sur le rseau (une
requte DHCP). Le serveur DHCP, l'coute sur le rseau, dbute la procdure d'identification et lui attribue une adresse en
fonction de celle-ci.

Installation
isc-dhcp-server remplace dhcp3-server
apt-get install isc-dhcp-server
Vous devrez certainement changer la configuration par dfaut en ditant le fichier /etc/dhcp/dhcpd.conf pour la faire correspondre
vos besoins et configurations particulires.
Dans ce fichier, on dfinit l'ensemble des options globalement ou par rseau. Vous aurez galement besoin d'diter le
fichier /etc/default/isc-dhcp-server pour spcifier les interfaces que dhcpd (le dmon de isc-dhcp-server) devra couter. Par
dfaut, il coute l'interface eth0.
Les interfaces rseaux de votre serveur doivent tre configures obligatoirement en adresses IP statiques

Configuration basique
La configuration la plus frquente est d'assigner alatoirement une adresse IP. Ceci peut tre fait en suivant ces instructions :
Editer le fichier :
/etc/dhcp/dhcpd.conf

# Sample /etc/dhcpd.conf
# (add your comments here)
default-lease-time 600;
max-lease-time 7200;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.1.255;
option routers 192.168.1.254;
option domain-name-servers 192.168.1.1, 192.168.1.2;
option domain-name "ubuntu-fr.lan";
option ntp-servers 192.168.1.254;
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.10 192.168.1.100;
range 192.168.1.150 192.168.1.200;
}
Le serveur DHCP assignera au client une adresse IP comprise entre 192.168.1.10 et 192.168.1.100 ou entre 192.168.1.150 et
192.168.1.200 pour une dure de 600 secondes. Le client peut spcifier une priode de temps spcifique, dans ce cas, le temps
d'allocation maximum est de 7200 secondes.
Le serveur va galement informer le client qu'il doit utiliser :

un masque de sous rseau 255.255.255.0

Support de cours BTS SRI2


Lyce technique Chichaoua

une adresse de multi-diffusion 192.168.1.255

une adresse de routeur/passerelle 192.168.1.254

des serveurs DNS 192.168.1.1 et 192.168.1.2

un suffixe DNS ubuntu-fr.lan

un serveur de temps

GNU/Linux

Si vous devez spcifier un serveur WINS pour vos clients Windows, vous devez inclure l'optionnetbios-name-servers :

option netbios-name-servers 192.168.1.1;

Adresses IP fixes uniquement


Dans ce cas, l'adresse IP que reoit le client est toujours la mme. Pour cela il suffit d'ajouter une directive host dans la dfinition
du subnet. Pour chaque client, il faut donner son adresse fixe en fonction de son adresse MAC.

deny unknown-clients;
subnet 192.168.1.0 netmask 255.255.255.0 {
host client1 {
hardware ethernet DD:GH:DF:E5:F7:D7;
fixed-address 192.168.1.20;
}
host client2 {
hardware ethernet 00:JJ:YU:38:AC:45;
fixed-address 192.168.1.21;
}
}
L'option deny unknown-clients interdit l'attribution d'une adresse IP une station dont l'adresse MAC est inconnue du serveur.
Pour trouver l'adresse MAC d'une interface rseau, il faut taper la commande :

ifconfig | grep HWaddr

Ecoutes sur plusieurs interfaces


Pour que le serveur coute sur certaines interfaces, il faut les spcifier dans /etc/default/isc-dhcp-server :

INTERFACES="eth0 eth1"
Dans ce cas l'coute se fait sur eth0 et eth1

Configuration complte plusieurs interfaces


Considrons les aspects suivants :
Il existe 3 rseaux.

Le rseau internet (que nous ne configurons pas, l'interface connecte dessus obtient automatiquement son IP, par le
serveur DHCP duFAI1) ; ceci dit vous pouvez adapter la configuration afin d'intgrer le serveur DHCP sur un rseau local).

Le rseau local 192.168.1.* rserv aux serveurs (web, FTP, messagerie, etc.).

Le rseau local 192.168.2.* rserv aux clients (rseau local partag).

Support de cours BTS SRI2


Lyce technique Chichaoua

GNU/Linux

Il y a 4 autres machines sur les


rseaux : 192.168.1.2 (nomme ftp), 192.168.1.3 (nomme web), 192.168.1.4 (nomme mail)
et 192.168.2.2 (nommeportable).

Aucune machine inconnue ne se verra attribuer une adresse IP par DHCP (voir fichier de configuration option deny
unknown-clients ).
Toutes les machines des rseaux ont la possibilit de dmarrer par PXE.

La machine serveur DHCP est aussi le routeur/pare-feu/NAT (tels que dcrits dans la page
comment_configurer_son_reseau_local mais sans le dnsmasq) connect au modem. Il fait aussi office de
serveur DNS du domaine ubuntu-fr.lan (tel que dcrit dans la page bind9 ).

les interfaces sur lesquelles le serveur dmarre doivent avoir une adresse quand le service dhcp dmarre. On leur
attribuera les adresses 192.168.1.1 et 192.168.2.1. (volontairement le rseau 192.168.0.0 n'est pas utilis : il est souvent pris
par le modem/routeur de votre FAI).

Configuration du serveur
Voici une configuration dtaille du fichier :
/etc/dhcp/dhcpd.conf

##### Option gnrale par dfaut #####


### RSEAU #####
## Nom du serveur DHCP
server-name "dns.ubuntu-fr.lan";
## Mode autoritaire (autoritaire)
authoritative;
## Masque de sous-rseau
option subnet-mask 255.255.255.0;
### DOMAINE ###
## Nom du domaine
option domain-name "ubuntu-fr.lan";
## Adresse IP du serveur DNS
# a remplacer par l ip de votre serveur dns ou par celle de votre fai
option domain-name-servers XXX.XXX.XXX.XXX;
## Type de mise jour du DNS (aucune)
ddns-update-style none;
### TEMPS DE RENOUVLEMENT DES ADRESSES ###
default-lease-time 3600;
max-lease-time 7200;
### Scurit ###
## refus(deny)/autorise(allow) les clients inconnus (refuse client inconnu)
deny unknown-clients;
## Use this to send dhcp log messages to a different log file (you also
## have to hack syslog.conf to complete the redirection).
log-facility local7;

Support de cours BTS SRI2


Lyce technique Chichaoua

GNU/Linux

### PXE ###


## Permet le boot rseau pour TFTP
allow bootp;
allow booting;
##### RSEAUX #####
## dclaration sous rseau 192.168.1.*
subnet 192.168.1.0 netmask 255.255.255.0 {
# Si vous voulez spcifier un domaine diffrent de celui par dfaut :
option domain-name "ubuntu-fr.lan";
## Adresse de diffusion
option broadcast-address 192.168.1.255;
## routeur par dfaut
option routers 192.168.1.1;
## Plage d'attribution d'adresse
# Ici dbute 1.5, 1.1 1.4 tant dj prises.
# La plage ne contient qu'1 adresse ce qui empche l'attribution
sauf au client dont celle-ci est fixe.
range 192.168.1.5 192.168.1.5;
## Option pxe nom du fichier servi.
# elilo.efi pour ia64; pxelinux.0 pour x86
# placer la racine du serveur TFTP.
# Le fichier peut tre spcifi dans la section host , il deviendra
alors prioritaire sur celui-ci
filename "pxelinux.0";
# dfinit le serveur qui servira le fichier pxelinux.0
next-server 192.168.2.1;
# value si l'adresse est dj attribue
ping-check = 1;
}
## Dclaration sous rseau 192.168.2.*
subnet 192.168.2.0 netmask 255.255.255.0 {
option domain-name "ubuntu-fr.lan";
option broadcast-address 192.168.2.255;
option routers 192.168.2.1;
range 192.168.2.2 192.168.2.3;
ping-check = 1;
filename "pxelinux.0";
next-server 192.168.2.1;
}
#### Configuration des htes avec IP fixe ####
# hte FTP
host ftp {
hardware ethernet 00:0f:75:af:eb:44;
fixed-address 192.168.1.2;
### PXE ###
# fichier spcifique une machine
# filename "debian-installer/ia64/elilo.efi";
# definit le serveur qui servira le fichier pxelinux.0
# next-server 192.168.2.1;
}
# hte WEB
host web {
hardware ethernet 00:02:0d:31:d1:cc;
fixed-address 192.168.1.3;
}
# hte mail
host mail {

Support de cours BTS SRI2


Lyce technique Chichaoua

GNU/Linux

hardware ethernet 00:02:55:d2:d1:cc;


fixed-address 192.168.1.4;
}
# hte PORTABLE
host portable {
hardware ethernet 00:0e:af:31:d1:cc;
fixed-address 192.168.2.2;
}
Nous pouvons maintenant demander notre serveur de prendre en compte nos modifications :

sudo service isc-dhcp-server restart

Vrifications
Si il y a des messages d'erreurs, regardez le fichier suivant :

tail /var/log/syslog

Logs
Les vnements sont enregistrs par dfaut dans /var/log/syslog. Pour qu'ils soient enregistrs dans un fichier de log ddi, par
exemple /var/log/dhcpd.log :

Dans le fichier de conf /etc/dhcp/dhcpd.conf, ajoutez : (voir dans l'exemple plus haut)

log-facility local7;

Crer le fichier /var/log/dhcpd.log avec comme propritaire syslog (droits rw) et comme groupe adm (droits r).

sudo touch /var/log/dhcpd.log


sudo chown syslog:adm /var/log/dhcpd.log
sudo chmod 0640 /var/log/dhcpd.log

Puis ajouter ceci dans le fichier /etc/rsyslog.d/50-default.conf :

local7.*

/var/log/dhcpd.log

Pour ne plus logguer dans syslog, dans /etc/rsyslog.d/50-default.conf modifier :

*.*;auth,authpriv.none

-/var/log/syslog

en

*.*;auth,authpriv.none;local7.none

-/var/log/syslog

et relancer les daemons syslog et isc-dhcp-server

sudo service rsyslog restart


sudo service isc-dhcp-server restart
Modifier

Baux (Leases)
Par dfaut, le fichier /var/lib/dhcp/dhcpd.leases donne des informations sur les baux actuellement distribus par le serveur. On y
retrouve des informations essentielles comme l'adresse IP distribu une adresse MAC, le nom de la machine qui a fait cette
demande DHCP, l'heure de dbut et de fin du bail

Support de cours BTS SRI2


Lyce technique Chichaoua

GNU/Linux

/var/lib/dhcp/dhcpd.leases

lease 192.168.2.128 {
starts 2 2012/07/31 20:24:28;
ends 3 2012/08/01 01:24:28;
...
hardware ethernet 01:11:5b:12:34:56;
...
client-hostname "machine01";
}

Relais DHCP
Sur les rseaux de grande envergure, le rseau peut tre segment. Ceci a notamment pour effet la rduction des trames de multidiffusion, puisqu'elles ne sont pas routes. Le serveur DHCP n'est alors plus joignable par le client.
Dans ce cas, un relais DHCP peut tre plac sur chaque segment rseau. L'agent relais coute les requtes des clients et les
transfre au serveur DHCP. Cette fois-ci, le serveur peut tre contact, puisque l'agent relais tablit la connexion via une
connexion TCP/IP.
Modifier

Configuration
Vous devrez changer la configuration par dfaut en ditant le fichier /etc/default/dhcpd-relay :

# le serveur DHCP a relayer


SERVERS="192.168.1.1"
# Interface a couter
INTERFACES="eth0"

Support de cours BTS SRI2


Lyce technique Chichaoua

GNU/Linux

CH 6: SERVEUR DNS (bind9)


Voir la prsentation PPT :DNS-Domaine-Name-System.ppt

Prsentation :
Les machines sont identifies par leur adresse IP. Cet lment nest pas facile retenir. Cest l que la partie
DNS intervient. On va tablir un tableau de correspondance entre un nom FQDN (Fully Qualified Domain
Name) et une adresse IP.
Bind (Berkeley Internet Name Domain) est le plus utilis des serveurs de noms sur Internet

Installation de Bind9 :
apt-get install bind9

Fixer ladresse IP du serveur :


?

vi /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet static
address 192.168.1.254
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1
# dns-* options are implemented by the resolvconf package, if installed
dns-nameservers 192.168.1.1

Configuration
Bind se configure via deux types de fichiers, ceux de configurations du comportement du serveur, et ceux de
configurations des zones connues par ce serveur.

Configuration du serveur

Le comportement du serveur se configure via le fichier "/etc/bind/named.conf", auquel on ajoute


"named.conf.options" et "named.conf.local" sous Ubuntu, simplement par souci de clart. Ils contiennent les
paramtres gnraux du serveur, ainsi que les options en tous genres et les fichiers des zones intgrer.
Nous allons crer notre zone local pour cela nous allons donc diter le fichier named.conf.local, cest ici que
lon va dfinir notre domaine et le fichier contenant nos enregistrements DNS.
?

vi /etc/bind/named.conf.local
//diter le fichier named.conf.local et ajouter la zone sri.local

Support de cours BTS SRI2


Lyce technique Chichaoua

GNU/Linux

zone "sri.local" {
type master;
file "/etc/bind/sri.local.db";
};
//Zone inverse
# La zone de recherche inverse
zone "1.168.192.in-addr.arpa" {
type master;
file "/etc/bind/1.168.192.in-addr.arpa.db";
allow-update { key rndc-key; };
};
Attention ne pas oublier le ; la fin de chaque ligne mme aprs le } !!!
Les parties "zone", qui dfinissent les zones connues par le serveur, acceptent les paramtres suivant (non
exhaustif) :

allow-query : Les clients autoriss faire des requtes sur cette zone.

allow-transfer : Les serveurs esclaves autoriss demander un transfert des informations de cette zone.

allow-update : Htes autoriss mettre jour les informations de cette zone.

file : Fichier de configuration de la zone.

masters : IPs faisant autorit sur la zone.

notify : Permet de dfinir si le service envoie une notification aux esclaves lors d'une mise jour :
o

yes : Actives les notifications.

no : Pas de notifications.

explicit : Notifications uniquement aux serveurs spcifis par also-notify dans la dclaration de
zone.

type : Pour dfinir le type de zone :


o

forward : Relaie toutes les demandes vers d'autres DNS.

hint : redirige les demandes vers les serveurs racines.

master : Serveurs de noms faisant autorit pour cette zone.

slave : Serveurs de noms esclaves pour cette zone.

Le fichier /etc/bind/sri.local.db (fichier de zone) invoqu prcdemment va contenir les informations et les
entres relatives notre domaine, le serveur NS, les TTL, les enregistrements A, CNAME, MX, etc
vi /etc/bind/sri.local.db
$TTL
@
070725
12H
2H
1000H
2D )
;
@
www
xmarks
web
mail

86400
IN
SOA
mon_serveur_dns_maitre. sysadmin.sri.ma. (
Serial
Refresh
Retry
Expire
Negative Cache TTL

;
;
;
;
;
IN
IN
IN
IN
IN
IN
IN

NS
MX
A
A
A
CNAME
A

mon_serveur_dns_maitre.
10 mail.sri.local.
192.168.1.254
192.168.1.254
192.168.1.254
www
192.168.1.25

Support de cours BTS SRI2


Lyce technique Chichaoua

GNU/Linux

"$TTL 86400" permet de spcifier combien de temps les informations contenues dans le fichiers
seront gardes en cache. Ici, avec la valeur 86400, le cache sera vid et le fichier relu toutes les 24
heures

"@" permet de dfinir l'espace de nom de la zone.

"IN" dfini le protocole utilis. De nos jours, "IN" n'a plus d'alternative.

"SOA" indique que notre serveur est matre de la zone.

Vient ensuite le FQDN du serveur de nom. Attention ne surtout pas oublier le point final !

Puis enfin on trouve l'adresse mail de l'administrateur. Notez le point final, et le remplacement du
@ habituel par un simple point. Bind interprte le premier "." rencontr dans ce champ comme un
"@". Si l'adresse de l'administrateur est de la forme "admin.dns@domaine.org", il est possible
d'chapper le premier point ainsi "admin\.dns.domaine.org".

Arrive ensuite, systmatiquement dans (), une petite srie de paramtres:


Serial : Numro de srie de la version de lenregistrement courant (permet de vrifier en autre si un esclave
est bine synchronise avec son serveur matre (AAAAMMJJxx) chiffre croissant.
Refresh : Temps/Interval de rafrachissement du serveur esclave dans mon cas 12 heures (valeur
recommande 24 heures).
Retry : Temps/Interval entre deux essais du serveur esclave avant de reprendre contact aprs un chec dans
mon cas 2 heures (valeur recommande : 2 heures).
Expire : Indique le temps et le dlai que le serveur esclave va attendre avec de considr que le serveur
matre est non oprationnel dans mon cas 1000 heures (valeur recommande : 1000 heures).
Negative Cache TTL : Valeur TTL qui correspond la dure de vie du cache minimum dans mon cas 2 jours
(valeur recommande : 2 jours).
Par dfaut on parle en seconde en revanche pour plus de lisibilit on peut indiquer une valeur en
heure/mois/semaine avec M pour minute, H pour heure, D pour jour,et W pour semaine :- 60 = 1M
- 1800 = 30M
- 3600 = 1H
- 10800 = 3H
- 21600 = 6H
- 43200 = 12H
- 86400 = 1D
- 259200 = 3D
- 604800 = 1W
$TTL 86400
@ IN SOA ns1.domaine.tld. root.domaine.tld.
__8H__ ;; refresh
__2H__ ;; retry __
1W__
;; expire __
1D__ ;; minimum TTL )

On va retrouver ensuite nos diffrentes entres DNS, ci dessous la liste des principaux types
denregistrements :
NS : Dclaration dun serveur DNS pour la zone (maitre et esclave) avec un point la fin de lentr.
?@ IN NS ns1.sri.ma.
@ IN NS ns2slave.sri.ma.
MX : Dclaration des serveur mail pour la zone en indiquant un poids..
?@ IN MX 10 mx1.sri.fr.
@ IN MX 10 mx2.sri.fr.
Si le poids est gal les serveurs mails voulant envoyer un mail au domaine sri.ma vont envoyer les mails de
manires alatoires sur lun des MX.

Support de cours BTS SRI2


Lyce technique Chichaoua

GNU/Linux

?@

IN MX 5 mx1.sri.ma.
@ IN MX 10 mx2.sri.ma.
Dans ce cas de figure les serveurs mails voulant envoyer un mail au domaine sri.ma vont envoyer dabord le
mail au mx avec le poids le plus faible si le mx1 est indisponible les mails seront dans ce cas l envoy au mx
ayant un poids suprieur.
A : Enregistrement faisant un lien entre un nom FQDN et une IPV4.
?

www A 80.74.55.33
AAAA : Enregistrement faisant un lien entre un nom FQDN et une IPV6.
?web AAAA 2011:4f0:ffff:fffa::147f
PTR : Enregistrement faisant un lien entre une IP et un nom FQDN. Utilis pour le fichier reverse .
?192.168.1.254 IN PTR www
CNAME : Enregistrement faisant un lien entre un nom FQDN et un autre nom FQDN.
?web IN CNAME www
TXT : Permet dinsrer une entre texte. Utilis par exemple pour les champs SPF.
?sri.ma. IN TXT "v=spf1 ip4:10.50.2.60 ~all"
Ce fichier va contenir les enregistrements reverse DNS,
?

vi /etc/bind/1.168.192.in-addr.arpa.db
$ORIGIN .
$TTL 86400
1.168.192.in-addr.arpa
(
70769
604800
86400
2419200
604800
)
NS

; 1 day
IN SOA
;
;
;
;
;

MON_SERVEUR_DNS_MAITRE. sysadmin.ec0.fr.

serial
refresh (1 week)
retry (1 day)
expire (4 weeks)
minimum (1 week)

MON_SERVEUR_DNS_MAITRE

$ORIGIN 1.168.192.in-addr.arpa.
254
IN
PTR
dns.ec0.local.
33
IN
PTR
mail.ec0.local.
$ORIGIN 1.168.192.in-addr.arpa. va dfinir la zone inverse qui va tre renseigne, cest un genre de suffixe.
Paramtrage des Options de notre serveurs DNS :
?vi /etc/bind/named.conf.options
options {
directory "/var/cache/bind";
#coute sur le port 53
query-source address * port 53;
#Renvoie les requtes non gr par notre serveur dns sur un dns externe (9box)
forwarders { 192.168.1.1; };
auth-nxdomain no;
# conform to RFC1035
};
Ci-dessous une liste exhaustive des options disponibles (fichier /etc/bind/named.conf.options)
- listen-on : Indique linterface et/ou le-s port-s dcoute du serveur.
- allow-query : Pour dfinir les htes autoriss faire des requtes sur le serveur.
- allow-recursion : Pour dfinir les htes autoriss des faires des demandes rcursives, donc lire
intgralement la ou les zones.
- forwarders : Pour dfinir les IPs des serveurs o les requtes doivent tre relayes (on peut relayer les
requtes par exemple sur le DNS google pour les zones non desservies par notre serveur DNS).
- blackhole : Pour dfinir les htes non autoriss.
- directory : Pour dfinir le rpertoire de travail (/var/named par dfaut).

Support de cours BTS SRI2


Lyce technique Chichaoua

GNU/Linux

- zone statistics : Permets dactiver les stats utiles pour un meilleur suivi du serveur.
- statistics-file : Pour dfinir lemplacement du fichier de statistiques (par dfaut /var/named/stats).
- forward : Options pour la retransmission des requtes.Les options suivantes sont acceptes :
first : Les DNS de la directive forwarders sont essays en premier.
only : Pas de rsolution locale si les DNS de la directive forwarders nont pas russi la rsolution.
notify : Permet de dfinir si le service envoie une notification aux esclaves lors dune mise jour :
yes : Active les notifications.
no : Pas de notifications.

CH 7 : SERVEUR HTTP (APACHE)


Voir la partie correspondante sur le manuel PDF : Support de cours reseaux
Apache est le plus populaire des serveurs HTTP. Il est produit par la Apache Software Foundation . C'est un
logiciel libre fourni sous la licence spcifique Apache, licence (en).

Qu'est-ce que le Web ?


Le Web est un des nombreux services disponibles sur Internet. Il s'agit de l'ensemble des documents accessibles
par le protocole HTTP (par un navigateur Web). Une caractristique essentielle du Web est la capacit de passer
d'un document un autre par des liens hypertexte. Un site Web est quant lui un ensemble de pages Web, lies
entre elles.
Un site Web a une adresse(URL), comme celle du site Ubuntu-fr : http://ubuntu-fr.org.
La page Web principale de ce site propose des liens hypertexte vers d'autres pages et d'autres sites, par
exemple : http://ubuntu-fr.org/telechargement.
Attention ne pas faire d'amalgame entre Web (service HTTP) et Internet (le rseau mondial). Le salon IRC
sur lequel s'est droule la sance de cours utilise Internet, pas le Web.

HTTP et navigation
Pour accder un site Web, il vous faut utiliser un client Web, communment appel navigateur, par exemple :
firefox, lynx, opera, rekonq
Gnralement vous passez par un moteur de recherche pour trouver l'adresse d'un site mais vous pouvez aussi
l'entrer directement dans la barre d'adresse.
Vous devez spcifier en plus du nom ou de l'adresse IP, le protocole utilis.
L'adresse de la page se dcoupe ainsi : protocole://service.nom du domaine.extention /
1. protocole Protocole_rseau : http, ftp
2. service sous-domaine : www, ftp, doc, httpd
3. nom du domaine Domaine_de_deuxime_niveau : ubuntu-fr, apache
4. extension Domaine_de_premier_niveau : org, com, fr
Le protocole qui nous intresse ici est HTTP (HyperText Transfert Protocol) qui est l'acronyme anglais de
Protocole de Transfert HyperTexte.
Un document hypertexte est un document contenant des hyperliens.Ceux-ci permettent de lier les pages les
unes avec les autres. Ainsi, vous pouvez naviguer grce des liens sur les pages.
Cet ordinateur, auquel vous vous connectez pour lire cette documentation, hberge cette adresse un logiciel
appel serveur web qui fournit les pages demandes. Apache est le plus utilis.

Il existe une version scurise du HTTP : le HTTPS.


Afin de diffrencier les protocoles utilisse, on leur rserve un port, par dfaut le 80 pour le mode
non scuris et le 443 pour le mode scuris.
Mode de fonctionnement

Support de cours BTS SRI2


Lyce technique Chichaoua

GNU/Linux

Au moment de son dmarrage, Apache charge les fichiers de configuration de la machine locale et se met en
attente de requtes sur les interfaces rseaux. Lorsque vous utilisez votre navigateur Web (un client HTTP), que
vous cliquiez sur un lien ou que vous rentriez directement l'adresse dans la barre d'adresse, vous effectuez une
requte :

Le client dtermine et se connecte au serveur ;

Le client effectue une requte HTTP sur le serveur, par la mthode GET du protocole HTTP : il lui
demande une page ;

Aprs l'analyse de la requte, le serveur renvoie la page concerne sous forme de code dont on peut
spcifier le format de donnes ( pour ceux qui connaissent les balises <meta> de l'entte des documents
servis, le fameux "content-type" des pages html ) ;

Une fois toutes les donnes envoyes, le serveur ferme la connexion ;

Paralllement le navigateur client analyse et construit l'affichage partir du code reu.

Pour installer un serveur HTTP, nous allons utiliser une application bien connue des
administrateurs rseaux : Apache2.

Installation
Apache est compos de plusieurs paquets.

En mode ligne de commande


sudo apt-get install apache2 apache2-doc mysql-server php5 libapache2-mod-php5
php5-mysql

En mode Gnome voir TP

Configuration
Premirement, avec Ubuntu, le fichier de configuration dun serveur Web Apache 2 nest pas
httpd.conf, mais bien apache2.conf, qui est situ dans le dossier /etc/apache2/.
Tous les fichiers de configuration de Apache2 sont dans le dossier /etc/apache2.
Rendez-vous dans le rpertoire /etc/apache2/, et regardez les fichiers le composant :
apache2.conf conf.d envvars httpd.conf mods-available modsenabled ports.conf sites-available sites-enabled
La plupart de ces fichiers sont plus ou moins spcifiques Debian/Ubuntu et nous permettent de
sparer la configuration en plusieurs parties.
est le fichier utilis par apache1, il est conserv vide dans Apache2 pour assurer la
rtrocompatibilit. Il ne nous servira pas ;

httpd.conf

envvars

ports.conf

apache2.conf

conf.d

mods-available

mods-enabled

sites-available

sites-enabled

Relancer votre serveur :

est utilis pour dfinir des variables d'environnement propres Apache ;


contient la directive listen qui spcifie les adresses et les ports d'coutes ;

est le fichier principal de configuration c'est partir de lui que tous les autres
fichiers sont chargs ;
est un rpertoire qui contient plusieurs petits fichiers qui seront analyss par apache.
Le seul fichier pour le moment est charset, qui spcifie l'encodage utiliser par dfaut ;
contient la liste des modules d'apache installs ;

celle des modules utiliss ;


contient la liste des vhosts installs ;

celle des vhosts utiliss.

/etc/init.d/apache2 restart

Les principaux tags du fichier de configuration dApache


Gestion des htes virtuelsOn se sert ici du tag <VirtualHost> avec lequel on a la possibilit de
configurer plusieurs adresses IP et donc plusieurs certificats.

Support de cours BTS SRI2


Lyce technique Chichaoua

GNU/Linux

La directive NameVirtualHost est obligatoire pour mettre en place un VirtualHost.


Dans lexemple suivant les directives incluses dans la balise VirtualHost sappliquent seulement
cette adresse au port 80 :
# Note : L'adresse IP spcifie est l'adresse du serveur
# Il est utile de la prciser seulement dans les RARES cas o le serveur a
plusieurs IP
Listen 80
NameVirtualHost 172.45.46.43.23
<VirtualHost 172.45.46.43.23:80>
# Directives que lon souhaite appliquer cette adresse
< /VirtualHost >
<VirtualHost _default_:*>
DocumentRoot /www/default
</VirtualHost>
# On sassure quApache coute sur le port 80
Listen 80
# Ecoute les requtes de VirtualHost sur toutes les adresses IP
NameVirtualHost *: 80
<VirtualHost * :80> : Toutes les adresses IP au port 80

Il existe un serveur par dfaut dans Apache qui prend toutes les requtes entrantes. On le spcifie
laide des directives DocumentRoot / ServerName
DocumentRoot : Cest ici quest prcis le rpertoire racine du serveur. Les requtes vont chercher
par dfaut index.php la racine de ce rpertoire.
ServerName (facultatif) : Cest le nom du site web, la directive Virtualhost n'agira que sur ce serveur
s'il est spcifi.
Apache reoit la requte, capte le host (ex: www.toto.com) puis scanne tous les Servername de tous
les VirtualHost spcifis et applique les directives du Virtualhost qui correspondend.
Gestion des rpertoires : Cela s'effectue l'aide du tag <Directory>. Il rassemble un groupe de
directives qui s'appliquent uniquement au rpertoire et sous-rpertoires spcifis.
Les directives qui suivent donnent les droits pour lire ou ne pas lire les fichiers :
Allow from all : Signifie pour tout le monde
Order Allow, Deny : C'est l'ordre d'acceptation par dfaut
AllowOverride All : Droit de lire le fichier .htaccess
<Directory /usr/local/httpd/htdocs>
Options Indexes FollowSymLinks
Order Allow, Deny
Allow from all
AllowOverride all
</Directory>

Alias : Cette directive est relative un nom de domaine. Il est prfrable de la placer l'intrieur d'un
Virtualhost, sinon lalias s'applique pour le serveur par dfaut. Il faut de plus prciser le Directory
sinon il prend le default (DocumentRoot) qui est configur en Deny from all.
Alias /image/ /ftp/pub/image
<Directory /ftp/pub/image>
Order allow,deny
Allow from all
</Directory>

ServerAlias : Elle dfinit les noms alternatifs pour un hte, pour une utilisation avec les virtualhost
bass sur le ServerName.
Ne pas les utiliser sauf pour de la redirection (question de ranking sur les moteurs de recherche)
<VirtualHost *:80>
ServerName server.domain.com
ServerAlias server server2.domain.com server2
ServerAlias *.thecodingmachine.com
# Liste des autre directives
</VirtualHost>

Gestion des rpertoires virtuels : On utilise le tag <Location> qui est l'quivalent de <Directory> mais
sur un rpertoire virtuel. Cette directive s'applique sur un nom virtuel avant la transformation en nom
physique.Utilisez <Location> pour appliquer des directives un contenu qui est prsent l'extrieur

Support de cours BTS SRI2


Lyce technique Chichaoua

GNU/Linux

du systme de fichiers. Pour les contenus qui sont au sein mme du systme de fichiers, utilisez
<Directory> et <Files>.
<Location /> est une exception, qui est un moyen simple d'appliquer une configuration l'ensemble
du serveur.De plus, ce tag est particulirement utile lorsquil est combin la directive SetHandler.
Par exemple, pour activer les requtes de statuts du serveur, et permettre laccs aux navigateurs
provenant seulement de exemple.com, vous pouvez utiliser:
<Location /status>
SetHandler server-status
Order Deny,Allow
Deny from all
Allow from .exemple.com
</Location>

Configurer un ensemble de fichier : On peut utiliser le tag <Files> pour spcifier un ensemble de
fichiers configurer et pas seulement un Directory.
Configurer un ensemble de fichiers spcifiques : Grce au tag <FilesMatch>, on peut configurer un
ensemble de fichiers qui se ressemblent. On peut par exemple faire correspondre des fichiers
contenant une certaine chaine de caractre. Exemple : l'extension *.js.
<FilesMatch + regex> (spcifier l'ensemble de fichiers matcher l'aide d'une regex)
ExpireActive On : Rajouter une date d'expiration aux fichiers statiques
ExpiresDefault : dure de vie (ex: A3600 correspond 1 heure)
</FilesMatch>
Note : la directive Expire est utilise pour spcifier que le navigateur prend la ressource et la met en
cache sur le disque dur. Si on redemande la mme ressource, il ne refait pas la requte, et ce jusqu' la
date d'expiration dfinie.
Inclure un ensemble de fichiers : Avec le tag <Include> on peut rajouter tous les fichiers qui se
terminent par l'extension que l'on souhaite dans le dossier de notre choix. L'ordre des Include est trait
par ordre alphabtique
Spcifier des directives un module : On se sert du tag <IfModule> pour appliquer des directives un
module spcifique suivant qu'il soit disponible ou non. Les directives au sein de ce bloc ne sont
appliques que si le test renvoie true.

Limiter l'accs par htaccess, htpasswd


Il est parfois ncessaire de protger laccs un rpertoire sur un serveur web (ex : rpertoire
dadministration, contenant des donnes sensibles) afin dviter que nimporte qui puisse y accder.
Il y a diffrentes mthodes, ont peut avoir recourt des langages comme le PHP, ASP, PERL ), mais la
mthode la plus simple est dutiliser le mcanisme de protection dApache.
C'est--dire effectuer une protection laide des fichiers .htaccess et .htpasswd. On estime ici que lon na pas
accs au fichier de configuration http.conf, ce qui est le cas chez un fournisseur daccs.
Le fichier .htaccess est un fichier texte contenant des commandes Apache.
Voici un exemple :
AuthUserFile /home/login/admin/.htpasswd
AuthGroupFile /dev/null
AuthName "Veuillez vous identifier"
AuthType Basic
<Limit GET POST>
require valid-user
</Limit>
Quelques explications :
AuthUserFile : cest le nom et le chemin daccs du fichier qui contiendra les noms des utilisateurs et les
mots de passe associs. Ce chemin doit partir de la racine du site.

Support de cours BTS SRI2


Lyce technique Chichaoua

GNU/Linux

Ici, les mots de passe seront dans /home/login/admin/.htpasswd.


On peut, et il est mme conseill de choisir un autre nom que .htpasswd pour le fichier qui contiendra le
couple utilisateur/mot de passe. Le point prcdent le nom de fichier permettra de cacher (au sens Unix /linux
du terme).
Il est galement recommand de mettre le fichier des mots de passe en dehors de larborescence du site si
lon en a la possibilit.
AuthGroupFile : permet de dfinir un droit daccs un groupe dutilisateur. Cette solution nest que
rarement utilise pour un site Web. Le reste du temps il pointe vers /dev/null. Il faut que cette ligne soit
prsente.
AuthName : cest le texte qui apparatra dans la fentre demandant le mot de passe.
AuthType : Lauthentification est en gnrale basic . Les mots de passe sont alors envoys en clair sur le
rseau. Pour scuriser davantage laccs, on peut utiliser la mthode dauthentification digest qui crypte
les mots de passe en MD5 . Ce systme nest support que par certains navigateurs.
Limit : Cest ici quon va indiquer ce qui est autoris et interdit dans le rpertoire. Les commandes GET et
POST indiquent la rcupration de pages web et la rponse certains formulaires. POST est utilis pour
autoriser lupload de fichiers sous le protocole http
Require valid-user : accepte tous les utilisateurs qui ont un login : mot de passe dans .htpasswd.
Require moha aicha : limite laccs un ou plusieurs utilisateurs prcis, ici moha et aicha. A noter que les
utilisateurs sont spars par des espaces.
Une fois le fichier .htaccess cr, il faut le placer dans le rpertoire protger.
Maintenant il nous faut crer le fichier .htpasswd
Sous unix/linux il existe un lutilitaire : htpasswd.
Voici un exemple dutilisation :
htpasswd -c .htpasswd moha
aprs validation Linux vous demande un mot de passe, puis une deuxime fois pour confirmation.
Si lon dite le fichier .htpasswd obtient une ligne du style :
moha:x3l0HLu5v6mOF
ce qui correspond au nom dutilisateur (login) et son mot de passe crypt. Il y aura une ligne pour chaque
utilisateur.
Si lon na pas accs lutilitaire htpasswd, on peut se rendre sur lun des deux sites suivant proposant le
cryptage dun mot de passe.

TP : Installation et Gestion serveur web .doc


TP :Installation dun serveur mail postfix

Configuration dun serveur FTP avec proFTP : voir le manuel Support de cours reseaux.pdf
Configuration dun serveur de mail avec postfix : voir le manuel Support de cours reseaux.pdf

Support de cours BTS SRI2


Lyce technique Chichaoua

GNU/Linux

Crer un serveur mail


Introduction
Ce tutoriel va vous apprendre comment installer un serveur mail complet, pourquoi un tel
tutoriel ? Sur le wiki, la plupart des documentations ne sont pas encore termines, et aucune
d'elles ne met en relation tous les utilitaires afin de raliser un vrai serveur de mail.
Nous parlerons donc ici de l'acheminement du mail, depuis le MTA, vers IMAP, vers votre client
mail, Thunderbird/Evolution.

Pr-requis
Postfix : Afin de grer l'envoi et la rception du mail
IMAP : Afin de rapatrier les mails reus sur votre client mail prfr
Un nom de domaine : Afin de pouvoir vous identifier sur la toile
Un nom de domaine avec les entres MX configures : Afin de pouvoir recevoir vos mails
sur login@domaine.org
Mailutils : Ensemble de petits outils GNU pour la gestion des mails par la console

Je n'aborderai pas la configuration de votre nom de domaine, sachez juste que dans notre
exemple, le domaine est FF-IRC.net, et que le nom du serveur de mail est mail.FF-IRC.net

Installation
Installez les paquets postfix courier-imap
sudo apt-get install postfix courier-imap
Rpondez aux questions par Site Internet , puis renseignez votre nom de domaine.
Note : Si vous possdez dj Sendmail, il sera dsinstall automatiquement et remplac par
Postfix.

Support de cours BTS SRI2


Lyce technique Chichaoua

GNU/Linux

Configuration
Argh ! Voici la partie dlicate, mais pas forcment complique de la chose

Postfix
Le fichier de configuration de Postfix s'appelle main.cf, il se situe dans /etc/postfix :
# See /usr/share/postfix/main.cf.dist for a commented, more complete
version
#
#
# Debian specific: Specifying a file name will cause the first
# line of that file to be used as the name. The Debian default
# is /etc/mailname.
#myorigin = /etc/mailname
#
smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
biff = no
#
# appending .domain is the MUA's job.
append_dot_mydomain = no
#
# Uncomment the next line to generate "delayed mail" warnings
#delay_warning_time = 4h
#
# TLS parameters
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${queue_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${queue_directory}/smtp_scache
#
# See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package
for
# information on enabling SSL in the smtp client.
#
myhostname = mail.FF-IRC.net
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = FF-IRC.net, Final-Fantasy.FF-IRC.net, localhost.FFIRC.net, localhost
relayhost =
mynetworks = 127.0.0.0/8, 192.168.0.0/24
#mailbox_command = procmail -a "$EXTENSION"
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
home_mailbox = Maildir/

Support de cours BTS SRI2


Lyce technique Chichaoua

GNU/Linux

Commentons quelques points :


myhostname : c'est le nom de votre serveur mail, configur dans les entres MX, par
dfaut mail.domaine.net
mydestination : ceci est la concordance des domaines, remplacez Final-Fantasy par votre
nom de machine, et FF-IRC.net par votre domaine
mynetworks : permet de donner l'accs au serveur SMTP, en plus des 2 exemples,
rajoutez votre IP extrieure si votre serveur n'est pas sur le mme rseau que votre PC
home_mailbox = Maildir/ : Ceci est important ! Nous choisissons le format Maildir en
accord avec le serveur IMAP ! Vous ne pourrez pas recevoir vos mails par IMAP si cette
ligne n'est pas ajoute au fichier de configuration de Postfix !

ditez le fichier /etc/procmailrc. (Attention le fichier n'existe pas forcement il faut peut tre le
crer)
MAILDIR=$HOME/Maildir
DEFAULT=$MAILDIR/
:0:
$DEFAULT

IMAP : courier-imap
Le fichier de configuration de courier-imap se situe dans /etc/courier et se nomme imapd :
Seulement un point nous intresse dans cette configuration : le MAILPATH (ou MAILDIRPATH),
configurez-le comme suit :
MAILPATH=Maildir

Personnellement si je met le ~/, je me fais refouler a l'authentification, alors que tout se passe
correctement sans le ~/, ca fonctionne.
Retournez ensuite dans votre ~ et tapez ceci :
maildirmake Maildir

Ceci crera la boite mail Maildir/ dans votre ~, autrement dit, dans votre /home/login

Support de cours BTS SRI2


Lyce technique Chichaoua

GNU/Linux

Mise en application du Serveur de Mails


Mise en place de vos paramtres
Tout d'abord, installez mailutils :
sudo apt-get install mailutils

Ceci va vous permettre de tester votre serveur de mails. Pour appliquer les changements que
vous avez fait sur Postfix et IMAP, procdez comme ceci :
sudo /etc/init.d/postfix restart
sudo /etc/init.d/courier-imap restart
sudo /etc/init.d/courier-authdaemon restart

Ensuite, nous allons tester la rception d'un mail, depuis l'INTERIEUR, autrement dit, en
localhost :
mail Zic@FF-IRC.net
Cc:
Subject: Wiki de Ubuntu-fr
Je trouve votre article trs intressant et souhaiterais y contribuer.

Entre chaque question, appuyez sur [Entre]. Quand vous aurez termin de rdiger votre mail,
tapez [Entre] puis [CTRL]+[D] et votre message sera envoy.

Configuration de votre client de messagerie


Les captures suivantes, sont bases sur le client de messagerie Thunderbird. Pourquoi, me direzvous ? Tout simplement parce que Thunderbird est SEULEMENT un client mail et est donc plus
lger.
Evolution, le client par dfaut de Ubuntu, possde d'autre petites fonctionnalits comme le
calendrier des vnements etc ce qui le rend plus "lourd".

Support de cours BTS SRI2


technique Chichaoua

GNU/Linux

Lyce

Autres serveurs pour complter :


Dans le mme ordre d'ide, il est trs simple de mettre en place un serveur POP avec le logiciel
courier-pop.
Pour faire un serveur scuris en envoi et en rception, on remplacera :

postfix par postfix-tls.

Courier-pop par courier-pop-ssl

Courier-imap par courier-imap-ssl


Les certificats sont faits l'installation des packages. Pour refaire ces certificats, utilisez la
commande suivante :
mkimapdcert
ou
mkpopdcert
N'oubliez pas de redmarrer les serveurs.
Attention, si vous n'arrtez ni ne supprimez les serveurs POP et IMAP non scuriss,
vos clients pourront toujours utiliser du mail non scuris !

CH8 : SAMBA un outil de partage


51

Support de cours BTS SRI2


technique Chichaoua

GNU/Linux

Lyce

Voir la partie correspondante sur le manuel PDF : Support de cours reseaux


1.

Introduction :

Le logiciel Samba est un outil permettant de partager des dossiers et des imprimantes
travers un rseau local. Il permet de partager et d'accder aux ressources d'autres
ordinateurs fonctionnant avec des systmes d'exploitation Microsoft Windows et
Apple Mac OS X, ainsi que des systmes GNU/Linux, *BSD et Solaris dans lesquels une
implmentation de Samba est installe.
Pour tablir avec succs un rseau entre votre systme Ubuntu et des clients Windows, il faut fournir
et intgrer les services utiliss courament dans les environnements Windows. Ces services assistent
aux transferts de donnes et d'information sur les ordinateurs et utilisateurs existant dans le rseau.
Ils peuvent tre classifis en trois catgories principales selon leur fonctionalit.
Services de partage de fichiers et d'imprimantes. Utiliser le protocole Server Message Block
(SMB) pour faciliter le partage de fichiers, de dossiers, de volumes et d'imprimantes travers le
rseau.
Services d'annuaire. Partager l'information vitale sur les ordinateurs et utilisateurs du rseau avec
des technologies telles que le Lightweight Directory Access Protocol (LDAP) et le Microsoft
Active Directory.
Authentification et accs. tablir l'identit d'un ordinateur ou d'un utilisateur et dterminer
l'information laquelle l'ordinateur ou l'utilisateur a l'autorisation d'accder en utilisant des principes
et technologies telles les permissions sur les fichiers, les politiques de groupes, et le service
d'authentification Kerberos.
Heureusement, votre systme Ubuntu peut fournir tous ces services aux clients Windows et partager
les ressources rseau avec eux. Un des principaux composants de votre systme
Ubuntu pour la rseautique Windows est la suite SAMBA d'outils et d'applications pour serveur SMB.
Pour plus de details consulter le site : [http://www.samba.org].

2.

Installer SAMBA

A l'invite systme, entrez la commande suivante pour installer les applications serveur SAMBA :

sudoaptgetinstallsamba
Le fonctionnement de SAMBA repose principalement sur ses deux dmons: smbd , nmbd.
Il existe un troisime depuis la version 3 de SAMBA c'est winbindd.
Thoriquement lors de l'installation du paquet SAMBA :
apt-get install samba
ET de ses dpendances, le systme a configur votre Ubuntu pour que ces dmons soient lancs
automatiquement au dmarrage. Si ce n'tait pas le cas, modifiez vos fichiers de boot /etc/rc.x et
/etc/services. C'est le principal dmon de Samba car c'est lui qui permet le partage des fichiers et
des imprimantes. Son paramtrage se fait par l'intermediaire du fichier de configuration smb.conf.
smbd verifie toutes les trois minutes ce fichier pour prendre en compte les modifications. Vous
pouvez acclrer cette prise en compte en relancant le dmon manuellement. nmbd est le dmon
de samba qui permet le nommage NetBios et l'exploration des rseaux Windows. Il est egalement
utilis pour la rsolution de nom et la fonction Wins en cas o vous utilisez samba comme serveur
pour votre rseau NetBios.
Il prend ses paramtres dans le fichier smb.conf comme smbd.
Ce dernier dmon ne sert que si vous intgrez votre serveur samba dans un domaine NT ou que
vous avez besoin de relation d'approbation entre domaine Windows.
Authentification
Dernire chose faire avant de pouvoir accder au rpertoire partag de votre machine, il faut crer
des mots de passe pour les comptes qui auront accs ceux-ci. Car Samba n'utilise pas les mots de
passe du systme mais a son propre fichier pour stocker ceux-ci (/etc/smbpasswd).
Pour crer les mots de passe samba :

sudosmbpasswdauser_name
52

Support de cours BTS SRI2


technique Chichaoua

GNU/Linux

Lyce

Remplacer user_name par le(s) nom(s) des utilisateurs ayant accs samba, il faut que ces
utilisateurs aient un compte (au sens Unix sur la machine
Sans authentification
Pour laisser passer tout le monde sans code, ditez le fichier /etc/samba/smb.conf section
[global] et ajoutez:

maptoguest=BadUser
Cette fonctionnalit peut tre dangereuse ! Vrifier que le firewall est configur correctement pour
n'accepter que les connexions sur le rseau local (ou une partie de ce dernier) ou ajouter la rgle
samba :

hostsallow=192.168.
Laisser l'accs n'importe quel utilisateur d'Internet serait trs dangereux d'autant plus qu'il s'agit
d'une faille trs connue et souvent exploite.
Une autre faon de partager le contenu de vos dossiers partags tous ceux sur le rseau sans
qu'aucune authentification ne soit requise est de modifier la ligne suivante dans la section
"authentication":

security=user
par

security=share
N'oubliez pas d'enlever le point-virgule pour que la ligne de code soit prise en compte. L'effet est
automatique et se fait dans les trois minutes, pas besoin de redmarrer le service samba.
L'tendue des possibilits offertes par Samba est encore plus grande, comme par exemple les PDC
et les serveurs WINS. De plus l'dition directe du fichier smb.conf donne accs plus de finesse
dans les rglages. Enfin, il est possible de configurer en ligne via les interfaces SWAT ou Webmin.
Tout ceci sera dtaill au paragraphe Mode avanc .
Samba se lance ds son installation, mais voici les trois commandes utilises pour le dmarrage,
l'arrt et le redmarrage de Samba :

sudo/etc/init.d/sambastartsudo/etc/init.d/sambastopsudo
/etc/init.d/sambarestart
Samba est compos de plusieurs lments. Vous avez des outils/programmes sous forme de
commandes (smbstatus,smbclient.....) , deux dmons principaux smbd et nmbd et un
fichier de configuration smb.conf. De plus il existe plusieurs outils pour le configurer en mode
graphique, les plus connus/utiliss sont SWAT qui est le systme officiel et webmin-samba module
intgr webmin.

Voici un fichier /etc/samba/smb.conf permettant de partager une ressource (rpertoire ou imprimante) avec une
authentification Utilisateur / Mot de passe sur un rseau Workgroup :
# PARTAGE PAR UTILISATEUR (user) - Groupe de travail
# Il y a 2 cas possibles :
# CAS n1 : on partage une ressource totalement anonyme
# CAS n2 : cas normal du mode user, on fait une authentification
#

par login et mot de passe


# Section GLOBAL

# Configuration globale de Samba


[global]
# Nom du groupe de travail
workgroup = WORKGROUP
# Nom Netbios de la machine (identification rseau)
netbios name = PC230

53

Support de cours BTS SRI2


technique Chichaoua

GNU/Linux

# Chaine de commentaire associ au serveur (voisinage rseau)


server string = %h Serveur (Samba %v)
# Utilisateurs interdits
invalid users = root
# Enregistre un fichier de log par machine cliente du rseau MS
log file = /var/log/samba/log.%m
# Taille maximale des logs : 1 Mo
max log size = 1000
# On n'utilise pas Syslog pour enregistrer les logs
syslog = 0
# On fait un partage par utilisateur
security = user
# On utilise les mots de passe encrypts
# (attention, W95 et W98a fonctionnent avec les mdp en clair)
encrypt passwords = true
# Acclre les transferts rseaux
socket options = TCP_NODELAY
# Empeche nmbd de chercher rsoudre le nom netbios via le DNS
dns proxy = no

# Nom du compte invit qui va permettre de crer une


# ressource partage par mot de passe (celui du compte invite)
# POUR LE CAS n1
guest account = invite

# Emplacement du fichier contenant les logins et mdp samba


# concerne le CAS n1 et n2
smb passwd file = /etc/samba/smbpasswd

# Section HOMES
# Cette section particulire permet de remonter une ressource
# qui correspond au rpertoire de travail (home directory)
# de l'utilisateur qui s'est authentifi
[homes]
# Correspond au home directory de l'utilisateur authentifi

54

Lyce

Support de cours BTS SRI2


technique Chichaoua

GNU/Linux

# %U sera remplac par le nom d'utilisateur (login)


comment = Le rpertoire personnel de %U

# Si on active cette option, on dispose d'une ressource 'homes'


# redondante avec la ressource 'login'
browseable = no

# Il faut que l'utilisateur soit authentifi pour accder


# la ressource (son home directory sur le serveur)
public = no

# Autorise l'criture dans le rpertoire personnel


writable = yes

# Droits d'accs des fichiers et rpertoires cres


create mask = 0644
directory mask = 0755

# Section PRINTERS
# Cette section permet de partager les imprimantes dfinies sur le serveur
[printers]
# Le commentaire associ l'imprimante
comment = Les imprimantes
# Affiche les imprimantes dans la liste des partages du serveur
browseable = yes

# Dans le cas d'une imprimante, c'est l'emplacement


# des fichiers temporaires
path = /tmp

55

Lyce

Support de cours BTS SRI2


technique Chichaoua

GNU/Linux

# Spcifie qu'il s'agit d'une imprimante et non un rpertoire


printable = yes

# Partage l'imprimante de manire anonyme


public = yes

# Logique
writable = no

# Empeche d'autres utilisateurs de supprimer mes impressions


create mode = 0700

# Sections REPERTOIRES PARTAGES

# CAS n 1 : une ressource anonyme sans mot de passe


# Un CDROM
[cdrom]
# Le commentaire associ au CDROM
comment = Le CDROM
# Point de montage du CDROM
# synonyme de directory =
path = /cdrom
# Empeche le bloquage d'un fichier par un utilisateur
locking = no
# Logique
writable = no
# Partage le CDROM de manire anonyme
public = yes

# CAS n2 : un rpertoire partag qu' certains utilisateurs


[prive]

56

Lyce

Support de cours BTS SRI2


technique Chichaoua

GNU/Linux

Lyce

# Le commentaire associ au rpertoire


comment = Un rpertoire partag qu'a certains utilisateurs (CAS n2)
# Emplacement du rpertoire partag
path = /home/prive
# Support en lecture / criture
# synonyme de read only = no
writable = yes

# Partage anonyme dsactiv (cas par dfaut)


# synonyme de guest ok = no
public = no

# Voir explication ci-dessous


# le @prive dsigne le groupe Unix 'prive'
valid users = @prive

# Masque de cration des fichiers et rpertoires


create mask = 0644
directory mask = 0755

Dans le cas du mode user, pour ne partager, une ressource partage, qu'a certains utilisateurs, il faut tout d'abord
crer un compte UNIX pour chacun d'eux :
# adduser --shell /bin/false --disabled-login ali
# adduser --shell /bin/false --disabled-login mohamed

On cre ensuite une entre dans le fichier /etc/samba/smbpasswd :


# smbpasswd -a ali
# smbpasswd -a mohamed

NB : dans les versions rcentes de Samba, il faut utiliser la commande pdbedit la place de smbpasswd :
# pdbedit -a ali
# pdbedit -a mohamed

Cot Linux, les utilisateurs doivent avoir le droit d'criture sur le rpertoire partag. La meilleure mthode consiste
crer un groupe Unix contenant les utilisateurs autoriss, et d'attribuer le repertoire partag au groupe en
question :
# addgroup prive

57

Support de cours BTS SRI2


technique Chichaoua

GNU/Linux

Lyce

# adduser ali prive


# adduser mohamed prive
# mkdir /home/prive
# chgrp prive /home/prive
# chmod 770 /home/prive
# smbpasswd -a ali
# smbpasswd -a mohamed

Avantage : pour partager cette ressource de nouveaux utilisateurs, il suffit de leur crer le compte unix, une entre
dans smbpasswd et de les ajouter au groupe prive (il n'est plus ncessaire de modifier le fichier smb.conf).
# chmod g+s /home/prive

Permet de dfinir le propritaire des fichiers crs avec l'option +s. Ici les propritaires seront les membres du
groupe prive au lieu de l'utilisateur.

TP : Serveur PDC avec Samba.doc

Ch9 - Openssh server


SSH permet de se connecter distance un ordinateur. Il existe deux protocoles connus pour se connecter
distance :

Telnet : Telnet est le protocole le plus basique pour se connecter distance un ordinateur. Il n'est
presque plus utilis, car il ne crypte (protge) pas les donnes, alors si un pirate coute votre
connexion au serveur, il pourra avoir le mot de passe du serveur, par exemple ! Telnet sert beaucoup
pour tester des services (HTTP, POP, SMTP, etc.) et savoir s'ils fonctionnent.

SSH : SSH est le protocole le plus utilis, car il crypte les donnes, et un pirate ne peut pas couter
votre connexion. La premire version de SSH est sortie en 1995. Cette version avait un dfaut, car elle

58

Support de cours BTS SRI2


technique Chichaoua

GNU/Linux

Lyce

ne vrifiait pas si les donnes reues tais celles voulues et cela le rendait vulnrable des attaques
actives. La version 2 de SSH a t dveloppe par l'quipe de recherche de l'IETF secsh . Cette
version est sortie en 2006.

Le protocole SSH : la solution pour scuriser les donnes


Comme on ne peut pas compltement empcher quelqu'un d'intercepter les donnes qui transitent sur
l'internet, il faut trouver un moyen pour que le client et le serveur communiquent de manire scurise. Le
cryptage sert prcisment a : si le pirate rcupre le mot de passe crypt, il ne peut rien en faire.

les diffrentes mthodes de cryptage :


Le cryptage symtrique :
Avec cette mthode, on utilise une cl (un mot de passe secret) pour crypter un message Pour
dcrypter ensuite le message, on utilise cette mme cl .

Le cryptage symtrique utilise une seule cl pour crypter et dcrypter.


Le cryptage asymtrique, lui, utilise une cl pour crypter, et une autre pour dcrypter.
Il y a donc deux cls :
une cl dite publique qui sert crypter ;
une cl dite prive qui sert dcrypter.
La cl publique ne sert qu' crypter. Avec ce type d'algorithme, on ne peut dcrypter un message que si l'on
connat la cl prive.

SSH combine cryptage asymtrique et cryptage symtrique


SSH utilise les deux cryptages : asymtrique et symtrique. Cela fonctionne dans cet ordre.
1.On utilise d'abord le cryptage asymtrique pour s'changer discrtement une cl secrte de cryptage
symtrique.
2.Ensuite, on utilise tout le temps la cl de cryptage symtrique pour crypter les changes.
Les tapes de la cration d'un canal scuris avec SSH en images
Le serveur envoie la cl publique en clair au client pour qu'il puisse crypter (figure suivante).

Le client gnre une cl de cryptage symtrique (par exemple topsecret) qu'il crypte grce la cl publique
qu'il a reue (figure suivante).

59

Support de cours BTS SRI2


technique Chichaoua

GNU/Linux

Lyce

Le client envoie la cl symtrique crypte au serveur. Le pirate peut l'intercepter, mais ne peut pas la
dcrypter car il faut pour cela la cl prive, connue seulement du serveur (figure suivante).

Le serveur dcrypte la cl reue grce sa cl prive qu'il a garde bien au chaud chez lui (figure suivante).

Le client et le serveur connaissent maintenant tous les deux la cl symtrique topsecret, et aucun
moment ils ne l'ont change en clair sur le rseau !

Transformer sa machine en serveur


Il faut tout simplement installer le paquet openssh-server sur le serveur et openssh-client sur le poste
client :

# apt-get install openssh-server openssh-client


Lors de l'installation, vous devriez voir certaines tapes intressantes s'effectuer automatiquement :
Creating SSH2 RSA key; this may take some time ...
Creating SSH2 DSA key; this may take some time ...
* Restarting OpenBSD Secure Shell server sshd

[ OK ]

RSA et DSA sont deux algorithmes de cryptage asymtrique. Comme je vous l'ai dit plus tt, SSH peut
travailler avec plusieurs algorithmes de cryptage diffrents.
Ce que vous voyez l est l'tape de cration d'une cl publique et d'une cl prive pour chacun des deux
algorithmes (RSA et DSA).

60

Support de cours BTS SRI2


technique Chichaoua

GNU/Linux

Lyce

Ensuite, le programme de serveur SSH (appel sshd) est lanc.

Oprations sur la machine du client


Il faut tout d'abord vous rendre sur la machine du client et taper la commande suivante pour gnrer une
paire de cls publique / prive :

# ssh-keygen -t rsa

Vous pouvez remplacer rsa par dsa si vous voulez utiliser l'autre algorithme de cryptage, mais a n'a pas
vraiment d'importance ici.
Lorsque vous tapez cette commande, vous allez voir plusieurs messages s'afficher et il vous sera demand
quelques petites prcisions :
$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/mateo21/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/mateo21/.ssh/id_rsa.
Your public key has been saved in /home/mateo21/.ssh/id_rsa.pub.
The key fingerprint is:
b7:22:94:aa:8c:fb:d3:ef:53:86:df:b9:37:40:bd:4d mateo21@mateo21-laptop
The key's randomart image is:
+--[ RSA 2048]----+
|
|
|
|
|
.
|
|
. ..E |
|
o.S.. + |
|
o. o.... . |
| .. .+...o
|
| o... ....o o |
|oo+. oo. .o . |
+-----------------+
Dans un premier temps, le client gnre une paire de cls ( Generating public/private rsa key pair ).
Il doit ensuite sauvegarder ces cls dans des fichiers (un pour la cl publique, un pour la cl prive). On vous
propose une valeur par dfaut : je vous conseille de ne rien changer et de taper simplementEntre.
Ensuite, on vous demande une passphrase. C'est une phrase de passe qui va servir crypter la cl prive
pour une meilleure scurit. L, vous avez deux choix :

soit vous tapez Entre directement sans rien crire, et la cl ne sera pas crypte sur votre machine ;

soit vous tapez un mot de passe de votre choix, et la cl sera crypte.


Tout le monde ne met pas une phrase de passe. En fait, a dpend du risque que quelqu'un d'autre utilise la
machine du client et puisse lire le fichier contenant la trs secrte cl prive. Si le PC du client est votre PC
chez vous et que personne d'autre ne l'utilise, il y a assez peu de risques ( moins d'avoir un virus, un
spyware). Si c'est en revanche un PC public, je vous recommande vivement de mettre
unepassphrase pour chiffrer la cl qui sera enregistre
Pour ouvrir une session distant ayant un serveur SSH, vous devez crire quelque chose comme ceci :

#ssh <nom_utilisateur>@<ipaddress> -p <num_port>


Exemple :

#ssh phyrex@192.168.23.42 -p 12345


L'option -p <num_port> qui prcise le port utilis par le serveur est facultative. Si rien n'est prcis, c'est le
port 22 qui sera utilis par dfaut (protocole TCP).
Vous pouvez aussi appeler un ordinateur par son nom :

#ssh utilisateur@nom_machine
partir du moment o celui-ci est rsolu par votre machine.
Cela peut se faire sur le rseau local par le fichier /etc/hosts (ou bien, pour passer par une interface
graphique, en tapant dans un terminal
network-admin

61

Support de cours BTS SRI2


technique Chichaoua

GNU/Linux

Lyce

puis en allant dans l'onglet "Htes", continuer en dverrouillant les droits administration en cliquant sur le
cadenas, et enfin, en cliquant sur le bouton "ajouter"), ventuellement distribu d'un serveur vers les clients
locaux au travers de NIS, ou bien par un service de DNS si vous accdez une machine distante (serveur
lou) pour lequel vous avez enregistr un nom de domaine.

Authentification par cl depuis Windows (PuTTY)


TP : faire
Tlcharger sous Windows PuTTY
Communiquer entre Windows et un serveur ssh Linux laide de PuTTY

Voir le PDF :Ubuntu-server-guide.pdf pages 31-33


TP raliser un contrle distance dun ordinateur laide du
serveur SSH (resveur de document)

Voir la partie correspondante sur le manuel PDF : Support de cours reseaux

Pour les chapitres :


CH 10: Routage et firewall configurs avec iptabs (Netfilter)
CH11: Protocole dannuaire LDAP (Administere OpenLDAP)

Exemple de Script iptables


#!/bin/bash
## Script iptables.
## Rgles iptables.
62

Support de cours BTS SRI2


technique Chichaoua

GNU/Linux

Lyce

## On flush iptables.
iptables -F

## On supprime toutes les chanes utilisateurs.


iptables -X

## On drop tout le trafic entrant.


iptables -P INPUT DROP

## On drop tout le trafic sortant.


iptables -P OUTPUT DROP

## On drop le forward.
iptables -P FORWARD DROP

## On drop les scans XMAS et NULL.


iptables -A INPUT -p tcp --tcp-flags FIN,URG,PSH FIN,URG,PSH -j DROP
iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP
iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
iptables -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -j DROP

## Dropper silencieusement tous les paquets


broadcasts.
iptables -A INPUT -m pkttype --pkt-type broadcast -j DROP

## Permettre une connexion ouverte de recevoir du


trafic en entre.
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

## Permettre une connexion ouverte de recevoir du


trafic en sortie.
iptables -A OUTPUT -m state ! --state INVALID -j ACCEPT

## On accepte la boucle locale en entre.


iptables -I INPUT -i lo -j ACCEPT

## On log les paquets en entre.


iptables -A INPUT -j LOG

## On log les paquets forward.


iptables -A FORWARD -j LOG
exit 0

63