Activa y asegura el servidor SSH en FreshTomato 🍅🔐

Habilitar el servidor SSH en nuestro router es el primer paso para experimentar con las funciones avanzadas que ofrece esta grandiosa herramienta. En esta guía nos enfocaremos en Dropbear, el servidor SSH ligero que viene integrado por defecto en el firmware Tomato

 


¿Por qué usar SSH en tu router?

Entre las características más interesantes que nos ofrece Dropbear, destacan:

  • Autenticación mediante claves públicas: Mucho más seguro que usar solo contraseñas.

  • Port Forwarding: Para redirigir tráfico de forma segura.

  • Tunneling: Para crear túneles cifrados entre redes.

Para este tutorial, utilizo la versión más reciente de FreshTomato (2020.06), la cual mantiene a Dropbear (2020.80) actualizado y muy estable. Si aún no lo sabes, FreshTomato es un firmware de código abierto que "revive" y potencia tu router inalámbrico (sí, esa cajita que nos da Wi-Fi 👽).


🚀 Activación del servidor SSH

Para empezar, nos dirigimos en la interfaz web a Administration Admin Access. En la sección SSH Daemon, realizamos lo siguiente:

  1. Enable at Startup (1): Márcalo si quieres que el servidor se active automáticamente cada vez que el router se encienda.

  2. Start Now (2): Úsalo para activar el servidor inmediatamente sin esperar al reinicio.

  3. Seguridad ante todo (3): Muchos mods tienen activado el servidor Telnet por defecto. Por seguridad, te recomiendo desmarcar "Enable at Startup" en la sección Telnet Daemon y detenerlo. SSH es mucho más seguro ya que cifra todo el tráfico.

 


En el blog hay varias entradas sobre el Firmware 🍅 Tomato, que puedes visitar en este enlace 😀


🔑 Métodos de Identificación

Existen dos formas de acceder. Podemos habilitar ambas, pero siempre recomendaremos la segunda por seguridad.

1. Usuario y contraseña

Es el método más sencillo, pero el menos seguro. El usuario está predefinido para el servidor SSH es root y no se puede cambiar, lo que facilita los ataques de fuerza bruta.

  • Importante: La contraseña es la misma que usas para entrar a la interfaz web del router. ¡Cámbiala siempre por una robusta!

  • Asegúrate de tener habilitada la opción Allow Password Login si vas a usar este método.

 

Aunque tenemos la opción de cambiar el username, solo tendrá efecto para entrar a la interfaz web, para el servidor ssh es root 🤔

 


2. Criptografía Asimétrica (Llaves SSH)

Es el método profesional. Es un poco más complejo de entender al principio, pero muy fácil de implementar. En lugar de una contraseña, usamos un par de llaves: una pública (que se queda en el router) y una privada (que guardas tú).

 

 

Cómo generar tus llaves en Linux: Aunque antes usábamos RSA de 1024 bits, hoy lo estándar, recomendado y más seguro es Ed25519. Puedes generarlas en Linux con el poderoso OpenSSH con este comando:

$ ssh-keygen -t ed25519

 

Si prefieres usar el ejemplo clásico de RSA (Recomiendo 4096 bits para mayor seguridad):

$ ssh-keygen -b 4096 -t rsa

 

Esto creará dos archivos: id_ed25519 (privada) e id_ed25519.pub (pública).

  1. Abre la llave pública con un editor de texto y copia su contenido en el cuadro Authorized Keys (1) del router.

  2. Si quieres máxima seguridad, desactiva Allow Password Login (2) para que solo se pueda entrar con la llave.


Nota: Puedes pegar varias llaves públicas, una por cada salto de línea.
 

 

⚠️ [Actualización 05/2021] el método de llave ed25519 ya funciona perfecto las ultimas versiones de FreshTomato, mejor ir directamente por este, en internet hay mucha información al respecto.


⚙️ Configuración Avanzada

  • Remote Access (2): Actívalo solo si necesitas acceder al router desde fuera de tu casa (Internet).

  • Puertos: Por defecto, al interno en la red LAN (4) se usa el puerto 22 (no lo cambies). Si vas a acceder desde internet, es muy recomendable cambiar el Remote Port (3) por un número aleatorio mayor a 2000 (ej. 20202) para evitar ataques automatizados.

    • Si habilitado Remote Forwarding (1) podemos crear túneles.
  • Extended MOTD (5): Al activarlo, verás una pantalla informativa con "colorines" y datos del sistema al conectarte. ¡Muy útil y visual!


Si usa el método de llaves (recomendado) desactiva Allow Password Login.


📱 Prueba de conexión

Desde tu terminal en Linux o macOS, simplemente escribe:

$ ssh root@ip_de_tu_router

 

 

Si estás en Android, te recomiendo usar la aplicación ConnectBot. Puedes importar tu llave privada o generar una nueva desde la misma app para una conexión rápida y segura desde cualquier lugar. 🔐



Si quiere saber mas sobre la app de android Connectbot, que ya les comente aquí

 

🛡️ Opciones Extra de Seguridad

En la sección Admin Restrictions, encontrarás herramientas vitales:

  • Allowed Remote IP Address: Para que solo ciertas IPs específicas puedan intentar conectarse, solo expertos.

  • Limit Connection Attempts: Fundamental para bloquear automáticamente a quien intente adivinar tu contraseña o realizar ataques. Limitamos el numero de conexiones fallidas en una ventana de tiempo. 

 



Ejemplo de llaves

Creo una llaves de ejemplo ed25519, de la manera siguiente.

$ ssh-keygen -t Ed25519 -f test/prueba



En el directorio donde creamos las llaves, tenemos una llave privada (prueba) y una llave pública (prueba.pub).



El contenido de la clave privada, es la siguiente (esta la usamos en nuestro cliente ssh o en ConnectBot).

-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAMwAAAAtzc2gtZW
QyNTUxOQAAACBzGIPeS4wCq9+SjqjEfc29XshGxb3WSS8J77+qyUfLlAAAAJisFd3urBXd
7gAAAAtzc2gtZWQyNTUxOQAAACBzGIPeS4wCq9+SjqjEfc29XshGxb3WSS8J77+qyUfLlA
AAAEAmmPLqDe6vob55wfTlC2VM9JvVDeqLeGsnQ2X1rFdD73MYg95LjAKr35KOqMR9zb1e
yEbFvdZJLwnvv6rJR8uUAAAAD3RydWtvMjJAcGljYW50ZQECAwQFBg==
-----END OPENSSH PRIVATE KEY-----


Y de la llave pública (esta es la que copiamos en FreshTomato).

ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHMYg95LjAKr35KOqMR9zb1eyEbFvdZJLwnvv6rJR8uU



Conclusión

Esta guía es una orientación general; recuerda que entre versiones de FreshTomato algunas opciones pueden variar ligeramente. Mi consejo es que empieces probando con usuario/contraseña y, una vez que domines la conexión, des el salto a las llaves criptográficas. ¡Mucho de lo que ves aquí es fruto de prueba y error! en el camino del aprendizaje 😎


❤️ Apoya el proyecto

Proyectos como FreshTomatoDropbear existen gracias al tiempo y esfuerzo de desarrolladores que creen en la libertad del software. Si este firmware ha mejorado tu red, considera realizar una donación para que el soporte continúe.

¿Tienes alguna duda o quieres aportar algo más? ¡Te leo en los comentarios! 👍


Actualizado 2020.11

Comentarios

Entradas populares 🤩

Super Mario RPG 🎮