Principal arrow Artigos arrow Como passar pela maioria das restrições firewalls
Advertisement
Como passar pela maioria das restrições firewalls PDF Imprimir E-mail
Excelente artigo que descreve como utilizar o recurso de port forwarding disponível em conexões SSH para navegar utilizando uma conexão privada.

Este endereço de e-mail está sendo protegido de spam, você precisa de Javascript habilitado para vê-lo http://www.buzzsurf.com/surfatwork/

Criação: 10/25/2002 Última Atualização: 03/06/2006

Este endereço de e-mail está sendo protegido de spam, você precisa de Javascript habilitado para vê-lo http://www.hoshi.com.br
Tradução: 12/10/2006

Introdução

A cada dia mais e mais empregadores e universidades têm se dado conta da quantidade de tempo que seus empregados e estudantes passam na Internet por razões pessoais. Obviamente as empresas não aceitam muito bem esse tipo de comportamento, o que os faz tomar medidas como:

  • Restringir a instalação de programas nos computadores de uso. Geralmente isso não impede que alguém acesse a Internet, mas evita que as pessoas fiquem jogando ou utilizando programas de mensagens instantâneas (como MSN, Yahoo, ICQ, etc).

  • Utilizando um firewall ou servidor de proxy para restringir o acesso a websites e/ou outros protocolos relacionados. Toda a comunicação com a Internet passa através do firewall. Isso caracteriza uma oportunidade muito boa para monitorar e restringir o acesso. A complexidade e as restrições impostas dependem unicamente da capacidade de gerenciamento da equipe de TI responsável.

  • Utilizando sistemas de monitoramento de redes para “espionar” o acesso à Internet. Utilizando esta técnica, pessoas com acesso ao firewall podem interceptar e ler ou salvar qualquer informação que esteja sendo trafegada na rede. Profissionais de TI denominam essa técnica de IDS (Intrusion Detection System ou Sistema de Detecção de Intrusos), também utilizada para identificar tentativas de ataques de hackers ou vírus.

  • Instalando programas nas estações de trabalho que monitorem o acesso a Internet. Esta é provavelmente a mais conhecida das soluções devido a grande quantidade de opções com essa finalidade. Na maioria das vezes esse tipo de aplicativo simplesmente todas as operações feitas pelo usuário (inclusive o pressionar de teclas). Na maioria das vezes não existe forma de contornar essa alternativa além de desabilitar o software.

Este guia descreve uma maneira que permite a empregados ou estudantes acessar de maneira segura a Internet enquanto estão no trabalho ou na escola, além de contornar algumas restrições impostas por firewalls que impedem o uso de programas de rede. Minha definição de “segura” quer dizer que não há possibilidade de alguém saber quais sites você acessa (a menos que esteja vendo o que você faz, sentado ao seu lado).

O método explicado aqui o protege apenas de MONITORAMENTO DE REDE, não de programas que monitorem as ações em sua estação de trabalho (loggers). Assim, se seu departamento de TI possui algum software de segurança instalado no seu computador, você não deveria nem mesmo estar lendo esta página.

Além de protegê-lo de monitoramento de rede, este método pode ser utilizado para contornar uma série de outras proteções de segurança, como por exemplo:

  • Bloqueio a certos websites considerados não relacionados ao trabalho.

  • Bloqueio ao uso de programas de mensagens instantâneas.

Esta é a versão 2 do guia “Navegue no Trabalho” (Surf At Work). Esta versão detalha como encriptar seu tráfego de rede utilizando um túnel SSH com Redirecionamento Dinâmico. A versão 1 era similar, mas além do SSH explicava como fazer uso de um servidor Apache como servidor HTTP Proxy. Além do uso do Putty para Redirecionamento Dinâmico, assumimos que as aplicações de rede que deseja utilizar tenham suporte a proxy SOCKS.

Este método permite muito mais que navegar na web de forma privada. É possível contornar um firewall e encriptar o tráfego de rede de qualquer programa que faça uso de um proxy SOCKS. Isso inclui a maioria dos softwares de mensagens instantâneas, tais como o AIM, Yahoo!, MSN, IRC, entre outros.

Visão Geral

