Vous êtes sur la page 1sur 86

Support de cours BTS2GNU/LINUX Essaadi Driss

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
Support de cours BTS2GNU/LINUX Essaadi Driss

GRUB
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
Support de cours BTS2GNU/LINUX Essaadi Driss

Exemple de fichier /etc/inittab :


# Indique le runlevel par dfaut (ici le 2)
id:2:initdefault:
# Script d'initiation du boot du systme
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
Support de cours BTS2GNU/LINUX Essaadi Driss

-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:
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 ||
Support de cours BTS2GNU/LINUX Essaadi Driss

le non logique : !

La structure : `if`

Pour pouvoir voir la valeur d'une variable il faut faire prcder son nom du caractre $ .

#!/bin/sh
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
Support de cours BTS2GNU/LINUX Essaadi Driss

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 :

#!/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";;
Support de cours BTS2GNU/LINUX Essaadi Driss

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 : "
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
Support de cours BTS2GNU/LINUX Essaadi Driss

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

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
Support de cours BTS2GNU/LINUX Essaadi Driss

CH 2 : Planification des tches sous Linux

Le dmon cron excute des commandes pour un utilisateur, selon des critres
temporels : date et heure :

La priodicit (tou(te)s les) quand elles sont soumises par la commande


crontab.

L'chance ( telle heure) quand elles sont soumises par la commande at.

A leur tour et ds que possible quand elles sont soumises par la


commande batch.

Crontab
Il est possible de dclencher l'excution de certaines oprations intervalles
rguliers sous Linux. Ces oprations sont dfinies pour le systme et pour chaque
utilisateur. Elles sont enregistres dans des fichiers
de configuration indiquant le moment o elles doivent tre dclenches, et
quelle action elles doivent raliser. Les oprations dfinies pour le systme sont
stockes dans le fichier de configuration /etc/crontab. Des commandes
additionnelles peuvent tre dfinies dans les rpertoires /etc/cron.d/,
/etc/cron.daily/, /etc/cron.weekly/ et /etc/cron.monthly/. Par ailleurs, les fichiers
de configuration des utilisateurs sont stocks dans le rpertoire /var/cron/tab/,
sous le nom de chaque utilisateur. Il est bien entendu possible d'diter ces
fichiers en tant que root, mais ce n'est pas recommand. En effet, la commande
Support de cours BTS2GNU/LINUX Essaadi Driss

crontab permet d'installer, de supprimer et de consulter les fichiers crontab de


chaque utilisateur, et ce de manire sre.
La commande crontab peut tre utilise pour afficher le contenu du fichier de
configuration de l'utilisateur qui l'appelle, l'aide de l'option -l :
crontab -l
Elle permet galement de supprimer ce fichier, l'aide de l'option -r :
crontab -r
Enfin, l'option -e permet d'diter le fichier crontab, l'aide de l'diteur spcifi
dans la variable d'environnement VISUAL ou EDITOR. Par dfaut, l'diteur vi sera
utilis.
En tant qu'administrateur du systme, il est possible de modifier les paramtres
pour n'importe quel utilisateur. Pour cela, il faut prciser le login de l'utilisateur
avec l'option -u. Il est recommand d'utiliser galement l'option -u si l'on a
effectu un su, car la commande crontab peut ne pas pouvoir dterminer
l'utilisateur qui l'a appel dans ce cas.
Le format des fichiers crontab est suffisamment riche pour permettre de spcifier
avec finesse les conditions d'excution des oprations programmes. En gnral,
le dbut du fichier contient la dfinition de variables d'environnement utilises
par crontab. La suite du fichier est rserve aux commandes programmes.
Chaque programmation est ralise sur une ligne du fichier crontab. Les lignes
contiennent 5 champs spcifiant la date et l'heure laquelle la commande doit
tre excute, un nom d'utilisateur ventuel et la commande elle-mme. Le nom
d'utilisateur ne doit tre spcifi que dans le fichier /etc/crontab, qui dfinit les
commandes du systme. Il spcifie alors au nom de quel utilisateur la commande
doit tre excute. Pour les fichiers crontab propres chaque utilisateur, il n'est
bien entendu pas ncessaire d'indiquer ce nom.
Les 5 champs de la partie dcrivant la date d'excution de la commande
fournissent respectivement les informations suivantes :

les minutes (comprises entre 0 et 59) ;

les heures (comprises entre 0 et 23) ;

le jour dans le mois (compris entre 0 et 31) ;

le mois (compris entre 0 et 12, ou indiqu par les trois premires lettres du
nom du mois en anglais) ;

le jour dans la semaine (compris entre 0 et 7, ou indiqu par les trois


premires lettres du nom du jour en anglais).

Les numros de mois 0 et 12 correspondent Janvier, et les numros de jours 0


et 7 correspondent au Dimanche.

La commande sera excute chaque fois que le jour, le mois, l'heure et les
minutes du systme correspondront avec ces 5 champs. Il suffit que l'une des
spcifications du jour corresponde pour que la commande soit excute (c'est--
dire qu'elle est excute une fois pour le jour du mois et une fois pour le jour de
la semaine si ces deux champs sont spcifis).
Il est possible d'utiliser un intervalle de valeurs pour chacun de ces champs, en
Support de cours BTS2GNU/LINUX Essaadi Driss

indiquant la premire et la deuxime valeur, spares d'un tiret. Il est galement


