
Lleva la seguridad por oscuridad al siguiente nivel (esto es una mala idea, por favor no lo uses realmente)
Algunas personas cambian el puerto SSH en sus servidores para que sea un poco más difícil de encontrar para bots u otras amenazas, y aunque eso generalmente se considera una acción de seguridad por oscuridad, funciona muy bien para eliminar muchos de los inicios de sesión automatizados que siempre ves en /var/log/auth.log
Sin embargo, ¿qué pasaría si pudiéramos llevar esto a un nivel ridículo? ¿Qué pasaría si pudiéramos usar códigos TOTP que normalmente se usan como códigos de segundo factor para iniciar sesión en sitios web para saber realmente en qué puerto está escuchando el servidor sshd?
Para esto, presento totp-ssh-flux, una forma de asegurarte de que el puerto de tu sshd cambie cada 30 segundos, posiblemente causando a tus adversarios un pequeño momento de frustración.
Demo:

Lo que puedes ver aquí es mi teléfono (usando un cliente TOTP genérico) generando códigos, que luego puedo usar como puerto para conectarme por SSH a un servidor.
El software detrás de esto es bastante simple. Se ejecuta en un bucle que hace lo siguiente:
Lo interesante es que, como esto se hace en PREROUTING, incluso si el código expira, las conexiones establecidas permanecen conectadas.
Al momento de escribir esto, el proyecto es solo un único archivo. Necesitarás instalar golang y luego ejecutar go get y go build
Ejecuta el programa como root (lo necesita, lo siento, está editando iptables)
En la primera ejecución, el programa generará un token para el host en /etc/ssh-flux-key (puedes usar la opción -keypath para cambiarlo) y puedes ingresar ese token en tu teléfono u otros clientes.
Puedes confirmar que funciona ejecutando watch iptables -vL -t nat y esperando a que las reglas iptables se inserten y eliminen.
¿Quieres ver más locuras como esta? Sígueme en Twitter @benjojo12