TP RESEAU N 3. Mise en place du système d'un serveur Apache SSL



Documents pareils
Sécurité du Système d Information. Mini PKI

Installation GLPI-OCSNG-SSL Linux Debian Sarge

Serveur de partage de documents. Étude et proposition d'une solution afin de mettre en place un serveur de partage de documents.

NOTE: Pour une meilleure sécurisation, nous vous recommandons de faire l installation des outils web à l intérieur d un serveur virtuel.

Déploiement d OCS 1.02 RC2 sous Debian Etch 64

Installation d OwnCloud 8.0 sous Debian Avec connexion des utilisateurs active directory et mise en place de HTTPS

SÉCURITÉ DU SI. Mini PKI. Denoun Jérémy De Daniloff Cyril Bettan Michael SUJET (3): Version : 1.0

SSL - TLS. Histoire, fonctionnement Sécurité et failles

SSL ET IPSEC. Licence Pro ATC Amel Guetat

TP Service HTTP Serveur Apache Linux Debian

Les certfcats. Installation de openssl

Étape 1 : gérer les certificats

Répartition des charges avec HaProxy CONTEXTE MFC JULIEN HUBERT

Le protocole sécurisé SSL

Autorité de certification

titre : CENTOS_CUPS_install&config Système : CentOs 5.7 Technologie : Cups Auteur : Charles-Alban BENEZECH

Une introduction à SSL

Université de Reims Champagne Ardenne. HTTPS, SSL, SSH, IPSEC et SOCKS. Présenté par : BOUAMAMA Mohamed Nadjib AZIZ Xerin

Tunnels et VPN. 22/01/2009 Formation Permanente Paris6 86

Réaliser un inventaire Documentation utilisateur

BTS SIO SISR3 TP 1-I Le service Web [1] Le service Web [1]

Action Spécifique Sécurité du CNRS 15 mai 2002

SSL. Secure Socket Layer. R. Kobylanski janvier version 1.1 FC INPG. Protocole SSL Application avec stunnel

Procédure d'installation

Installation et utilisation d'un certificat

Guide d'initiation aux. certificats SSL. Faire le bon choix parmi les options qui s'offrent à vous en matière de sécurité en ligne. Document technique

Installation UpdatEngine serveur (CentOs apache2 / MySQL)

TP 2 : Chiffrement par blocs

Richard MONTBEYRE Master 2 Professionnel Droit de l Internet Administration Entreprises. La banque en ligne et le protocole TLS : exemple

Installation d un serveur HTTP (Hypertext Transfer Protocol) sous Débian 6

TP N 1 : Installer un serveur trixbox.

Serveur Web Apache - SSL - PHP Debian GNU/Linux

Les Protocoles de sécurité dans les réseaux WiFi. Ihsane MOUTAIB & Lamia ELOFIR FM05

Annexes. OpenVPN. Installation

Cours 14. Crypto. 2004, Marc-André Léger

Table des matières Hakim Benameurlaine 1

II- Préparation du serveur et installation d OpenVpn :

SSL/TLS: Secure Socket Layer/Transport Layer Secure Quelques éléments d analyse. GRES 2006 Bordeaux 12 Mai Ahmed Serhrouchni ENST-PARIS CNRS

Installation du serveur WEB Apache ( MySQL, PHP) sous Debian 7.

Création d'un site web avec identification NT

Méthode 1 : Mise en place IPSEC

Protocole industriels de sécurité. S. Natkin Décembre 2000

Administration Linux - Apache

M2-RADIS Rezo TP13 : VPN

Installation et configuration de Vulture Lundi 2 février 2009

WEBMESTRE : CONCEPTION DE SITES ET ADMINISTRATION DE SERVEURS WEB

Projet de mise en œuvre d un serveur ftp sur serveur dédié

Sécurité des réseaux wi fi

Gestion des utilisateurs : Active Directory

Architectures PKI. Sébastien VARRETTE

DOCUMENTATION ADMINISTRATEUR

Côté Labo : le service Web

Informatique. Les réponses doivent être données en cochant les cases sur la dernière feuille du sujet, intitulée feuille de réponse

Création d'un site dynamique en PHP avec Dreamweaver et MySQL

A B A C U S DESCRIPTIF D'INSTALLATION SAAS ABAWEB. septembre 2014 / OM / COB. Version 5.5

Service de certificat

Serveur Linux : FTP. Mise en place d un service FTP sous Linux. Bouron Dimitri 20/04/2014

27/11/12 Nature. SDK Python et Java pour le développement de services ACCORD Module(s)

Le serveur web Apache

