Se il nostro server web si trova dietro un proxy, è possibile che l’IP sorgente non sia quello reale del visitatore finale, ma sia quello del proxy e quindi avremo l’IP reale in qualche header tipo X-Forwarded-For; intanto potremo configurare apache per loggare l’IP in modo corretto, usando il modulo remoteip o rpaf in modo da avere nei log di accesso il corretto IP del visitatore finale, ma se volessimo bloccare tale IP con file2ban non sarebbe possibile direttamente, perché ricordo che l’IP sorgente delle richieste non è quello del visitatore finale, bensì quello del proxy.
In questo caso possiamo limitare i danni (nel senso di bloccare le richieste per taluni IP), creando una regola nel file .htaccess posizionato nella nostra webroot che vada a bloccare le richieste se l’IP viene identificato da qualche regola di fail2ban.
Ipotizziamo che la webroot sia /var/www/web1/htdocs e che vogliamo usare la cartella blockedip per contenere i riferimenti per gli IP bloccati.
Scriviamo all’inizio del nel nostro file .htaccess le seguenti direttive (le prime due righe non servono ma le lascio perché a qualcuno possono essere utili per farci altro):
RewriteCond %{DOCUMENT_ROOT}/blockedip/%{REMOTE_ADDR} -f
RewriteRule . - F]
RewriteCond %{DOCUMENT_ROOT}/blockedip/%{HTTP:X-FORWARDED-FOR} -f
RewriteRule . - F]Dopo aver fatto la classica configurazione di fail2ban in coppia con nftables, bisognerà aprire il file /etc/fail2ban/action.d/nftables.conf e scrivere, sotto la direttiva actionban, la riga:
touch /var/www/web1/htdocs/blockedip/<ip>e sotto la direttiva actionunban, la riga:
rm /var/www/web1/htdocs/blockedip/<ip>Bene, ora riavviamo fail2ban e non appena ci saranno IP bloccati, li troverete riepilogati nella cartella /var/www/web1/htdocs e la regola di rewrite nel file .htaccess provvederà a bloccare le richieste per tali IP.
enjoy!
Ti interessa acquistare un dominio a prezzi ultraconvenienti? clicca qui
Se hai trovato utili le informazioni su questo blog,
Fai una donazione!
Clicca sul bottone qui sotto o almeno clicca sul banner pubblicitario 🙂
Commenta