WOW !! MUCH LOVE ! SO WORLD PEACE !
Fond bitcoin pour l'amélioration du site: 1memzGeKS7CB3ECNkzSn2qHwxU6NZoJ8o
  Dogecoin (tips/pourboires): DCLoo9Dd4qECqpMLurdgGnaoqbftj16Nvp


Home | Publier un mémoire | Une page au hasard

 > 

Mise en place d'un site sécurisé

( Télécharger le fichier original )
par Mouhamadou GAYE
Université Cheikh Anta Diop de Dakar - Licence professionnelle 2010
  

Disponible en mode multipage

Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy

REPUBLIQUE DU SENEGAL

Université Cheikh Anta Diop de Dakar

DEPARTEMENT MATHS INFORMATIQUE

Présenté par :

MOUHAMADOU GAYE

Année universitaire : 2009 - 20010

Présenté par Mouhamadou GAYE

* *

Thème :

MISE EN PLACE D'UN SITE SECURISE

INTRODUCTION

La sécurité informatique est l'ensemble des moyens techniques, organisationnels, juridiques et humains nécessaires et mis en place pour conserver, rétablir, et garantir la sécurité des systèmes informatiques. Elle est intrinsèquement liée à la sécurité de l'information et des systèmes d'information. Ce projet à pour objectif de sécurisé un site en utilisant les protocoles SSH, SSH, HTTPS et le Certificat.

Le protocole SSL

SSL est un protocole qui a été développé par la société Netscape. Ce protocole permet à deux machines de communiquer de manière sécurisée. Les informations échangées entre les deux machines sont de ce fait inviolables. Le protocole SSL se traduit par la combinaison de deux protocoles bien distincts (Handshake et Record) qui permettent la négociation entre les deux machines et le chiffrement des données échangées.

SSL assure 3 choses:

· Confidentialité: Il est impossible d'espionner les informations échangées.

· Intégrité: Il est impossible de truquer les informations échangées.

· Authentification: Il permet de s'assurer de l'identité du programme, de la personne ou de l'entreprise avec laquelle on communique.

Le protocole SSH

SSH (Secure Shell): c'est une sorte de telnet (ou rlogin) sécurisé. Cela permet de se connecter à un ordinateur distant de façon sûre et d'avoir une ligne de commande. SSH possède des extensions pour sécuriser d'autres protocoles (FTP, POP3 ou même X Windows).

Le protocole HTTPS

C'est HTTP+SSL. Ce protocole est inclus dans pratiquement tous les navigateurs, et vous
permet (par exemple) de consulter vos comptes bancaires, compte de messagerie ..., par le
web de façon sécurisée. Le cadenas vous indique que les communications entre votre

navigateur et le site web sont sûres: personne ne peut les espionner, et personne ne peut trafiquer les communications. Mais il ne garantie rien d'autre !

Les certificats

Lors d'une négociation SSL, il faut s'assurer de l'identité de la personne avec qui on communique. Comment être sûr que le serveur auquel vous parlez est bien celui qu'il prétend être ?

C'est là qu'interviennent les certificats. Au moment de vous connecter sur un serveur web sécurisé, ce dernier vous enverra un certificat contenant le nom de l'entreprise, son adresse, etc. C'est une sorte de pièce d'identité.

Comment vérifier l'authenticité de cette pièce d'identité ?

Ce sont les PKI (Public Key Infrastructure), des sociétés externes (auxquelles vous faites implicitement confiance), qui vont vérifier l'authenticité du certificat. (La liste de ces PKI est incluse dans votre navigateur. Il y a généralement VeriSign, Thawte, etc.)

Ces PKI signent cryptographiquement les certificats des entreprises (et ils se font payer pour ça).

MISE EN PLACE

Nous allons sécuriser notre site de messagerie électronique nommé webmail cela suppose que nous avons déjà mis en place un hôte virtuel basé sur le nom nommé gaye.sn, ce dernier étant accessible sur le port 80 à l'adresse http://gaye.sn

Activation du module SSL

Pour que le protocole SSL puisse fonctionner avec le Serveur HTTP Apache2, il faut activer le module ssl avec la commande :

puis recharger la configuration d'Apache2 faîtes :

Création du certificat

Nous travaillons sous ubuntu 9.10

Installer si nécessaire le package : apt-get install ssl-cert

Pour générer un certificat auto-signé avec Ubuntu, il nous suffit de taper les commandes suivantes dans un terminal :

Créer le certificat ssl :

sudo make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/ssl/private/localhost.pem

On peut cependant créer son certificat SSL auto signé en installant le paquet openssl ? Il est aussi possible d'installer ca-certificates, mais ça ne semble pas utile dans le cas d'un certificat auto-signé.

Plutôt que de repartir de l'ancien script, je propose

sudo openssl req -x509 -nodes -days 365 -newkey rsa:1024 -out /etc/apache2/server.crt - keyout /etc/apache2/server.key

Pour voir notre certificat sous format texte:/etc/apache2/server.crt

Et pour le clé :

-x509 -nodes donne le type de certificat voulu

-days 365 indique la durée de validité (en jours) de votre certificat

-newkey rsa:1024 demande une clé RSA de 1024 bits - d'après la doc apache, il est

déconseillé de créer une clé plus grosse pour des histoires de compatibilité -out /etc/apache2/server.crt est le chemin de votre certificat

-keyout /etc/apache2/server.key est le chemin de la clé privée Répondez alors aux questions posées :

Country Name (2 letter code) [GB]:SN