possible de faire une liste de valeurs et d'intervalles, en sparant chaque donne
par une virgule. Si l'on veut spcifier toutes les valeurs possibles pour un champ,
on peut utiliser le caractre '*'. Enfin, il est possible d'indiquer que la commande
doit tre excute toutes les n valeurs pour chaque champ. Pour cela, il suffit de
faire suivre le champ d'une barre oblique de division ('/') et du nombre n. Ainsi, si
l'on trouve l'expression */3 pour les heures, la commande sera excute
toutes les trois heures.
La spcification de la commande doit tre faite sur une seule ligne. Le caractre
de pourcentage ('%') a une signification spciale, sauf s'il est prcd d'un
antislash ('\'). Les donnes qui suivent le premier pourcentage sont passes telles
quelles dans l'entre standard de la commande. Les caractres pourcentages
suivants sont interprts comme des saut de lignes (donc une validation). Ainsi,
la commande suivante :
rm -i file.txt%y%
permet de supprimer le fichier file.txt et de rpondre 'y' la commande rm. Le
caractre 'y' est pass ici dans le flux d'entre standard de rm.

Comme vous pouvez le voir, le fichier /etc/crontab du systme permet de


programmer des oprations priodiques, comme les sauvegardes, la destruction
des fichiers temporaires, ou toute autre tche de maintenance. Ne vous tonnez
donc pas si votre ordinateur semble s'activer tout seul rgulirement, heure
fixe (par exemple, sur le coup de 11 heures ou minuit). C'est le fonctionnement
normal de votre systme, qui s'occupe de toutes les tches mnagres qu'il s'est
rserv pour une heure o normalement tout le monde dort...
Les utilisateurs peuvent galement dfinir leur propre crontab pour effectuer les
oprations priodiques qu'il dsirent. Par exemple, ils peuvent programmer une
commande qui leur rappellera un rendez-vous.

La commande at
La commande at excute une commande une date et une heure donnes. La
commande est lue depuis l'entre standard. Si celle-ci est stocke dans un
fichier, il faudra rediriger celui-ci vers la commande.

$ at heure [date] < fichier_commandes

Exemples :

Excution de fic_commandes 15 heures

at 1500 < fic_commandes

Excution minuit

at midnight < fic_commandes :

Excution dans trois heures

at now + 3 hours < fic_commandes


Support de cours BTS2GNU/LINUX Essaadi Driss

La liste des travaux est visible avec at -l. La liste apparat sous forme de
fichiers xxxxxxxx.a

On supprimer un travail avec at -r xxxxxxxx.a

La commande batch
La commande batch fonctionne comme at mais on ne prcise pas d'heure ni de
date. La travail est plac dans un file d'attente (FIFO) et est excute quand c'est
son tour.

batch < fic_commandes

Gestion des paquets

1. Introduction

Le systme de gestion des paquets d'Ubuntu est driv du mme systme utilis par la
distribution GNU/Linux Debian. Les paquets contiennent tous les fichiers ncessaires,
ainsi que les mta-donnes et les instructions permettant d'implmenter une fonctionnalit
particulire ou une application logicielle dans votre ordinateur Ubuntu.

Les paquets Debian portent gnralement l'extension ".deb", et sont situs dans des dpts
qui sont des collections de paquets existants sur divers mdias, tels que les CD-ROM ou
Internet. Les paquets sont gnralement au format binaire prcompil, ce qui rend leur
installation rapide et ne requiert aucune compilation de logiciel.

Un grand nombre de paquets volus utilisent le concept de dpendances. Les dpendances


sont des paquets additionnels requis par le principal pour fonctionner correctement. Par
exemple, l'application de synthse vocale Festival ncessite festvox-kalpc16k, qui est un
paquet fournissant une des voix utilises par le logiciel. Pour que Festival fonctionne,
toutes ses dpendances devront tre installes en mme temps que le paquet principal. Les
outils de gestion d'applications d'Ubuntu le feront automatiquement.

2. Apt-Get
La commande apt-get est un puissant outil en ligne de commande travaillant avec
l'Advanced Packaging Tool (APT) d'Ubuntu, offrant des fonctionnalits telles
que l'installation de nouveaux logiciels, la mise jour de ceux dj existants, le
rafrachissement des index de paquets et mme la mise niveau complte de votre systme
Ubuntu.
Support de cours BTS2GNU/LINUX Essaadi Driss

Etant un simple outil en ligne de commande, apt-get a de nombreux avantages par rapport
aux autres outils de gestion de paquets disponibles dans Ubuntu pour les administrateurs de
serveurs. Ces avantages incluent la simplicit d'utilisation travers de simples connections
terminal (SSH) et la possibilit d'tre utilis dans des scripts d'administration systme, qui
peuvent leur tour tre automatiss par l'utilitaire de planification cron.

Quelques exemples d'utilisation habituelle de l'utilitaire apt-get :

Installation d'un paquet : L'installation de paquets en utilisant l'outil apt-get est


relativement simple. Par exemple, pour installer le scanner rseau nmap, entrez la
commande suivante :

sudo apt-get install nmap

Suppression d'un paquet : La suppression d'un paquet ou de paquets est galement


un processus simple et direct. Pour supprimer le paquet nmap install dans l'exemple
prcdent, entrez la commande suivante :

sudo apt-get remove nmap

Paquets multiples : Vous pouvez spcifier plusieurs paquets installer ou


supprimer en les sparant par des espaces.

Mettre jour l'index des paquets : L'index des paquets de APT est principalement
une base de donnes des paquets disponibles dans les dpts lists dans le fichier
/etc/apt/sources.list. Pour synchroniser l'index local avec les derniers changements
effectus sur les dpts, tapez cette ligne de commande :

sudo apt-get update

Mettre jour les paquets : Avec le temps, des versions mises jour des paquets
installs sur votre ordinateur peuvent tre mise en ligne dans les dpots (des mises jour
de scurit par exemple). Pour mettre jour votre systme, mettez d'abord jour l'index
des paquet comme expliqu ci-dessus, puis tapez :

sudo apt-get upgrade


Support de cours BTS2GNU/LINUX Essaadi Driss

Si un paquet a besoin d'installer ou de supprimer de nouvelles dpendances lorsqu'il est


mis jour, il ne sera pas mis jour par la commande upgrade. Pour une mise jour de
ce type, il est ncessaire d'utiliser la commande dist-upgrade.

Vous pouvez galement mettre jour votre systme Ubuntu entirement d'une
version une autre avec dist-upgrade. Par exemple pour mettre jour Ubuntu de la
version 5.10 6.06, vous devez d'abord remplacer les dpots 5.10 par les 6.06 dans
/etc/apt/sources.list, puis excuter apt-get update come expliqu ci-dessus, et enfin
faire la mise jour en tapant :

sudo apt-get dist-upgrade

Aprs un certain temps, votre ordinateur sera jour. En gnral, des tape
supplmentaires sont ncessaires et sont expliques dans les notes de mise jour de la
version vers laquelle vous avez fait la mise jour.

Les actions de la commande apt-get, tel que l'ajout ou la suppression de paquets, sont
inscrites dans le fichier /var/log/dpkg.log.

Pour plus d'information sur l'utilisation de APT, consultez la documentation dtaille sur
Debian APT User Manual [http://www.debian.org/doc/user-manuals#apt-howto] ou tapez

apt-get help

3. Aptitude
Aptitude est une application texte utilisant des menus, et servant d'interface Advanced
Packaging Tool (APT). Beaucoup des fonctions communes de gestion des paquets, comme
l'installation, la dsinstallation, et la mise jour, sont effectues dans Aptitude avec une
simple commande ayant une seule option, qui sont gnralement des lettres minuscules.

Aptitude est mieux indique pour tre utilise dans un environnement prsentant un
terminal non graphique pour s'assurer un bon fonctionnement des touches de commandes.
Vous pouvez dmarrer Aptitude en tant qu'utilisateur normal avec la commande suivante
dans un terminal:

sudo aptitude

Au dmarrage d'Aptitude, vous verrez une barre de menu en haut de l'cran et deux
panneaux sous cette barre. Le panneau du haut contient les catgories des paquets,
telles que Nouveaux Paquets et Paquets Non Installs. Le panneau du bas contient les
informations relatives aux paquets et catgories de paquets.

Utiliser Aptitude pour la maintenance des paquets est relativement direct, et l'interface
utilisateur simplifie les tches communes. Les exemples suivants sont des opration de
maintenance des paquets habituelles effectues la manire d'Aptitude :
Support de cours BTS2GNU/LINUX Essaadi Driss

Installer des paquets: Pour installer un paquet, localisez le avec la catgories "Paquets
non installs", par example, en utilisant les touches flches du clavier et en appuyant
sur Entre, puis slectionnez le paquet que vous voulez installer. Appuyez ensuite sur
la touche +, et la couleur du paquet changera en vert, indiquant qu'il est slectionn
pour tre install. Appuyez maintenant sur la touche g pour avoir un liste des actions
possibles. Appuyez nouveau sur g, et on vous demandera de devenir super-utilisateur
pour continuer. Appuyez sur Entre pour avoir une invite et tapez le mot de passe pour
vous identifier en tant que super-utilisateur. Enfin, appuyez sur g une fois de plus et il
vous sera demand de tlcharger le logiciel. Appuyez sur Entre l'invite Continuer
pour que le tlchargement et l'installation commencent.
Dsinstaller des paquets: Pour dsinstaller un paquet, localisez le avec la catgories
"Paquets installs", par example, en utilisant les touches flches du clavier et en
appuyant sur Entre, puis slectionnez le paquet que vous voulez dinstaller. Appuyez
ensuite sur la touche -, et la couleur du paquet changera en rose, indiquant qu'il est
slectionn pour tre dsinstall. Appuyez maintenant sur la touche g pour avoir un
liste des actions possibles. Appuyez nouveau sur g, et on vous demandera de devenir
super-utilisateur pour continuer. Appuyez sur Entre pour avoir une invite et tapez le
mot de passe pour vous identifier en tant que super-utilisateur. Appuyez sur Entre
l'invite Continuer pour que la dsinstallation commencent.
Mettre jour l'index des paquets: Pour mettre jour l'index des paquets, appuyez sur
la touche u, et on vous demandera de devenir super-utilisateur pour continuer. Appuye
Support de cours BTS2GNU/LINUX Essaadi Driss

sur Entre pour avoir une invite et tapez le mot de passe pour vous identifier en tant que super-
utilisateur. La mise jour de l'index va commencer. Appuyez sur keycap>Entre
Mettre jour des paquets: Pour mettre jour des paquets, suivez la procdure
ci-dessus pour mettre jour l'index, puis appuyez sur la touche U pour marquer tous les
paquets que vous pouvez mettre jour. Appuyez maintenant sur la touche g pour avoir
un liste des actions possibles. Appuyez nouveau sur g, et on vous demandera de
devenir super-utilisateur pour continuer. Appuyez sur Entre pour avoir une invite et
tapez le mot de passe pour vous identifier en tant que super-utilisateur. Enfin, appuyez
sur g une fois de plus et il vous sera demand de tlcharger le logiciel. Appuyez sur
Entre l'invite Continuer pour que le tlchargement et la mise jour des paquets
commencent.

La premire colonne d'information affiche dans la liste des paquets dans le panneau du
haut, lorsqu'on examine rellement des paquets, liste l'tat actuel du paquet et utilise la
syntaxe suivante pour dcrire l'tat du paquet:
i : Paquet install.
c: Le paquet n'est plus install, mais sa configuration est conserve sur le systme
p: Purg du systme
v : Paquet virtuel
B : Paquet cass
u: Fichiers dcompresss, mais paquet pas encore configur.
C: Mal configur- La configuration a choue et ncessite une correction
H: Demi-install- La Suppression a chou et ncessite une correction

Pour quitter Aptitude, appuyez simplement sur la touche q et confirmez que vous
dsirez fermer le logiciel. Beaucoup d'autres fonctions sont disponibles partir du menu
d'Aptitude, en appuyant sur la touche F10.
Support de cours BTS SRI2 GNU/Linux
Essaadi Driss

4. Configuration
La liste des dpts utilise par Advanced Packaging Tool (APT) est enregistre
dans le fichier de configuration /etc/apt/sources.list. Un exemple de ce fichier est
prsent ici, de mme que les informations pour ajouter ou supprimer des liens
vers des dpts dans ce fichier.

Ceci [../sample/sources.list] est un exemple simple d'un fichier /etc/apt/sources.list


typique.

Vous pouvez diter le fichier pour activer ou dsactiver certains dpts. Par
exemple, pour dsactiver la ncessit d'insrer le CD-ROM Ubuntu chaque fois
que vous faites une opration sur les paquets, mettez simplement en commentaire
la ligne approprie qui se trouve au dbut du fichier :

# no more prompting for CD-ROM please


# deb cdrom:[Ubuntu 6.06 _Dapper Drake_ - Release i386 (20060329.1)]/ dapper main
restrict

. Dpts supplmentaires
En plus des dpts officiellement supports par Ubuntu, il en existe des supplmentaires
maintenus par la communaut qui offrent un grand nombre de paquets supplmentaires. Deux
de ces dpts les plus populaires sont Universe et Multiverse. Bien qu'ils ne soient pas
officiellement supports par Ubuntu, ce pourquoi ils ne sont pas activs par dfaut, ils
proposent gnralement des paquets srs et ne prsentant aucun risque pour votre ordinateur.

Les paquets situs dans le dpt Multiverse ont souvent des licences particulires qui les
empchent d'tre distribus avec un systme d'exploitation libre, et ils
peuvent tre illgaux dans votre pays.

Soyez prvenus que ni le dpt Universe ni le dpt Multiverse ne contiennent des


paquets officiellement supports. Il peut donc ne pas y avoir de mises jour
de scurit pour ces paquets.

De nombreux autres sources de paquets sont disponibles, et offrent mme souvent un seul
paquet, comme par exemple dans le cas des sources venant de dveloppeurs d'une seule
application. Vous devriez cependant toujours faire trs attention quand vous utilisez des sources
exotiques. Recherchez des sources et des paquets fiables avant d'effectuer
une installation. Certains paquets provenant de sources non fiables peuvent rendre votre
systme instable ou inutilisable.

Pour activer les dpts Universe et Multiverse, ditez le fichier /etc/apt/sources.list et


supprimez les commentaires des lignes appropries.
Support de cours BTS SRI2 GNU/Linux
Essaadi Driss

Compilation Du noyau Linux

Le noyau est tout simplement le programme qui gre les interactions entre le matriel et les autres
programmes. C'est lui qui amorce le systme d'exploitation.

Pourquoi compiler son noyau ?

Faire fonctionner un matriel qui nest pas pris en charge par votre noyau actuel
Appliquer un correctif
Utiliser une distribution qui oblige de compiler votre noyau

Vous voulez passer le temps

Rcupre les sources du noyaux ,soit celle de votre distribution, soit les sources
disponibles sur le site kernel.org

Installation des sources :


Installer le paquet linux-source
linux-source est un mtapaquetage qui pointe vers la dernire version du noyau
Il vous faudra aussi installer les outils de compilation :
Installer les paquets

debconf-utilsdpkg-devdebhelperbuild-essential kernel-package libncurses5-dev

Tlcharger une version du noyau :

wget https://www.kernel.org/pub/linux/kernel/v3.0/linux-3.0.23.tar.bz2

Les outils ncessaires :

# apt-get install build-essential

Pour bnficier de plus doutils et dinterfaces :

# apt-get install libncurses5-dev

Pour effectuer la compilation de la meilleure faon il faut travailler dans le


rpertoire /usr/src.

Pour cela il faut crer un utilisateur et lajouter au groupe src.De cette manire
on pourra accder /usr/src sans tre root.

usermod-aG src login## O //login// est votre nom d'utilisateur


ou
sudo adduser login src## O //login// est votre nom d'utilisateur
Support de cours BTS SRI2 GNU/Linux
Essaadi Driss

Mettre en place les sources .

#cd /usr/src

# tar xjf linux-3.0.23.tar.bz2

#ln-sfn linux-source-3.0.23 linux ou bien

# mv linux-3.0.23 linux-source-3.0.23

# cd linux-source-3.0.23

Configuration et compilation
Copier la configuration du noyau courant

Toutes les modifications que nous allons faire seront dans le fichier .config

# cp /boot/config-$(uname r) .config

Creation du fichier .config type

# make oldconfig

make oldconfig pass en revue les nouvelles options de configuration.

Ensuite on personnalise les options de compilation :

make nconfig

ou make menuconfig
Support de cours BTS SRI2 GNU/Linux
Essaadi Driss

Compiler et crer des paquets .deb


Pour crer des paquets .deb de limage du noyau et des en-tte

# make deb-pkg

A la fin du processus de compilation vous disposerez dans /usr/src de paquets


linux-image-$(version).deb et linux-headers-$(version).deb prts tre installs,
par exemple avec dpkg i ou gdebi.
La cration dun disque initial de dmarrage et la mise jour de grub seront
automatiques lors de la compilation.
Pour acclrer la compilation vous pouvez augmenter le nombre de processus
allous,par exemple sur un processeur dual-core :
# make j 4 deb-pkg
Support de cours BTS SRI2 GNU/Linux
Essaadi Driss

CH3 : Technologie
RAID
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
Support de cours BTS SRI2 GNU/Linux
Essaadi Driss

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.

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).


Support de cours BTS SRI2 GNU/Linux
Essaadi Driss

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.

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.
Support de cours BTS SRI2 GNU/Linux
Essaadi Driss

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).

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)
Support de cours BTS SRI2 GNU/Linux
Essaadi Driss

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

