Problème :
Lorsqu'une attaque DDOS ou une rafale de requêtes arrivent en même temps sur mon serveur Web Apache2, l'ensemble du serveur peut manquer de RAM et planter.
Solution possible :
Limitez le nombre de connexions simultanées à votre serveur Web par VirtualHost
Méthode : Une méthode simple et efficace effectuée directement sur le serveur web Apache consiste à utiliser les modules :mod_bw (mod_bandwidth) et mod_vhost_limit . Je préfère le mod_vhost_limit puisqu'il est beaucoup plus facile à configurer et s'est avéré plus efficace d'après mes tests.
Environnement :
Compatible avec Apache 2.2 xx et Apache 2.4.xx.
Remarque : Pour Apache 2.4.xx, un "Patching" du code source d'origine doit être fait avant de compiler le module.
Étapes :
Installez les outils d'environnement de construction :apt-get install build-essential apache2-dev
Téléchargez les sources du module et extrayez-le.wget http://apache.ivn.cl/files/source/mod_vhost_limit-0.2.tgz
tar fvxz mod_vhost_limit-0.2.tgz
UNIQUEMENT POUR Apache 2.4.xx
Obtenir le patch et patcher la source d'origine.
Réf :https://github.com/pld-linux/apache-mod_vhost_limitwget https://github.com/pld-linux/apache-mod_vhost_limit/archive/master.zip
unzip master.zip
cp apache-mod_vhost_limit-master/* mod_vhost_limit-0.2/
cd mod_vhost_limit-0.2/
patch mod_vhost_limit.c < mod_vhost_limit-apache24.patch
cd ..
POUR LES DEUX Apache 2.2..xx et Apache 2.4.xx
Compilez, installez et activez le module :cd mod_vhost_limit-0.2
/usr/bin/apxs2 -i -a -c mod_vhost_limit.c
service apache2 restart
Utiliser le module dans une configuration VirtualHost : <VirtualHost ......>
...........
# Limits the concurrent requests to 1000 for this vhost
<IfModule vhost_limit_module>
MaxVhostClients 1000
</IfModule>
...........
</VirtualHost>