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
.