Ho pubblicato Horwall, un piccolo esperimento per FreeBSD che osserva gli access log di nginx e segnala gli IP sospetti a blocklistd.
Il nome viene da hor, la parola olandese per zanzariera. L’idea è più o meno quella: non un web application firewall completo, ma una piccola rete che ferma i soliti insetti fastidiosi prima che continuino a ronzare.
Horwall è volutamente semplice:
- segue l’access log di nginx con
tail -F, quindi gestisce correttamente la rotazione dei log; - i path sospetti vengono intercettati con una regular expression per riga;
- il filtro è scritto in
awk; - un helper minimale in C parla con
libblocklist; blocklistdgestisce il ban vero e proprio e la sua scadenza;- sono inclusi un servizio
rc.de alcuni esempi di configurazione.
Per ora è software alpha (0.1.0) e riflette il mio setup attuale: FreeBSD, access log di nginx in formato custom awstats, PF e blocklistd.
La policy predefinita che sto usando è volutamente breve: una segnalazione, cinque minuti di blocco. Abbastanza per rallentare gli scanner rumorosi, non abbastanza per fingere che sia polvere magica di sicurezza.
Il file dei pattern supporta sia regole positive sia esclusioni. Per esempio, una regola larga come \.php può avere senso su un sito che non serve PHP, ma ovviamente può essere una pessima idea altrove. I pattern vanno controllati e adattati prima di abilitare i ban reali.
Codice, README, note di installazione ed esempi sono su GitHub:
github.com/zenfunkpanda/horwall
Rispondi o commenta via email.