un script en perl que hace un tail al auth.log y pf (packet filter) que capta los ataques a ssh y bloquea a los ip que se pasan el limite definido de errores. debido a que funciona con pf solo esta disponible con *bsd. aun esta algo verde faltan caracteristicas como definir que despues de n tiempo borre el ip. para ver los ip bloqueados como root colocar pftcl -t bugs -Ts y para eliminar un ip pfctl -t bugs -Td ip.
busca patrones como estos:
Jun 30 05:41:02 tinc sshd[27009]: Failed password for root from 218.14.146.205 port 47762 ssh2
Jun 30 20:49:17 tinc sshd[14700]: Invalid user demo from 200.31.125.15
Jun 30 04:51:40 tinc sshd[22295]: Failed password for invalid user author from 66.221.211.184 port 48222 ssh2
instalacion:
solucion b:
- cambiar a sshd de puerto.
- agregar a pf.conf
pass in quick on $ext_if proto tcp from any to any port ssh flags S/SA modulate state \
(max-src-conn 3, max-src-conn-rate 3/60 overload <bugs> flush global)
TODO:
- hace un tiempo encontre este script sshblock-1.0.pl funciona en linux con /etc/hosts.allow, se ve _lindo_ como para pasarlo a pf y agregarle whitelist entre otras cosas.