serveur web sécurisé - … · e 1 principales fonctionnalités le serveur web est un serveur http...

16
01/01/2014 Serveur Web Sécurisé Installer un serveur sécurisé avec protocole SSL MAESTRE Anthony CFA ROBERT SCHUMAN

Upload: phungkiet

Post on 10-Sep-2018

237 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Serveur Web Sécurisé - … · e 1 Principales fonctionnalités Le serveur web est un serveur HTTP qui reçoit des requêtes et y répond. Il est constamment onneté à Intenet et

01/01/2014

Serveur Web Sécurisé Installer un serveur sécurisé avec

protocole SSL

MAESTRE Anthony CFA ROBERT SCHUMAN

Page 2: Serveur Web Sécurisé - … · e 1 Principales fonctionnalités Le serveur web est un serveur HTTP qui reçoit des requêtes et y répond. Il est constamment onneté à Intenet et

Pag

e1

Principales fonctionnalités

Le serveur web est un serveur HTTP qui reçoit des requêtes et y répond. Il est constamment

connecté à Internet et n’importe quel ordinateur connecté à l'Internet peut envoyer une

requête au serveur web et lui demander de lui transmettre une page html et tous les éléments

qui y sont indiqués (images, ...)

C’est un ordinateur disposant d'un logiciel spécifique qui lui permet d'accepter des demandes

d'ordinateurs clients et de renvoyer des réponses à ces demandes. Un serveur Web permet de

partager des informations via Internet ou via des réseaux intranet et extranet.

Pour fonctionner correctement, le serveur web a besoin des paquets suivants :

Apache : c’est le serveur web le plus répandu sur Internet. Il s'agit d'une application sur les

systèmes d'exploitation de type Unix. Son rôle est d'écouter les requêtes émises par les

navigateurs (qui demandent des pages web), de chercher la page demandée et de la renvoyer.

PHP : c’est un langage de script. Il permet, de décrire dans une page web, un affichage

dynamique d'information, c'est-à-dire que le texte affiché peut dépendre de variables. Nous

avons par exemple la possibilité d'afficher dans une page renvoyée au navigateur, la date du

jour. Les instructions PHP sont généralement contenues dans des fichiers d'extension php. Ces

fichiers peuvent contenir du HTML, entremêlé avec le code PHP. Quand un navigateur demande

un tel fichier, le serveur Apache exécute les instructions PHP, qui produisent une page HTML.

Une fois la page HTML générée, le serveur la renvoie au navigateur, qui ne voit qu'une page

HTML.

MySQL : c’est un système de gestion de base de données. Son rôle est de stocker les données,

sous forme de tables, et de permettre la manipulation de ces données à travers le langage de

requête SQL

Description:

Caractériser un service et le serveur associé

Exploiter les fonctions de base d’un langage de commandes.

Installer, configurer et administrer un service

Gérer les habilitations d’accès aux ressources d'un serveur et d’un service

Mettre en œuvre un protocole sécurisé associé à un service

Contexte:

Ce tp a été effectué dans le cadre scolaire, en autonomie.

Page 3: Serveur Web Sécurisé - … · e 1 Principales fonctionnalités Le serveur web est un serveur HTTP qui reçoit des requêtes et y répond. Il est constamment onneté à Intenet et

Pag

e2

Activités:

Ce tp permet de valider les compétences suivantes :

SISR3 – Exploitation des services

Ce module permet de construire les savoirs et savoir-faire liés à l'exploitation des services.

Un service est entendu ici comme le résultat d’une action qui répond à un besoin. Il est mis en œuvre

par des composants logiciels ou matériels.

L'exploitation des services implique de gérer leur qualité, d'assurer leur continuité et leur sécurité. Elle

participe à la détection des problèmes et peut être à l’origine d’une demande de changement.

Pré requis : Modules SI1, SI2, SI3, SI4, SISR1, SISR2

Activités supports de l’acquisition des compétences

D1.1 - Analyse de la demande

A1.1.1 Analyse du cahier des charges d'un service à produire

