Introducción
Hay ocasiones en las que desea navegar por Internet de forma privada, acceder a contenido restringido geográficamente o evitar cualquier firewall intermedio que pueda aplicar su red.
Una opción es usar una VPN, pero esto requiere instalar el software del cliente en la máquina y configurar su propio servidor VPN o registrarse en un servicio VPN.
La alternativa más sencilla es enrutar el tráfico de la red local con un túnel proxy SOCKS cifrado. De esta forma, todas las aplicaciones que utilizan el proxy se conectarán al servidor SSH y el servidor reenviará todo el tráfico a su destino real. Su ISP (proveedor de servicios de Internet) y otros terceros no podrán inspeccionar su tráfico y bloquear el acceso a sitios web.
Este tutorial lo guiará a través del proceso de creación de un túnel SSH cifrado y la configuración de los navegadores web Firefox y Google Chrome para usar el proxy SOCKS.
Prerrequisitos
- Servidor que ejecuta cualquier tipo de Linux, con acceso SSH para enrutar su tráfico a través de él.
- Navegador web.
- Cliente SSH.
Instalar el túnel SSH
Crearemos un túnel SSH que reenviará de forma segura el tráfico desde su computadora local en el puerto 9090
al servidor SSH en el puerto 22
. Se puede utilizar cualquier número de puerto superior a 1024
, solo el usuario root puede abrir puertos privilegiados.
Linux y macOS
Si está ejecutando Linux, macOS o cualquier otro sistema operativo basado en Unix en su computadora local, puede iniciar fácilmente un túnel SSH con el siguiente comando:
ssh -N -D 9090 [USER]@[SERVER_IP]
Las opciones utilizadas son las siguientes:
-N
: le dice a SSH que no ejecute un comando remoto.-D 9090
: abre un túnel SOCKS en el número de puerto especificado.[USER]@[SERVER_IP]
: el usuario IP SSH remoto y la dirección IP del servidor.- Para ejecutar el comando en segundo plano, use la opción
-f
- Si el servidor SSH está escuchando en un puerto diferente al 22 (predeterminado), use la opción
-p [PORT_NUMBER]
Una vez que se ejecuta el comando, se le pedirá que ingrese la contraseña del usuario. Después de ingresar, iniciará sesión en el servidor y se establecerá el túnel SSH.
Puede configurar la autenticación basada en claves SSH y conectarse al servidor sin ingresar una contraseña.
Ventanas
Los usuarios de Windows pueden crear un túnel SSH utilizando el cliente PuTTY SSH. Puede descargar PuTTY aquí.
Inicie Putty e ingrese la dirección IP del servidor en el campo Host name (or IP address)
.
En el Connection
, expanda SSH
y seleccione Tunnels
. Ingrese el puerto 9090
en el Source Port
y seleccione el botón Dynamic
Haga clic en el botón Add
Regrese a la Session
para guardar su configuración para que no tenga que ingresarla cada vez. Ingrese el nombre de la sesión en el Saved Session
y haga clic en el botón Save
Seleccione la sesión guardada e inicie sesión en el servidor remoto haciendo clic en el botón Open
Aparecerá una nueva ventana solicitando su nombre de usuario y contraseña. Después de ingresar su nombre de usuario y contraseña, iniciará sesión en el servidor e iniciará el túnel SSH.
La configuración de la autenticación de clave pública le permitirá conectarse a su servidor sin ingresar una contraseña.
Configurar el navegador para usar el proxy
Ahora que ha abierto el túnel SSH SOCKS, el último paso es configurar su navegador favorito para usarlo.
Firefox
Los pasos a continuación son los mismos para Windows, macOS y Linux.
- En la esquina superior derecha,
☰
clic en el ícono de hamburguesa ☰ para abrir el menú de Firefox. - Haga clic en el enlace
⚙ Preferences
- Desplácese hacia abajo hasta la
Network Settings
y haga clic en el botónSettings...
Una nueva ventana se abrirá.
- Seleccione el botón
Manual proxy configuration
- Ingrese
127.0.0.1
en el campoSOCKS Host
9090
en el campoPort
- Marque la casilla de
Proxy DNS when using SOCKS v5
. - Haga clic en el
OK
para guardar la configuración.
En este punto, Firefox está configurado y puede navegar por Internet a través del túnel SSH. Para comprobar esto, puede ir a google.com
, escriba la búsqueda "cuál es mi IP" y debería ver la dirección IP de su servidor.
Para restaurar la configuración predeterminada, vaya a Network Settings
, seleccione el Use system proxy settings
y guarde la configuración.
También hay varios complementos que pueden ayudarlo a configurar los ajustes de proxy de Firefox como FoxyProxy.
Google Chrome
Google Chrome utiliza la configuración de proxy del sistema predeterminada. En lugar de cambiar la configuración del proxy del sistema operativo, puede usar un complemento como SwitchyOmega o iniciar el navegador web Chrome desde la línea de comandos.
Para iniciar Chrome con un nuevo perfil y un túnel SSH, use el siguiente comando:
Linux:
/usr/bin/google-chrome \
--user-data-dir="$HOME/proxy-profile" \
--proxy-server="socks5://localhost:9090"
Mac OS:
"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" \
--user-data-dir="$HOME/proxy-profile" \
--proxy-server="socks5://localhost:9090"
Ventanas:
"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" ^
--user-data-dir="%USERPROFILE%\proxy-profile" ^
--proxy-server="socks5://localhost:9090"
El perfil se creará automáticamente si no existe. De esta forma, puede ejecutar varias instancias de Chrome al mismo tiempo.
Para confirmar que el túnel SSH funciona correctamente, abra google.com
y escriba "cuál es mi ip". La IP que se muestra en su navegador debe ser la dirección IP de su servidor.
Conclusión
Ha aprendido a configurar un túnel SSH de SOCKS 5 y a configurar su navegador para acceder a Internet de forma privada y anónima. Para facilitar su uso, puede definir el túnel SSH en el archivo de configuración SSH o crear un alias Bash que configurará el túnel SSH e iniciará el navegador.