Sécurité apache2: un petit plus

De Le Wiki du Forum-Debian.fr
Aller à la navigation Aller à la recherche

blabla :

Voici une sécurisation supplémentaire d'Apache pour un serveur web. Elle est réalisable simplement à l'aide d'un script.
Celui-ci permet au seul 'root' de créer ou de modifier les répertoires/fichiers contenus dans /var/www
Les membres du groupe www-data pourront uniquement les lire, il sera donc intéressant d'y placer votre "user"

# usermod -a -G www-data user Le reste du monde ne pourra même pas y accéder, ce qui met à l'abri de la lecture d'éventuels mots de passe dans certains fichiers de config.

En pratique :
Copiez/collez le script ci-dessous dans un fichier que vous nommerez "securiser".
Il sera placé dans le répertoire /usr/local/bin de votre serveur et vous lui donnerez les droits 750.
Ce fichier devra être exécutable : # chmod +x /usr/local/bin/securiser Vérifiez que le chemin /usr/local/bin soit bien dans le PATH pour réduire la commande à un simple : # securiser

Merci à Syam pour l'élaboration du script et pour les précisions supplémentaires qui suivent :

Attention ! Certaines applications web ont besoin de pouvoir écrire dans certains répertoires spécifiques.
Si vous les installez manuellement à partir des sources il faudra prendre ça en compte.
Les répertoires concernés sont en principe indiqués dans la documentation d'installation de l'application web en question, que vous avez dû lire (ou devriez avoir lu).
Pour qu'elle fonctionne sans problème il vous faudra ajuster les droits de ces répertoires à la fin du script "securiser".

Exemple : Drupal utilise le répertoire sites/default/files pour stocker des fichiers (temporaires ou ceux que vous uploadez à travers Drupal),
il faudra donc rajouter la ligne suivante :

# chmod -R g+w /var/www/chemin/vers/drupal/sites/default/files

Certains fichiers dans ces répertoires ne devraient pas pouvoir être modifiés (par exemple les .htaccess).
Utilisez votre bon sens et modifiez les droits de ces fichiers lorsque nécessaire :

# chmod -R g-w /var/www/chemin/vers/drupal/sites/default/files/.htaccess

Faites bien attention à l'ordre dans lequel vous écrivez ces commandes dans le script "securiser", n'oubliez pas que c'est la dernière commande exécutée qui a raison ! Donc :

  1. bloquer l'ensemble de /var/www
  2. débloquer les droits des répertoires de cache, upload etc
  3. rebloquer les droits des fichiers individuels contenus dans les répertoires que vous venez de débloquer




#!/bin/sh
#
# Nom du script : securiser
# Emplacement : /usr/local/bin
# Droits : 750.
# Fonction : une fois les interventions effectuées, modifier le propriétaire et le groupe
#+ des nouveaux fichiers/répertoires contenus dans /var/www, puis en modifier les droits
#+ afin que  /var/www soit de nouveau sécurisé.
#
chown -R root:www-data /var/www
find /var/www -type f -exec chmod 640 {} \+
find /var/www -type d -exec chmod 750 {} \+
#
# Dans les lignes suivantes, vous indiquerez les chemins des éventuels fichiers/répertoires
#+ qui nécessitent d'être ouverts en permanence comme expliqué dans le "blabla".
# Vous pourrez ajouter autant de lignes que d'applications/répertoires concernées
#
# chmod -R g+w /var/www/chemin/vers/répertoire/X-X-X (ligne(s) à compléter et à décommenter)
#
# Selon le même principe, vous exclurez des précédents répertoires les fichiers/répertoires
#+ qui doivent, eux, rester invisibles de l'extérieur.
#
# chmod -R g-rw /var/www/chemin/vers/répertoire/X-X-X/fichier_à_cacher (ligne(s) à compléter et à décommenter)
#
# Reportez-vous au "blabla" pour un exemple concret avec l'application 'Drupal'
#
exit

Ricardo 26 mars 2012 à 01:43 (CEST)