Serveur
Par définition, un serveur est une machine ou un programme qui offre un service à un client et tout simplement un ordinateur qui contient des données (ou des fichiers) qui compose le site Internet. Ce serveur est accessible grâce à sa connexion permanente au réseau Internet par les lignes téléphoniques. Le serveur généralement situé dans une salle d’hébergement va donc permettre d’envoyer les données aux ordinateurs qui en font la demande. Il existe deux types de serveur dans le domaine de service internet, d’abord le serveur classique et ensuite le serveur autonome. Serveur classique : Le serveur classique (ou traditionnel) est un dispositif informatique (matériel ou logiciel) offrant des services à des multiples clients. La majorité d’entre eux appartiennent à des sociétés commerciales (comme le Google) ou à des institutions (comme les universités ou les écoles). Il permet un accès rapide, direct pour les entrées et sorties vers les fichiers de la base de données pour les connexions locales sous Linux. Sous Windows, on doit faire les connexions locales avec la notation réseau, en se connectant à localhost. Il est très stable sous Linux ; encore pour certains points expérimentaux sous Windows.
Serveur autonome : Le serveur autonome (ou serveur standalone) est une sorte de serveur sur un réseau qui n’est pas dépendant des autres, mais est indépendante en soi. Le serveur autonome fournit le même type de service (messagerie mail et discussion instantanée, hébergement, blogs, etc.), exception faite que leur fonctionnement ne dépend pas d’une société ou d’une institution (qu’elle soit privée ou publique). Le fonctionnement du serveur autonome recherche à diffuser des informations et des documents en dehors des circuits commerciaux traditionnels. Ils représentent une initiative visant à démocratiser l’accès à l’information et à la production de contenus en ligne. La fonction principale d’un serveur autonome est de séparer certaines tâches beaucoup mieux s’il n’est pas connecté au contrôleur de domaine.
Eléments du serveur web
En informatique, le mot serveur web désigne à la fois une machine physique et un logiciel. Dans le premier cas, il s’agit d’un ordinateur relié à Internet et hébergeant des ressources. Ces ressources peuvent être des fichiers, des programmes ou des bases de données. Dans ce serveur web, on peut travailler sur un serveur Apache et une base de données (MySQL). Apache c’est la grande source de cette sécurisation c’est-à-dire que toutes les sécurisations se placent dans cet Apache. Le serveur généralement situé dans une salle d’hébergement va donc permettre d’envoyer les données aux ordinateurs qui en font la demande. Le serveur web est assuré par trois logiciels comme : Apache, PHP, MySQL.
Apache : Apache est un serveur Web gratuit fonctionnant sous Linux; et largement utilisé sur internet. Il est un serveur HTTP créé et maintenu au sein de la fondation Apache et un logiciel libre aussi. C’est le serveur HTTP le plus populaire du World Wide Web (www). La disponibilité d’Apache fonctionne principalement sur les systèmes d’exploitation Linux et Windows. Apache est le serveur le plus répandu sur Internet. Il s’agit d’une application fonctionnant à la base sur les systèmes d’exploitation de type Unix, mais il a désormais été porté sur de nombreux systèmes, dont Microsoft Windows.
PHP (Préprocesseur Hypertexte) : Le serveur d’application PHP est un langage de scripts libre principalement utilisé pour produire des pages Web dynamiques via un serveur HTTP, mais pouvant également fonctionner comme n’importe quel langage interprété de façon locale, en exécutant les programmes en ligne de commande. Ce langage est principalement utilisé pour produire un site web dynamique. Il est courant que ce langage soit associé à une base de données, tel que le MySQL. Lorsqu’une page PHP est exécutée par le serveur, alors celui-ci renvois généralement au client (aux visiteurs du site) une page web qui peut contenir du HTML.
MySQL : MySQL est le serveur de bases de données le plus répandu pour les serveurs web. Il n’utilise pas les comptes Unix mais gère ses propres utilisateurs et mots de passe. La société MySQL fournit de nombreuses solutions pour les bases de données. Ce MySQL permet de modifier le mot de passe d’un utilisateur existant. Grâce à sa performance, sa fiabilité et sa facilité d’utilisation, MySQL est devenu le principal choix de la base de données pour les applications web, utilisées par des propriétés web de haut niveau.
Attaque de serveur web
Le protocole HTTP (ou HTTPS) est le standard permettant de véhiculer les pages web par un mécanisme de requêtes et de réponses. Il est utilisé essentiellement pour transporter des pages web informationnelles (pages web statiques), le web est rapidement devenu un support interactif permettant de fournir des services en ligne. Les premières attaques réseau exploitaient des vulnérabilités liées à l’implémentation des protocoles de la suite TCP/IP. Dans la mesure où les serveurs web sont de plus en plus sécurisés, les attaques se sont progressivement décalées vers l’exploitation des failles des applications web. Les vulnérabilités des applications web peuvent être catégorisées de la manière suivante :
La manipulation des URL consiste à modifier manuellement les paramètres des URL afin de modifier le comportement attendu du serveur web ;
L’exploitation des faiblesses des identifiants de session et des mécanismes d’authentification ; L’injection de code HTML et Cross-Site Scripting (attaquer les utilisateurs de l’application plutôt que l’application elle-même) ; L’injection de commandes SQL.
Tous les services réseau peuvent faire l’objet d’attaques de type « Déni de service » ou Deny of Service (DoS) qui tentent de les empêcher de répondre aux clients en saturant leurs ressources. Une attaque DoS consiste à tenter de bloquer l’accès à un serveur en monopolisant toutes ses ressources. Il est impossible de se prémunir totalement contre ce type d’attaques, mais certaines actions peuvent s’avérer utile afin de minimiser les problèmes qu’elles créent. Malgré le risque, certaines actions préventives permettent de limiter la casse.
Attaque de base de données
Une attaque est une action qui exploite une vulnérabilité ou exécute une menace. Par exemple, envoyer des données d’entrée malveillants à une application ou saturer un réseau en vue d’entraîner un refus de service.
On a plusieurs risques sur le système d’information, qui sont : Les vols, La destruction de données ou de matériels, Les captations d’informations, indisponibilité du système, Une origine qui peut être externe mais souvent interne (malveillance ou négligence).
Il y aussi des risques pour quelques mauvaises configurations comme : Modes d’authentification dégradés, Changement de mot de passe par défaut, Risque des fichiers de la base de données non sécurisés, Risque des pertes de données, Incohérences et indisponibilité des données.
Sécurisation du système
La sécurisation du système est une étape pour sécuriser un serveur, dont on a besoin de la : Sécurisation par cryptage : Le cryptage ou le chiffrement des données, c’est aussi un mécanisme de sécurité, qui consiste à traduire un message clair, dit originel en un message incompréhensible, inintelligible. Le résultat du processus de cryptage est appelé «texte chiffré ou message codé». Le processus de cryptage repose à la fois sur des algorithmes puissants et sur les paramètres appelés clés. Le cryptage peut faire des transferts de données.
Le protocole sécurisé SSL lui fonctionne comme une sous-couche inférieure du même modèle TCP/IP, mais il crypte le message HTTP avant sa transmission et la déchiffre à l’arrivée. On peut donc dire que HTTPS n’est pas un protocole séparé, mais se réfère à l’utilisation du HTTP ordinaire via une connexion SSL cryptée. En utilisant le HTTPS, les données échangées sont cryptées. Les données cryptées apportent une protection contre le piratage des informations échangées. Le HTTPS permet de rendre un site plus sûr pour les internautes qui le visitent.
En termes de sécurité, le protocole HTTPS assure : La confidentialité, contre le piratage dans l’espionnage des données personnelles, L’intégrité du HTTPS qui protège l’altération des données échangées, L’Authenticité permet de garantir l’identité du programme, de la personne ou de l’entreprise qui édite le site,
La différence entre HTTP & HTTPS : Il y a de nombreux critères qui différencient HTTP de HTTPS, voici les 3 principaux : Pour le schéma d’URL : Les URLs HTTPS commencent par « https : // » et utilise le port 443 par défaut (l’URL est déjà cryptée) Les URLs HTTP commencent par « http : // » et utilisent le port 80.
Pour la sécurité : HTTP n’est pas sécurisé et est soumis à de nombreuses attaques, qui peuvent laisser des attaquants avoir accès à des informations sensibles, en revanche un site Web tout en HTTPS est conçu pour résister et protéger contre de telles attaques.
Pour les couches réseau : HTTP fonctionne sur la couche la plus élevée du modèle TCP/IP qui est la couche application.
Sécurisation par authentification : L’authentification consiste à demander à un utilisateur de prouver son identité. Il est un mécanisme de sécurité qui consiste à assurer l’identité d’un utilisateur, ou d’une machine voulant accéder au système ; ainsi on vérifie que la station ou la personne, est bien celle qu’elle prétend être. En effet dans la plupart de temps, l’authentification s’agit du couple « nom d’utilisateur et mot de passe », c’est un mécanisme qui constitue une sécurité relativement fiable lorsqu’il est bien mis en œuvre. Grâce au .htaccess et .htpasswd qu’on peut authentifier l’accès au serveur web.
Les possibilités de configuration d’Apache sont une fonctionnalité phare. Le principe repose sur une hiérarchie de fichiers de configuration, qui peuvent être gérés indépendamment. Cette caractéristique est notamment utile aux hébergeurs qui peuvent ainsi servir les sites de plusieurs clients à l’aide d’un seul serveur HTTP. Pour les clients, cette fonctionnalité est rendue visible par le fichier .htaccess.
Table des matières
INTRODUCTION
CHAPITRE I : GÉNÉRALITÉ SUR LA SÉCURISATION DE SERVICE INTERNET
I. Généralités sur la sécurisation de service Internet
I.1 Serveur
I.1.1 Serveur classique
I.1.2 Serveur autonome
I.2 Eléments du serveur web
I.2.1 Apache
I.2.2 PHP (Préprocesseur Hypertexte)
I.2.3 MySQL
I.3 Vulnérabilité du serveur web
I.3.1 Attaque de serveur web
I.3.2 Attaque de base de données
CHAPITRE II : METHODE DE SECURISATION DE SERVEUR WEB
II. Méthode de sécurisation de serveur web
II.1 Sécurisation au niveau réseau
II.1.1 ACL
II.1.2 Firewall
II.2 Sécurisation du système
II.2.1 Sécurisation par cryptage
II.2.2. Sécurisation par authentification
II.2.3. Sécurisation par filtrage
CHAPITRE III : MISE EN PLACE DE LA SÉCURISATION DU SERVEUR WEB DYNAMIQUE
III. Mise en place de la sécurisation du serveur web dynamique
III.1 Installation de serveur web
III.1.1 Installation Apache
III.1.2 Installation de PHP
III.1.3 Installation de MySQL
III.2 Sécurisation de serveur Apache
III.2.1 Activation de SSL
III.2.2 Authentification .htaccess
III.2.2.1 Création du fichier .htaccess
III.2.2.2 Création du fichier .htpasswd
III.2.3 iptables pare-feu
III.2.3.1 Filtrage par IP
III.3 Sécurisation de base de données
III.4 Résultats et discussions
III.5 Statistiques de piratage de site web
III.6 Analyse pour le cryptage
CONCLUSION
RÉFÉRENCES