Problema:
Cuando un ataque DDOS o una ráfaga de solicitudes llegan al mismo tiempo a mi servidor web Apache2, todo el servidor puede quedarse sin RAM y colapsar.
Posible solución:
Limite el número de conexiones simultáneas a su servidor Web por VirtualHost
Método: Un método simple y efectivo realizado directamente en el servidor web Apache es usar los módulos:mod_bw (mod_ancho de banda) y mod_vhost_limit . Prefiero el mod_vhost_limit ya que es mucho más fácil de configurar y ha demostrado ser más efectivo según mis pruebas.
Entorno:
Compatible con Apache 2.2 xx y Apache 2.4.xx.
Nota: Para Apache 2.4.xx, se debe realizar un "Parcheo" del código fuente original antes de compilar el módulo.
Pasos:
Instalar las herramientas del entorno de compilación:apt-get install build-essential apache2-dev
Descargue las fuentes del módulo y extráigalo.wget http://apache.ivn.cl/files/source/mod_vhost_limit-0.2.tgz
tar fvxz mod_vhost_limit-0.2.tgz
SOLO PARA Apache 2.4.xx
Obtención del parche y parcheo de la fuente original.
Ref: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 ..
PARA AMBOS Apache 2.2..xx y Apache 2.4.xx
Compila, instala y habilita el módulo:cd mod_vhost_limit-0.2
/usr/bin/apxs2 -i -a -c mod_vhost_limit.c
service apache2 restart
Utilice el módulo en una configuración de VirtualHost: <VirtualHost ......>
...........
# Limits the concurrent requests to 1000 for this vhost
<IfModule vhost_limit_module>
MaxVhostClients 1000
</IfModule>
...........
</VirtualHost>