SSH Tunneling: Manual para crear un túnel SSH y navegar seguro

SSH Tunneling: Manual para crear un túnel SSH y navegar seguro

Sergio De Luz

El SSH Tunneling es una técnica que nos permitirá navegar por la web de forma segura, estableciendo un túnel SSH contra un servidor SSH remoto, ya sea configurado en nuestro hogar en un servidor NAS o en nuestro router, o en un servidor VPS remoto. Hoy en RedesZone os vamos a enseñar paso a paso cómo configurar tanto el servidor SSH, como también el cliente SSH para establecer un túnel SSH y navegar seguro por la web.

Introducción

Este túnel SSH que vamos a crear únicamente cifra las comunicaciones si configuramos un Proxy en nuestro navegador, o en el programa que nosotros tengamos, en nuestras pruebas hemos usado Mozilla Firefox, pero cualquier navegador es compatible. Este método no cifra los servicios que no permiten configurar un proxy, como Dropbox (instalado en nuestro equipo) u otros programas que necesitan conexión a Internet, pero no tienen un menú para configurar el proxy. Si necesitas cifrar absolutamente todo el tráfico, entonces tendrás que configurar un servidor VPN, ya sea de tipo OpenVPN o WireGuard.

Para realizar correctamente el SSH Tunneling, o también conocido como túnel SSH, lo primero que debemos tener en cuenta es que deberemos contar con un servidor SSH accesible desde Internet, si no contamos con un servidor SSH, no podremos conectarnos a él para encapsular y cifrar todo el tráfico. Este servidor SSH puede estar en nuestro servidor NAS, en nuestro router, o directamente en un servidor remoto.

Primero debes configurar el servidor SSH con la directiva de «Permitir TCP forwarding», si usas OpenSSH, la directiva que debes indicar es:

AllowTcpForwarding

También debes permitir la redirección del tráfico en tu servidor, es decir, debes poner:

sysctl net.ipv4.ip_forward=1

Una vez que tengamos el servidor SSH funcionando, procedemos a configurar el cliente.

Configuración del cliente SSH en Windows

El programa que vamos a utilizar es Putty, es un programa Windows, pero en Linux funciona perfectamente utilizando la utilidad WINE (comprobado). No obstante, si usas Linux es mejor utilizar directamente el comando de ssh para realizar esta configuración, es muchísimo más sencillo que en Windows.

Podéis descargar Putty desde su página web oficial. No hace falta instalarlo ya que es un programa Portable, abrimos Putty y tenemos la siguiente pantalla:

Nos vamos a SSH/Tunneling tal y como vemos en la captura. En Source Port ponemos el puerto que vamos a utilizar para el túnel (por ejemplo el 8081), destination lo dejamos en blanco y en las opciones de abajo lo ponemos en Dynamic y en AUTO. Y luego seleccionamos ADD (para añadir la configuración).

A continuación, nos conectamos al servidor SSH normalmente con Putty, en el apartado Session.

Y hacemos la conexión SSH, en la imagen podéis ver el servidor SSH de mi router con Tomato RAF.

No debemos tocar nada más, únicamente dejar la conexión abierta y no cerrar el programa, repito que todo este proceso os sirve en Windows y en Linux con WINE. Ahora procedemos a configurar Firefox.

Configuración del navegador Mozilla Firefox para el Proxy

Vamos a OPCIONES, AVANZADO, RED y pinchamos en CONFIGURACIÓN.

En la siguiente imagen configuramos el uso del Proxy.

Configuración Manual del Proxy, Servidor SOCKS: 127.0.0.1 y el puerto 8081 (el que pusimos anteriormente), elegimos SOCKS v5, tal y como podéis ver en la captura.

Pinchamos en aceptar y salimos a la pantalla principal del navegador, abrimos cualquier web y ya estaremos navegando a través de nuestro servidor SSH. Si accedemos a una dirección IP local, va a funcionar sin ningún tipo de problema:

Podéis usar cualquier servicio para mirar vuestra IP pública y veréis que tenéis la misma del servidor SSH.

Configuración del Cliente SSH en Linux (por consola)

Si los usuarios de Linux se quieren ahorrar la configuración de Putty basta con que tecleeis este comando en consola y no la cerréis:

ssh -D 8081 -p 22 usuario@ip_publica
  • 8081 = puerto a usar en el túnel
  • 22 = puerto del servidor ssh, si usamos el puerto 22 no hace falta poner -p 22 ya que el puerto 22 es del de por defecto.
  • usuario = usuario del servidor para el login
  • ip_publica = dirección IP, dominio o host dinámico.

Preguntas y respuestas

Pregunta: Si el servidor SSH se cae o cerramos el cliente ssh sin querer, ¿quedaremos desprotegidos sin darnos cuenta?

  • Respuesta: No, porque Firefox dará un error de que el servidor Proxy no está respondiendo y no podrá cargar ninguna web.

Pregunta: ¿Qué es más seguro, esto o crear una VPN como la del manual?

  • Respuesta: La VPN porque te cifra absolutamente todo al cambiar el enrutamiento del equipo, al principio puede parecer más pesado, pero cuando la VPN la tienes configurada es muy cómodo hacer doble click y listo.

Esperamos que con este tutorial podáis navegar seguro realizando un túnel SSH contra vuestro NAS, router u otro servidor donde tengáis el SSH.