Inconvnients

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 GNU/Linux
Essaadi Driss

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 GNU/Linux
Essaadi Driss

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 GNU/Linux
Essaadi Driss

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 GNU/Linux
Essaadi Driss

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 4 - 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


Support de cours BTS SRI2 GNU/Linux
Essaadi Driss

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
taille d'E/S (minimale / optimale) : 4096 octets / 4096 octets
Identifiant de disque : 0x73a05bd4

Priphrique Amorce Dbut Fin Blocs Id Systme


/dev/sda1 * 2048 102402047 51200000 7 HPFS/NTFS/exFAT
/dev/sda2 102402048 204802047 51200000 7 HPFS/NTFS/exFAT
/dev/sda3 204804094 1465147391 630171649 5 tendue
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 0
Total PE 0
Support de cours BTS SRI2 GNU/Linux
Essaadi Driss

Free PE 0
Allocated PE 0
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 :
# 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 0
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 1
Metadata Sequence No 1
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 0
Open LV 0
Max PV 0
Cur PV 1
Act PV 1
VG Size 316,17 GiB
PE Size 4,00 MiB
Total PE 80940
Alloc PE / Size 0 / 0
Free PE / Size 80940 / 316,17 GiB
Support de cours BTS SRI2 GNU/Linux
Essaadi Driss

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

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 0
LV Size 7,81 GiB
Current LE 2000
Segments 1
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


