Cómo Reenviar Solicitudes SSH a Otra Máquina de Manera Eficiente

Si estás ejecutando una pequeña red local y deseas manejar solicitudes SSH que no llegan por el puerto estándar, es posible que te estés preguntando cómo reenviar estas solicitudes a otra máquina de forma efectiva. Esta situación a menudo surge cuando tienes un servidor accesible, pero necesitas interactuar con un servidor interno para diversas tareas. En esta publicación, exploraremos cómo lograr esto utilizando técnicas de tunelización SSH.

Comprendiendo el Problema

Tienes una red local donde:

  • Solo una máquina está expuesta al mundo exterior.
  • Deseas reenviar solicitudes SSH que llegan en puertos no estándar a otra máquina internamente.

¿Por Qué Es Necesario Esto?

  • Seguridad: Restringir el acceso a puertos específicos puede reducir la vulnerabilidad a ataques.
  • Gestión de Recursos: Reenviar permite centralizar las operaciones en la máquina disponible mientras accedes a recursos internos.

La Solución: Tunelización SSH

La tunelización SSH es un método que te permite crear una conexión segura entre clientes y servidores, habilitando el reenvío de puertos a través de SSH. Esta solución es sencilla y solo requiere algunos comandos.

Guía Paso a Paso

  1. Crear el Túnel SSH
    Ejecuta el siguiente comando SSH para establecer un túnel:

    ssh -L 8022:myinsideserver:22 paul@myoutsideserver
    
    • Explicación:
      • -L indica que estás creando un túnel de reenvío local.
      • 8022 es el puerto local al que te conectarás en tu localhost.
      • myinsideserver:22 especifica que las conexiones a myinsideserver en el puerto 22 (el puerto estándar de SSH) deben ser reenviadas.
      • paul@myoutsideserver es tu nombre de usuario y el servidor al que te conectas desde el exterior.
  2. Conectar a Través del Túnel
    Una vez que el túnel esté activo, abre otra ventana de terminal y ejecuta este comando:

    ssh -p 8022 paul@localhost
    
    • Qué hace esto:
      • Le estás diciendo a SSH que se conecte a localhost en el puerto 8022, que redirige la solicitud a través del túnel creado anteriormente y te lleva al myinsideserver.

Consideraciones Importantes

  • Privilegios de Puerto: No necesitas privilegios de superusuario a menos que intentes reenviar en un puerto privilegiado (como 22). Siempre que utilices un puerto no privilegiado (como 8022), puedes proceder sin acceso root.

  • Configuraciones de Seguridad: Asegúrate de que myoutsideserver esté configurado para permitir el reenvío de puertos. Puede que necesites revisar o ajustar la configuración de SSH (/etc/ssh/sshd_config en el servidor) para habilitar el reenvío TCP.

Conclusión

Reenviar solicitudes SSH no solo mejora la seguridad, sino que también optimiza la gestión de recursos dentro de tu red. Con el método de tunelización SSH descrito anteriormente, puedes redirigir efectivamente las solicitudes a máquinas internas sin exponerlas directamente al mundo exterior.

Siguiendo estos pasos, puedes asegurar que tus solicitudes SSH se reenvíen de manera eficiente y que tu red permanezca segura.

¡No dudes en comentar abajo si tienes preguntas adicionales o necesitas más ayuda con SSH o problemas de red!