Mise en place d'un Réseau Privé Virtuel

Installation d OpenVPN

Présentation. LogMeIn Rescue. Architecture de LogMeIn Rescue

Administration de Parc Informatique TP03 : Résolution de noms

Procédure d utilisation et de paramétrage (filtrage) avec IPFIRE

Procédures informatiques administrateurs Création d un serveur FTP sous Linux

Les certificats numériques

Mieux comprendre les certificats SSL THAWTE EST L UN DES PRINCIPAUX FOURNISSEURS DE CERTIFICATS SSL DANS LE MONDE

Authentification avec CAS sous PRONOTE.net Version du lundi 19 septembre 2011

PUBLIC KEY INFRASTRUCTURE. Rappels PKI PKI des Impôts PKI de la Carte de Professionnel de Santé

Utilisation des certificats X.509v3

Devoir Surveillé de Sécurité des Réseaux

Année Universitaire ième année IMAC Mardi 6 janvier Cloud computing Travaux Pratiques

Solution d inventaire automatisé d un parc informatique et de télédistribution OCS INVENTORY NG. EHRHARD Eric - Gestionnaire Parc Informatique

Installation d un hébergement Web à domicile

Sauvegarde sous MAC avec serveur Samba

Table des matières Hakim Benameurlaine 1

Capture, Filtrage et Analyse de trames ETHERNET avec le logiciel Wireshark. Etape 1 : Lancement des machines virtuelles VMWARE et de Wireshark

TP réseaux 4 : Installation et configuration d'un serveur Web Apache

Microsoft OSQL OSQL ou l'outil de base pour gérer SQL Server

La sécurité des réseaux. 9e cours 2014 Louis Salvail

MANUEL UTILISATEUR KIWI BACKUP V 3

Installation de la plate-forme Liberacces 2.0 «Intégrale» avec LiberInstall

SQUID Configuration et administration d un proxy

Windows Server 2008 Sécurité ADMINISTRATION ET CONFIGURATION DE LA SECURITE OLIVIER D.

AUTHENTIFICATION x FREERADIUS. Objectifs

UwAmp. Serveur d'evaluation

Sommaire Introduction Les bases de la cryptographie Introduction aux concepts d infrastructure à clés publiques Conclusions Références

Installation et configuration du CWAS dans une architecture à 2 pare-feux

TP HTTP. Université Pierre Mendès France U.F.R. Sciences de l Homme et de la Société Master IC²A

EMV, S.E.T et 3D Secure

Réseaux et protocoles Damien Nouvel

CIBLE DE SECURITE CSPN DU PRODUIT PASS. (Product for Advanced SSO)

Tutoriel : Comment installer une compte (une adresse ) sur un logiciel de messagerie (ou client messagerie)?

Mise en route d'un Routeur/Pare-Feu

Logiciel de conférence Bridgit Version 4.6

Apache en tant que reverse proxy

Sécurité de l'information

Sécurité des réseaux sans fil

Transcription:

TP RESEAU N 3 Mise en place du système d'un serveur Apache SSL Master Management de la Sécurité des Systèmes Industriels et des Systèmes d Information année 2005/2006 Julien VEHENT

1. Introduction Ce compte rendu décris la mise en place d'un accès HTTPS avec Apache 2. Nous n'aborderons pas la configuration d'apache pour autre chose que HTTPS. L'objectif est qu'à la fin de ce TP, le serveur soit capable d'accepter une connexion HTTPS sur le port 443, de négocier une session TLS et d'afficher un contenu quelconque. Secure Socket Layer (SSL), maintenant remplacé par Transport Layer Security (TLS), est un protocole de niveau légèrement supérieur à la couche transport où officie TCP. En fait, TLS va intercepter les données HTTP, y appliquer ses algorithmes de chiffrement et passer cela à TCP assurant ainsi la sécurité des données. TLS inclut également le mécanisme de négociation de connexion appelé Handshake TLS. Les détails de ce protocole ne sont pas l'objet du présent TP. N'ayant pas de Fedora core 4 chez moi, j'ai reproduit le travail mené en cours sur un système Debian. Les différences sont mineures sauf pour le fichier ssleay.cnf inexistant sous Fedora et présent lors de l'installation sous Debian. 2. Apache2 et mod_ssl Apache2 utilise mod_ssl pour HTTPS. Le module se base sur OpenSSL pour les outils cryptographiques. Il faut l'activer dans la config d'apache2 : root@locahost:/etc/apache2/mods available# ls al grep ssl rw r r 1 root root 3545 2006 03 27 13:16 ssl.conf rw r r 1 root root 58 2006 03 27 13:16 ssl.load Dans le répertoire /etc/apache2, le dossier mods available contient ssl.load avec la ligne qui permet de lancer le module SSL: # cat ssl.load LoadModule ssl_module /usr/lib/apache2/modules/mod_ssl.so Le fichier ssl.conf, présent dans le même dossier, contient la configuration du module ssl, que nous verrons juste après. En premier lieu, dans le fichier apache2.conf on spécifie que tout le répertoire mods enable est chargé au lancement du service : # cat /etc/apache2/apache2.conf grep mods enable Include /etc/apache2/mods enabled/*.load Include /etc/apache2/mods enabled/*.conf Cette configuration est faite par défaut sous Debian. Pour lancer le module SSL au lancement du logiciel Apache2, il suffit de faire un lien symbolique des deux fichiers qui sont dans mods available vers mods enable.

