Usando um túnel SSH para navegar na web

3

A configuração:

  • Uma estação de trabalho do Windows com direitos de administrador completos.
  • Um proxy http muito restritivo, que, no entanto, aceita conexão apenas com a porta 80 e a porta 443.
  • Uma caixa linux na internet eu tenho controle total.

Atualmente, o que eu faço, que está funcionando:

  • A caixa linux executa o sshd, escutando na porta 443.
  • Em massa, posso conectar-me à caixa linux simplesmente configurando no painel de configuração do proxy o proxy como um proxy HTTP.

O que eu gostaria de alcançar:

Execute um navegador, na minha caixa do Windows e, usando algum tipo de túnel ssh, navegue na Web sem limitações.

Eu acredito que isso é chamado de rejeição por proxy ou algo assim. Mas devo admitir que estou um pouco perdido.

Pelo que eu entendi, eu teria que configurar um túnel no putty, ouvindo na porta 8889 na caixa do windows, por exemplo. Eu seria então capaz de configurar o navegador para usar um proxy localizado no localhost: 8889

O momento em que as coisas estão ficando desfocadas é agora.

Na caixa linux, eu teria que configurar um ProxyCommand no arquivo de configuração do SSH ou algo assim para fazer o Port Forwarding? Além disso, eu teria que executar um proxy como o squid na caixa linux? Algum tipo de tutorial eu encontrado descreve uma configuração com o Apache:

Ou eu estou completamente na direção errada e tenho que executar o ProxyTunnel nas janelas e no linux?

Obrigado pela sua ajuda.

Edit: Na verdade, a pergunta é mais: O que eu tenho que fazer no lado linux do túnel

    
por David 30.07.2009 / 16:06

6 respostas

2

Existem duas partes para que isso funcione, então vou abordá-las separadamente.

Conectando ao seu servidor:

Como você mencionou que tudo o que você pode conversar é um proxy em 443 e 80, você precisará encapsular sua conexão SSH através do proxy. Você faz isso dizendo a Putty para usar o servidor proxy para se conectar. Sob o menu 'proxy'. Selecione HTTP e insira os detalhes do proxy corporativo.

Do seu post, parece que você tem a conexão funcionando bem.

Configure o Putty para criar um proxy SOCKS na máquina local

Tanto o putty quanto o OpenSSH suportam a abertura de um proxy SOCKS. Para o OpenSSH você usaria:

ssh -D <port>

Em seguida, aponte seu navegador para essa porta. Em putty você cria uma porta 'dinâmica' para a frente. Você vai encontrá-lo no menu Tunnels. Digite sua porta de escuta desejada e, em seguida, insira o que quiser como um destino (ele será ignorado para encaminhamentos dinâmicos). Você pode apontar as configurações de proxy dos navegadores nesse host local: < port > e deve funcionar.

Para mais informações, a parte relevante da documentação está no link .

Como outros já postaram, você pode não querer contornar a filtragem corporativa, já que não é algo que você queira explicar:).

    
por 30.07.2009 / 16:21
4

Com o ssh você pode configurar o "encaminhamento de porta dinâmico". Consulte o link para obter instruções. Basicamente você acabou de definir uma porta em sua máquina local que se parece com um proxy SOCKS5. Em seguida, configure seu navegador para usar localhost: port como proxy.

Eu pensaria duas vezes antes de fazer uma coisa dessas. Em alguns ambientes, tal desvio da segurança corporativa é motivo para demissão.

    
por 30.07.2009 / 16:18
2

Com o encaminhamento de porta normal, você só poderá navegar em um site dessa maneira.

Se você pode editar suas configurações locais de proxy (o que duvido que possa), você pode executar um proxy no fim do servidor SSH e encaminhar a porta para ele.

Alguns clientes e servidores SSH suportam acordos de VPN de nível mais baixo, mas a menos que você tenha controle total de administração (o que eu acho que você não faz, já que sua descrição implica em um ambiente muito bloqueado).

Uma solução seria usar o encaminhamento de porta para obter acesso a uma máquina na extremidade remota que esteja executando VNC ou RDC ou similar. Depois de ter controle remoto sobre essa máquina, você pode navegar usando-a, embora isso seja mais lento, é claro.

    
por 30.07.2009 / 16:19
0

Acho que configurar um túnel ssh local deve funcionar bem para você:

  1. configure o proxy http na caixa linux na porta xxxx
  2. conecte a caixa linux com um túnel local ssh, o comando do cliente ssh gostaria de:

    ssh -L 8899: 127.0.0.1: xxxx usuário @ remoto -p 443

putty pode similar, mas use o diálogo.

    
por 30.07.2009 / 16:15
0

Você pode ter a infelicidade de estar realmente sob um roteador Deep Packet Inspection, em cujo caso seu tráfego SSH em QUALQUER porta seria descartado.

A solução para esse problema é STunnel em combinação com SSH.

Um fácil de configurar e usar o proxy que eu pessoalmente uso é privoxy.org.

    
por 30.07.2009 / 16:19
0

Este velho mas bom artigo lifehacker tem muito tutorial amigável sobre como fazer isso com o Windows. PLUG_ALERT: Aqui está outro tutorial , escrito por, bem, eu: -)

    
por 30.07.2009 / 17:03