Sécurisation du serveur apache<
Ce post décrit brièvement quelques précautions basiques à prendre pour sécuriser votre serveur apache. En particulier, il décrit comment utiliser le module mod_security pour installer une liste noire d’IP.
Sécurisation via les fichiers de configuration
Le dossier /etc/apache2/sites-available/
contient les dossiers de configuration des hôtes et des hôtes virtuels apache (voir les posts : installation d’un serveur apache et créer un hôte virtuel). On édite ces fichiers pour ajouter les directives suivantes :
-
Empêcher le serveur de lire le répertoire à la racine du serveur
Order Deny,Allow Deny from all Options None AllowOverride None
-
Empêcher le serveur de lire les fichiers
.htaccess
AccessFileName .httpdoverride Order allow,deny Deny from all Satisfy All
En savoir plus : Documentation ubuntu francophone « sécuriser un serveur apache »
Sécurisation via le module modsecurity
ModSecurity est un module d’Apache spécialisé dans la sécurité qui joue le rôle de pare-feu applicatif :
(image tux-planet.fr).
On installe le module par :
sudo apt-get install libapache2-modsecurity
Le fichier de configuration du module se trouve dans le dossier /etc/modsecurity/
en version “recommandée” (mais non active). On commence par copier le fichier de configuration basique :
cp modsecurity.conf-recommended modsecurity.conf
puis on édite modsecurity.conf
pour ajouter quelques règles élémentaires :
-
Activer le blocage des requêtes détectées par les règles mises en place
SecRuleEngine On
(si l’option est laissée à DetectionOnly
, le modules se contentera de journaliser les erreurs rencontrées.
-
Ajout d’une signature personnalisée(pour empêcher l’utilisation de la description de votre configuration à des fins d’attaque)
SecServerSignature "Tuxette OS"
Pour que cette règle soit active, il faut de plus éditer le fichier
/etc/apache2/conf.d/security
et choisir l’optionServerTokens="Full"
.</li> -
Création d’une liste noire (pour bloquer les IP indésirables : je pêche mes IP indésirables via l’utilisation du plugin wordpress “Limit Login Attempts”)
SecAction “phase:1,pass,nolog,setvar:tx.remote_addr=/%{REMOTE_ADDR}/”
SecRule TX:REMOTE_ADDR “@pmFromFile blacklist.txt” “deny,status:403
Une fois cette règle ajoutée, il faut créer un fichier/etc/modsecurity/blackllist.txt
contenant les IPs entourées du caractère “/” :</p>/1.2.3.4/
</ol>
- Documentation Ubuntu francophone sur “modsecurity” ;
- Tutoriel modsecurity sur tux-planet ;
- Manuel de référence modsecurity.
Enfin, le module est activé par :
sudo a2enmod mod_security
sudo service apache2 reload
et les logs peuvent être consultés dans le fichier /var/log/apache2/modsec_audit.log
. On peut créer un deuxième fichier de log plus condensé avec l’activation des lignes suivantes dans le fichier modsecurity.conf
:
SecDebugLog /var/log/apache2/modsecurity_debug.log SecDebugLogLevel 0
.
En savoir plus :
</div>