Se que existen bastantes detectores de escaneo y bloqueadores en Linux.
Bastante completos y autosuficientes.
Pero quisiera saber la manera pobre de detectar.
Mi idea es la siguiente. crear un script que quede a la escucha en un puerto como 25(que no lo uso)
y si detecta que alguien se conecta a ese puerto bloquee la ip en iptables.
Estaria bien asi? o como seria el checkeo de conexiones?
Esa es una buena forma, abrir varios puertos mas que nada los que se suelen escanear como el 21,22.23.25,80,110 y si conectan bloquear la ip con iptables. El problema es que si te hacen un SYN scan o un FIN scan no tenes forma de detectarlo.
Lo que se me ocurre es poner un sniffer como tcpdump y ponerle filtros para que detecte paquetes con los flags SYN o FIN que tengan como puerto destino alguno que no uses como planteabas en tu post y despues codear algun script para que valla monitoreando la salida del log de tcpdump y extraiga la IP y la bloquee con el IPTABLES.
Por ahora se me ocurre algo asi =P
Salu2