Entrez SN si vous êtes situé au SENEGAL et validez par la touche << Entrée »

State or Province Name (full name) [Some-State]:SENEGAL Entrez SENEGAL et validez par la touche << Entrée » Locality Name (eg, city) []:DAKAR

Indiquez ici le nom de votre ville. (exemple : DAKAR) et validez par la touche << Entrée » Organization Name (eg, company; recommended) []:LAGGA

Indiquez le nom de votre organisation, de votre société. (Exemple : LAGGA) et validez par la touche « Entrée ». Si vous n'avez pas de société, vous pouvez mettre un nom fictif, le nom de notre site Web par exemple.

Organizational Unit Name (eg, section) []:LTDSI

Indiquez ici le nom de la section de votre organisation, de votre société. Si vous n'en avez pas, mettez la même chose que pour la question précédente.

Common Name (eg, YOUR name) []: http://127.0.0.1/index.html/src/login.php

Ici, il convient de faire particulièrement attention à ce que vous allez entrer. Vous devez indiquer le nom de domaine que vous désirez sécuriser. En ce qui nous concerne, il s'agit du domaine : gaye.sn. Nous indiquons donc gaye.sn et nous validons par la touche « Entrée ».

ici http://127.0.0.1/index.html/src/login.php est indexé donc elle équivaut à mon nom de domaine www.gaye.sn

Email Address []:gaye@ amdy-laptop.gaye.sn

Ici, il s'agit d'indiquer l'adresse E-mail de l'administrateur. En ce qui nous concerne, il s'agit de : gaye@amdy-laptop.gaye.sn. Nous terminons bien entendu en validant par la touche « Entrée ».

Configuration Apache2

Ajout de la directive Listen 443

Par défaut, Apache2 est configuré pour écouter sur le port 80. Il s'agit là de la configuration usuelle d'un Serveur Web. Cependant, le protocole SSL a besoin d'un port spécifique pour pouvoir fonctionner. Il s'agit du port 443.

Nous allons donc rajouter une directive de configuration nommée Listen qui permettra d'indiquer à Apache2 qu'il doit aussi écouter sur le port 443.

Pour ce faire, éditez le fichier /etc/apache2/ports.conf et rajoutez la ligne suivante :

Listen 443

Création du fichier de configuration

Ayant déjà configuré notre hôte virtuel gaye.sn un fichier de configuration nommé gaye doit exister dans le répertoire /etc/apache2/sites-available.

Voici le contenu de ce fichier :

Note : Il s'agit ici du contenu minimal d'un virtualhost.

Pour sécuriser cet Hôte Virtuel, nous allons donc devoir modifier ce fichier en y ajoutant un hôte virtuel accessible sur le port 443, ce dernier contenant des directives particulières qui sont les suivantes :

Directive SSLEngine :

Cette directive permet d'activer le moteur SSL au sein d'un hôte virtuel, Elle peut prendre deux arguments -> on/off

Directive SSLCertificateFile :

Cette directive définit le certificat authentifiant le Serveur auprès des clients. L'argument est le chemin d'accès au certificat. En ce qui nous concerne, le certificat se trouve dans le répertoire /etc/apache2/

Directive SSLCertificateKeyFile :

Cette directive définit la clé privée du Serveur utilisée pour signer l'échange de clé entre le client et le serveur. Elle prend en argument le chemin d'accès à la clé (fichier). Dans notre cas, la clé se trouve dans le répertoire /etc/apache2/.

Par ailleurs, comme nous l'avons déjà fait pour notre hôte virtuel accessible sur le port 80, nous allons devoir rajouter une directive NameVirtualHost qui permettra que l'adresse nommée par le nom de notre hôte virtuel accessible sur le port 443 soit résolue correctement. Nous rajouterons donc cette directive (NameVirtualHost 127.0.0.0:443) au début de notre fichier de configuration.

Enfin, afin que les clients puissent continuer d'accéder au site Web en tapant une url de type http et non https, nous allons modifier l'hôte virtuel accessible sur le port 80 en remplaçant la directive DocumentRoot par une directive de redirection.

Voici donc le contenu de notre fichier une fois modifié :

Reload du Serveur Http Apache2

Afin que les modifications que nous venons d'effectuer soient prises en compte, nous devons demander au Serveur Http Apache2 de relire ses fichiers de configuration.

Pour ce faire, il suffit de taper la commande suivante dans un terminal :

Pour accéder à notre site sécurisé il suffit après avoir configuré le fichier /etc/resolv.conf Taper sur un URL http://gaye.sn et vous obtenez :

Pour obtenir plus d'information cliqué sur Détail techniques puis sur je comprends les risques pour obtenir ceci :

Puis cliquer sur Ajouter une exception et vous obtenez :

Et la pour voir le certificat cliquez sur le bouton Voir ... à droite :

En Détails vous obtenez :

Puis revenir sur confirmé l'exception de sécurité pour accéder à votre site de messagerie sécurisé :

Et la vous vous connectez en toute sécurité

CONCLUSION

Ce projet a été ainsi pour nous une expérience enrichissante aussi bien sur le plan technique que humain. Il nous a permis d'une part de mettre en pratique nos connaissances théoriques acquises tout au long de notre formation en sécurité réseaux, de réaliser un site sécurisé tant désiré en milieu des entreprises et d'autre part de voir la place qu'occupe la sécurité des systèmes informatique dans le monde d'aujourd'hui.






Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy








"Là où il n'y a pas d'espoir, nous devons l'inventer"   Albert Camus