Cómo crear un túnel SSH a través de un proxy en Windows y Ubuntu

Si eres un poco desconfiado y quieres navegar en redes públicas sin miedo a que un atacante malicioso pueda ver los sitios que visitas o realizar ataques para robar tus datos personales o incluso que otros usuarios de la misma red te espíen, una posible solución es por medio de la creación de un túnel SSH a un servidor externo. En este tutorial explicaré como realizar este proceso en Ubuntu y Windows. 

Aclaración

Aclaro que este procedimiento es válido únicamente para servidores HTTP y advierto que el tráfico SSH es un tráfico particular que fácilmente puede ser reconocido por un administrador de la red; si bien no podrán ver que estabas visitando podrán saber que estás usando la técnica para evadir un proxy. Esto se logra por medio de DPI o Deep Packet Inspection. Este técnica no es muy común ya que se necesitan muchos recursos para implementarla. No debes seguir este tutorial si va contra las reglas de tu trabajo o centro de estudios, no debes seguir el tutorial si lo que harás es ilegal o tendrás consecuencias si lo haces y alguien se da cuenta. 

Al contrario de otros servicios para evadir censura de proxy, este es es más difícil de detener o bloquear por las razones que explicaré más adelante. 

Preparación

Para que este procedimiento funcione tienes que tener acceso a un servidor ya sea personal con la PC de tu casa o un servidor de pago que permita conexiones SSH (la mayoría las permiten). 

Opción 1

Puedes crear tu propio servidor en la casa ya sea con Windows o Ubuntu con las instrucciones de este artículo que escribí recientemente. Además, con dicho tutorial podrás acceder directamente a tu computadora en la casa desde cualquier parte del mundo y trabajar directamente en la línea de comandos. 

Opción 2

Existen muchos servicios de alojamiento con precios que van desde un dólar al mes. Existen servicios como Amazon Web Services que te pueden cobrar solo por el tiempo que utilices el servidor (fracciones de centavos de dólar por hora). Si tienes uno o vas a pagar por uno, asegúrate de que permita conexiones SSH (casi todos las permiten) y anota el puerto SSH y la dirección IP del servidor ya que vas a necesitar la información más adelante. 

Pasos en Windows

En WIndows el proceso es sumamente sencillo. Necesitas la aplicación Putty que puede ser descargada en el siguiente enlace. Debes descargar el archivo putty.exe más reciente (cliente, no servidor)

Una vez instalado solo resta configurar. Para esto necesitamos los siguientes datos:

  • Dirección IP y puerto del proxy que quieres evitar
  • Dirección IP y puerto SSH del servidor externo

El primer paso es ir a Session y en Host Name escribir el IP del servidor que haz configurado en tu casa o el servidor de pago que uses. Además ingresar el puerto que has definido en el router de tu casa o el asignado por el administrador del servidor de pago que uses. Recuerda marcar la casilla SSH

 

En Connection > Data escribes el usuario para conectar al servidor. 

 

En Connection > Proxy debes ingresar los datos del proxy donde estás conectado. La dirección IP(proxy hostname), el puerto y si es necesario los datos de autenticación para conectarse al proxy. 

 

Finalmente en Connection > SSH  > Tunnels marcamos la casilla Dynamic, Auto, en Source port escribimos 8080, hacemos clic en Add y luego en Open. 

 

Cuanto de lo solicite debes ingresar la contraseña de acceso al servidor. Eso es todo. Para probar la conexión debes ir a un navegador como Firefox y en la configuración de proxy debes escribir lo siguiente:

Recuerda marcar la casilla DNS socks usando SOCKS v5. Todo debe quedar idéntico a la imagen. Borra toda la configuración previa. 

Pasos en Ubuntu

El proceso en Ubuntu se puede resumir en un comando. Antes debes instalar los siguientes paquetes por medio de los siguientes comandos:

sudo apt install openssh-client
sudo apt install proxytunnel

Ahora ejecuta el siguiente comando:

ssh -p 22 -o 'ProxyCommand porxytunnel -p 1.1.1.1:1000 -P usuario:contrasena -d %h:%p' -D 8080 usuarioservidor@2.2.2.2

Donde 22 debe ser cambiado por el puerto al que te vas a conectar en el servidor externo. 1.1.1.1 debes cambiarlo por el IP del proxy y 1000 por el puerto del proxy. usuario por tu usuario para conectar al proxy y a la par la contraseña.  Finalmente usuarioservidor lo cambias por el usuario para la conexión SSH al servidor y 2.2.2.2 por la dirección IP del servidor externo al que quieres conectar. 

Y listo, ese es todo el proceso. Cómo verán es sumamente sencillo y es una excelente herramienta para mejorar la privacidad especialmente en redes públicas. Este proceso también se puede utilizar para evadir la censura de algunos proxy (tipo HTTP)

Fundador
Seguidor de Jesús. Escribo artículos en mi tiempo libre sobre temas de tecnología que me interesan.