O objetivo é encriptar o tráfego de rede de forma que não seja possível descobrir o que é transferido através da rede onde você esteja. Para isso precisaremos:

  • Utilizar um servidor SSH em seu computador pessoal em casa;

  • Utilizar um cliente de SSH onde esteja para criar um túnel seguro entre seu computador remoto e a máquina local.

  • Habilitar o Redirecionamento Dinâmico no seu cliente SSH para simular um servidor SOCKS.

  • Configurar o Internet Explorer para utilizar um Proxy SOCKS para acessar a rede, ao invés de acessar diretamente.

Uma vez realizados todos esses passos, o processo para navegar será assim:

  1. O Internet Explorer conecta-se ao cliente SSH rodando no seu computador local.

  2. O cliente SSH conecta-se ao servidor SSH instalado em seu computador remoto.

  3. O Internet Explorer fará requisições aos websites utilizando o protocolo SOCKS, que por sua vez terão suas instâncias interceptadas pelo SSH.

  4. Então, o servidor SSH recebe as requisições da página feitas pelo cliente SSH de tráfego.

  5. O cliente SSH retorna a página requisitada ao Internet Explorer.

Basicamente você estará dizendo ao Internet Explorer que possui um servidor proxy rodando na sua máquina local, enquanto na verdade o proxy está rodando no seu computador remoto. Uma vez que toda a compunicação através da rede é feita através de SSH, não há como ser lida. O tráfego gerado por conexões SSH PODE SER visto ou detectado, mas para quem estiver monitorando aparecerá um monte de letras e número sem significado. Apesar de ser um pouco mais lento que o normal, você não deve notar qualquer diferença enquanto estiver navegando na Internet.

Algumas pessoas que conhecem SSH podem estar se perguntando: “Como o Internet Explorer pode conversar com o SSH?”. Bem, basicamente é porque ele possui uma funcionalidade chamada Redirecionamento de Conexões. Isso é feito configurando o SSH para aceitar conexões TCP em uma determinada porta e redirecioná-las para uma porta qualquer no computador. Todo o tráfego de rede naquela porta é encapsulado em pacote de rede criptografado e o encaminha para algum outro lugar. Essa técnica é descrita neste guia como “shunnel” (um trocadilho para Secure Tunnel ou Túnel Seguro).

O outro truque utilizado é o Redirecionamento Dinâmico de Portas. As versões mais recentes do SSH podem emular um servidor proxy SOCKS. Este, por sua vez, recebe as requisições de um cliente e conecta-se ao servidor destino definido previamente. Para maiores informações sobre esses termos, veja estes links: SOCKS Proxy.

Público-alvo

Este guia é direcionado a usuários com razoável experiência no uso do computador. É preciso saber como instalar programas no seu computador, manipular arquivos e editar arquivos de configuração. Um conhecimento sobre “como funcionar a Internet” (como TCP, sockets, portas, HTTP e outros protocolos de rede) também é extremamente útil.

Pré-requisitos

Para fazer uso deste método é preciso:

  • Um computador decente como máquina remota, que possa ser deixada conectada à Internet durante o período que precisar acessar a Internet remotamente;

  • Uma conexão Internet rápida o suficiente. Geralmente uma conexão a cabo ou DSL (tecnicamente esta técnica funciona também com conexões discadas, mas é devido a baixa velocidade não é recomendado).

  • Microsoft Windows NT, 2000, XP ou qualquer outra versão do Windows. É provável que isso também funcione com as versões 95, 98 ou ME, mas não tenho certeza quanto a isso. Além disso, qualquer versão de Linux ou Unix também. Não tenho certeza quanto ao uso de Macintosh.

Alternativamente, caso você não atenda aos pré-requisitos ou não deseja deixar seu computador ligado durante o dia, experimente o HTTP-Tunnel, uma solução comercial que permite você realizar tudo descrito aqui e ainda mais.

Quando isso não funciona?

O título deste guia é bem claro. Ele diz “Como passar pela maioria das restrições firewalls”. O fato de utilizar o termo “maioria” é porque ele não deve funcionar para todos os firewalls, mesmo que você atenda a todos os pré-requisitos acima. Podemos resumir os casos em que esta solução não deve funcionar quando:

  • Não possuir acesso a nenhuma webiste externo; somente websites internos ou acesso nenhum.

  • Você possui acesso a apenas um grupo restrito de sites.

