Cuando se trata de asegurar su huella en la web, es posible que haya oído hablar de las VPN, ¿verdad? Una VPN actúa como intermediaria entre su ordenador y el internet. Todo el tráfico pasa a través de el servidor VPN, enmascarando eficazmente su dirección IP y ubicación.
Sin embargo, una VPN no es la única forma de servidor proxy. SOCKS (Socket Secure) es un protocolo de red similar que permite comunicarse con servidores a través de un cortafuegos enrutando el tráfico de red en nombre de un cliente. En comparación con una VPN, SOCKS ofrece más flexibilidad y control sobre la configuración de la red. Es útil cuando no se puede instalar el cliente VPN o no se confía en un proveedor de VPN.
Esta guía demostrará cómo establecer un túnel proxy SSH SOCKS 5 y enrutar su tráfico web a través del túnel.
Requisitos previos
Para la demostración, utilizamos una máquina local con Ubuntu desktop y una máquina remota con Ubuntu server. Necesita tener SSH configurado antes de que funcione sin problemas. Como estamos usando un proxy SOCKS, para probar la conexión, necesitamos una aplicación que pueda usarlo. Firefox es un ejemplo perfecto. Es un navegador web moderno que admite el túnel proxy SOCKS 5.
Si está en Windows, puede usar WSL (Subsistema de Windows para Linux) para configurar un entorno Linux local o usar PuTTY, una aplicación de código abierto que puede implementar varios protocolos de red como Telnet, rlogin, etc.
Configuración del túnel SOCKS
-
Configuración del túnel SOCKS (macOS/Linux)
En el ordenador local, necesitamos configurar una clave SSH para garantizar una conexión segura. La clave SSH también debe estar registrada en el sistema remoto. Esta guía sobre la configuración de la autenticación basada en claves SSH demuestra el proceso en detalle.
El siguiente comando SSH establecerá un túnel SOCKS hacia el servidor remoto:
|
1 |
ssh -i ~/.ssh/id_rsa -D 2000 -f -C -q -N <remote_username>@<remote_server> |

Analicemos el comando:
-
-i: Le indica a SSH qué clave SSH usar para la conexión.
-
-D: Le indica a SSH que queremos establecer un túnel SOCKS. En cuanto al puerto, estamos usando el puerto 1024. No es un valor fijo. Puede elegir cualquier puerto entre 1024 y 65536.
-
-f: El proceso SSH se ejecutará en segundo plano.
-
-C: SSH comprimirá los datos antes de enviarlos al servidor remoto. Esto puede ahorrar consumo de datos e incrementar el ancho de banda efectivo.
-
-q: Ejecuta la herramienta en modo silencioso.
-
-N: Le indica a SSH que después de establecer el túnel, no se enviará ningún comando.
Una vez ejecutado, podemos verificar si el proceso se inició correctamente. El siguiente comando imprimirá información sobre todos los procesos SSH en ejecución:
|
1 |
ps aux | grep ssh |

Ahora, puede cerrar de forma segura la ventana de la terminal. El proceso SSH funcionará como se espera en segundo plano.
-
Configuración del túnel SOCKS (Windows)
Para los usuarios de Windows, usar PuTTY es una solución más sencilla. Primero, debe descargar PuTTY:

Una vez instalado, inicie PuTTY:

Desde la pestaña Session del panel izquierdo, introduzca el Host Name (or IP address) de su servidor. En cuanto al Connection type, seleccione SSH. A continuación, vaya a Connection >> SSH >> Tunnels. Aquí, bajo el campo Destination, seleccione las opciones que se muestran en la captura de pantalla:

A continuación, haga clic en Open. Aparecerá una ventana de terminal para conectarse al servidor remoto a través de SSH. Inicie sesión en el servidor remoto:

Implementación del túnel SOCKS
El túnel ya está configurado. Cualquier aplicación que admita SOCKS puede usar el túnel. Para la demostración, Firefox es un excelente ejemplo.
Primero, abra Firefox. En la esquina superior derecha, haga clic en el icono de menú. Vaya a Ajustes:

A continuación, busque proxy. Haga clic en Configuración en Configure cómo se conecta Firefox a Internet:

Después de eso, seleccione Configuración manual del proxy. En cuanto al Servidor SOCKS, use localhost o 127.0.0.1. Luego, para el puerto, introduzca el puerto que dedicamos para el túnel SOCKS. No olvide seleccionar SOCKS_v5:

Por último, marque la opción Proxy DNS al usar SOCKS_v5. Haga clic en Aceptar para continuar.
A continuación, abra una nueva pestaña e intente acceder a cualquier página web. Por ejemplo, puede verificar su dirección IP desde CheckMyIP.
Revertir el proxy
Cuando ya no necesites la conexión proxy al túnel SSH, puedes desactivarla de forma segura desde la configuración de proxy de Firefox:

En la ventana, selecciona Usar la configuración de proxy del sistema y haz clic en Aceptar.
Cerrar el túnel SOCKS
-
Cerrar el túnel en macOS/Linux
Para cerrar el túnel, necesitamos finalizar manualmente el proceso SSH. Necesitamos el PID (ID de proceso) del proceso SSH. El siguiente comando mostrará los PID de todos los procesos SSH en ejecución:
|
1 |
ps aux | grep ssh |
Toma nota del proceso SSH que se está ejecutando con el comando para crear el túnel. Finaliza el proceso:
|
1 |
kill <tunnel_ssh_pid> |
Si no se define ninguna opción, el comando kill enviará una señal SIGTERM genérica al proceso de destino. Puedes obtener más información sobre la gestión de procesos en Linux en este tutorial.
-
Cerrar el túnel en Windows
Cerrar la ventana de PuTTY debería cerrar la conexión del túnel.
Resolución de problemas
Aquí tienes algunos problemas comunes que puedes encontrar al intentar usar SOCKS para enrutar el tráfico.
-
Cortafuegos
Si no puedes establecer una conexión debido a una restricción del cortafuegos, es probable que este esté configurado para bloquear la conexión al puerto 22. Este es el puerto predeterminado que utiliza SSH para conectarse a sistemas remotos. Algunos puertos permanecen abiertos de forma predeterminada, por ejemplo, el puerto 80 (tráfico web general) y el puerto 443 (TLS, tráfico web seguro).
Si el servidor SSH no está sirviendo contenido web, podemos usar uno de los puertos predeterminados ( 80 o 443 ) en lugar del puerto 22. Se recomienda utilizar el puerto 443 ya que espera tráfico cifrado de forma predeterminada. También cifrará el tráfico saliente. Para realizar el cambio, necesitamos modificar el archivo de configuración de SSH. Abre el archivo en un editor de texto:
|
1 |
sudo nano /etc/ssh/sshd_config |
SSH puede utilizar múltiples puertos para su propósito. Desplázate hacia abajo en el archivo de configuración y busca la sección del puerto:

Una vez realizados los cambios, guarda el archivo y cierra el editor. Reinicia el servicio SSH para aplicar el cambio:
|
1 |
sudo service ssh restart |
Para verificar si el nuevo puerto está funcionando, intenta conectarte al servidor remoto utilizando el nuevo puerto:
|
1 |
ssh <remote_username>@<remote_server> -p 443 |
Si la conexión se realizó con éxito, podemos usar de forma segura el puerto 443 para el túnel SSH. Aquí está el comando revisado para establecer el túnel SOCKS:
|
1 |
ssh -i ~/.ssh/id_rsa -D 2000 -f -C -q -N <remote_username>@<remote_server> -p 443 |
Aquí, la opción -p le indica a SSH que use el puerto 443.
Reflexiones finales
Hoy en día, la privacidad y la seguridad son algunas de las mayores preocupaciones. Existen muchas formas de navegar de forma segura cuando estás en una red hostil. En la mayoría de los casos, usar una VPN ofrecerá suficiente seguridad para tu tráfico de red. Por otro lado, un túnel SOCKS te ofrecerá la seguridad necesaria si no puedes o no confías en una VPN. Tener un túnel SOCKS también te brinda un control total sobre la configuración.
¡Feliz computación!
Comentarios
Aún no hay comentarios. Sea el primero.