Afin de sécuriser notre Apache2 nous avons mis en place un WAF, un Web Application Firewall, est un dispositif logiciel associé à votre serveur Web. Les protections apportés par se dispositif sont :
- SQL Injection (SQLi)
- Cross Site Scripting (XSS)
- Local File Inclusion (LFI)
- Remote File Inclusion (RFI)
- Remote Code Execution (RCE)
- PHP Code Injection
- HTTP Protocol Violations
- HTTPoxy
- Shellshock
- Session Fixation
- Scanner Detection
- Metadata/Error Leakages
- Project Honey Pot Blacklist
- GeoIP Country Blocking
Installation des dépendances :
yum install -y libxml libxml-devel
On se place dans "/usr/src" puis on télécharge le package
wget https://github.com/SpiderLabs/ModSecurity/releases/download/v2.9.1/modsecurity-2.9.1.tar.gz
Puis on décompresse l'archive :
tar xfvz modsecurity-2.9.1.tar.gz
On se place dans le répertoire :
cd modsecurity-2.9.1
On configure le soft avec la commande suivante :
./configure Install: make && make install
Vérification que le module est démarré :
sudo httpd -M | grep security
On doit attendre comme réponse :
security2_module (shared)
Pour la suite on édite le fichier "httpd.conf" qui se trouve dans "/etc/httpd/conf/" et on insert la ligne suivante :
LoadModule security2_module lib/apache/mod_security2.so
**Configuration du MODSECURITY **
Allez dans le repertoire suivant :
cd /usr/src
On télécharge les sources :
wget https://github.com/SpiderLabs/owasp-modsecurity-crs/archive/v3.0.0.tar.gz
On décompresse l'archive :
tar xfvz v3.0.0.tar.gz
Création du repertoire modsecurity.d sous "/etc/httpd/conf/" :
mkdir /etc/httpd/conf/modsecurity.d
Allez dans "/usr/src/owasp-modsecurity-crs-3.0.0" :
cd /usr/src/owasp-modsecurity-crs-3.0.0
Déplacer le repertoire "rules" vers :
mv rules/ /etc/httpd/conf/modsecurity.d
Déplacer et renommer le menu de configuration :
mv crs-setup.conf.example /etc/httpd/conf/modsecurity.d/crs-setup.conf
Ouverture de ce fichier afin de voir les regles et ainsi voir les activations possibles. Certaines regles sont décommentées et d'autre non. Pour faire des tests je décommente certaines regles :
- Anti-Automation / DoS Protection, comme indiqué elle permet de se protèger contre les attaques DoS
- GeoIP Database cette regle permet de geolocaliser les data adresse Ip client afin de pouvoir bloquer certaines ip en provenance de pays. Il faut mettre à jour continuellement cette base de donnée.
- Project Honey Pot HTTP Blacklist, nous permet de connaitre les differentes types IP malveillantes
- HTTP Policy Settings, cette section nous permet de définir les polices pour le protocole HTTP. Au sein de cette section nous avons plusieurs regle tels que :
- Forbidden file extensions qui protège contre l'exposition involontaire de fichiers de développement / configuration
- Allowed HTTP versions On crée le fichier "mod_security.conf" dans "/etc/httpd/conf.d" et on ajoute les lignes suivantes :
<IfModule mod_security2.c>
SecRuleEngine On
SecRequestBodyAccess On
SecResponseBodyAccess On
SecResponseBodyMimeType text/plain text/html text/xml application/octet-stream
SecDataDir /tmp
</IfModule>
On redémarre le service httpd :
service httpd restart
On ajoute cette regle dans "/etc/httpd/conf/httpd.conf" :
<IfModule security2_module>
Include /etc/httpd/conf/modsecurity.d/crs-setup.conf
Include /etc/httpd/conf/modsecurity.d/rules/*.conf
</IfModule>
Suite à cette installation on redémarre le serveur Apache2 :
service httpd restart