Support de cours BTS SRI2 GNU/Linux
Essaadi Driss

# 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
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
Support de cours BTS SRI2 GNU/Linux
Essaadi Driss

CH 5 : 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 )
$ 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
Support de cours BTS SRI2 GNU/Linux
Essaadi Driss

#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
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 GNU/Linux
Essaadi Driss

CH 6 : Partage rseaux NFS


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

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.
Support de cours BTS SRI2 GNU/Linux
Essaadi Driss

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 :
/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
Support de cours BTS SRI2 GNU/Linux
Essaadi Driss

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
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
Support de cours BTS SRI2 GNU/Linux
Essaadi Driss

CH 7 : 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.

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 Description
nde
? Affiche l'aide
close Termine la session Telnet
Support de cours BTS SRI2 GNU/Linux
Essaadi Driss

display Affiche l'cran les paramtres de la connexion (type de terminal, port)


environ Permet de dfinir les variables d'environnement du systme d'exploitation
logout Permet de se dconnecter
mode Bascule entre les modes de transfert ASCII (transfert d'un fichier en mode
texte) et BINARY (transfert d'un fichier en binaire)
open Permet de lancer une autre connexion partir de la connexion en cours
quit Quitte l'application Telnet
set Modifie les paramtres de la connexion
unset Charge les paramtres de connexion par dfaut

CH 8 : 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
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
Support de cours BTS SRI2 GNU/Linux
Essaadi Driss

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
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
Description
de

help Affiche l'ensemble des commandes supportes par le serveur FTP

status Permet de connatre certains paramtres de la machine cliente

Cette commande vous fait basculer du mode ASCII (envoi de documents textes) au
binary 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)

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

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

