Cómo crear túneles SSH o reenvío de puertos en Linux
- 2684
- 118
- Sr. Eduardo Menchaca
Túnel ssh (también conocido como reenvío de puertos SSH) simplemente está enrutando el tráfico de red local a través de SSH a hosts remotos. Esto implica que todas sus conexiones están aseguradas utilizando el cifrado. Proporciona una manera fácil de configurar un VPN (Red privada virtual), útil para conectarse a redes privadas a través de redes públicas no seguras como Internet.
También se puede utilizar para exponer a los servidores locales detrás de NATS y firewalls a Internet por túneles seguros, como se implementa en NGROK.
[También puede que le guste: cómo asegurar y endurecer el servidor OpenSsh]
Ssh Las sesiones permiten conexiones de red de túneles de forma predeterminada y hay tres tipos de reenvío de puertos SSH: local, remoto y dinámica reenvío de puertos.
En este artículo, demostraremos cómo configurar rápida y fácilmente el túnel SSH o los diferentes tipos de reenvío de puertos en Linux.
Entorno de prueba:
Para el propósito de este artículo, estamos utilizando la siguiente configuración:
- Anfitrión local: 192.168.43.31
- Servidor remoto: Linode Centos 7 VPS con nombre de host servidor 1.ejemplo.comunicarse.
Por lo general, puede conectarse de forma segura a un servidor remoto utilizando SSH de la siguiente manera. En este ejemplo, he configurado el inicio de sesión SSH sin contraseña entre mis hosts locales y remotos, por lo que no ha pedido la contraseña del administrador del usuario.
$ ssh [correo electrónico protegido]Conecte SSH remoto sin contraseña
Reenvío de puertos SSH local
Este tipo de reenvío de puertos le permite conectarse desde su computadora local a un servidor remoto. Suponiendo que esté detrás de un firewall restrictivo o bloqueado por un firewall saliente para acceder a una aplicación que se ejecuta en el puerto 3000 En su servidor remoto.
Puede reenviar un puerto local (E.gramo 8080) que luego puede usar para acceder a la aplicación localmente de la siguiente manera. El -L
La bandera define el puerto reenviado al host remoto y al puerto remoto.
$ ssh [correo electrónico protegido] -l 8080: servidor1.ejemplo.com: 3000
Agregando el -norte
bandera significa que no ejecute un comando remoto, no obtendrá un shell en este caso.
$ ssh -n [correo electrónico protegido] -l 8080: servidor1.ejemplo.com: 3000
El -F
Switch instruye a SSH que se ejecute en segundo plano.
$ ssh -f -n [correo electrónico protegido] -l 8080: servidor1.ejemplo.com: 3000
Ahora, en su máquina local, abra un navegador, en lugar de acceder a la aplicación remota utilizando la dirección servidor 1.ejemplo.com: 3000, simplemente puedes usar Localhost: 8080
o 192.168.43.31: 8080
, Como se muestra en la captura de pantalla a continuación.
Reenvío de puertos SSH remoto
El reenvío remoto de puertos le permite conectarse desde su máquina remota a la computadora local. Por defecto, SSH no permite el reenvío de puertos remotos. Puedes habilitar esto usando el Puerto de gateway Directiva en su archivo de configuración principal de SSHD /etc/ssh/sshd_config en el host remoto.
Abra el archivo para editar usando su editor de línea de comandos favorito.
$ sudo vim/etc/ssh/sshd_config
Busque la directiva requerida, descomnéla y establezca su valor en Sí
, Como se muestra en la captura de pantalla.
Gatewayports SíHabilitar el reenvío de puertos SSH remoto
Guardar los cambios y salir. A continuación, debe reiniciar SSHD para aplicar el cambio reciente que realizó.
$ sudo systemctl reiniciar sshd o $ sudo servicio sshd reiniciar
A continuación, ejecute el siguiente comando para reenviar puerto 5000 en la máquina remota al puerto 3000 en la máquina local.
$ ssh -f -n [correo electrónico protegido] -r 5000: localhost: 3000
Una vez que comprenda este método de túnel, puede exponer de manera fácil y segura un servidor de desarrollo local, especialmente detrás de NATS y firewalls a Internet a través de túneles seguros. Túneles como ngrok, pagekite, túnel local, y muchos otros trabajan de manera similar.
Reenvío de puertos SSH dinámico
Este es el tercer tipo de reenvío de puertos. A diferencia de local y remoto Reenvío de puertos que permite la comunicación con un solo puerto, hace posible una gama completa de comunicaciones TCP en una gama de puertos. El reenvío de puertos dinámico configura su máquina como Servidor proxy de calcetines que escucha en el puerto 1080, por defecto.
Para principiantes, MEDIAS es un protocolo de Internet que define cómo un cliente puede conectarse a un servidor a través de un servidor proxy (SSH en este caso). Puede habilitar el reenvío de puertos dinámicos utilizando el -D opción.
El siguiente comando iniciará un proxy de calcetines en el puerto 1080 permitiéndole conectarse al host remoto.
$ ssh -f -n -d 1080 [correo electrónico protegido]
De ahora en adelante, puede hacer que las aplicaciones en su máquina usen este servidor proxy SSH editando su configuración y configurándolas para usarla, para conectarse a su servidor remoto. Tenga en cuenta que el MEDIAS Proxy dejará de funcionar después de cerrar su sesión SSH.
Leer también: 5 formas de mantener las sesiones remotas de SSH en funcionamiento después de cerrar SSH
Resumen
En este artículo, explicamos los diversos tipos de reenvío de puertos de una máquina a otra, para túneles de tráfico a través de la conexión SSH segura. Este es uno de los muchos usos de SSH. Puede agregar su voz a esta guía a través del formulario de comentarios a continuación.
Atención: El reenvío de puertos SSH tiene algunas desventajas considerables, se puede abusar: se puede usar para evitar los programas de monitoreo de red y filtrado de tráfico (o firewalls). Los atacantes pueden usarlo para actividades maliciosas. En nuestro próximo artículo, mostraremos cómo deshabilitar el reenvío de puertos locales SSH. Mantente conectado!
- « Cómo probar su velocidad de Internet de Linux usando SpeedTest CLI
- Cómo instalar el último escritorio LXQT en Ubuntu y Fedora »