Problema:
Quando un attacco DDOS o un'esplosione di richieste arrivano contemporaneamente nel mio server Web Apache2, l'intero server può esaurire la RAM e andare in crash.
Possibile soluzione:
Limita il numero di connessioni simultanee al tuo server Web per VirtualHost
Metodo: Un metodo semplice ed efficace eseguito direttamente sul server web Apache è utilizzare i moduli:mod_bw (mod_bandwidth) e mod_vhost_limit . Preferisco il mod_vhost_limit poiché è molto più semplice da configurare e si è dimostrato più efficace secondo i miei test.
Ambiente:
Compatibile con Apache 2.2 xx e Apache 2.4.xx.
Nota: Per Apache 2.4.xx, prima di compilare il modulo è necessario eseguire un "patch" del codice sorgente originale.
Passaggi:
Installa gli strumenti dell'ambiente di compilazione:apt-get install build-essential apache2-dev
Scarica i sorgenti del modulo ed estrailo.wget http://apache.ivn.cl/files/source/mod_vhost_limit-0.2.tgz
tar fvxz mod_vhost_limit-0.2.tgz
SOLO PER Apache 2.4.xx
Recupero della patch e patch del sorgente originale.
Rif: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 ..
PER ENTRAMBE Apache 2.2..xx e Apache 2.4.xx
Compila, installa e abilita il modulo:cd mod_vhost_limit-0.2
/usr/bin/apxs2 -i -a -c mod_vhost_limit.c
service apache2 restart
Utilizza il modulo in una configurazione VirtualHost: <VirtualHost ......>
...........
# Limits the concurrent requests to 1000 for this vhost
<IfModule vhost_limit_module>
MaxVhostClients 1000
</IfModule>
...........
</VirtualHost>