A1.1.3 Étude des exigences liées à la qualité attendue d'un service D1.2 - Choix d’une solution

D1.3 - Mise en production d'un service

A1.3.2 Définition des éléments nécessaires à la continuité d'un service

A1.3.3 Accompagnement de la mise en place d'un nouveau service D2.1 - Exploitation des services

A2.1.2 Évaluation et maintien de la qualité de service D2.2 - Gestion des incidents et des demandes d'assistance

A2.2.3 Réponse à une interruption de service D2.3 - Gestion des problèmes et des changements

D3.1 - Conception d'une solution d'infrastructure

A3.1.1 Proposition d'une solution d'infrastructure

A3.1.3 Prise en compte du niveau de sécurité nécessaire à une infrastructure D3.2 - Installation d’une solution d’infrastructure

D3.3 - Administration et supervision d'une infrastructure

A3.3.1 Administration sur site ou à distance des éléments d'un réseau, de serveurs, de services et d'équipements terminaux

A3.3.2 Planification des sauvegardes et gestion des restaurations

A3.3.3 Gestion des identités et des habilitations

A3.3.5 Gestion des indicateurs et des fichiers d'activité D5.1 - Gestion des configurations

A5.1.2 Recueil d'informations sur une configuration et ses éléments

Page 4: Serveur Web Sécurisé - … · e 1 Principales fonctionnalités Le serveur web est un serveur HTTP qui reçoit des requêtes et y répond. Il est constamment onneté à Intenet et

Pag

e3

A5.1.4 Étude de propositions de contrat de service (client, fournisseur) D5.2 - Gestion des compétences

Savoir-faire

Caractériser les éléments nécessaires à la qualité, à la continuité et à la sécurité d'un service

Installer et configurer les éléments nécessaires à la qualité et à la continuité du service

Sécuriser un service

Administrer un service

Contrôler et améliorer les performances d’un service

Analyser le contenu des fichiers d'activité, d'audit et les indicateurs de métrologie

Assurer la mise à jour d’un service

Valider et documenter la qualité, la continuité et la sécurité d'un service

Savoirs associés

Qualité, continuité et sécurité de service, méthodes, technologies, techniques normes et standards associés

Contrat de service

Plan de secours informatique

Contenu

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

Vérifiez que les serveurs de base de données et Web sont installés et

opérationnels. 4

Selon le schéma d'articulation des applications, expliquez quel est le type de

client-serveur. 5

Processus et variables 5

À partir de la liste des processus actifs d'Apache (commande ps -ef | grep apache) : 5

➢ Repérez le numéro du processus père lancé par l'utilisateur « root ». 5

➢ Le nombre de processus fils lancés par l'utilisateur système « www-data ». 5

Dans le fichier de configuration principale d'Apache2, quelles sont les valeurs des

directives : 6

➢ User ? 6

➢ PidFile ? 6

➢ StartsServers (du module « mpm_perfork_module ») ? 6

Dans le fichier « envvars » : 6

➢ Quelle est la valeur de la variable d'environnement « APACHE_RUN_USER » ? 6

➢ Quelle est la valeur de la variable d'environnement « APACHE_PID_FILE » ? 7

Page 5: Serveur Web Sécurisé - … · e 1 Principales fonctionnalités Le serveur web est un serveur HTTP qui reçoit des requêtes et y répond. Il est constamment onneté à Intenet et

Pag

e4

➢ Consultez le fichier correspondant à la variable d'environnement

«APACHE_PID_FILE » à quoi correspond le nombre inscrit ? 7

La directive « ServerName » définit le nom d'hôte du serveur 7

Lancez la commande qui permet de vérifier la syntaxe apache2ctl configtest. Que

renvoie-t-elle ? 7

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

nom ? 8

Déroulement de la séquence :

Les principaux paramètres d'exécution du serveur :

Vérifiez que les serveurs de base de données et Web sont installés et opérationnels.

Pour vérifier que le serveur Web est bien lancé, il faut taper la commande :

/etc/init.d/apache2 start

Pour vérifier si le packet Mysql est installé, il faut taper la commande :

