Usando como proxy a sua conta no provedor de hospedagem
Conheça uma forma fácil de usar o acesso SSH dado pelo seu provedor de hospedagem (como o Dreamhost ou o MediaTemple) como um proxy SOCKS, com criptografia e muito mais flexibilidade que os mais conhecidos (e limitados) túneis SSH - e sem instalar seu próprio servidor proxy (squid e similares).
O que fazer quando suspeitamos que nossa navegação está sendo monitorada? Quando os bytes deixam o seu computador e passam a trafegar em redes públicas (incluindo a do seu provedor, seu condomínio, sua empresa e sua escola), nunca se sabe o que pode acontecer com eles, ou quem vai interceptá-los ou monitorá-los.
Soluções definitivas e com alto grau de segurança geralmente envolvem o estabelecimento de redes virtuais privadas (VPNs) e investigações profundas de políticas de acesso.
Mas se tudo o que você quer é ter certeza de que os vizinhos do condomínio dos seus pais, durante uma visita que você fez a eles, não estão bisbilhotando os seus acessos à web, criar uma solução rápida para enviar um arquivo de forma mais segura que o usual, ou superar com urgência algum bloqueio errôneo na rede da sua faculdade, que tenha sido feito em desacordo com a política de segurança dela mesma, as soluções temporárias e com grau de efetividade razoável também existem, e estão ao alcance de usuários de Linux, Mac ou Windows.
A sua conta SSH no provedor de hospedagem pode ser providencial para a solução, como veremos a seguir.
Como funciona essa solução?
O básico é assim: você precisa dispor de um computador no qual você confie, permanentemente conectado à Internet e acessível remotamente.
Esse computador, que chamaremos de remoto (e pode ser o da sua conta SSH no provedor de hospedagem) vai mediar todas as suas conexões feitas a partir da rede em que você não confia, ou em que seu acesso estiver sendo incorretamente limitado. A conexão entre o computador em que você estiver e o computador remoto será criptografada, para aumentar a segurança.
Isso ocorre usando componentes simples e insuspeitos (como os populares OpenSSH e PuTTY - se você não os conhece, investigue!), que fazem com que todos os seus acessos locais passem a ser mediados (de forma criptografada) por este computador remoto.
Mas os túneis SSH também não fazem isso?
Sim, fazem o que eu descrevi acima, mas não vão muito além disso, nem oferecem grande flexibilidade - em geral você acaba precisando fazer um túnel para seus acessos web, outro para e-mail (POP3, IMAP ou SMTP), outro para FTP, e assim por diante. Dependendo do que você tem em mente, pode ser necessário instalar seu próprio servidor proxy para fazer uso dos túneis, também.
Para quem nunca ouviu falar no assunto: uma alternativa bastante conhecida para o problema do acesso seguro é a criação de túneis usando o serviço SSH, algo que pode ser feito com bem menos que meia dúzia de comandos - em junho de 2005 eu escrevi um pequeno artigo explicando como fazer.
Qual a vantagem de usar uma proxy SOCKS, então?
Na verdade são várias. Para começar, os softwares mais usados para criar os túneis SSH (o OpenSSH e o PuTTY, mencionados acima) também servem para fazer a proxy SOCKS.
E, quando o objetivo é o mencionado, uma proxy SOCKS é justamente a ferramenta certa, uma vez que elas foram criadas justamente para essa finalidade - levar sessões de protocolos diversos entre 2 pontos, de forma flexível e segura, usualmente atravessando uma firewall ou um filtro de pacotes.
E onde eu arranjo um computador permanentemente conectado?
Dependendo do caso, pode ser o seu computador de casa, conectado via banda larga - depende do tipo de conexão e dos termos de serviço do seu provedor, basicamente. De modo geral, basta você garantir que ele tenha, com segurança, o serviço SSH rodando com privilégio suficiente. Dá para fazer isso com vários sistemas operacionais, mas este tipo de configuração é basicamente a default de várias distribuições de Linux, por exemplo.
Mas, como você já viu no título do artigo, eu prefiro usar para isso a conta SSH de que já disponho em meu provedor de hospedagem. E é bem fácil!
Antes de prosseguir, um alerta: todo o tráfego que você gerar será contabilizado no seu limite estipulado pelo provedor, e você precisa olhar os seus termos de serviço e política de uso antes de testar - mesmo quando o provedor não bloqueia este tipo de acesso, ele pode ser contra os seus termos de uso, e levar a suspensão e até bloqueio da conta.
Como fazer para criar a conexão que servirá como proxy
Vamos imaginar, por exemplo, que eu tenha o domínio "meublog.com" hospedado no provedor MediaTemple, que meus termos de serviço lá permitam o uso planejado, e que eu tenha acesso SSH lá, com o usuário "augusto".
Usar um proxy SOCKS nessas condições é relativamente simples, envolvendo a criação do proxy em si, e a configuração do seu navegador (ou cliente FTP, ou programa de e-mail, bate-papo, jogo, etc.) para usá-lo.
A primeira parte, se você for usuário do OpenSSH (no Linux, Windows, Mac OS X ou outro sistema suportado), se resume a digitar o comando:
ssh -c 3des -D 10081 augusto@meublog.com
onde o parâmetro -c 3des
define o tipo de criptografia, o -D 10085
define a porta local que será usada pelo seu proxy, e augusto@meublog.com
correspondem ao nome de usuário e domínio para conexão ssh ao servidor hospedado no provedor.
Após completar o comando acima e se autenticar, o seu túnel já deverá estar no ar e pronto para uso pelos aplicativos, enquanto durar a sua sessão SSH. Se der erro, tente usar o parâmetro adicional "-v", antes do "-c", para aumentar a quantidade de informações de diagnóstico exibidas.
E se não gostar de fazer as coisas pela linha de comando, você pode fazer o mesmo via janelinhas, veja como fazer isso usando o PuTTY. Mas, para mim, complicado por complicado, a opção via linha de comando é mais fácil.
Como configurar o aplicativo para usar o proxy SOCKS
Cada aplicativo é diferente, e você terá que procurar nas configurações dele. No caso do Firefox que eu estou usando hoje, é nas preferências.
Antes de prosseguir, anote bem as suas configurações originais, para que saiba voltar a elas quando não quiser mais usar o proxy.
Veja como fica a tela já configurada para usar o proxy SOCKS:
E é realmente bem simples: como você vê acima, basta clicar em "Manual Proxy Configuration", preencher (sempre) 127.0.0.1
no campo "Socks Host", e no campo "Port" ao lado dele, preencher o número que você usou no parâmetro "-D" do comando que criou o seu proxy (no nosso caso, 10081
). A opção "SOCKS v5" também precisa ser selecionada.
Em outros aplicativos que suportem SOCKS, os dados serão os mesmos: 127.0.0.1 e o número da porta - a questão é saber onde preenchê-los, e isso você vai ter de procurar.
Como posso ter certeza de que funcionou?
Se a navegação funcionar (teste isso visitando sites que você tenha certeza de que não estão no cache do navegador), simplesmente encerre o comando que criou a conexão criptografada com o seu provedor. O efeito natural é que a navegação pare de funcionar imediatamente, e assim você saberá que funcionou. Aí é só rodar o comando de novo, e usar.
Outra alternativa é usar o parâmetro "-v", como visto acima: quando ativado, ele mostra na tela cada nova conexão iniciada, embora não informe o endereço ou outros detalhes sobre ela.
E os riscos, perigos, problemas e aspectos legais e jurídicos?
Eu só posso afirmar que a solução acima funciona para mim. Cabe a você verificar se ela atende sua necessidade e não viola os termos de serviço de seu provedor de acesso, de hospedagem, da rede da sua empresa, da sua escola ou do seu condomínio, nem vai esgotar sua cota de acesso, de transferência, de CPU ou causar qualquer outro efeito adverso.
Note que esta não é uma solução com foco em alto grau de privacidade ou anonimato. Se você precisar de algo assim, procure saber mais sobre o sistema TOR.
Note também que nem todas as redes permitem a passagem de conexões SSH. Se a sua estiver bloqueando, os passos acima não funcionarão. Existem soluções (minha simpatia vai para o Ping Tunnel e para o DNS Tunneling), mas você vai ter de pesquisar um pouco mais.
Se precisar de suporte, entre em contato com os fornecedores das respectivas ferramentas ou serviços, e verifique se eles oferecem o apoio necessário, ou se indicam quem possa fazê-lo para você.
Onde posso saber mais sobre o funcionamento do SOCKS?
Tente este artigo da Wikipedia! Se quiser entender um pouco melhor como funcionam os túneis SSH, leia também este meu outro artigo.
Comentar
Comentários arquivados