/scripts/brutessh/

ver bajar

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:

  1. tener pf corriendo para freebsd y para netbsd
  2. agregar la tabla bugs en /etc/pf.conf: table <bugs> persist y tambien block in quick on $ext_if from <bugs> to any.
  3. como root perl bruteforce.pl & agregarla a tu rc.local

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.