Habilitar el reenvío de puertos SSH en Linux

Habilitar el reenvío de puertos SSH en Linux

La mayoría de los usuarios de Linux están familiarizados con el protocolo SSH, ya que permite la administración remota de cualquier sistema de Linux. También se usa comúnmente para SFTP para descargar o cargar archivos. SSH se conoce como un protocolo muy seguro porque cifra el tráfico de extremo a final. Pero los túneles encriptados que crea son en realidad bastante versátiles y se pueden usar para algo más que la administración remota del servidor o la transferencia de archivos.

El reenvío de puertos SSH se puede usar para cifrar el tráfico entre dos sistemas para casi cualquier protocolo. Esto se logra creando un túnel seguro y luego enrutando el tráfico de otro protocolo a través de ese túnel. Por principio, funciona de manera muy similar a una VPN.

En esta guía, revisaremos las instrucciones paso a paso para mostrarle cómo usar el reenvío de puertos SSH para crear un túnel seguro para alguna otra aplicación. Como ejemplo, crearemos el reenvío de puertos para el protocolo Telnet, que generalmente se evita debido a cómo transfiere datos en texto claro. Esto asegurará el protocolo y hará que sea seguro usar.

En este tutorial aprenderás:

  • Cómo usar el reenvío de puertos SSH
  • Cómo crear un túnel SSH persistente
Creación de un túnel SSH a través del reenvío de puertos en Linux
Requisitos de software y convenciones de línea de comandos de Linux
Categoría Requisitos, convenciones o versión de software utilizada
Sistema Cualquier distribución de Linux
Software OpenSsh, AutoSh
Otro Acceso privilegiado a su sistema Linux como root o a través del sudo dominio.
Convenciones # - requiere que los comandos de Linux dados se ejecuten con privilegios raíz directamente como un usuario raíz o mediante el uso de sudo dominio
ps - Requiere que los comandos de Linux dados se ejecuten como un usuario regular no privilegiado

Cómo usar el reenvío de puertos SSH



El reenvío de puertos SSH funciona reenviando el tráfico desde un puerto específico en su sistema local a un puerto en el sistema remoto. Los dos puertos no tienen que ser los mismos. Como ejemplo, reenviaremos el puerto 4500 en nuestro sistema local al puerto 23 (Telnet) en un sistema remoto.

No tienes que hacer esto como una raíz. Dado que estamos utilizando un puerto superior a 1024, un usuario ordinario puede crear esta conexión de reenvío de puerto. Tenga en cuenta que se erige un túnel solo cuando se ejecuta la conexión SSH.

$ ssh -l 4500: 127.0.0.1:23 [email protected] 

Diseccionar lo que está pasando en este comando.

  • -L - Esta opción le dice a SSH que queremos crear un túnel a través del reenvío de puertos.
  • 4500 - El puerto de nuestro sistema local que enviaremos tráfico a través de.
  • 127.0.0.1 - Esta es la dirección de bucleback de nuestro sistema local.
  • 23 - El puerto remoto al que estamos tratando de conectarnos.
  • usuario - El nombre de usuario para iniciar sesión en SSH en el servidor remoto.
  • LinuxConfig.organizar - La IP del servidor remoto o el nombre de dominio.

En este punto, cada conexión que usa el puerto 4500 en el localhost se redirigirá al puerto remoto 23.

Creación del túnel SSH desde el puerto local 4500 al puerto remoto 23

En la captura de pantalla anterior, hemos creado con éxito un túnel al servidor remoto. Como puede ver, parece un típico inicio de sesión de SSH. Pero ahora, en nuestro sistema local, podemos acceder al servicio Telnet del sistema remoto enrutando el tráfico a través del puerto 4500.

$ Telnet 127.0.0.1 4500 


Abriremos un nuevo terminal e intentaremos esto en nuestro sistema de prueba, mientras dejamos el otro terminal abierto para que mantenga nuestro túnel SSH.

Uso de Telnet para conectarse a un servidor remoto y enrutar el tráfico a través de SSH para seguridad

Como puede ver, ahora tenemos una sesión de Telnet abierta al servidor remoto, pero es una conexión segura ya que se envía a través del túnel SSH existente que establecimos en el otro terminal.

Eso es todo al respecto. Puede usar túneles SSH para cualquier tipo de tráfico. Lo que hay que recordar es que debe señalar su solicitud a su dirección local (127.0.0.1) y el número de puerto que configura para el túnel SSH.

Cómo crear túneles SSH persistentes

Es posible que haya notado que para los túneles SSH a largo plazo, es bastante inconveniente que se base en nuestra conexión SSH abierta. Si hay alguna latencia temporal o la terminal SSH simplemente alcanza su tiempo de espera, el túnel se elimina junto con la sesión de SSH.

Puedes instalar el AutoSh Utilidad con el Administrador de paquetes de su sistema si desea crear un túnel que se vuelva a colocar automáticamente cuando cae. Deberá tener las teclas RSA configuradas para SSH sin contraseña para que este método funcione.

La sintaxis para construir un túnel persistente es básicamente idéntico al método SSH normal.

$ AUTOSSH -L 4500: 127.0.0.1:23 [email protected] 

Pensamientos de cierre

En esta guía, vimos cómo usar el reenvío de puertos SSH en Linux. Esto permite a un usuario construir un túnel SSH seguro que pueda ser utilizado por otras aplicaciones y protocolos para conexiones encriptadas a servidores remotos. Como ejemplo, vimos cómo se podría asegurar el protocolo de Telnet a través del reenvío de puertos SSH. También aprendimos a mantener persistentes los túneles SSH utilizando la utilidad de AutoSh.

Tutoriales de Linux relacionados:

  • Cómo configurar el servidor FTP/SFTP y el cliente en Almalinux
  • Cómo configurar el servidor SFTP en Ubuntu 22.04 Jellyfish de Jammy ..
  • Cosas para instalar en Ubuntu 20.04
  • Una introducción a la automatización, herramientas y técnicas de Linux
  • Cosas que hacer después de instalar Ubuntu 20.04 fossa focal Linux
  • Archivos de configuración de Linux: los 30 principales más importantes
  • Configurar servidor FTP en Linux
  • Cosas para instalar en Ubuntu 22.04
  • Descarga de Linux
  • Mint 20: Mejor que Ubuntu y Microsoft Windows?