¿Cómo puedo falsificar el puerto 22 cuando hice que sshd escuchara otro puerto?

9

En lugar de hacer posibles piratas informáticos desde el escaneo de puertos de mi servidor, me gustaría simular que sshd está escuchando en el puerto 22 y registrar los intentos. ¿Tendrá sentido hacer eso? En caso afirmativo, qué herramientas / bibliotecas desarrolladas activamente están disponibles.

Jürgen Paul
fuente
1
Pero es mejor que recuerde que instalar cualquier software adicional aumenta los riesgos de penetración de todos modos. Podría ser cierto que OpenSSH sería más fuerte para el robo que cualquier cosa "falsa" como honeypot, por ejemplo. Por lo tanto, significa que necesitaría endurecer su instalación de alguna manera.
2013

Respuestas:

9

También puede simplemente registrar todos los intentos de conexión al puerto 22 con iptables, incluso si no hay nada escuchando en ese puerto:

$ sudo iptables -A INPUT -p tcp  --dport 2222 -j LOG
$ nc localhost 2222
$ tail -n1 /var/log/syslog
Oct 26 13:35:07 localhost kernel: [325488.300080] IN=lo OUT= MAC=00:00:00:00:00:00:00:00:00:00:00:00:08:00 SRC=127.0.0.1 DST=127.0.0.1 LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=56580 DF PROTO=TCP SPT=35625 DPT=2222 WINDOW=43690 RES=0x00 SYN URGP=0 
Dennis Kaarsemaker
fuente
4

Para responder a la pregunta "¿Tendrá sentido hacer eso?" Le pregunto: "¿Es usted un investigador de seguridad?" Si responde que sí, entonces ejecutar un honeypot ssh tendría sentido.

Si solo está ejecutando un servicio de producción y no le importan los escaneos fallidos, simplemente ejecute su sshd en un puerto diferente con mecanismos de autenticación adicionales (como solo clave pública, o que requieran un Yubikey o dispositivo similar) y suelte el puerto 22 tráfico sin registrarlo.

Hay gusanos ssh de fuerza bruta que escanean activamente Internet que probarán su puerto ssh durante todo el día, y si no va a ver los datos de los registros de firewall o honeypots, todo lo que está haciendo es desperdiciar espacio en el disco.

Paul Gear
fuente
3
La pregunta para mí no es "¿Puedo hacer esto?", Sino "¿Debo hacer esto?". Veo a muchos administradores de sistemas o desarrolladores haciendo cosas porque creen que deberían hacerlo, o porque alguien les dijo que deberían hacerlo o porque "todos" lo están haciendo. Hacer cualquier cosa sin tener necesidades, objetivos y resultados esperados claramente definidos es una pérdida de tiempo, dinero y energía.
joeqwerty