Dpkg –l | grep mysql-server

Et voici la commande pour vérifier si Mysql est lancé :

Page 6: Serveur Web Sécurisé - … · e 1 Principales fonctionnalités Le serveur web est un serveur HTTP qui reçoit des requêtes et y répond. Il est constamment onneté à Intenet et

Pag

e5

Selon le schéma d'articulation des applications, expliquez quel est le type de client-serveur.

C’est une architecture à 3 niveaux car on un client demandeur de ressources, un serveur

d’application Apache2 et un serveur web Mysql.

Processus et variables

À partir de la liste des processus actifs d'Apache (commande ps -ef | grep apache) :

➢ Repérez le numéro du processus père lancé par l'utilisateur « root ».

Pour le repérer le numéro du processus, il faut taper la commande :

pc –ef | grep apache

Son numéro est : 2560

➢ Le nombre de processus fils lancés par l'utilisateur système « www-data ».

Pour connaitre le nombre de processus fils lancés par l’utilisateur, il faut taper la commande :

ps –ef | grep www-data

Page 7: Serveur Web Sécurisé - … · e 1 Principales fonctionnalités Le serveur web est un serveur HTTP qui reçoit des requêtes et y répond. Il est constamment onneté à Intenet et

Pag

e6

Nous avons ici 5 processus fils lancés

Dans le fichier de configuration principale d'Apache2, quelles sont les valeurs des directives :

Pour ouvrir le fichier de configuration d’apache2, il faut taper la commande :

vi /etc/apache2/apache2.conf

➢ User ?

➢ PidFile ?

➢ StartsServers (du module « mpm_perfork_module ») ?

Dans le fichier « envvars » :

Pour ouvrir le fichier envvars, il faut taper la commande :

vi /etc/apache2/envvars

➢ Quelle est la valeur de la variable d'environnement « APACHE_RUN_USER » ?

Page 8: Serveur Web Sécurisé - … · e 1 Principales fonctionnalités Le serveur web est un serveur HTTP qui reçoit des requêtes et y répond. Il est constamment onneté à Intenet et

Pag

e7

➢ Quelle est la valeur de la variable d'environnement « APACHE_PID_FILE » ?

2560

➢ Consultez le fichier correspondant à la variable d'environnement «APACHE_PID_FILE » à

quoi correspond le nombre inscrit ?

Pour connaitre à quoi correspond cette variable, il faut taper la commande :

vi /var/run/apache2$SUFFIX.pid

Avec le code 2560, on remarque que celui-ci correspond à la valeur du processus fils « root »

La directive ServerName

La directive « ServerName » définit le nom d'hôte du serveur

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

elle ?

Elle renvoie que la Syntaxe est OK

Page 9: Serveur Web Sécurisé - … · e 1 Principales fonctionnalités Le serveur web est un serveur HTTP qui reçoit des requêtes et y répond. Il est constamment onneté à Intenet et

Pag

e8

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

Oui grâce au fichier etc/host

Le port d'écoute

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

Page 10: Serveur Web Sécurisé - … · e 1 Principales fonctionnalités Le serveur web est un serveur HTTP qui reçoit des requêtes et y répond. Il est constamment onneté à Intenet et

Pag

e9

Création de la résolution inverse, déclaration de zone

Modification du fichier db.sisr pour la recherche sur les noms test1 et test2

Création des fichiers de zone

Page 11: Serveur Web Sécurisé - … · e 1 Principales fonctionnalités Le serveur web est un serveur HTTP qui reçoit des requêtes et y répond. Il est constamment onneté à Intenet et

Pag

e10

Création de zone inverse :

Pour redémarrer le DNS il faut taper /etc/init.d/bind9 restart

Puis, nous vérifions son bon fonctionnement via la commande ci-dessous :

Nslookup test1.sisr, test2.sisr

Nslookup 192.168.0.1

Page 12: Serveur Web Sécurisé - … · e 1 Principales fonctionnalités Le serveur web est un serveur HTTP qui reçoit des requêtes et y répond. Il est constamment onneté à Intenet et

