Post Flooding Apache integrato in fail2ban per proteggere il server da un attacco DDOS che ultimamente stà mettendo a dura prova i sistemi GNU/Linux portando rapidamente ad un esaurimento delle risorse e mettendo in ginocchio le reti lan ed i gestori internet sul lato wan.
Post Flooding Apache, come tipologia di attacco DdoS è spesso utilizzata per cercare di rendere inutilizzabile il portale aziendale e far crashare il sistema con migliaia di interrogazioni e tentativi di invio email, prendendo di mira le newsletter e soprattutto i sistemi abilitati all’invio di email.
Il Post Flooding Apache, utilizza dei bug presenti soprattutto in sistemi non aggiornati o che integrano il servizio web server con il servizio server di posta elettronica, portando al collasso i server, le reti e soprattutto esponendo i servizi server alla messa al bando del sistema di posta elettronica (IP e nome dominio) da parte delle organizzazioni anti spam internazionali e non di meno a violazioni alle regolamentazioni informatiche emesse dall’Unione Europea (GDPR 679/2016 E.U.).
Il Post Flooding Apache può essere combattuto in un modo molto semplice e come spesso accade, viene in soccorso il fail2ban, software che si integra con le IPTABLES di Linux, che in men che non si dica renderà questo tipo di attacco inutile e libererà in un tempo accettabile l’impegno della rete del gestore internet, l’impegno della rete interna e soprattutto l’impegno del processore e della memoria del server, riportando tutto alla quasi normalità.
Per attivare il filtro Post Flooding Apache, bisogna innanzitutto creare un file nel sistema Linux:
nano /etc/fail2ban/filter.d/apache-postflood.conf
all’apertura della maschera di inserimento dati, dobbiamo semplicemente scrivere:
[Definition]
# match these lines to find a login fail
failregex = ^<HOST> .*\”POST [^\”]+\”
# matches this example line:
# 217.172.38.46 – – [16/Dec/2015:11:27:32 +1000] “POST /index.php HTTP/1.0” 302 270 “-” “-“
#
# don’t ignore anything
ignoreregex =
salvare il tutto e proseguire aprendo il file precedentemente creato jail.local o se ancora non è stato fatto, utilizzare il file di sistema jail.conf ricordando però che tale file a seguito di un eventuale aggiornamento potrebbe essere sovrascritto portando alla perdita di questa ed altre modifiche che nel tempo potrebbero essere state effettuate
nano /etc/fail2ban/jail.local
[apache-postflood]
enabled = true
# block these ports
port=https,http
# filter in /etc/fail2ban/filter.d/apache-postflood.conf
filter = apache-postflood
logpath = /var/log/apache2/access.log
action = %(action_)s
findtime = 3600
maxretry = 4
bantime = 21600
Il filtro Post Flooding Apache, così impostato e già stato testato su molti altri sistemi GNU/Linux, consentendo di mitigare questo tipo di attacco molto rapidamente, interfacciandosi con le iptables e negando l’accesso al sistema da parte degli IP incriminati che spesso sono centinaia e facenti parte di bot-net.
Qualora il filtro sembrasse eccessivamente restrittivo, sarà sufficiente inserire il valore 20 per il findtime e 10 nel maxretry.
Ciò consentirà di controllare un attacco perpetrato da un IP per 10 volte in 20 secondi.