Se você se encaixar em algum desses dois casos, significa que o administrador de redes de onde você encontra-se deve estar trabalhando bastante pois está utilizando uma estratégia de bloqueio “pessimista”. Em outras palavras, eles decidiram bloquear tudo, liberando acesso a apenas alguns endereços específicos. O problema com essa estratégia é que requer muito mais trabalho e manutenção que a estratégia “otimista”, na qual o acesso é permitido a tudo e o bloqueio é definido à medida do necessário.

O método descrito neste guia não deve funcionar em locais onde a estratégia pessimista é aplicada pois ele depende que você seja capaz de acessar seu computador remoto. Assim, a menos que o endereço do computador que você definiu para acesso remoto seja milagrosamente acessível de onde você está, este guia não servirá de nada para você. Nesse caso, lhe resta apenas uma alternativa: implorar ao administrador de redes que permita o acesso remoto a PELO MENOS uma porta na sua máquina remota.

Nota do Tradutor:

Excepcionalmente é possível conseguir o acesso a sua máquina remota caso consiga acesso SSH a uma máquina liberada e que esta tenha acesso à máquina remota, fazendo um cascateamento de redirecionamentos.

Ou... talvez você SEJA o administrador de redes e esteja apenas curioso sobre como este método funciona. :-)

Endereços

Antes de instalar e configura o software necessário, você precisa descobrir algumas coisas:

  • O endereço IP da sua máquina remota;

  • O endereço IP externo de onde você pretende acessar a Internet (trabalho ou escola);

A maneira mais fácil de descobrir seus endereços IP é acessando o site www.meuip.com.br através do seu computador remoto e no computador onde acessa remotamente. Tome nota desses números.

Software

Vamos precisar de dois softwares muito simples: um servidor e um cliente SSH.

Existem diversos servidores SSH por aí, mas vamos utilizar o OpenSSH pelo fato de ser free e extensivamente testado. O website do OpenSSH é http://www.openssh.com. Contudo, caso você seja um usuário de Windows é preciso fazer o download do OpenSSH Windows (http://sshwindows.sourceforge.net/), um porte para Windows do mesmo OpenSSH.

Faça o download do OpenSSH for Windows. A versão para a qual este manual foi escrito é a 3.7.1p1-1. Entretanto, não vejo nenhum impedimento à princípio que impeça o funcionamento do processo descrito aqui.

Como cliente SSH eu recomendo o uso do Putty, um pequeno executável com a habilidade de criar túneis, disponível tanto para Windows quanto para Linux. A versão mais recente do software suporta Redirecionamento Dinâmico, o qual é essencial para o processo descrito aqui. Também é possível utilizar o OpenSSH como cliente e servidor, mas seus processos não serão descritos aqui. Para maiores informações procure o manual do OpenSSH.

Instalando o servidor SSH

O instalador do OpenSSH vem um arquivo zip. Descompacte-o e execute o arquivo setupssh.exe. Escolha a instalação de ambos, o servidor e o cliente. Quando solicitado o diretório de instalação, informe o caminho C:\Arquivos de Programas\OpenSSH. Você pode selecionar um local diferente mas tenha em mente que este guia sempre irá referenciar o caminho citado acima.

Configurando o Windows

O OpenSSH for Windows utiliza a base de usuários do Windows para autenticação. Isso significa que você fazer uso de um usuário e senha para efetuar login no computador que escolheu como máquina remota. Caso contrário, existem duas opções:

  1. Definir uma senha para sua conta no Windows

  2. Criar uma nova conta local que será utilizada para login via SSH.

Conheço muitas pessoas que não utilizam logins ou senhas em seus computadores pessoais, mas se você tem NT, 2000, 2003 ou XP, esta funcionalidade está disponível, apenas não é utilizada.

