TP HTTP

Transcription

TP HTTP
Université Pierre Mendès France
U.F.R. Sciences de l’Homme et de la Société
Master IC²A
TP HTTP
TP HTTP – Master IC2A – 2015/2016 – Christian Bulfone / Jean-Michel Adam
1/11
Câblage et configuration du réseau
1) Lancez Marionnet et créez le réseau tel que représenté sur le schéma ci-dessous.
Vous utiliserez trois hôtes ns, m1 et srv configurés respectivement avec les adresses IP
192.168.1.1, 192.168.1.10 et 192.168.1.100. La machine ns sera le serveur de noms du domaine
imss.org, la machine srv le serveur Web.
2) Démarrez et configurez les adresses IP des trois hôtes. Testez le bon fonctionnement avec la
commande ping.
TP HTTP – Master IC2A – 2015/2016 – Christian Bulfone / Jean-Michel Adam
2/11
Configuration du service DNS
1) Sur ns, éditez le fichier de configuration du service DNS (bind) /etc/bind/named.conf et
ajoutez la gestion des deux zones :
• imss.org pour la résolution directe
• 1.168.192.in-addr.arpa pour résolution inverse
zone "imss.org" {
type master;
file "/etc/bind/db.imss.org";
};
zone "1.168.192.in-addr.arpa" {
type master;
file "/etc/bind/db.imss.org.rev";
};
2) Créez le fichier /etc/bind/db.imss.org gérant la zone directe. Utilisez comme modèle le
fichier /etc/bind/db.empty (cp /etc/bind/db.empty /etc/bind/db.imss.org)
Ajoutez les enregistrements de type A ainsi qu’un enregistrement de type CNAME pour le
serveur Web.
; BIND reverse data file for empty rfc1918 zone
;
; DO NOT EDIT THIS FILE - it is used for multiple zones.
; Instead, copy it, edit named.conf, and use that copy.
;
$TTL
86400
@
IN
SOA
ns. root.ns. (
2016030201
; Serial
604800
; Refresh
86400
; Retry
2419200
; Expire
86400 )
; Negative Cache TTL
;
@
IN
NS
ns.imss.org.
ns
IN
A
192.168.1.1
m1
IN
A
192.168.1.10
www
IN
CNAME
srv.imss.org.
srv
IN
A
192.168.1.100
Le numéro de série (champ Serial) est de la forme AAAAMMJJNN. A chaque modification, le
numéro de série doit être mis à jour (numéro de révision NN incrémenté dans la journée).
TP HTTP – Master IC2A – 2015/2016 – Christian Bulfone / Jean-Michel Adam
3/11
3) Créez le fichier /etc/bind/db.imss.org.rev gérant la zone reverse. Utilisez également
comme modèle le fichier /etc/bind/db.empty
; BIND reverse data file for empty rfc1918 zone
;
; DO NOT EDIT THIS FILE - it is used for multiple zones.
; Instead, copy it, edit named.conf, and use that copy.
;
$TTL
86400
@
IN
SOA
ns. root.ns. (
2016030201
; Serial
604800
; Refresh
86400
; Retry
2419200
; Expire
86400 )
; Negative Cache TTL
;
@
IN
NS
ns.imss.org.
1
IN
PTR
ns.imss.org.
10
IN
PTR
m1.imss.org.
100
IN
PTR
srv.imss.org.
4) Lancez le service DNS avec la commande
/etc/init.d/bind9 start
5) Modifiez le fichier /etc/resolv.conf de ns, m1 et srv pour que le domaine internet et de
recherche soit imss.org et le serveur de nom l’adresse IP de ns.Vérifiez le fonctionnement de la
résolution de nom directe et inverse avec les commandes
nslookup m1 et nslookup 192.168.1.10
nslookup www et ping www
6) Editez le fichier /etc/hosts de srv, supprimez toute ligne faisant référence à 127.0.0.1
srv et ajoutez la ligne
192.168.1.100
srv.imss.org
www
TP HTTP – Master IC2A – 2015/2016 – Christian Bulfone / Jean-Michel Adam
4/11
Configuration de base du service HTTP
Le service HTTP est géré par le logiciel Apache. Ce dernier est conçu pour prendre en charge de
nombreux modules lui donnant des fonctionnalités supplémentaires. Il est recommandé de n’activer
que les modules réellement utiles.
L’ensemble des modules disponibles et leur fichier de configuration est stockée dans le répertoire
/etc/apache2/mods-available. Un module peut être activé ou désactivé à l’aide
respectivement des commandes a2enmod et a2dismod. Lorsqu’un module est actif, un lien
pointant sur le module est présent dans le répertoire /etc/apache2/mods-enabled
Le paramétrage du serveur repose sur une hiérarchie de fichiers de configuration, qui peuvent être
gérés indépendamment. Il est ainsi possible de configurer plusieurs sites qui seront gérés par le
même serveur. L’ensemble des configurations des sites est stockée dans le répertoire
/etc/apache2/sites-available. Tout comme un module, un site peut être activé ou
« désactivé » respectivement à l’aide des commandes a2ensite et a2dissite. Lorsqu’un site est
actif, un lien pointant sur le fichier de site est présent dans le répertoire /etc/apache2/sitesenabled
1) Sur srv, éditez le fichier de configuration /etc/apache2/sites-available/default
NameVirtualHost www.imss.org:80
<VirtualHost www.imss.org:80>
[...]
</VirtualHost>
2) Démarrez le service avec la commande
/etc/init.d/apache2 start
3) Editez le fichier /var/www/index.html
<html><body><h1>Bienvenue sur www.imss.org en HTTP</h1></body></html>
4) Sur m1, lancez le navigateur (iceweasel), tapez l’URL http://www.imss.org et vérifiez que
vous obtenez bien votre message d’accueil.
Utilisation du module userdir
Le module userdir permet de définir sous Apache une URL de la forme http://site/~utilisateur
permettant d’accéder aux pages personnelles des utilisateurs. La partie utilisateur de l’adresse peut
désigner le login mais plus souvent une chaîne de la forme prenom.nom.
1) Créez un répertoire et l’arborescence qui contiendra les pages personnelles d’un utilisateur
mkdir –p /data/homepages/prenom.nom
TP HTTP – Master IC2A – 2015/2016 – Christian Bulfone / Jean-Michel Adam
5/11
2) Créez un fichier index.html à l’intérieur du répertoire
<html><body><h1>Bienvenue sur ma page perso</h1></body></html>
3) Editez le fichier de configuration du module
/etc/apache2/mods-available/userdir.conf
<IfModule mod_userdir.c>
UserDir /data/homepages/*
UserDir disabled root
<Directory /data/homepages/*>
AllowOverride FileInfo AuthConfig Limit
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
</Directory>
</IfModule>
4) Activez le module avec la commande
a2enmod userdir
et rechargez la configuration du serveur Web
/etc/init.d/apache2 reload
5) Testez le bon fonctionnement depuis m1, en utilisant l’URL
http://www.imss.org/~prenom.nom
TP HTTP – Master IC2A – 2015/2016 – Christian Bulfone / Jean-Michel Adam
6/11
Configuration du service HTTPS
L’activation du service HTTPS nécessite la création et l’installation d’un certificat serveur. Ce
certificat sera généré avec les outils openssl, et sera auto-signé (c’est-à-dire qu’il ne sera pas signé
par un tiers de confiance comme les certificats des serveurs des sites institutionnels) ce qui
entrainera l’affichage d’une alerte de sécurité au niveau du navigateur. Le certificat et la clé de
chiffrement associée seront stockés dans le répertoire /etc/ssl/certs
1) Allez dans le répertoire /etc/ssl/certs et générez la clé de chiffrement du serveur avec la
commande
openssl genrsa -out www.imss.org.key 1024
2) Générez un certificat d’une durée d’un an à l’aide de la clé de chiffrement précédemment créée
openssl req -new
www.imss.org.crt
-x509
-days
365
-key
www.imss.org.key
-out
Répondez aux questions posées en indiquant les informations suivantes
You are about to be asked to enter information that will be
incorporated into your certificate request.
What you are about to enter is what is called a Distinguished Name or
a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
----Country Name (2 letter code) [AU]:FR
State or Province Name (full name) [Some-State]:Isere
Locality Name (eg, city) []:Grenoble
Organization Name (eg, company) [Internet Widgits Pty Ltd]:IMSS
Organizational Unit Name (eg, section) []:BSHM
Common Name (eg, YOUR name) []:www.imss.org
Email Address []:[email protected]
3) Vérifiez le certificat créé, notamment la date de validité
openssl x509 -in www.imss.org.crt -noout
-text
4) Activez le module SSL dans la configuration d’Apache
a2enmod ssl
/etc/init.d/apache2 reload
5) Créez un « fichier de site » nommé default-ssl dans /etc/apache2/sites-available
pour la partie sécurisée de votre serveur Web, en vous basant sur le fichier de site par défaut.
cd /etc/apache2/sites-available
cp default default-ssl
TP HTTP – Master IC2A – 2015/2016 – Christian Bulfone / Jean-Michel Adam
7/11
6) Editez le fichier de site sécurisé en spécifiant la directive DocumentRoot (chemin racine de la
partie sécurisée du site) et les directives SSLEngine, SSLProtocol, SSLCertificateFile,
SSLCertificateKeyFile et SSLVerifyClient.
NameVirtualHost www.imss.org:443
<VirtualHost www.imss.org:443>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/secure
SSLEngine on
SSLProtocol All
SSLCertificateFile
/etc/ssl/certs/www.imss.org.crt
SSLCertificateKeyFile /etc/ssl/certs/www.imss.org.key
SSLVerifyClient none
[...]
</VirtualHost>
7) Activez le site « default-ssl » avec les commandes
a2ensite default-ssl
/etc/init.d/apache2 reload
Vérifiez qu’a bien été créé un lien « default-ssl » dans /etc/apache2/sites-enabled
8) Créez le répertoire /var/www/secure ainsi qu’un fichier index.html à l’intérieur de celui-ci
<html><body><h1>Bienvenue sur www.imss.org en
HTTPS</h1></body></html>
9) Testez le fonctionnement depuis m1, en utilisant l’URL https://www.imss.org
TP HTTP – Master IC2A – 2015/2016 – Christian Bulfone / Jean-Michel Adam
8/11
Configuration avancé du service HTTP
Utilisation des hôtes virtuels
Le serveur Apache est capable de gérer simultanément plusieurs arborescences Web grâce à la
notion d'hôtes virtuels (VirtualHost). Les hôtes virtuels peuvent être basés sur le nom ou l’adresse
IP. La méthode basée sur le nom est la plus utilisée. Il s’agit dans ce cas d'associer plusieurs noms
DNS à une seule adresse IP.
1) Créez un nouveau domaine nommé imss.fr sur ns.imss.org
zone "imss.org" {
type master;
file "/etc/bind/db.imss.org";
};
zone "imss.fr" {
type master;
file "/etc/bind/db.imss.fr";
};
zone "1.168.192.in-addr.arpa" {
type master;
file "/etc/bind/db.imss.org.rev";
};
Créez le fichier de la zone directe db.imss.fr et ajoutez un enregistrement de type CNAME
pour www.imss.fr
; BIND reverse data file for empty rfc1918 zone
;
; DO NOT EDIT THIS FILE - it is used for multiple zones.
; Instead, copy it, edit named.conf, and use that copy.
;
$TTL
86400
@
IN
SOA
ns. root.ns. (
2013031401
; Serial
604800
; Refresh
86400
; Retry
2419200
; Expire
86400 )
; Negative Cache TTL
;
@
IN
NS
ns.imss.org.
ns
IN
A
192.168.1.1
www
IN
CNAME
srv.imss.org.
Redémarrez le service DNS
/etc/init.d/bind9 restart
TP HTTP – Master IC2A – 2015/2016 – Christian Bulfone / Jean-Michel Adam
9/11
2) Testez le bon fonctionnement de la résolution de noms
ns# nslookup www
Server:
192.168.1.1
Address:
192.168.1.1#53
www.imss.org
canonical name = srv.imss.org.
Name:
srv.imss.org
Address: 192.168.1.100
ns# nslookup www.imss.fr
Server:
192.168.1.1
Address:
192.168.1.1#53
www.imss.fr
canonical name = srv.imss.org.
Name:
srv.imss.org
Address: 192.168.1.100
3) Créez le fichier de site /etc/apache2/sites-available/imss.fr à partir du site
default
Modifiez les directives DocumentRoot et Directory pour pointer sur /var/www/fr
<VirtualHost www.imss.fr:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/fr
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/fr>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
[...]
</VirtualHost>
5) Activez le site « imss.fr » avec la commande
a2ensite imss.fr
puis rechargez la configuration d’Apache avec la commande
/etc/init.d/apache2 reload
6) Créez le répertoire /var/www/fr ainsi qu’un fichier index.html à l’intérieur de celui-ci
<html><body><h1>Bienvenue sur www.imss.fr en HTTP</h1></body></html>
7) Sur m1, dans le navigateur (iceweasel), tapez l’URL http://www.imss.fr et vérifiez que
vous obtenez bien votre message d’accueil.
TP HTTP – Master IC2A – 2015/2016 – Christian Bulfone / Jean-Michel Adam
10/11
Réécriture d’URL
1) Créez un formulaire dans le fichier /var/www/secure/login.html
2) Essayez de charger votre formulaire en utilisant l’URL http://www.imss.org/login.html.
Que constatez-vous ?
3) Editez le fichier de site /etc/apache2/sites-available/default et ajoutez les lignes
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^/login.html https://%{SERVER_NAME}/login.html [R,L]
</IfModule>
</VirtualHost>
4) Activez le module de réécriture d’URL « rewrite »
a2enmod rewrite
/etc/init.d/apache2 reload
5) Tapez dans le navigateur de m1, l’URL http://www.imss.org/login.html. Que
constatez-vous à présent ? Comment interprétez-vous la règle de réécriture ?
Répertoires protégés
1) Editez le fichier de site « imss.fr » /etc/apache2/sites-available/imss.fr et
remplacez la directive AllowOverride None par AllowOverride AuthConfig
<Directory /var/www/fr>
Options Indexes FollowSymLinks MultiViews
AllowOverride AuthConfig
Order allow,deny
allow from all
</Directory>
2) Rechargez la configuration d’Apache avec la commande
/etc/init.d/apache2 reload
3) Créez le fichier /var/www/fr/.htaccess
AuthType Basic
AuthName "Acces restreint"
AuthUserFile /var/www/fr/.htpasswd
<LIMIT GET POST>
require valid-user
</LIMIT>
4) Définissez un utilisateur (bob) et un mot de passe qui seront stockés dans le fichier
/var/www/fr/.htpasswd à l’aide de la commande
htpasswd -c /var/www/fr/.htpasswd bob
5) Testez l’accès protégé en utilisant l’URL http://www.imss.fr. Une boîte de dialogue vous
demandant un nom d’utilisateur (bob) et un mot de passe devrait à présent s’afficher à l’écran.
TP HTTP – Master IC2A – 2015/2016 – Christian Bulfone / Jean-Michel Adam
11/11

Documents pareils

A6 - Apache

A6 - Apache Section de configuration pour un dossier Options du dossier : Indexes : liste des dossiers/fichiers en cas d’absence de fichier index FollowSymLinks : le serveur suit les liens symboliques AllowOve...

Plus en détail

TP: Sécurisation d`un serveur WEB

TP: Sécurisation d`un serveur WEB certificat garantissant, auprès du client, l'authenticité de la clé publique du serveur. Dans la machine serveur, a. Activer le module SSL à travers la commande #a2enmod ssl et redémarrer le servic...

Plus en détail

apache2 : serveur Web multi-site - Debian

apache2 : serveur Web multi-site - Debian cp /etc/apache2/sites-avalaible/default /etc/apache2/sites-avalaible/site-1 cp /etc/apache2/sites-avalaible/default /etc/apache2/sites-avalaible/site-2 Pour Apache2.4 dans Jessie cp /etc/apache2/si...

Plus en détail