Nesta resposta, passarei por um exemplo concreto. Você só precisa substituir os nomes de host, nomes de usuário e senhas dos computadores pelos seus.
Declaração do problema
Vamos supor que temos a seguinte topologia de rede:
our local computer <---> server 1 <---> server 2
Por uma questão de concretude, vamos supor que temos os nomes de host, nomes de usuário e senhas dos seguintes computadores:
LocalPC <---> hostname: mit.edu <---> hec.edu
username: bob username: john
password: dylan123 password: doe456
Objetivo: queremos configurar um proxy SOCKS que escute na porta 9991
de LocalPC
forma que, toda vez que uma conexão LocalPC
seja iniciada a partir da porta, 9991
ela seja mit.edu
executada hec.edu
.
Exemplo de caso de uso: hec.edu
possui um servidor HTTP acessível apenas em http://127.0.0.1:8001 , por motivos de segurança. Gostaríamos de poder visitar http://127.0.0.1:8001 abrindo um navegador na Web LocalPC
.
Configuração
Em LocalPC
, adicione ~/.ssh/config
:
Host HEC
HostName hec.edu
User john
ProxyCommand ssh bob@mit.edu -W %h:%p
Em seguida, no terminal de LocalPC
, execute:
ssh -D9991 HEC
Ele solicitará a senha do bob
on mit.edu
(ie dylan123
), e depois a senha do john
on hec.edu
(ie doe456
).
Nesse ponto, o proxy SOCKS agora está sendo executado na porta 9991
de LocalPC
.
Por exemplo, se você quiser visitar uma página da Web sobre o LocalPC
uso do proxy SOCKS, faça no Firefox:
Algumas observações:
- in
~/.ssh/config
, HEC
é o nome da conexão: você pode alterá-lo para o que quiser.
- O
-D9991
instrui ssh
para configurar um proxy SOCKS4 na porta 9991
.