Uma vez que existem diversas versões do Windows, com diferentes métodos de criação de usuários, não há como descrever todos aqui. Contudo, vou descrever como fazê-lo no Windows XP.

  • Clique no menu Iniciar, vá em Painel de Controle e depois em Contas.

  • Clique na aba Avançado e depois no botão Contas de Usuários.

  • Selecionar Usuários, clique em Ações e depois em Novo Usuário.

  • Digite um nome de usuário e a senha (duas vezes). Eu recomendo que você escolha um usuário e uma senha diferentes daqueles que você já utiliza. Obviamente, a empresa onde você trabalha ou escola, têm acesso à sua senha. Portanto, evite utilizá-los neste caso também.

  • Desmarque a opção “Usuário deve alterar a senha no próximo logon”.

  • Marque a opção “Senha nunca expira”.

  • Clique em “Criar”.

  • Feche as janelas e o Painel de Controle.

Você deve ter criado um novo usuário local no Windows. Lembre-se desses dados.

Configurando o servidor SSH

Nós queremos configurar o servidor SSH para permitir o acesso utilizando usuário e senha, escutando na porta 443 ao invés da 22.

Por que a porta 443 ao invés da 22? Na maioria das vezes a empresa onde você trabalha (o escola) bloqueiam praticamente todas as portas de saídas, exceto as portas 80 e 443, as quais são comumente utilizadas por servidor web. Eu costumo dizer às pessoas para executar o SSH na porta 80, mas desta vez recomendo utilizarmos a porta 443. Por padrão essa porta é utilizada para sites com tráfego criptografado, o qual será muito parecido com o tráfego gerado pelo seu shunnel. Caso você venha a ter algum problema com a porta 443, tente mudar para a porta 80. Se nenhum dos dois casos funcionar, você não deu muita sorte.

Abra o Windows Explorer, vá até a pasta C:\Arquivos de Programas\OpenSSH\etc. Abra o arquivo sshd_config utilizando um editor de textos (Notepad ou Wordpad).

Altere a linha

#Port 22  

para

Port 443  

Salve o arquivo.

Agora abra o Prompt de Comando. Mude para o diretório C:\Arquivos de Programas\OpenSSH\bin. Nós vamos criar uma base de usuários e grupos para o servidor com relativos com a base de usuários do Windows. Digite os seguintes comandos:

mkgroup -l > ..\etc\group  
mkpasswd -l > ..\etc\passwd  

Estes dois comandos serão responsáveis por criar os arquivos de grupo e senhas no diretório C:\Arquivos de Programas\OpenSSH\etc.

Iniciando/Parando o servidor SSH

Ainda no seu computador remoto, abra o Prompt de comando. Para iniciar seu servidor SSH, digite o seguinte comando:

net start opensshd  

Para pará-lo, faça assim:

net stop opensshd  

A fim de simplificar esse trabalho, você pode criar um arquivo BAT com esses comandos e criar um atalho para ambos dentro do grupo Inicializar, do menu Iniciar. Assim, sempre que você ligar seu computador o servidor SSH será inicializado automaticamente.

Utilizando um router em casa (Linksys, D-Link, Netgear, etc)

Alguns roteadores chamam essa opção de Redirecionamento de Portas, outros de Servidores Virtuais. De qualquer maneira, a configuração do que precisamos é muito simples. Você precisará configurar seu roteador para rotear a porta 443 (ou 80, depende do seu caso) para o computador que está rodando o servidor SSH. Não vou entrar em detalhes quanto a esse procedimento aqui, mas esses roteadores sempre têm uma interface web onde é possível fazer essa configuração. Dessa forma, qualquer solicitação chegada à porta 443 no seu roteador será encaminhada para a máquina que você especificar.

OBS.: Tenha em mente que você deverá informar IP interno da máquina, aquele fornecido pelo roteador. Para descobrir qual é esse IP, entre no Prompt de comando e digite ipconfig.

Configurando o Putty no Trabalho / Escola

Copie o putty.exe para algum lugar no seu computador do trabalho. Você pode copiá-lo para a sua área de trabalho também, mas ficaria muito óbvio. Atualmente as pessoas têm feito bastante uso de pen drives, o que também pode ser uma solução muito boa.

Abra o bloco de notas e escreva as seguintes linhas:

putty -D 8080 -P 443 -ssh IP_EXTERNO  

Onde IP_EXTERNO é o endereço IP da sua máquina remota, que você anotou no começou deste guia.

Salve o arquivo como shunnel.bat no mesmo diretório onde está o putty.exe.