pwd Affiche le nom complet du rpertoire courant

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


cd
courant. La commande "cd .." permet d'accder au rpertoire de niveau suprieur
Support de cours BTS SRI2 GNU/Linux
Essaadi Driss

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


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

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


rmdir 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

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
get 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
put
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)
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


Support de cours BTS SRI2 GNU/Linux
Essaadi Driss

Ch9 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
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
Support de cours BTS SRI2 GNU/Linux
Essaadi Driss

# 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

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

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


Support de cours BTS SRI2 GNU/Linux
Essaadi Driss

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).

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
Support de cours BTS SRI2 GNU/Linux
Essaadi Driss

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;

### 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";
Support de cours BTS SRI2 GNU/Linux
Essaadi Driss

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 {
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
Support de cours BTS SRI2 GNU/Linux
Essaadi Driss

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

/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 multi-
diffusion, 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 GNU/Linux
Essaadi Driss

CH 10: 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
Support de cours BTS SRI2 GNU/Linux
Essaadi Driss

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

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.
o no : Pas de notifications.
o 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.
Support de cours BTS SRI2 GNU/Linux
Essaadi Driss

o hint : redirige les demandes vers les serveurs racines.


o master : Serveurs de noms faisant autorit pour cette zone.
o 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 86400
@ IN SOA mon_serveur_dns_maitre. sysadmin.sri.ma. (
070725 ; Serial
12H ; Refresh
2H ; Retry
1000H ; Expire
2D ) ; Negative Cache TTL
;
@ IN NS mon_serveur_dns_maitre.
IN MX 10 mail.sri.local.
IN A 192.168.1.254
www IN A 192.168.1.254
xmarks IN A 192.168.1.254
web IN CNAME www
mail IN A 192.168.1.25

"$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
Support de cours BTS SRI2 GNU/Linux
Essaadi Driss

- 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.
?@ 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 day
1.168.192.in-addr.arpa IN SOA MON_SERVEUR_DNS_MAITRE. sysadmin.ec0.fr.
(
70769 ; serial
604800 ; refresh (1 week)
86400 ; retry (1 day)
2419200 ; expire (4 weeks)
604800 ; minimum (1 week)
)
NS MON_SERVEUR_DNS_MAITRE

$ORIGIN 1.168.192.in-addr.arpa.
254 IN PTR dns.ec0.local.
33 IN PTR mail.ec0.local.
Support de cours BTS SRI2 GNU/Linux
Essaadi Driss

$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).
- 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 11 : 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.
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.
Support de cours BTS SRI2 GNU/Linux
Essaadi Driss

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
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 mods-
enabled 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.
httpd.conf est le fichier utilis par apache1, il est conserv vide dans Apache2 pour assurer la
rtrocompatibilit. Il ne nous servira pas ;
Support de cours BTS SRI2 GNU/Linux
Essaadi Driss

envvars est utilis pour dfinir des variables d'environnement propres Apache ;
ports.conf contient la directive listen qui spcifie les adresses et les ports d'coutes ;
apache2.conf est le fichier principal de configuration c'est partir de lui que tous les autres
fichiers sont chargs ;
conf.d 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 ;
mods-available contient la liste des modules d'apache installs ;
mods-enabled celle des modules utiliss ;
sites-available contient la liste des vhosts installs ;
sites-enabled celle des vhosts utiliss.
Relancer votre serveur :
/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.
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
Support de cours BTS SRI2 GNU/Linux
Essaadi Driss

</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
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


Support de cours BTS SRI2 GNU/Linux
Essaadi Driss

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.
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.
Support de cours BTS SRI2 GNU/Linux
Essaadi Driss

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

TP : Installation et gestion dun serveur web sous


Debian/Ubuntu
Introduction

Pour installer un serveur web complet, trois composants sont primordiaux :

o apache2 : Le moteur web http proprement parl.


