You are on page 1of 9

Tutoriel : Installation dun serveur APACHE

sous DEBIAN
Dans cet exercice nous allons apprendre installer APACHE sous DEBIAN. APACHE est le
serveur WEB le plus utilis et le plus connu pour sa stabilit (surtout le couple apache/linux),
sa parfaite intgration des modules PHP et sa scurit.
Prrequis : Contrairement lautre version de ce tutoriel, nous navons pas besoin
dinfrastructure particulire. Nous allons donc nous consacrer sur une VM Debian en version
7.1. Attention il peut y avoir des diffrences selon les versions.
Tout dabord il faut rgler le serveur DEBIAN en IP fixe. Nous allons donc diter le fichier de
configuration de la carte rseau du serveur :

Ci-dessous un exemple du fichier complter avec vos paramtres :

Il faut galement spcifier les paramtres IP des DNS utiliser en ditant le fichier
resolv.conf :

Ci-dessous un exemple du fichier complter avec vos paramtres :

NB : Dans certaines distributions de DEBIAN et UBUNTU il faut installer le paquet


RESOLV.CONF pour que les paramtres restent aprs chaque redmarrage.

Page 1 sur 9

Pour que les paramtres soient valids il faut redmarrer le dmon rseau :
Ou
NB : il arrive que parfois quil faille redmarrer tout de mme le serveur.
Pour vrifier la configuration IP de votre serveur DEBIAN utiliser la commande suivante :

Vous obtiendrez un rsum de la configuration IP de la machine :

Effectuer les tests ncessaires pour voir que votre serveur communique bien avec lensemble
de votre rseau et Internet.
Avant de passer linstallation dApache il faut dabord vrifier que les paquets sont jour.
Pour cela il faut excuter 2 commandes. La premire permet de mettre jour les paquets via
les FTP de la distribution :

La deuxime commande permet dinstaller les nouveaux paquets :

NB : les mises jour et linstallation des paquets utilisent un fichier o sont rpertoris les FTP
de la distribution. Pour accder ce fichier il faut utiliser la commande suivante
. Il arrive quil faille changer les FTP pour certains paquets
installer.

Page 2 sur 9

Ci-dessous un exemple de fichier sources.list :

NB : on peut voir sur cet exemple que mon serveur utilise les paquets directement du CDROM.
Si je souhaite utiliser plutt Internet il faut que je d-commente les lignes DEB spcifiant une
URL.
Nous pouvons maintenant installer Apache2 :

Une fois linstallation termine le serveur est dj oprationnel. En effet il coute dj sur le
port 80 (http), et on peut trouver une page de test pour vrifier le fonctionnement. Pour
accder cette page, 2 possibilits, soit en local en ouvrant la page http://127.0.0.1, soit
depuis un autre poste (votre hyperviseur ou une autre VM) en ouvrant la page
http://IPDEBIAN :

Page 3 sur 9

Le principe de fonctionnement des sites sur Apache repose sur lutilisation des
VirtualHost . En effet, un VirtualHost est un fichier qui stipule les paramtres dun site
WEB. Par dfaut il y a donc un fichier de configuration pour le site exemple en http.
La plupart des logiciels sous Linux examinent leurs fichiers de configuration au dmarrage.
APACHE n'chappe pas la rgle : ds que l'on modifiera les fichiers de configuration
d'APACHE2, il faudra forcer APACHE les relire :
- soit en redmarrant apache (avec la commande "service apache2 restart").
- soit en rechargeant sa configuration ("service apache2 reload").
Tout point de configuration global au systme (c'est--dire qui n'est pas spcifique un
utilisateur) est stock dans /etc. Plus prcisment, la configuration d'APACHE2 est rassemble
dans /etc/apache2 :
- /etc/apache2/apache2.conf : le "remplaant" de httpd.conf, lu au dmarrage
d'APACHE. Il n'est jamais sens tre modifi. Il inclue notamment les fichiers de
configuration mentionns ci-dessous.
- /etc/apache2/ports.conf : indique le(s) port(s) sur lequel(s) coute APACHE2 (80 pour
http, 443 pour https),
- /etc/apache2/httpd.conf : fichier gnralement vide. Il essentiellement l pour des
raisons historiques et sert de nos jours pour injecter de la configuration personnaliss.
Voyons prsent les quatre sous-rpertoires de /etc/apache2 :
-

/etc/apache2/mods-available/ On y trouve les modules APACHE2 installs, mais pas


forcment utiliss par APACHE2. On trouve pour chaque module un couple de fichier
(.load et .conf) qui explicitent comment apache2 doit charger le module en question.
Ce rpertoire est aliment en installant les paquets "libapache2-mod-...".
/etc/apache2/mods-enabled/ Ce rpertoire contient un ensemble de liens
symboliques qui pointent vers les fichiers ".conf" et ".load" des modules qu'apache2
doit charger son dmarrage. Concrtement, il suffit donc de crer les bons liens
symboliques pour indiquer apache2 quels modules charger, et supprimer les liens
symboliques des modules qu'on ne souhaite pas charger.
/etc/apache2/sites-available/ Ce rpertoire contient des fichiers qui indiquent
chaque site hberg par APACHE2, les fameux VirtualHost . En particulier,
l'arborescence fournit par le serveur apache peut provenir de diffrents endroits. Par
exemple, lorsqu'on installe apache2, le site "default" est configur de sorte mettre
disposition tout ce qui est dans /var/www.
/etc/apache2/sites-enabled/ Sur le mme principe que /etc/apache/mod-enabled, ce
rpertoire contient des liens symboliques qui pointent vers des fichiers de
/etc/apache2/sites-available.

