BTS SIO
DNS, Apache sous Linux Nicolas CAESENS
2014
Sommaire
I.
Introduction Introduction au contexte GSB
II.
p.2
Installation et configuration du DNS Configuration du fichier named.conf
p.3
Configuration du fichier de délégation de zones
p.3
Configuration du fichier de zones inverses
p.4
Test / Vérification
p.4
III. Installation et configuration des sites virtuels Configuration des Virtuals Hosts
p.5-6
Contenu PHP
p.6
Protection de fichier avec .htaccess
p.6-7
Génération d’un certificat SSL
p.7-10
1.
Introduction
Dans notre contexte GSB, il nous a fallu installer et configuré un serveur DNS et également un serveur Web. D’abord nous avons configuré une machine Linux virtuelle qui aura le rôle de serveur DNS primaire. Ensuite nous avons configuré une autre machine Linux virtuelle qui aura le rôle de serveur Web. L’objectif final était que le DNS primaire devait pouvoir effectuer les résolutions de noms sur les sites virtuels, qu’on puisse donc accéder à ses sites via leur nom de domaine et non leurs adresses IP. Nous avons implémenté aux sites virtuels des outils comme : PHP, SSL, protection d’un dossier via .htaccess. Ci-dessous la marche à suivre afin de correctement configurer votre installation.
2.
Installation et configuration du DNS
Le DNS, Domain Name System, est un service permettant d’associer un nom de domaine à une adresse IP. Pour installer notre serveur DNS sous Debian, il faut entrer la commande suivante : apt-get install bind9 Suite à l’installation, les fichiers nécessaires à la configuration de notre serveur DNS se trouve ici : /etc/bind
Il faudra créer/modifier les fichiers suivants :
Named.conf Fichier de délégation de zones (ici : db.pod2.infogest.local) Fichier de zones inverses (ici : db.pod2.infogest.local.inv)
Configuration du fichier named.conf :
Configuration du fichier de délégations de zones :
Configuration du fichier de zones inverses :
Maintenant que tous nos fichiers ont correctement été configurés, on peut redémarrer le service DNS, afin qu’il prenne bien en compte les modifications effectuées : /etc/init.d/bind9 restart On peut également vérifier le bon fonctionnement de notre DNS à l’aide de deux commandes : Cette commande aura pour effet de vérifier la syntaxe de notre fichier named.conf configuré au-dessus. named-checkdconf /etc/bind/named.conf Cette commande sert à vérifier si le DNS effectue correctement ses résolutions de noms. nslookup > nico.pod2.infogest.local
Ceci termine la configuration de notre DNS.
3.
Installation et configuration des sites virtuels
Le logiciel libre Apache HTTP Server (Apache) est un serveur HTTP créé et maintenu au sein de la fondation Apache. C'est le serveur HTTP le plus populaire du World Wide Web. Avant de pouvoir créer nos sites virtuels, il faut tout d’abord installer apache2 avec la commande suivante : apt-get install apache2
Suite à l’installation, les fichiers suivants devraient être installés dans /etc/apache2 :
On peut maintenant débuter la création de nos sites virtuels sous Apache, il faudra pour cela créer des Virtuals Hosts : Pour créer des hôtes virtuels nous aurons besoin du fichier suivant : /etc/apache2/sitesavailable Dans le répertoire /etc/apache2/sites-available, on trouve un fichier par défaut appelé “default”, dont on fera donc une copie de son contenu dans un fichier nommé site1. On rajoute à ce fichier les lignes encadrées en rouges, qui indique le serveur de nom et l’emplacement du fichier de notre site, ici /var/www/site et on remplace à chaque ligne AllowOverride les « None » par « All ».
Maintenant que notre site1 est configuré, il faut l’activer avec la commande suivante : a2ensite site1
On redémarre maintenant Apache pour qu’il prenne en compte notre nouvelle configuration : /etc/init.d/apache2 restart
Nous allons maintenant créer un dossier « site1 » dans /var/www, qui contiendra :
index.html (la page d’accueil en html) php.php (une page, qui avec un script php affiche les infos de la machine) Un dossier qui devra être protégé par htaccess
Il faut donc d’abord installer php 5 avec les commandes suivantes : apt-get install php5-mysql apt-get install php5-gd
Maintenant nous pouvons créer notre fichier php.php, qui contiendra le script montré ci-dessous, cela permettra de voir si celui-ci est bien fonctionnel sur la machine et devrait afficher les différentes informations de la machines.
Maintenant nous allons nous servir des fichiers .htaccess et .htpasswd, qui permettent de restreindre l’accès à une page d’un site avec un login et un mot de passe crypté. Les fichiers .htaccess et .htpasswd devront absolument être dans le dossier du site et plus précisément à l’endroit où se trouve la page que l’on veut protéger.
Nous allons donc commencer par créer le fichier .htaccess :
AuthName : c'est le texte qui invitera l'utilisateur à inscrire son login et son mot de passe. AuthUserFile : c’est le chemin absolu vers le fichier .htpasswd Et maintenant le fichier .htpasswd :
Nous allons maintenant générer un certificat SSL pour sécuriser l’accès à notre site : Un certificat SSL nous permet de protéger notre contenus web lors de la communication de données sensibles (mot de passe, transaction financière) vers d’autres internautes. On installe d’abord le paquet openssl avec la commande : apt-get install openssl
Dans le fichier /etc/apache2/sites-enabled, nous devons indiquer l’emplacement des clées privées/publiques et de demande de certificat :
Pour générer la clé privée, il faut taper la commande suivante et donner un nom au fichier .key : openssl genrsa –out server.key
Pour afficher cette clé privée : less server.key
Pour générer la demande de certificat, il faut utiliser la commande suivante : openssl req -new –key server.key –out server.csr Le fichier .csr contient la clé publique à certifier
Maintenant nous passons à la création du certificat de l’autorité de certification. Pour la création de la clé privée de notre autorité de certification il faut utiliser la commande suivante : openssl genrsa -des3 1024 –out autho.key
A partir de la clé privée, on va créer un certificat x509 pour avoir une durée de validité d’un an autosigné : openssl req –new –x509 –days 365 –key autho.key -out autho.crt
Maintenant il reste à signer le certificat pour cela il faut taper le commande suivante : openssl x509 –req –in server.csr –out server.crt -CA autho.crt –CAkey autho.key\ -CAcreateserial CAserial autho.srl Le certificat signé est le fichier server.crt
Dorénavant lorsque nous tenterons d’accéder à notre site, nous devrions recevoir le message suivant : « Le certificat de sécurité du site n’est pas approuvé ! » Pour que ce message n’apparaisse plus, il faut dans le navigateur, installer le certificat d’autorité.
Ceci termine la configuration de nos sites virtuels.