Pag

e11

Nous constatons que la résolution de nom et la résolution inverse s’effectuent correctement

Pour monter un lecteur réseau pour linux sous Virtual box

Attention : le nom de serveur (ServerName) et la racine web (DocumentRoot) doivent

exactement correspondre respectivement au nom sous lequel le serveur virtuel sera

nommé dans les URL clientes et au chemin du répertoire d'accueil des documents du

site avec les noms de dossiers sensibles à la casse.

Page 13: Serveur Web Sécurisé - … · e 1 Principales fonctionnalités Le serveur web est un serveur HTTP qui reçoit des requêtes et y répond. Il est constamment onneté à Intenet et

Pag

e12

CONNEXION ET ECHANGES CRYPTES AVEC SSL/TLS

Protection des échanges au-delà du réseau local

La mise en place d'un Firewall permet de protéger le contenu présent à l'intérieur d'un réseau et

d'empêcher la fuite de données vers l'extérieur.

Mais pour les échanges autorisés, l'information est diffusée au-delà de notre sphère de contrôle

et il faut ajouter une capsule de protection autour de l'information que l'on transfère (on parle

d'encapsulation) si l'on souhaite en empêcher la lecture par des personnes extérieures à

l'échange.

Clé de cryptage

Pour partager des messages de manière confidentielle, deux extrémités d'une communication

doivent disposer d'un secret (une clé) qui permettra de coder un message (on parle de

chiffrement) à l'émission, et de le décoder (ou encore décrypter) à l'arrivée.

Si c'est la même clé qui permet le cryptage/décryptage, on dira qu'elle est symétrique.

Si on veut un niveau de sécurité accru, on réalisera l'encryptage par le biais d'une clé distribuée

à tous les émetteurs potentiels (cette clé est publique), et seul le destinataire possèdera la clé

capable de réaliser le déchiffrement (la clé est donc privée). On parle alors d'un cryptage

asymétrique.

Cryptage, clé publique, clé privée

La clé publique peut être vue comme un cadenas ouvert dont la serrure est basée sur

l'empreinte de la clé privée.

On distribue des cadenas (clé publique) à des interlocuteurs qui demandent à entrer en

communication.

Ils enferment leur message dans des boîtes qu'ils cadenassent avec cette clé publique

(cryptage).

La clé privée est la seule à même d'ouvrir les cadenas et de donner accès au contenu de la boîte

Page 14: Serveur Web Sécurisé - … · e 1 Principales fonctionnalités Le serveur web est un serveur HTTP qui reçoit des requêtes et y répond. Il est constamment onneté à Intenet et

Pag

e13

1 : Création d'une clé privée

Page 15: Serveur Web Sécurisé - … · e 1 Principales fonctionnalités Le serveur web est un serveur HTTP qui reçoit des requêtes et y répond. Il est constamment onneté à Intenet et

Pag

e14

2 : Création d'un certificat X509

Page 16: Serveur Web Sécurisé - … · e 1 Principales fonctionnalités Le serveur web est un serveur HTTP qui reçoit des requêtes et y répond. Il est constamment onneté à Intenet et

Pag

e15

Remarque : la valeur de ces champs peut être saisie comme valeur par défaut dans

openssl.conf

Ce certificat va permettre de vérifier l’authenticité et la validité du certificat du serveur

Web.

Soyez très vigilant sur le Common Name (CN) : celui-ci doit correspondre exactement

au nom pleinement qualifié (nom DNS : celui que vous allez saisir dans l'URL de votre

serveur qui correspond aussi à la directive ServerName dans le fichier de configuration

d'Apache).

Remarque : il est possible d'utiliser un autre champ que CN, le champ

« subjectAltName » pour spécifier le nom DNS du serveur. Ce dernier champ permet en

outre de préciser un ou plusieurs noms DNS (ceux correspondant aux différents virtuals

hosts). Ce qui implique qu'il suffit d'un seul certificat pour l'ensemble des hôtes virtuels

d'un serveur web.

Mais il faut pour cela paramétrer plus finement le fichier openssl.conf.