o MySQL : Le systme de gestion de base de donnes.
o Php5 : Le langage de scripts libres pour interprter les pages web.
A cela peuvent se rajouter des utilitaires pour vous faciliter la vie comme phpmyadmin, interface
web pour grer vos bases de donnes mysql mais aussi des modules complmentaires php5 pour
ajouter des fonctionnalits comme php5-mysql, permettant dinterprter le code php spcifique
laccs et la lecture dune base de donnes ou encore php5-gd permettant de crer et
manipuler des images.

Installation des paquets ncessaires

Apache2 :

apt-get install apache2


Support de cours BTS SRI2 GNU/Linux
Essaadi Driss

Php5 :

apt-get install php5

MySQL et phpmyadmin :

apt-get install mysql-server mysql-client phpmyadmin

APACHE2
Une fois linstallation de ce composant termine, la premire chose effectuer est le test du bon
fonctionnement de votre moteur http, la base de votre serveur web. il vous suffit douvrir un
navigateur web et de taper ladresse IP de votre serveur en question en guise durl en local taper
127.0.0.1 ou localhost; Si vous voyez un Its Works , cest signe que votre apache fonctionne
correctement.

Voici la commande pour redmarrer le moteur apache2 :

/etc/init.d/apache2 reload (restart start stop)

Hbergement de vos sites

Crez un rpertoire par site dans larborescence /var/www/, pour tester la partie web vous aurez
alors qu taper ladresse http://@ip-serveur/nom-rpertoire-site.@ip-serveur=localhost

Notion de virtualhosts

Les virtualhosts donnent la possibilit dhberger plusieurs sites web sur un seul et mme
serveur, vous aurez donc un virtualhost par site. Un virtualhost se matrialise sous forme dun
fichier que vous positionnez dans le rpertoire /etc/apache2/site-available, ce fichier indique
principalement le chemin daccs de votre site web et la rsolution DNS li celui-ci, voici un
exemple basique :

<virtualhost *:80>

ServerName monsite.ma

ServerAlias www.monsite.ma

DocumentRoot /var/www/monsite

<directory /var/www/monsite>

DirectoryIndex index.php
Support de cours BTS SRI2 GNU/Linux
Essaadi Driss

Options Indexes FollowSymLinks MultiViews

AllowOverride None

Order allow,deny

allow from all

</directory>

</virtualhost>

Il existe bien sur pas mal doptions que vous pouvez ajouter pour personnaliser votre virtualhost,
vous pouvez notamment ajouter des restrictions daccs sur des adresses IP, spcifier un fichier
htpasswd daccs au site ou modifier le port par dfaut.

Pour activer le nouveau site une fois le virtualhost cr, tapez la commande suivante :

a2ensite <nom-du-virtualhost>

Si vous souhaitez pour une quelconque maintenance dsactiver un site sans impacter les autres :

a2dissite <nom-du-virtualhost>

PHP5
Php5 permet dinterprter le code php de vos pages web. Pour visualiser la liste des variables de
php, crez un fichierphpinfo.php la racine de votre site par exemple, puis ditez-le et mettez-y
le code suivant :

<?php

phpinfo();

?>

Dans un navigateur, tapez lurl de votre site suivi de /phpinfo.php, vous devriez voir la liste des
variables avec leurs valeurs sous forme de tableaux :

Pour modifier ces variables ou les activer, vous devez diter le fichier php.ini situ
dans/etc/php5/apache2/php.ini et /etc/php5/cli/php.ini.
Support de cours BTS SRI2 GNU/Linux
Essaadi Driss

MYSQL
Voici quelques commandes mysql :

Redmarrage du service

/etc/init.d/mysql restart

Accs MySQL

mysql -u root -p

Visualiser les BDD

mysql>SHOW DATABASES;

Crer une BDD

mysql>CREATE DATABASE test;

Accs une BDD et visualisation des tables de celle-ci

mysql>USE test;

mysql>SHOW TABLES;

Il existe bien sur un outil pour faciliter ladministration de vos BDD MySQL, il sagit
de phpmyadmin.

PHPMYADMIN

Une fois le composant install, vous pouvez accder linterface web de phpmyadmin via lurl :

http://@ip-serveur/phpmyadmin

Voici un aperu de linterface dadministration :

1/2 Visualisation des bases de donnes.


Support de cours BTS SRI2 GNU/Linux
Essaadi Driss

3 Excuter des requtes SQL sur le serveur.

4 Etat de votre serveur SQL.

5 Variables du serveur.

6 Jeux de caractres et interclassement.

7 Moteurs de stockage.

8 Privilges utilisateur (ajout/suppression, modification des droits daccs aux BDD).

9 Rplication.

10 Processus.

11 Exporter/importer des BDD ou des tables SQL.

12 Synchroniser des BDD.

Configuration dun serveur FTP avec proFTP : voir ch 6 du Support de cours


reseaux.doc
Configuration dun serveur de mail avec postfix : voir ch 7 du Support de cours
reseaux.pdf

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 ne vrifiait pas si les donnes reues tais celles voulues et cela le rendait
Support de cours BTS SRI2 GNU/Linux
Essaadi Driss

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).
Support de cours BTS SRI2 GNU/Linux
Essaadi Driss

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.
Support de cours BTS SRI2 GNU/Linux
Essaadi Driss

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).
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 simplement Entre.
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.
Support de cours BTS SRI2 GNU/Linux
Essaadi Driss

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
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)

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
Support de cours BTS SRI2 GNU/Linux
Essaadi Driss

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 GNU/Linux
Essaadi Driss

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.FF-
IRC.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 GNU/Linux
Essaadi Driss

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 GNU/Linux
Essaadi Driss

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 direz-
vous ? 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 Essaadi Driss Gnu/Linux 2eme Anne (S53-S54)

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 !

55
Support de cours Essaadi Driss Gnu/Linux 2eme Anne (S53-S54)

CH8 : SAMBA un outil de partage


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

56
Support de cours Essaadi Driss Gnu/Linux 2eme Anne (S53-S54)

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
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

57
Support de cours Essaadi Driss Gnu/Linux 2eme Anne (S53-S54)

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

# 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

58
Support de cours Essaadi Driss Gnu/Linux 2eme Anne (S53-S54)

# qui correspond au rpertoire de travail (home directory)