Nota para usuários avançados: Caso seu computador remoto já esteja configurado para utilizar um servidor proxy, você precisará configurar o Putty de maneira um pouco diferente.

Abra o Putty em modo gráfico. Informe os dados para conexão e coloque os parâmetros de proxy do Internet Explorer. Assim será possível criar um túnel seguro através do proxy do seu trabalho.

Criando um túnel

No trabalho, clique duas vezes no arquivo shunnel.bat para iniciar o shunnel. A janela do Putty aparecerá solicitando usuário e senha. Informe os dados conforme criados no seu computador remoto. Caso isso funcione, aparecerá um prompt do DOS aguardando um comando. Este é o prompt da sua máquina REMOTA. Se desejar você pode utilizá-lo também, mas isso é o suficiente para que o túnel esteja funcionando. Para fechar o túnel basta digitar exit para fechar a janela.

Para Usuários Avançados

Caso você já esteja familiarizado com SSH e saiba o que está fazendo, você pode configurá-lo de forma a não precisar digitar usuário e senha todas as vezes que precisar criar o shunnel. Para isso, é preciso utilizar o OpenSSH como seu cliente (ao invés do Putty) e então configurar a autenticação baseada em chaves, criando uma chave pública e outra privada no seu computador de trabalho e instalando a chave pública no servidor SSH. Obrigado a Robert W. pela sugestão. No futuro estarei detalhando essa funcionalidade.

Configurando o Internet Explorer

Chegou a hora de configurar o Internet Explorer para trabalhar utilizando um servidor proxy SOCKS.

Primeiramente, no seu trabalho/escola, acesse o site http://www.meuip.com.br. Tome nota desse número. Este é seu endereço IP externo, sem o uso do shunnel.

Agora, no Internet Explorer, faça os seguintes passos:

  • Abra o menu Ferramentas e clique em Opções da Internet.

  • Clique na aba Conexões e então em Configurações de LAN.

  • Marque “Utilizar um servidor proxy...” e depois clique no botão “Avançado”.

  • Se estiver marcada a opção “Utilizar o mesmo servidor proxy para todos os protocolos”, desmarque-a.

  • Apague qualquer coisa escrita em “Endereço do proxy a ser usado” e “Porta”.

  • Na linha Socks, digite “127.0.0.1” como endereço e “8080” para a Porta.

  • Clique em OK até fechar todas as janelas.

  • Feche o Internet Explorer e inicie-o novamente.

Primeiramente, vá até http://www.meuip.com.br novamente. Se tudo estiver funcionando perfeitamente, a página exibida deve mostrar o endereço IP da sua máquina remota, não mais o seu IP do trabalho. Se esse for seu caso, parabéns! Agora você pode navegar com segurança e privacidade.

Configurando outras aplicação para utilizar uma conexão privada

A maioria das aplicações que acessam a Internet podem ser configuradas para utilizar o shunnel. Para isso elas bastam suportar SOCKS 4 ou 5. Programas de mensagens instantâneas como AIM, ICQ, Yahoo IM, IRC, entre outros, suportam essa funcionalidade.

A configuração é diferente para cada uma das aplicações, mas os parâmetros são os mesmos. Sempre que desejar utilizar uma aplicação fazendo uso do shunnel informe o endereço 127.0.0.1 como seu servidor SOCKS e a porta 8080.

Proteja-se de xeretas

