Como faço para configurar um proxy SOCKS local que encapsula o tráfego através do SSH?

30

Suponha que eu tenha acesso a um servidor SSH que ofereça suporte ao encapsulamento e que esteja em um PC executando * ubuntu, como configurar um proxy SOCKS local que encapsula o tráfego através desse servidor SSH antes de acessar a Internet?

pzkpfw
fonte

Respostas:

45

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

ssh -D 1337 -f -C -q -N user@remote -p 22
  • -D 1337diz sshpara iniciar um servidor SOCKS na porta 1337 localmente.
  • -f bifurca o processo em segundo plano.
  • -C Ativa a compactação.
  • -q habilita o "modo silencioso", já que o objetivo aqui é apenas encapsular, não nos importamos realmente com a saída de erro e tal.
  • -Ninforma sshque nenhum comando será enviado ( -freclama se não especificarmos isso).
  • -pespecifica qual porta usar; obviamente, esse valor é o padrão 22; portanto, a afirmação acima é inútil, mas incluída para maior clareza.

Quando o servidor SOCKS estiver em funcionamento, basta garantir 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 é feito acessando o menu (as três salsichas no canto superior direito), seguido de Preferências> Avançado> Rede> (Conexão)> Configurações ... - verifique apenas se preencha o campo SOCKS! Como seu proxy está no mesmo sistema, você pode usar localhostou 127.0.0.1apontar de volta para qualquer porta em que o configurar no mesmo sistema.

Se você precisar que suas solicitações de DNS também sejam encapsuladas (se não estiverem, suas pesquisas de DNS revelarão quais sites você está tentando visitar), basta verificar "DNS remoto" ou fazer toda essa configuração about:config. No último caso, abra-o e defina estes 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 dessa 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 :)

pzkpfw
fonte
Isso só funcionaria no Firefox.
Braiam
4
Não é de forma alguma específico para o Firefox, incluí a seção Firefox como um serviço, já que geralmente é para isso que as pessoas usam o encapsulamento SSH; ele funcionaria em qualquer aplicativo que suporte proxies do SOCKS (o ssh não se importa).
Pzkpfw
2
Falando em configurar o navegador para usar o proxy. Se você usa o google chrome , precisará declarar o proxy nas configurações de rede do ubuntu, pois é isso que o google chrome estará usando. Opções não oficiais da CLI estão disponíveis para declarar o proxy sem isso. Mas, há algumas semanas, isso não é mais possível.
21314 MadMike
Obrigado, você me tirou do inferno. E só cheguei lá porque não li sua resposta corretamente cerca de 10 horas atrás. Deveria ter prestado atenção -De -pparticipar.
precisa saber é
Também é mais fácil lembrar:ssh -D 1337 user@host
Alcalyn