# de l'utilisateur qui s'est authentifi

[homes]

# Correspond au home directory de l'utilisateur authentifi

# %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

59
Support de cours Essaadi Driss Gnu/Linux 2eme Anne (S53-S54)

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

# des fichiers temporaires

path = /tmp

# 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
60
Support de cours Essaadi Driss Gnu/Linux 2eme Anne (S53-S54)

# Partage le CDROM de manire anonyme

public = yes

# CAS n2 : un rpertoire partag qu' certains utilisateurs

[prive]

# 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

61
Support de cours Essaadi Driss Gnu/Linux 2eme Anne (S53-S54)

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

# 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

Objectif :
Configurer un serveur SAMBA sous Linux Ubuntu pour le rle de Contrleur de Domaine afin de
mettre en uvre une administration centralise avec contrle daccs aux postes clients, etc
Le serveur Linux/SAMBA est en mesure de se conduire comme un serveur de fichiers capables d'offrir
les services habituels sur un rseau :
1 partage de fichiers et de rpertoires,
2 partage d'imprimantes,
3 respect des comptes utilisateurs
4 gestion des permissions d'accs
5 excution de scripts de connexion personnaliss

Le protocole de communication sous-jacent qui permet cette communication Linux-Dos/Windows s'appuie sur
NetBios et s'appelle smb=Server Message Block.
1 Le serveur offre ses ressources (systme de fichiers, imprimantes ...) aux clients Windows qui s'y
62
Support de cours Essaadi Driss Gnu/Linux 2eme Anne (S53-S54)