Page 4 sur 9

Par dfaut on a donc un virtualhost nomm default dans le rpertoire sitesavailable , et 000-default dans le rpertoire sites-enabled . Il est conseill de garder
le fichier default tel quel et de copier et renommer vos virtualhost partir de celui-ci.
Pour ce tutoriel tous les fichiers de configuration seront en version default .
Concernant le port 80, le serveur est oprationnel. Les fichiers du site WEB sont hbergs dans
le rpertoire /var/www. Ci-dessous un exemple du virtualhost :

Maintenant nous allons plutt nous attarder sur le port 443(https). En effet il est bien plus
judicieux de scuriser les communications entre le serveur WEB et les clients. Nous allons donc
utiliser le protocole SSL.
Commenons par dsactiver le site en 80. Ce nest pas obligatoire pour lexercice, mais le but
est davoir uniquement une page scurise :

Maintenant il faut redmarrer le service Apache :


NB : le fichier 000-default nexiste donc plus dans le rpertoire sites-enabled .

Page 5 sur 9

Maintenant nous allons stopper Apache pour pouvoir activer le module SSL :

Maintenant nous pouvons activer le module SSL :

Et finalement redmarrer le service :

Nous disposons maintenant dun nouveau virtualhost dans le rpertoire sitesavailable , default-ssl . Le cryptage SSL est de type asynchrone, ce qui veut dire que nous
allons utiliser 2 cls, une cl publique stocke dans un rpertoire particulier et qui sera
distribue tous les clients. Une cl prive qui restera sur le serveur, qui permettra de
dcrypter les messages des clients. Bien entendu, il ne faut jamais divulguer la cl prive.
Le fichier default-ssl , nest pas trs diffrent du fichier default , mais il a des lignes
supplmentaires concernant les certificats SSL :

NB : On peut voir sur mon serveur, que la cl publique nomme certif.crt est stocke dans
le rpertoire /etc/ssl/certs/ , et que la cl prive nomme certif.nopass.key est stocke
dans le rpertoire /etc/ssl/private/ . Ce sont les paramtres par dfaut, il va donc falloir
apprendre gnrer ses propres certificats. Il ne faut pas utiliser les certificats par dfaut.
Nous allons donc gnrer des certificats personnels, et les dposer dans les bons rpertoires,
ceux stipuls dans le fichier vu plus haut ( default-ssl ). ATTENTION les noms que vous
donnez aux certificats sont importants. Ces certificats sont de types auto-signs, cest--dire
quils ne sont pas vrifier par une autorit de certification. Ce genre de certificat est utilis
pendant les tests.

Page 6 sur 9

Il faut maintenant crer la cl prive. Et on copie la cl dans son rpertoire :


openssl genrsa -des3 -out certif.key 1024 (gnration de la cl)
cp certif.key /etc/ssl/private (copie de la cl dans son rpertoire)
NB : la cl est protge par une passphrase , entrer un mot de passe simple pour
commencer, nous le dsactiverons par la suite.
Il faut maintenant effectuer une demande de certificat (que nous validerons nous mme).
openssl req -new -key certif.key -out certif.csr
NB : cette tape il faut absolument crire les bonnes valeurs pour chaque champ demand,
en majuscule de prfrence. Et surtout se souvenir de ce que vous renseignez. Le certificat qui
va tre gnr est comme une carte didentit il faut donc ne pas crire nimporte quoi. Voici
un exemple :

Il faut maintenant crer le certificat auto-sign. Et on le copiera galement dans son


rpertoire.
openssl x509 -req -days 365 -in certif.csr -signkey certif.key -out certif.crt (cration du
certificat)
cp certif.crt /etc/ssl/certs (copie de la cl dans son rpertoire)
NB : Si les noms de vos certificats ne correspondent pas aux noms spcifis dans le fichier
default-ssl , Apache ne marchera plus. Il faut donc donner les bons noms dans le fichier de
configuration.
On peut redmarrer Apache :

Il reste un problme rsoudre, la passphrase . En effet, tant que le serveur tourne il ny


a pas de problme, mais si on doit redmarrer, Apache demandera le mot de passe. Nous
allons donc dsactiver cette demande pour avoir un service Apache plus transparent.

Page 7 sur 9

Placez-vous dans le rpertoire contenant la cl prive :

Noubliez pas dindiquer cette nouvelle cl prive dans la configuration du virtualhost .


Apache ne demandera plus le mot de passe.
Vous pouvez maintenant activer le site default-ssl :

Et redmarrer Apache :

Maintenant nous pouvons accder la page https, soit en local soit distance :

NB : Ce message est tout fait normal car le certificat est auto-sign et le navigateur na pas
la possibilit de le vrifier, donc il protge lutilisateur en cas de PHISING.
Encore une fois le site est hberg dans le rpertoire /var/www, il ne reste plus qu
UPLOADER vos pages dans ce rpertoire.

Page 8 sur 9

Voil pour cet exercice, il convient maintenant dtudier les diffrents modules que lon peut
greffer APACHE. Bien tudier o lon doit stocker les logs du serveur ( prciser dans les
fichiers des htes virtuels) afin de les retrouver pour pouvoir les analyser. Il faut galement
installer un serveur FTP afin de pouvoir mettre jour les pages web du serveur.
La dernire tape est dajouter une authentification notre serveur, afin que seul les
employs de notre entreprise puissent avoir accs notre serveur WEB (cration dune page
HTACCESS/HTPASSWORD ou via lActive Directory).
CET EXERCICE EST MAINTENANT TERMINE.

Page 9 sur 9

You might also like