En esta respuesta voy a pasar por un ejemplo concreto. Solo necesita reemplazar los nombres de host, nombres de usuario y contraseñas de las computadoras por los suyos.
Planteamiento del problema
Supongamos que tenemos la siguiente topología de red:
our local computer <---> server 1 <---> server 2
En aras de la concreción, supongamos que tenemos los siguientes nombres de host, nombres de usuario y contraseñas de las computadoras:
LocalPC <---> hostname: mit.edu <---> hec.edu
username: bob username: john
password: dylan123 password: doe456
Objetivo: queremos configurar un proxy calcetines que escucha en el puerto 9991
de LocalPC
modo que cada vez que una conexión en la LocalPC
que se inicia desde el puerto 9991
pasa por mit.edu
entonces hec.edu
.
Ejemplo de caso de uso: hec.edu
tiene un servidor HTTP al que solo se puede acceder 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
, agregue ~/.ssh/config
:
Host HEC
HostName hec.edu
User john
ProxyCommand ssh bob@mit.edu -W %h:%p
Luego, en la terminal de LocalPC
, ejecute:
ssh -D9991 HEC
Le pedirá la contraseña de bob
on mit.edu
(es decir, dylan123
), luego le pedirá la contraseña de john
on hec.edu
(es decir, doe456
).
En ese momento, el proxy SOCKS ahora se está ejecutando en el puerto 9991
de LocalPC
.
Por ejemplo, si desea visitar una página web sobre el LocalPC
uso del proxy SOCKS, puede hacerlo en Firefox:
Algunas observaciones:
- en
~/.ssh/config
, HEC
es el nombre de la conexión: puede cambiarlo a lo que desee.
- Le
-D9991
dice ssh
que configure un proxy SOCKS4 en el puerto 9991
.