# ls al grep ssl [...]root 26 2005 10 16 01:34 ssl.conf >../mods available/ssl.conf [...]root 26 2005 10 16 01:34 ssl.load >../mods available/ssl.load Maintenant que le lancement du module est géré, nous pouvons nous intéresser à sa configuration. Pour cela, nous commençons par en faire un backup et un petit nettoyage: root@localhost:mods available# mv ssl.conf ssl.conf.old root@localhost:mods available# awk '! (/^ *#/ /^$/) { print $0 }' ssl.conf.old > ssl.conf «awk» est un puissant processeur de texte qui ne sera pas détaillé ici. Entrons dans le fichier pour l'éditer. La ligne vraiment importante est SSLCipherSuite car elle définit les différents algorithmes utilisés. Nous souhaitons assurer un bon niveau de sécurité en bannissant les algorithmes liés à la deuxième version du protocole SSL et connus pour leurs failles. En fait, nous voulons nous limiter à SSLv3 et TLSv1. Nous modifions donc la ligne du fichier ssl.conf comme suis: SSLCipherSuite HIGH:MEDIUM:!aNULL:+SHA1:+MD5:+HIGH:+MEDIUM Voici les algorithmes qui, grâce a la ligne ci dessus, pourront être utilisés: # openssl ciphers v 'HIGH:MEDIUM:!aNULL:+SHA1:+MD5:+HIGH:+MEDIUM' DHE RSA AES256 SHA SSLv3 Kx=DH Au=RSA Enc=AES(256) Mac=SHA1 DHE DSS AES256 SHA SSLv3 Kx=DH Au=DSS Enc=AES(256) Mac=SHA1 AES256 SHA SSLv3 Kx=RSA Au=RSA Enc=AES(256) Mac=SHA1 EDH RSA DES CBC3 SHA SSLv3 Kx=DH Au=RSA Enc=3DES(168) Mac=SHA1 EDH DSS DES CBC3 SHA SSLv3 Kx=DH Au=DSS Enc=3DES(168) Mac=SHA1 DES CBC3 SHA SSLv3 Kx=RSA Au=RSA Enc=3DES(168) Mac=SHA1 DES CBC3 MD5 SSLv2 Kx=RSA Au=RSA Enc=3DES(168) Mac=MD5 DHE RSA AES128 SHA SSLv3 Kx=DH Au=RSA Enc=AES(128) Mac=SHA1 DHE DSS AES128 SHA SSLv3 Kx=DH Au=DSS Enc=AES(128) Mac=SHA1 AES128 SHA SSLv3 Kx=RSA Au=RSA Enc=AES(128) Mac=SHA1 DHE DSS RC4 SHA SSLv3 Kx=DH Au=DSS Enc=RC4(128) Mac=SHA1 RC4 SHA SSLv3 Kx=RSA Au=RSA Enc=RC4(128) Mac=SHA1 RC4 MD5 SSLv3 Kx=RSA Au=RSA Enc=RC4(128) Mac=MD5 RC2 CBC MD5 SSLv2 Kx=RSA Au=RSA Enc=RC2(128) Mac=MD5 RC4 MD5 SSLv2 Kx=RSA Au=RSA Enc=RC4(128) Mac=MD5 Les colonnes sont: le nom de la suite de chiffrement le numéro de version (imprécis ici, en fait il s'agit de TLSv1) l'algorithme d'échange de clé (Kx=) l'algorithme asymétrique d'authentification (Au=) l'algorithme de chiffrement symétrique (Enc=) l'algorithme d'empreinte (Mac=) Ajoutons également à ce fichier le chemin de notre certificat auto signé que nous allons générer

