Blog

security-265130_1280

5 règles de base pour sécuriser un serveur web Apache

Vous êtes l’heureux propriétaire d’un hébergement web propulsé par Apache mais ne savez pas par où commencer afin de le sécuriser au mieux ? Voici quelques méthodes avisées à mettre en place afin d’éviter toutes intrusions, de vol de données ou de fichiers sur votre serveur et vos sites.  

 

1. Masquez les informations serveurs sur les pages d’erreurs et réponses Apache

Bien qu’anodine, cette méthode vous permet de ne pas divulguer des informations sensibles de votre serveur telles que la version d’Apache ou le type et version de votre système d’exploitation pouvant être un vecteur d’attaque pour les pirates en tout genre (version obsolète, failles de sécurités connues…).   Pour ce faire, ouvrez le fichier de configuration d’Apache (/etc/apache2/apache2.conf sur les configurations debian/ubuntu), et configurez la directive « ServerSignature » sur « ServerSignature Off« , puis la directive « ServerTokens » sur « ServerTokens Prod« .  

 

2. Empêchez le parcours des répertoires de votre serveur

Imaginez pouvoir lister l’ensemble des fichiers des répertoires de votre site web depuis un simple navigateur, et pouvoir récupérer le code source ou même pire, des informations confidentielles… C’est pourtant ce que permet Apache par défaut si aucun fichier index n’est présent dans le répertoire courant ! Pour résoudre ce sérieux problème, il suffit d’ajouter l’option -Indexes dans votre fichier de configuration Apache2, ou bien dans le fichier de configuration de votre Virtual Host si vous avez activé cette fonctionnalité :

<Directory />
  Order Allow,Deny
  Allow from all
  Options -Indexes
</Directory>

 

3. Protégez l’accès aux fichiers .htaccess

Les fichiers .htaccess permettent de modifier de façon rapide et flexible la configuration Apache d’un site web. Ils peuvent ainsi contenir des informations importantes, mais surtout peuvent modifier le comportement du site internet, pour le meilleur ou pour le pire… Par défaut, Apache protège le téléchargement et l’accès à ces fichiers mais suivant votre configuration ou votre version, il est toujours utile de vérifier si cette protection est actuellement active. Ouvrez le fichier de configuration global de votre serveur Apache et vérifiez que les lignes suivantes y sont sauvegardées :

AccessFileName .htaccess

#
# The following lines prevent .htaccess and .htpasswd files from being
# viewed by Web clients.
#
<Files ~ "^\.ht">
    Order allow,deny
    Deny from all
    Satisfy all
</Files>

 

 

4. Désactivez l’exécution des scripts CGI

Les scripts CGI sont souvent utilisés par les pirates afin d’exécuter du code malveillant sur votre serveur pour en modifier le comportement ou bien accéder à vos données. Si votre site n’utilise pas ce langage (comme une majorité de sites aujourd’hui), il est judicieux de désactiver l’exécution de ces scripts sur le serveur. Pour ce faire, ajoutez l’option « Options -ExecCGI » dans le tag Directory de votre fichier de configuration Apache (ou de votre vHost).

 

5. Filtrez les adresses IP

Chaque site web peut être paramétrer comme étant accessible ou non selon l’adresse IP du client qui s’y connecte. Cela peut se révéler très utile sur des applications critiques restreintes comme des Intranets par exemple. Ajoutez dans la balise Directory de la configuration Apache de votre site les lignes suivantes, en n’oubliant pas de modifier l’adresse IP par celle que vous souhaitez cibler :

 

Pour autoriser une IP :

Order Deny,Allow
Deny from all
Allow from 127.0.0.1

Pour refuser une IP :

Order Allow,Deny
Allow from all
Deny from 10.9.8.1

 

Avec l’application de ces conseils, votre serveur Apache possède une protection minimale vous permettant de vous concentrer sur la mise en place de vos sites internets !

Poster un commentaire