9
SISR3- Mise à disposition d’une application web sécurisée VIALAR Yoann Page 1 Contexte : Le laboratoire pharmaceutique Galaxy-Swiss Bourdin (GSB) désire mettre à disposition des visiteurs médicaux une application Web de gestion des frais de remboursement. Il souhaite disposer d'une application en ligne, sécurisée, accessible depuis un navigateur par le nom pleinement qualifié gestionfrais.gsb.coop. Cette application nécessite : • un serveur Web sécurisé (HTTPS, SSL/TLS) développé en PHP ; • l'accès à une base de données relationnelle, éventuellement administrable par interface Web ; avec la possibilité pour les deux serveurs d'être sur la même machine physique. L'authentification des visiteurs pour l'accès au contenu est gérée par l'application à travers la base de données. L'entreprise a choisi d'héberger en interne les serveurs exécutant l'application sur un serveur Linux. L'objectif de ce coté labo est de simuler dans l'environnement du laboratoire la mise à disposition de cette application. Afin de mener à bien cette mission, les deux premières parties du TP sont consacrées à la compréhension et à la prise en main du serveur Web Apache2. Vous disposez : • d'une machine virtuelle sur laquelle sont installés le serveur SSH, le serveur de base de données MySQL et le serveur Web Apache2 avec la configuration par défaut ; • d'applications Web déjà installées dont l'interface graphique « phpMyAdmin ». La résolution des noms est prise en charge par un serveur DNS déjà configuré qui a (en interne) autorité sur la zone gsb.coop. Votre serveur fait partie de la zone gsb.coop, il est accessible par son nom pleinement qualifié (par exemple serv1.gsb.coop).

SISR3- Mise à disposition d’une application web …yoannvialar.weebly.com/.../26653623/vialar-web-securise.pdf• d'une mahine virtuelle sur laquelle sont installés le serveur

  • Upload
    vankien

  • View
    214

  • Download
    0

Embed Size (px)

Citation preview

Page 1: SISR3- Mise à disposition d’une application web …yoannvialar.weebly.com/.../26653623/vialar-web-securise.pdf• d'une mahine virtuelle sur laquelle sont installés le serveur

SISR3- Mise à disposition d’une application web sécurisée

VIALAR Yoann Page 1

Contexte :

Le laboratoire pharmaceutique Galaxy-Swiss Bourdin (GSB) désire mettre à disposition des visiteurs

médicaux une application Web de gestion des frais de remboursement.

Il souhaite disposer d'une application en ligne, sécurisée, accessible depuis un navigateur par le nom

pleinement qualifié gestionfrais.gsb.coop.

Cette application nécessite :

• un serveur Web sécurisé (HTTPS, SSL/TLS) développé en PHP ;

• l'accès à une base de données relationnelle, éventuellement administrable par interface Web ; avec la

possibilité pour les deux serveurs d'être sur la même machine physique.

L'authentification des visiteurs pour l'accès au contenu est gérée par l'application à travers la base de

données.

L'entreprise a choisi d'héberger en interne les serveurs exécutant l'application sur un serveur Linux.

L'objectif de ce coté labo est de simuler dans l'environnement du laboratoire la mise à disposition de

cette application.

Afin de mener à bien cette mission, les deux premières parties du TP sont consacrées à la compréhension

et à la prise en main du serveur Web Apache2.

Vous disposez :

• d'une machine virtuelle sur laquelle sont installés le serveur SSH, le serveur de base de données MySQL

et le serveur Web Apache2 avec la configuration par défaut ;

• d'applications Web déjà installées dont l'interface graphique « phpMyAdmin ».

La résolution des noms est prise en charge par un serveur DNS déjà configuré qui a (en interne) autorité

sur la zone gsb.coop.

Votre serveur fait partie de la zone gsb.coop, il est accessible par son nom pleinement qualifié (par

exemple serv1.gsb.coop).

Page 2: SISR3- Mise à disposition d’une application web …yoannvialar.weebly.com/.../26653623/vialar-web-securise.pdf• d'une mahine virtuelle sur laquelle sont installés le serveur

SISR3- Mise à disposition d’une application web sécurisée

VIALAR Yoann Page 2

1. Les principaux paramètres d’exécution du serveur

Selon le schéma d’articulation des applications, expliquez quel est le typer de client serveur :

C’est une architecture 3 tiers

Repérez le numéro du processus père lancé par l’utilisateur « root » :

5291

Le nombre de processus fils lancés par l’utilisateur système « www-data » :

3 processus

Dans le fichier de configuration principale dApache2, quelles sont les valeurs des directives :

