Tunneling: Passe por bloqueios de proxy ou de firewall com Socks

internetHá várias formas de passar por bloqueios de proxy, encontrados em faculdades e empresas. Vou explicar uma das formas usando socks.

Geralmente em lugares onde é comum apenas a navegação web, o administrador de rede bloqueia as portas de saída, liberando apenas a porta 80 (HTTP) e a porta 443 (HTTPS). Com isso, alguns serviços como FTP ou POP3 ficam indisponíveis e alguns sites são bloqueados.

Como o SSH utiliza a porta 443, que difícilmente é bloqueada, podemos utilizar do recursos “Túnel” aplicando o Socks.

Socks é um protocolo de internet que permite que aplicações redirecionem suas requisições para um servidor externo, passando assim desapercebido pelo servidor proxy ou firewall local.

Em outras palavras, ao acessar um site, a requisição é criptografada e enviada ao seu servidor externo (via conexão SSH), o servidor manipula a requisição (acessando o site que você solicitou) e devolve o resultado para seu computador, passando desapercebido pelo firewall ou proxy, devido a criptografia dos dados que circulam na porta 443.

Já aproveito para alertar, que isso é ilegal caso os dados transmitidos por este meio esteja fora das normas da instituição.

Então vamos lá:

Para utilizar o socks, você  precisa de um servidor externo, com qualquer sistema operacional apto à estabelecer uma conexão SSH (O servidor pode ser adquirido com alguma empresa de hospedagem brasileira ou estrangeira)

OBS: Os procedimentos abaixo não foram testados em windows. Se alguém quiser testar, compartilhe seu resultado aqui. Nos exemplo abaixo, utilizo linux ubuntu 9.04

—————————
Configurando o SOCKS:

Abra o terminal e digite:

ssh -D 8989 <username_do_servidor>@<ip_do_servidor>
Exemplo: ssh -D 1234 [email protected]

* A opção -D refere-se a porta que será utilizada pelo Socks

Mantenha terminal sempre aberto para não interromper a conexão com o seu servidor.

Agora, basta alterar a configuração do seu navegador para redirecionar o trafego para a porta 8989.

Pelo firefox, a configuração fica em:
Editar > Preferências > Avançado > Rede > Conexão > Configurar

Escolha a opção Configuração manual de proxy, e preencha apenas o campo SOCKS da seguinte forma:
SOCKS 127.0.0.1 Porta 8989
Aperte OK para salvar as configurações, e já pode utilizar o seu navegador com acesso livre a internet.

Para encerrar a operação, feche a conexão ssh e altere a configuração do navegador de volta para o padrão/automático.

—————————

Para testar todo o procedimento, você pode fazer o seguinte:
Antes de alterar a configuração do seu navegador, acesse o site: http://meuip.datahouse.com.br/ e anote o seu ip. Feito isso, habilite o socks e entre no site novamente. Você verá que o procedimento funcionou, se o ip registrado for o ip do seu servidor remoto e não o seu.

Isso significa, que quando você tentar acessar um site, ou seja, ao fazer uma requisição à um site, não é o seu ip que chegan o site, mas o ip do seu servidor. Isso caracteriza o tunneling.

Façam bom proveito da dica, qualquer dúvida é só perguntar. 😉

 

Share
  • Gabriel Falcão

    Eu costumo usar o tsocks, assim mesmo quando algum aplicativo não suporta configuração de proxy, o tsocks sobrescreve os símbolos do socket unix.

    http://tsocks.sourceforge.net/

    Basta adicionar a sua porta local, no caso 8989 em /etc/tsocks.conf

    e rodar programas com:

    tsocks amsn

    • Olá Gabriel,

      Sem querer você tocou no assunto do meu próximo post…

      Eu também uso tsocks, em breve vou publicar a matéria aqui…

      Abraços e valeu pela dica !

  • Tiago

    rafael parabéns pelo blog. achei esse post excelente.

    testei no trabalho, utilizando um servidor de um amigo, e consegui navegar na internet com o ip do servidor dele.

    so nao consegui assistir videos no youtube, fora isso o resto está ok

    pode descobrir como assistir os videos ?

  • Olá Tiago,

    Uma das formas de resolver isso é usando tsocks, o assunto do meu próximo post…

    Ele redireciona todas as portas para o socks, então, não só vai funcionar o youtube, mas você pode executar programas, como o Gabriel mostrou logo acima ( tsocks amsn )

    Em breve, confira a matéria aqui…

    Abraços,

  • Pingback: Tunneling com Tsocks | Rafael Biriba Blog()

  • Pingback: Tunneling com Tsocks | Rafael Biriba Blog()

  • Pingback: Tunneling com Tsocks | Planeta Globo.com()

  • Pingback: Retrospectiva 2009: Os posts mais visitados do blog | Rafael Biriba Blog()

  • Pingback: VirtualBox: VMs com IPs estáticos e internet de maneira simples | Planeta Globo.com()

  • Henrique Motta

    Rafael, me ajude aqui cara.

    Uso o Windows XP e gostaria de utilizar servidores socks para me conectar.

    Já fiz de tudo aqui, instalei um tal de PuTTy, mas nao deu muito certo não.

    O máximo que consegui foi utilizar um programa que testa proxys comuns (não socks) para utilizar os servidores disponíveis.

    Mas o que eu queria mesmo era usar um socks, v4 ou v5

    Tem como voce me explicar como faço?

    Existe algum comando no XP ou alguma coisa que eu possa fazer no Registro para habilitar o socks uma única vez e apenas trocar o IP e Porta no “Ferramentas, Opções” do Internet Explorer?

    Obrigadão desde já
    Se puder me add no MSN: [email protected]
    Skype: henriqque77

  • Olá Henrique,

    É possivel fazer o socks utilizando o putty !
    Vamos lá:

    Ao abrir o putty, já preencha com seu usuário@servidor e a porta de conexão SSH…
    Feito isso, vá até “Connection” e onde está escrito “Seconds between keepalives (0 to turn off)” coloque o valor para 5. Isso manterá sua conexão ssh ativa.

    Depois, vá em “Connection > SSH > Tunnels”. Aonde diz “Add new forwarded port” insira o valor da porta que você deseja para a conexão socks em “Source Port”, e depois marque a opção “Dynamic” e clique em “Add”…

    Agora é só apertar “Open” para estabelecer a conexão SSH, ir no seu navegador e colocar lá nas opções o IP local 127.0.0.1 e a porta socks escolhida

    Testa aí e depois me fala…

    Abraços,