Esta é uma dica perfeita para o assunto que abordamos neste manual. O nome do programa é Ghostzilla (http://www.ghostzilla.com/). A idéia é permitir que você navegue na Internet mas pareça que está trabalhando normalmente com programas como Excel, Word ou até mesmo o Visual Studio. Com um gesto do mouse o Ghostzilla aparece e você pode navegar na Internet. Se você notar alguém vindo, simplesmente mova o mouse e ele desaparece, sem deixar traço algum. Além disso, você pode configurá-lo para utilizar o shunnel como descrito acima, para sua total privacidade.

Uma Solução Simples

O Buzzsurf uniu-se à HTTP-Tunnel Corp para incentivar os usuário a utilizar o HTTP-Tunnel Client como uma alternativa simples para o processo descrito aqui. Com o HTTP-Tunnel você não precisa de um computador ligado em casa durante o dia todo. Além disso você não precisa saber como instalar o SSH ou o Putty. Toda a comunicação é criptografada e enviada através da porta padrão do webserver, exatamente como descrito acima, com toda a proteção possível sem complicações. Experimente-o gratuitamente acessando HTTP-Tunnel.com.

Search Google for more info:

--------------------------------------------------------------------------------

Copyright 2002-2006 BuzzSurf.com – Todos os direitos reservados.

Por favor, não copie ou retransmita o conteúdo desta página.

Sinta-se à vontade de linkar para este endereço.

http://www.buzzsurf.com/surfatwork

AO VISUALIZAR ESTA PÁGINA VOCÊ CONCORDA EXPRESSAMENTE COM TODOS OS RISCOS ASSOCIADOS COM O MÉTODO DESCRITO ACIMA E OS ASSUME TOTALMENTE PARA SI. O AUTOR NÃO SERÁ RESPONSABILIZADO POR QUALQUER CONSEQÜÊNCIAS DIRETAS, INDIRETAS, ACIDENTAIS, ESPECIAIS OU RELACIONADAS DURANTE O USO DO MÉTODO. O MÉTODO É DISPONIBILIZADO PELO AUTOR “COMO ESTÁ” E “SEM GARANTIA”. O AUTOR NÃO REPRESENTA OU GARANTE A VERDADE, VERACIDADE, CERTEZA DE NENHUMA INFORMAÇÃO DISPONÍVEL NESTE ARTIGO.

 

--------------------------------------------------------------------------------

Notas:

11/21/2002 – A página é começa a tomar popularidade. Estou interessado em saber se alguém teve sucesso no método. Se for o seu caso, envie-me um e-mail.

11/21/2002 – Por favor enviem-se um e-mail se observarem erros ou furos de segurança!

01/17/2003 – Alterado o cliente para utilizar o Putty ao invés do OpenSSH. Agradecimentos a James Q. L. pela sugestão.

01/22/2003 – Incluída a sugestão do Ghostzilla.

03/05/2003 – Incluído link de doações para o Amazon Honor System. Confira!

03/19/2003 – Alterado o tema para dar destaque o fato de passar por firewalls. Baseado em pesquisa do google, o termo “passar por firewalls” é mais popular que “proteger a privacidade”.

05/22/2003 – Alterada a porta recomendada do SSH de 80 para 443. Deve funcionar tão bem quanto para a 80, além de aproveitar o fato do tráfego pelo porta 443 ser naturalmente encriptado.

06/02/2003 - Chopped page up into "concept" and "description" pages. Now asking for donations to access the description page.

09/11/2003 – Incluído link para a Amazon Wish List

09/13/2003 – Atualizadas Instruções para o Apache 2.0.47

09/25/2003 – Atualizadas instruções para o OpenSSH 3.7.1. Um furo de segurança foi encontrado na versão 3.4 que eu utilizava anteriormente.! Todos os usuários devem mudar para a 3.7.1 ou superior.

01/14/2004 – Página ressucitada após vários meses... O servidor morreu, desculpem! Atualmente em servidor temporário até que novo esteja pronto.

01/22/2004 – Hospedagem em novo servidor.

08/03/2004 – Atualizados alguns links quebrados e alguns outros termos técnicos.

08/12/2004 – Mega Atualização! Novas versões do Putty agora suportam Redirecionamento Dinâmico e tornam o Apache desnecessário! Chamo agora esta página de Versão 2, a qual detalha o uso do Putty e do OpenSSH como um Proxy SOCKS para Redirecionamento Dinâmico. A versão anterior, que utilizava Putty, OpenSSH E Apache, pode ser encontrada aqui.

09/26/2004 – Atualizada a seção “Quando isso não funciona?” removendo a menção ao uso do proxy server. O Putty pode ser configurado para criar um túnel seguro através de um proxy pré-configurado. Atualizada também a seção "Configurando o Putty no Trabalho/Escolha" para mencionar a opção de configuração do proxy.

03/03/2005 – Incluída possível nota de segurança sobre o SOCKS e DNS.

03/06/2006 – Incluídas citação ao bloqueio do MySpace devido a popularidade desse site.

 
Tag it:
Delicious
Furl it!
YahooMyWeb
Technorati
Digg