User? ${APACHE_RUN_USER}

PidFile? : ${APACHE_PID_FILE}

StartsServer? 5

Dans le fichier «envars » :

Quelle est la valeur de la variable environnement « Apache_Run_User » ? www-data

Quelle est la valeur de la variable environnement « Apache_Pid_File» ?

/var/run/apache2$SUFFIX.pid

Consultez le fichier correspondant à la variable d'environnement « Apache_Pid_File» ; à quoi

correspond le nombre inscrit ?

Le nombre 5291 correspond au numéro du processus lancé par l'utilisateur root

Page 3: SISR3- Mise à disposition d’une application web …yoannvialar.weebly.com/.../26653623/vialar-web-securise.pdf• d'une mahine virtuelle sur laquelle sont installés le serveur

SISR3- Mise à disposition d’une application web sécurisée

VIALAR Yoann Page 3

La directive ServerName :

Lancez la commande qui permet de vérifier la syntaxe apache2ctl configtest. Que renvoie-t-elle

?

Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName.

Syntax OK.

Après avoir créer la directive ServerName dans le fichier /etc/apache2/httpd.conf on saisira:

ServerName: serv1.gsb.coop

Rechargez le fichier de configuration et testez à nouveau la configuration.

Maintenant nous obtenons seulement : Syntax OK

Y-a-t-il une autre possibilité qu'un serveur DNS pour obtenir une résolution de noms ?

Oui en modifiant le fichier hosts

Le port d'écoute:

Quelle est la directive principale qui définit le port d'écoute ?

La directive "Listen".

Si on modifie le port d'écoute en mettant 888 et qu'on essaye d'accéder au serveur on aura un

message d'erreur.

L'URL a saisir pour accéder au serveur Web est : 127.0.0.1

On remettra par la suite le port d'écoute à 80.

Page 4: SISR3- Mise à disposition d’une application web …yoannvialar.weebly.com/.../26653623/vialar-web-securise.pdf• d'une mahine virtuelle sur laquelle sont installés le serveur

SISR3- Mise à disposition d’une application web sécurisée

VIALAR Yoann Page 4

Après avoir redémarrer le serveur et saisi l'URL 127.0.0.1 on obtiendra ce message:

Divers

Citez un module disponible mais non chargé: SSL

2. Page d'accueil et page par défaut

Le répertoire pour accéder aux fichiers web qui seront sur le site est : /var/www

Le nom du fichier est: index.html

Si on renomme le fichier index par accueil et qu'on relance l'url, on n'accède plus à cette page par

l'URL mais on a par défaut le contenu du répertoire.

Comment peut-on procéder pour obtenir quand même la page demandée ?

En saisissant directement dans l'URL l'adresse complète de la page :

http://nom_dns_du_serveur/accueil.html

Quelle est l'option qui permet de rendre visible aux utilisateurs le contenu d'un répertoire ?

Annihilez l'action de cette option sur le dossier /var/www/.

L’option est Indexes.

Vérifiez vos modifications avec l'URL http://nom_dns_du_serveur. Quel est le message d'erreur

?

Le message d’erreur est « Forbidden ».

Page 5: SISR3- Mise à disposition d’une application web …yoannvialar.weebly.com/.../26653623/vialar-web-securise.pdf• d'une mahine virtuelle sur laquelle sont installés le serveur

SISR3- Mise à disposition d’une application web sécurisée

VIALAR Yoann Page 5

3. Les alias Les pages web de « phpMyAdmin » se trouvent-elles dans le répertoire/var/www/phpmyadmin/ ?

Non.

Consultez ce dernier fichier et déterminez quelle est la directive permettant d’accéder à

l’application « phpmyadmin » via l’URL : http://nom_dns_du_serveur/phpmyadmin

Alias /phpmyadmin /usr/share/phpmyadmin

4. Configuration d’un hôte virtuel et mise à disposition de l’application Web

Démarche

Récupérez directement l'archive contenant les fichiers de l'application avec la commande« wget »

à partir du serveur.

Après décompression avec l'utilitaire « unzip », copiez les fichiers de l'application (dossier

appliFrais compris) dans un dossier /var/www/appliGSB (ce dernier doit être créé préalablement).

Quelle est la commande permettant d'attribuer les droits corrects sur le répertoire «appliFrais »

?

chown -R www-data /var/www/appliGSB/appliFrais

Selon la valeur des paramètres de la fonction de connexion à la base de données de

l'application, créez l'utilisateur mysql requis et accordez-lui les droits nécessaires et suffisant

Vérifiez que vous pouvez accéder à l'application via l'URL « classique ».

