En esta respuesta voy a dar un ejemplo concreto. Sólo tienes que sustituir los nombres de host, nombres de usuario y contraseñas de los ordenadores por los tuyos. Asumamos que tenemos la siguiente topología de red:
our local computer <---> server 1 <---> server 2
Para concretar, asumamos que tenemos los siguientes nombres de host, nombres de usuario y contraseñas de los ordenadores:
LocalPC <---> hostname: mit.edu <---> hec.edu
username: bob username: john
password: dylan123 password: doe456
Objetivo: queremos configurar un proxy SOCKS que escuche en el puerto 9991 de LocalPC para que cada vez que se inicie una conexión en LocalPC desde el puerto 9991 pase por mit.edu y luego por hec.edu.
Ejemplo de caso de uso: hec.edu tiene un servidor HTTP que sólo es accesible en http://127.0.0.1:8001 , por razones de seguridad. Nos gustaría poder visitar http://127.0.0.1:8001 abriendo un navegador web en LocalPC.
Configuración
En LocalPC, añada en ~/.ssh/config:
Host HEC
HostName hec.edu
User john
ProxyCommand ssh bob@mit.edu -W %h:%p
Luego en el terminal de LocalPC, ejecute:
ssh -D9991 HEC
Le pedirá la contraseña de bob en mit.edu (es decir.., dylan123), luego le pedirá la contraseña de john en hec.edu (es decir, doe456).
En ese punto, el proxy SOCKS está ahora funcionando en el puerto 9991 de LocalPC.
Por ejemplo, si quieres visitar una página web en LocalPC usando el proxy SOCKS, puedes hacer en Firefox:
Algunas observaciones:
- en
~/.ssh/config, HEC es el nombre de la conexión: puedes cambiarlo por lo que quieras.
- El
-D9991 le dice al ssh que configure un proxy SOCKS4 en el puerto 9991.