dans la partie suivante: SSLCertificateFile /etc/apache2/ssl/mssisi web.pem On peut désormais fermer le fichier ssl.conf. Maintenant, il nous faut créer un «virtual host» qui va appeler notre site par défaut mais avec une connection ssl. Recopions les paramétres du virtual host classique: # cat sites available/default > sites available/default ssl Il faut modifier le nom du virtual host, ici mssisi.org:443, et ajouter les lignes suivante juste après la déclaration du vhost: SSLEngine on ErrorLog /var/log/apache2/error ssl.log CustomLog /var/log/apache2/access ssl.log combined et on link le virtual host ssl vers le répertoire sites enabled: #ln s /etc/apache2/sites available/default ssl /etc/apache2/sites enabled/default ssl Un dernier point pour la config d'apache2 est le fichier ports.conf. Il est obligatoire de lui indiquer d'écouter sur le port 443, le port TLS. # echo 'Listen 443'>>/etc/apache2/ports.conf # cat /etc/apache2/ports.conf Listen 80 Listen 443 3. Certificat auto signé Pour utiliser TLS, il nous faut un certificat au format X509 et une clé privée. Les outils OpenSSL nous permettent de générer un certificat auto signé qui suffira pour nos besoins. Pour cela, il nous faut en premier lieu un fichier allégé de configuration de SSL: le fichier ssleay.cnf non disponible par défaut sous Fedora mais qui l'est sous Debian. Voici la version commentée du fichier: # cat /usr/share/apache2/ssleay.cnf # # SSLeay exemple de fichier de configuration # RANDFILE = $ENV::HOME/.rnd # les champs du certificat que l'on demandera a sa création [ req ] default_bits = 1024 default_keyfile = privkey.pem distinguished_name = req_distinguished_name

# les champs suivants sont généralement du texte, ils définissent la carte d'identité de #son propriétaire [ req_distinguished_name ] countryname = Nom du Pays (obligatoirement 2 lettres) countryname_default = FR countryname_min = 2 countryname_max = 2 # on demande le département stateorprovincename = Departement # et on fournit une valeur par défaut au cas ou l'utilisateur ne voudrais pas s'embeter stateorprovincename_default = Deux Sevres # pareil pour la suite... localityname = Nom de la ville organizationname = Nom de l'organisation organizationname_max = 64 organizationalunitname = Nom de la section de l'organisation organizationalunitname_max = 64 # # Common name est un champ très important quand on génère un certificat pour un site #web. En effet, si ce champ ne correspond pas a l'url du site web, le navigateur formule #une erreur d'usurpation d'identité commonname = nom du serveur /!\ METTRE L'URL commonname_max = 64 #l'adresse email, au cas ou... emailaddress = Email emailaddress_max = 40 Maintenant que l'on a ce fichier, on peut générer notre certicat auto signé. On travaille dans le répertoire /etc/apache2/ssl/ : #openssl req config /usr/share/apache2/ssleay.cnf new x509 nodes \ out mssisi web.pem keyout mssisi web.pem days 1024 Generating a 1024 bit RSA private key...++++++...++++++ writing new private key to '/etc/apache2/ssl/mssisi web.pem' Nom du Pays (obligatoirement 2 lettres) [FR]:FR Departement [Deux Sevres]:2sevres Nom de la ville []:Niort Nom de l'organisation []:mssisi Nom de la section de l'organisation []:security department nom du serveur /!\ METTRE L'URL []:www.mssisi.org Email []:julien@mssisi.org Cette commande crée deux fichiers que sont la clé privée et le certificat public auto signé.

Les arguments passés à l'exécutable openssl sont: req : désigne une requête de certificat config : le fichier de configuration utilisé pour générer le certificat new : désigne une requête sans rapport de précédence x509 : désigne la structure de champs du certificat nodes : demande de ne pas chiffrer le clé privée, sinon Apache2 ne pourra pas la lire out : chemin du certificat autosigné keyout : chemin de la clé privée days : durée de validité des clés On commence par changer les droits sur ces deux fichiers: #chmod 600 mssisi web.* Maintenant que la configuration est terminée, il faut relancez apache2 et s'assurer qu'il démarre sans aucun autre message que: # /etc/init.d/apache2 start Starting web server: Apache2. On peut maintenant se connecter au site web https://www.mssisi.org, la sécurité de la liaison est complètement assurée par le protocole TLS. Comme le certificat que nous utilisons est auto signé, les navigateurs internet affichent un avertissement de sécurité lors de la connexion. Le moyen de résoudre ce problème est d'utiliser un certificat émis par une PKI.