Vérifiez que vous pouvez vous authentifier pour accéder au contenu de l'application à partir

d'un login et d'un mot de passe contenu dans la table « visiteurs ».

Configurez le site virtuel de manière à y accéder à partir de l'URL

http://gestionfraisServ{numServeur}.gsb.coop/cAccueil.php ; cette configuration se fera dans le

fichier siteAppliFrais que vous créerez dans /etc/apache2/sites-available/

ServerName Serv1.gsb.coop

Page 6: SISR3- Mise à disposition d’une application web …yoannvialar.weebly.com/.../26653623/vialar-web-securise.pdf• d'une mahine virtuelle sur laquelle sont installés le serveur

SISR3- Mise à disposition d’une application web sécurisée

VIALAR Yoann Page 6

6. L’accès sécurisé à l’application Web

Vérifiez que les paquetages « openssl » et « libssl-dev » sont installés

1. Le rôle de l’autorité de certification

Changez la valeur de la variable dir dans le fichier /etc/ssl/openssl.conf

Dans la variable dir on mettre à la place : « /etc/ssl/privates ».

Créez les dossiers nécessaires dans le répertoire /etc (qui accueilleront les demandes de

certificats).

Créez un fichier vide index.txt et un fichier serial avec "01" écrit dedans.

Créez la clé privée de l’autorité de certification (attention de ne pas oublier votre pass phrase)

Consultez (uniquement en lecture) avec un éditeur de texte le fichier produit (le format « PEM »

permet d'obtenir un fichier constitué de caractères lisibles) ; relevez la première et la dernière

ligne du fichier

BEGIN RSA PRIVATE KEY END RSA PRIVATE KEY

Protégez la clé privée de l'autorité de certification en accordant uniquement des droits de

lecture à l'utilisateur « root ».

chmod 400 private/cakey.pem

Créez le certificat de l'autorité de certification auto-signé (valide pour 5 ans soit 1825 jours et

nommé cacert.pem et consultez-le.

La commande à saisir est : openssl req -new -x509 -days 1825 -key private/cakey.pem -out

cacert.pem

Générez le certificat du serveur Web que vous nommerez servgsbcert.pem

La commande à saisir sera : openssl ca -policy policy_anything -out certs/servgsbcert.pem –

infiles demcerts/servgsbcsr.pem

Page 7: SISR3- Mise à disposition d’une application web …yoannvialar.weebly.com/.../26653623/vialar-web-securise.pdf• d'une mahine virtuelle sur laquelle sont installés le serveur

SISR3- Mise à disposition d’une application web sécurisée

VIALAR Yoann Page 7

Quelle est la clé privée utilisée pour signer le certificat ?

La clé privée est : cakey.pem

Commande la commande openssl "sait" laquelle utiliser ?

Elle utilise le fichier de configuration dans lequel le chemin d'accès au fichier a été défini.

Quelle est la valeur du numéro de série du certificat ?

La valeur du numéro de série est 1.

Quelle est la durée de validité du certificat ?

Ici le certificat est disponible pour 365 jours.

Relevez et expliquez le contenu des fichiers index.txt et serial

Contenu du fichier index:

Page 8: SISR3- Mise à disposition d’une application web …yoannvialar.weebly.com/.../26653623/vialar-web-securise.pdf• d'une mahine virtuelle sur laquelle sont installés le serveur

SISR3- Mise à disposition d’une application web sécurisée

VIALAR Yoann Page 8

Fichier serial:

Il s'agit de la référence du certificat .

02 : c'est le numéro de série du prochain certificat.

Quelle a été l'action précise de la dernière phrase affichée "Data Base Updated"?

Cela signifie que la base de données a été mise à jour et les fichiers serial et index aussi.

6.2 Le rôle de la société GSB

Changez la valeur de la variable "dir" dans le fichier /etc/ssl/openssl.conf

Créez les dossiers strictement nécessaires dans le répertoire /etc (qui accueillera les demandes

et les certificats envoyés par l'autorité de certification

Générez la clé privée du serveur Web d'une longueur de 4096 bits dans un fichier

servgsbkey.pem

On obtiendra alors cet écran:

Générez la demande de certificat et relevez la valeur de votre "Common Name"

Page 9: SISR3- Mise à disposition d’une application web …yoannvialar.weebly.com/.../26653623/vialar-web-securise.pdf• d'une mahine virtuelle sur laquelle sont installés le serveur

SISR3- Mise à disposition d’une application web sécurisée

VIALAR Yoann Page 9

--> Première ligne

--> Dernière ligne