Como usar el tunel inverso SSH para conexiones externas a su PC

Si tiene la suerte de que su proveedor de servicios de Internet (ISP) le dé una dirección IP dedicada, puede configurar un servidor doméstico y ponerlo a disposición de Internet agregando algunas reglas de reenvío de puertos a su enrutador

Pero si su ISP le hace compartir esa IP con sus vecinos, entonces el reenvío de puertos no ayudará. Otros proveedores simplemente bloquean las conexiones entrantes a través de reglas de firewall.

Puede omitir todas estas restricciones con la ayuda de un servidor privado virtual. Cualquier cosa funcionará, incluso si tiene menos de 512 MB de RAM, ya que todo lo que tiene que hacer es redirigir el tráfico de la red. Esto es muy ligero en CPU y RAM. El servidor recibirá conexiones entrantes y las redireccionará a su computadora a través de lo que se denomina un “túnel SSH inverso”. De esta manera, puede configurar cualquier tipo de servidor doméstico, con costos mensuales muy pequeños.

Imagina que creas un servidor de NextCloud para cargar / sincronizar tus archivos. Obtiene la privacidad de tener esos archivos en su servidor doméstico, y luego puede comprar un disco duro de 6TB para obtener todo el espacio que necesita. Solo tiene que pagar una factura mensual de electricidad y menos de $ 5 por mes para un servidor privado virtual. Eso es mucho más barato que la factura mensual de un servidor con 6 TB de espacio.

Nota: Esto solo funciona para redireccionar el tráfico de la red TCP. TCP es usado por cosas tales como servidores web (puerto 80 / tcp). UDP es utilizado por algunos (no todos) los servidores de juegos, por ejemplo Counter Strike (puerto 27015 / UDP). El túnel UDP es posible, pero con algunos "hacks", que pueden ser el tema de un futuro tutorial.

Windows 10 ahora tiene un cliente SSH incorporado

Ya no es necesario usar PuTTY para iniciar las conexiones SSH. De hecho, para este tutorial, realmente usarás este cliente incorporado para configurar el túnel. Lee el tutorial sobre el cliente OpenSSH de Windows 10 si aún no estás familiarizado con él.

Preparar servidor privado virtual para conexiones de túnel

Cree un servidor privado virtual con su proveedor favorito, como DigitalOcean, Linode, Vultr o lo que prefiera. Lo más importante es elegir una ubicación de servidor que esté lo más cerca posible de usted para minimizar la latencia de la red. Intente configurar el servidor de tal manera que pueda iniciar sesión directamente en la cuenta raíz, preferiblemente con una clave SSH, ya que es más seguro. Esto es necesario si desea que el servidor escuche las conexiones que vienen en puertos por debajo de 1024, denominados puertos con privilegios.

Abra el símbolo del sistema (o un terminal si está en Linux) e inicie sesión en el servidor a través de SSH.

Editar la configuración del servidor OpenSSH: nano /etc /ssh /sshd_config

Si no inició sesión como usuario root, pero como usuario habitual, deberá usar este comando, de lo contrario no podrá guardar el archivo: sudo nano /etc /ssh /sshd_config

Desplazarse hacia abajo hasta que encuentre una variable llamada La línea puede tener este aspecto “GatewayPorts.”: #GatewayPorts no. Elimine el “#” anterior (para descomentar) y cambie la línea a GatewayPorts yes.

Si no puede encontrar la línea, simplemente desplácese hacia abajo hasta el final y agregue la línea usted mismo: GatewayPorts sí

Presione Ctrl+ X, luego presione y, y finalmente Enter para guardar el archivo.

Vuelva a cargar el demonio SSH para que recoja la nueva configuración. systemctl reload ssh.service

Cómo configurar un túnel inverso SSH

Los parámetros de comando son los mismos en los sistemas operativos Linux, Windows e incluso BSD. La sintaxis general es: ssh -R remote_port: host: localport your_username @ IP-of-server

remote_port le dice al servidor que redirija las conexiones que vienen a ese puerto.

host le indica al servidor a qué dirección IP se debe redirigir la conexión. 127.0.0.1se utilizará aquí para redirigir a su propia computadora.

localport indica a qué paquetes de datos de puerto se deben redirigir. Aquí, debe colocar el número de puerto que escucha su aplicación, instalada en su computadora local.

Por ejemplo, para reenviar todas las conexiones que vienen en el puerto 80 (al servidor) y enviarlas al puerto 8080 en su computadora local, el comando sería: ssh -R 80 : 127.0.0.1: 8080 root @ 203.0.113.1

Esto supone que tiene un servidor web, como Apache o Nginx, que escucha en el puerto 8080 en su máquina local. Pero si Apache / Nginx está escuchando en el puerto predeterminado 80, entonces no hay problema al usar el mismo puerto dos veces en el comando anterior (ya que se refieren al puerto 80 en un servidor diferente).

ssh -R 80 : 127.0.0.1: 80 root @ 203.0.113.1

En este punto, si alguien ingresa la dirección IP de su servidor privado virtual en la barra de direcciones de un navegador, su computadora local redirigirá su conexión y la atenderá.

Vale la pena mencionar que para mantener el túnel activo, su sesión de SSH debe permanecer activa. Para cerrar el túnel, escriba exit la ventana del terminal /comando.

Fecha actualización el 2021-02-14. Fecha publicación el 2019-02-14. Categoría: windows Autor: Oscar olg Mapa del sitio Fuente: maketecheasier
windows