Contenu | Rechercher | Menus
Selon les tags présents sur cette page, celle-ci est ancienne et ne contient plus d'informations sur une des versions supportées d'Ubuntu.
Apportez votre aide…

Sécuriser un serveur Apache2

Avec le développement de l'utilisation d'Internet, de plus en plus d'entreprises ouvrent leur système d'information à leurs partenaires ou leurs fournisseurs, il est donc essentiel de connaître les ressources de l'entreprise à protéger et de maîtriser le contrôle d'accès et les droits des utilisateurs du système d'information. Il en va de même lors de l'ouverture de l'accès de l'entreprise sur Internet.

informations traduites de http://www.petefreitag.com/item/505.cfm

Cette page regroupe quelques manipulations qui vous permettront de sécuriser votre Linux-Apache-MySql-PHP.

Cacher la version d'Apache et autres informations sensibles

Par défaut, Apache affiche la version du système d'exploitation que vous utilisez, ainsi que d'autres informations. Une personne malveillante peut utiliser ces informations pour mieux cibler son attaque sur votre serveur, nous allons donc les cacher.

Éditez le fichier /etc/apache2/apache2.conf

Nota : sur Apache/2.2.11 (entre autres, Ubuntu 9.04) ces directives sont à placer dans /etc/apache2/conf.d/security

Recherchez la ligne contenant :

ServerSignature

et mettez

ServerSignature Off

Recherchez la ligne contenant :

ServerTokens

et mettez

ServerTokens Prod

Restreindre l'accès aux seuls fichiers du répertoire web

On suppose que le répertoire /web est le répertoire où sont les fichiers de votre site web (à adapter selon votre configuration).

Éditez le fichier /etc/apache2/sites-available/default et insérez-y

<Directory />
  Order Deny,Allow
  Deny from all
  Options None
  AllowOverride None
</Directory>
<Directory /web>
  Order Allow,Deny
  Allow from all
</Directory>

Étant donné que les directives Options et AllowOverride sont mises à None, vous devrez ensuite les spécifier, si besoin, pour chaque répertoire décrit dans ce fichier.
Dans le cas d'hôtes virtuels, procédez de la même manière qu'avec le répertoire /web.

Empêcher le parcours d'un répertoire

Pour empêcher le parcours du répertoire /web, ajoutez l'option -Indexes:

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

Désactiver les inclusions coté serveur

Toujours au même endroit, (dans un tag <Directory>) :

Options -Includes

Désactiver l'exécution de scripts CGI

Si vous n'utilisez pas de scripts CGI ajoutez cette option :

Options -ExecCGI

Empêcher Apache de suivre les liens symboliques

Options -FollowSymLinks

Empêcher le téléchargement de fichiers .htaccess

AccessFileName .httpdoverride
<Files ~ "^\.ht">
    Order allow,deny
    Deny from all
    Satisfy All
</Files> 

Filtrer les adresses IP

Vous pouvez choisir les adresses IP qui ont accès ou non à vos pages.

Par exemple : autoriser l'accès seulement depuis votre poste :

Order Deny,Allow
Deny from all
Allow from 127.0.0.1

ou encore sur votre réseau local :

Order Deny,Allow
Deny from all
Allow from 192.168.0.0/24

ou interdire une IP précise :

Order Allow,Deny
Allow from all
Deny from 192.168.0.5

etc…

Le principe est le suivant :
Allow,Deny : L'IP doit être dans un Allow from et ne pas être dans un Deny From pour être autorisée
Deny,Allow : L'IP doit être dans un Deny from et ne pas être dans un Allow From pour être interdite

Utiliser ModSecurity

ModSecurity est un module permettant d'offrir des fonctionnalités de filtrage applicatif, permettant la détection de mots clés, détection d'inclusions, utilisation de liste noire, etc…

Ce module est abordé en détail sur la page correspondante.

Pour ceux qui voudraient aller encore plus loin Tutoriels et astuces pour sécuriser Php et Apache


Contributeurs : _Enchained, Oscar Nsarhaza


tutoriel/securiser_apache2.txt · Dernière modification: Le 18/03/2014, 19:32 par 0ol
Le contenu de ce wiki est sous licence : CC BY-SA v3.0