connecteront sous un compte cr par root, aprs une authentification par mot de passe. Le travail
est partag par deux "daemons" : smbd pour le service serveur et nmbd pour le service de rsolution
des noms Netbios.
2 Du ct client, le protocole SMB fonctionne au-dessus de plusieurs protocoles. Il ncessite Netbios
au dessus de TCP/IP (par contre NetBEUI n'est pas utile)

Etape 1 : activer le PDC et un compte machine


Sur le poste Ubuntu (rle de contrleur de domaine) :
= Sauvegarder le fichier smb.conf qui se trouve dans /etc/samba
= (p.ex. : sudo cp /etc/samba/smb.conf /etc/samba/smb0.conf )
= Et diter un nouveau fichier smb.conf
$ sudo gedit /etc/samba/smb.conf
Configuration de la section [global]

[global]
# Identification NetBIOS modifier selon besoin
workgroup = NOM_DOMAINE_WIN
netbios name = serveurpdc
server string = Samba %v Server %L
#Compte utiliser pour les accs invits aux partages
guest account = nobody
#Restreindre par scurit les sous-rseaux autoriss se connecter
hosts allow = 10.
#Utiliser un fichier de trace pour chaque machine qui se connecte
log file = /var/log/samba/%m.log
#Mode de scurit de ressources utilises sur le serveur Samba
security = user
Quitter en enregistrant le fichier.

Saisir sur votre terminal la commande suivante qui vrifie si le fichier smb.conf est correct :
$ testparm

Saisir sur votre terminal la commande qui redemarre le serveur SAMBA

Etape 2 : crations des groupes et des utilisateurs Linux pour SAMBA


Saisir sur votre terminal la commande qui ajoute un groupe machines (client) : exp sambamachines
Cration du groupe rassemblant tous les utilisateurs du PDC SAMBA : exp grpbtssri
Crer un utilisateur systme Linux et qui appartient au groupe grpbtssri (exp smbuser1). Utiliser le
paramtre m pour cer le rprtoire utilisateur.Crer aussi son mot de passe Linux.
Test de connexion authentifuie Linux laide de la commande :
$ smbclient L localhost U smbuser1
Crer en suite un utilisateur equivalent SAMBA.
Test de connexion authentifuie SAMBA laide de la commande :
$ smbclient L localhost U smbuser1
Que remarquez vous ?
REMARQUE : Dsactiver le firewall
Rpertoire personnel et partages sur le serveur Samba
1 Le rpertoire personnel de chaque utilisateur
Accs au rpertoire personnel pour chaque utilisateur lors de la connexion. Celui ci est cr dans /home, lieu
de regroupement des rpertoires personnels. Il faut configurer le fichier smb.conf comme suit :

63
Support de cours Essaadi Driss Gnu/Linux 2eme Anne (S53-S54)

[homes]
# Accs au rpertoire personnel de lutilisateur
# La valeur du champ comment apparatra dans le voisinage rseau
path = /home/%u
comment = Rpertoire personnel
browseable = no
# Il est accessible en criture
writable = yes
# les fichiers crs ne sont accessibles que pour le propritaire
create mode = 0700
2 Rendre un rpertoire public
Lobjectif est de rendre un rpertoire partag totalement (lecture/criture) tous les utilisateurs. Il faut
dabord le crer ou vrifier que celui-ci existe. En rgle gnrale le gestionnaire le cre dans le
rpertoire /home, lieu de regroupement des rpertoires personnels.
$ mkdir /home/tmp

Ensuite il faut configurer le fichier smb.conf. comme suit:


[public]
# Ce rpertoire aura pour nom de partage public
# La valeur du champ comment apparatra dans le voisinage rseau
path = /home/tmp
comment = Rpertoire public
# Il pourra tre accessible pour tous les utilisateurs
public = yes
# Il pourra tre accessible en criture
writable = yes
# les fichiers crs sont en lecture seule, sauf pour le propritaire
create mode = 0755
Il faut y ajouter les permissions daccs et dcriture pour tous les utilisateurs au rpertoire public.
$ chmod 777 public
3 Partager un rpertoire pour un groupe
Pour partager un rpertoire pour un groupe, il faudrait aller dans le dans le fichier smb.conf rajouter
quelques lignes supplmentaires; Dans notre exemple, le rpertoire partager pour le groupe sappellera
commun
[commun]
# Ce rpertoire aura pour nom de partage commun
# La valeur du champ comment apparatra dans le voisinage rseau
path = /home/commun
comment = Partage pour le groupe techlan
# Il ne pourra pas tre accessible pour tous les utilisateurs
public = no
# Il pourra tre accessible en criture
writable = yes
# Liste des utilisateurs autoriss (avec ou sans virgule)
valid users = ali omar malika
# Ou mieux, indication du groupe autoris
valid users = @grpbtssri
# les permissions sont celles par dfaut pour tout fichier cr
create mode = 0640
Si vous voulez que le super utilisateur Samba root , qui sera l'administrateur, faire la commande suivante
qui fixe root comme administrateur samba :
# smbpasswd -a root
et indiquer un mot de passe, qui soit diffrent de celui du login du serveur, par scurit mais il peut tre le
mme. (Par exemple : smbrootposte)
Remarque : pour supprimer un utilisateur si on s'est tromp, il faut le faire 2 niveaux, dans Samba et dans
Linux , par exemple pour l'utilisteur jojo :

#smbpasswd -x jojo

64
Support de cours Essaadi Driss Gnu/Linux 2eme Anne (S53-S54)

#userdel jojo

Etape 3 : intgration du poste XP


Saisir sur votre terminal la commande suivante qui ajoute un compte machine lorsquun client cherche se
connecter :

$sudo useradd nomNetBIOSduposteWIN g sambamachines s /dev/false d /dev/null


Attention ! remplacer nomNetBIOSduposteXP par le nom NetBIOS rel de votre machine
XP ! (par exemple station01 )
Saisir sur votre terminal la commande suivante qui ajoute le nom de la machine en tant quutilisateur SAMBA
$ sudo smbpasswd m anomNetBIOSduposteWIN$
Le signe $ voudrait dire au domaine Samba que le "client" est une machine
Connexion du client XP :
Allez dans Proprit systme onglet nom de l'ordinateur et cliquer sur modifier Puis saisir le nom du
domaine que vous avez mentionner dans le fichier smb.conf
Si tout se passe bien une fentre de connexion doit apparaitre vous invitant saisir un nom utilisateur, vous
saisirez root et le mot de passe que vous avez choisi pour root.
Redmarrer le poste Windows XP.
Connectez-vous ensuite partir du poste XP, avec le compte et vrifiez que vous y avez accs

65
Support de cours Essaadi Driss Gnu/Linux 2eme Anne (S53-S54)

Fin de l'exercice !

ANNEXE 1 : fichier /etc/samba/smb.conf

[global]

# Identification NetBIOS modifier selon besoin


workgroup = BACPROSEN01
netbios name = serveurpdc

# Activation du contrleur de domaine


os level = 65
domain logons = yes

# Permet au serveur de fournir la liste des postes du voisinage rseau


domain master = yes
local master = yes

# pour forcer le choix ...


preferred master = yes

# Permet d'activer un serveur wins sur samba pour la resolution nom netbios
wins support = yes
name resolve order = wins host lmhosts bcast
dns proxy = no

# Base de donnees des comptes dont le nom est modifiable


passdb backend = tdbsam:/var/lib/samba/pdcpass.tdb

security = user
encrypt passwords = yes

# Gestion des fichiers logs


log file = /var/log/samba/%m.log
max log size = 1000
log level = 2

# Activation du serveur de temps


time server = yes

# Paramtres utilisateur par dfaut pour samba


logon drive = H:
logon home = \\%L\%U
# logon path = \\%L\%U\profile
# si section profiles alors on peut mettre tous les profiles utilisateurs dans ce
partage :
logon path = \\%L\profiles\%U
66
Support de cours Essaadi Driss Gnu/Linux 2eme Anne (S53-S54)

# le script par dfaut pourra tre celui de l'utilisateur. Il est judicieux de faire
# des appels d'autres fichiers scripts par un "call" dans le .cmd :
logon script = logon.cmd
# logon script = %U.cmd
# est aussi possible pour personnaliser le mappage des ressources

# Gestion des comptes POSIX


add machine script = /usr/sbin/useradd g sambamachines c Machine d /dev/null s /bin/false '%u'
add user script = /usr/sbin/useradd g sambausers c Utilisateur d /dev/null s /bin/false '%u'
add group script = /usr/sbin/groupadd '%g'
add user to group script = /usr/sbin/gpasswd a '%u' '%g'
delete user script = /usr/sbin/userdel r '%u'
delete group script = /usr/sbin/groupdel '%g'
delete user from group script = /usr/sbin/gpasswd d '%u' '%g'
set primary group script = /usr/sbin/usermod g '%g' '%u'

# Impression par CUPS. Paramtres activer et puis se rfrer la section printers


;printing = cups
;printcap name = cups

[homes]
# Partages rpertoires utilisateurs
path = /home/samba/usersbacpro
comment = Repertoire prive
valid users = %S
guest ok = no
writeable = yes
create mode = 0700
directory mode = 2700
browseable = no

# Partage netlogon en lecture seule (service avec fichier de commande .cmd ou .bat)
[netlogon]
path = /home/samba/netlogon
guest ok = no
read only = yes
browseable = no
valid users = @sambausers

# Partage Profiles pour les profils itinrants


[profiles]
path = /home/samba/profiles
guest ok = no
browseable = no
create mask = 0600
directory mask = 0700

# Partage commun a tous les utilisateurs samba (Z:)


[commun]
path = /home/samba/commun
guest ok = no
writeable = yes
browseable = yes
valid users = @sambausers

# Partage spcifique aux courtiers (T:)

67
Support de cours Essaadi Driss Gnu/Linux 2eme Anne (S53-S54)

[courtiers]
path = /home/samba/courtiers
guest ok = no
writeable = yes
browseable = yes
valid users = @courtiers

# Partage d'imprimantes , dcommenter si ncessaire


;[printers]
;comment = toutes les imprimantes
;browseable = no
;path = /var/spool/samba
;printable = yes
;guest ok = no
;read only = yes
;create mask = 0700

68
Support de cours Essaadi Driss Gnu/Linux 2eme Anne (S53-S54)

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.
## 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.
69
Support de cours Essaadi Driss Gnu/Linux 2eme Anne (S53-S54)

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

70

Vous aimerez peut-être aussi