Como configuro um proxy SOCKS local que encapsula o tráfego por meio do SSH?

27

Suponha que eu tenha acesso a um servidor SSH que suporte tunelamento, e eu estou em um PC que está rodando * ubuntu, como eu configuro um proxy SOCKS local que tunela o tráfego através daquele servidor SSH antes de acessar a Internet? / p>     

por pzkpfw 20.05.2014 / 14:34

1 resposta

40

O binário ssh que você usa quando se conecta a um servidor que executa o ssh suporta a execução de um proxy SOCKS pronto para uso, com o sinalizador -D . Exemplo:

ssh -D 1337 -f -C -q -N user@remote -p 22
  • -D 1337 informa ssh para iniciar um servidor SOCKS na porta 1337 localmente.
  • -f bifurca o processo em segundo plano.
  • -C Ativa a compactação.
  • -q ativa o "modo silencioso", já que o objetivo aqui é apenas para encapsular, não nos importamos com a saída do erro e tal.
  • -N informa ssh que nenhum comando será enviado ( -f reclama se não especificarmos isso).
  • -p especifica qual porta usar; obviamente, isso é padronizado como 22, então a declaração acima é inútil, mas incluída para maior clareza.

Quando o servidor SOCKS está ativo e em execução, você só precisa se certificar de que seu aplicativo (geralmente um navegador da Web) esteja tentando se conectar ao proxy SOCKS local, e não à Internet comum.

No Firefox 29 (explicado aqui como exemplo), isso é obtido indo até o menu (as três salsichas no canto superior direito), seguido por Preferências > Avançado > Rede > (Conexão) > Configurações ... - certifique-se de preencher apenas o campo SOCKS! Como seu proxy está no mesmo sistema, você pode usar localhost ou 127.0.0.1 para apontar para a porta em que você o configurou no mesmo sistema.

Se você precisar que suas solicitações de DNS também sejam encapsuladas (se elas não forem, suas pesquisas de DNS revelarão quais sites você está tentando visitar), basta verificar "DNS remoto" ou fazer toda essa configuração em código%. No último caso, abra-o e defina esses valores:

network.proxy.socks : 127.0.0.1
network.proxy.socks_port : 1337
network.proxy.socks.remote_dns : true
network.proxy.socks_version : 5
network.proxy.type : 1

Você também pode precisar desta configuração para excluir determinados domínios ou sites do encapsulamento:

network.proxy.no_proxies_on : localhost, 127.0.0.1, 192.168.0.0/24, .yourcompany.com

Esta resposta foi escrita da França, mas encapsulada via Suécia:)

    
por pzkpfw 20.05.2014 / 14:34