Como usar ferramentas de console com o TOR

Se você está lendo este artigo, então você já deve ter usado (ou ouvido falar) da rede TOR (The Onion Router).

A rede TOR é formada por um grupo de servidores operados por voluntários, cuja ideia é oferecer o anonimato de seus usuários durante o acesso à Internet.

Na rede TOR, as conexões dos usuários são realizadas através de uma série de túneis virtuais ao invés de efetuarem uma conexão direta de seu computador com o servidor final. Teoricamente, esta técnica permite aos usuários da rede TOR compartilhar informações através de uma rede pública (a Internet) de forma anônima.

Apesar de parecer ótima esta ideia (e é), ainda assim fique atento: apesar de usar criptografia internamente, a rede TOR não oferece privacidade fim-a-fim. Isto porque o tráfego só é cifrado entre os servidores da rede TOR. Funciona mais ou menos assim: seu navegador, por exemplo, envia uma solicitação de conexão para um site qualquer. Como ele está configurado para usar o proxy SOCKS, a solicitação de conexão é enviada para o proxy, que a encaminha para um dos servidores da rede TOR. Este servidor estabelece um túnel cifrado através de vários outros servidores da rede TOR, sendo que, no último servidor do túnel, os dados são decifrados e finalmente enviados para o destino final. Observe que, neste processo, o servidor final recebe os dados decifrados, isto é, da mesma forma como eles saíram do seu computador. Então, o uso da rede TOR não livra as pessoas do uso de protocolos que garantam a privacidade, como, por exemplo o HTTPS.

Mas então, para que serve a rede TOR? Bem, de uma forma simplificada, o objetivo da rede TOR é garantir o acesso anônimo na Internet, ou seja, o servidor de destino não saberá o endereço IP real do cliente. A privacidade dos dados só é garantida enquanto eles trafegam entre os servidores da rede TOR, pois são cifrados. No entanto, a rede TOR não tem como proteger seus dados até a entrega ao servidor de destino simplesmente porque o destino final não é um nó da rede TOR.

Além disso, o uso de comunicação P2P, como torents, não deve ser usada na rede TOR. Os nós de saída da rede TOR são configurados para bloquear o tráfego redes de compartilhamento de arquivos e, além disso, os protocolos P2P normalmente enviam o endereço IP do seu computador para o destino, acabando com o anonimato oferecido pela rede TOR.

Então, fica a dica: mesmo usando a rede TOR, nunca dispense o uso de protocolos seguros, como o HTTPS e VPNs, proteja seus dados com criptografia antes de enviá-los para o servidor de destino e jamais utilize protocolos P2P pensando que a rede TOR irá garantir o seu anonimato.

Lembre-se: a rede TOR não protege seus dados, apenas proporciona anonimato.

Deixando os detalhes técnicos para uma outra oportunidade, vamos ao que interessa.

Para os testes, utilizei a distribuição Linux Debian Jessie (8.3).

Para instalar o TOR:

sudo aptitude install tor

Depois de instalado, próprio instalador já inicia o serviço. Neste caso, o serviço TOR instalado funciona como um proxy SOCKS. Na configuração padrão, o serviço espera conexões na porta 9050/TCP. Cabe aqui uma dica: a rede TOR só opera com o protocolo TCP, ou seja, ela não funciona com o protocolo UDP.

Se seu objetivo é apenas navegar pela Internet, então basta configurar o proxy SOCKS no seu navegador, apontando para o servidor 127.0.0.1:9050.

Para o propósito deste artigo, no entanto, o objetivo é utilizar a rede TOR em aplicativos de linha de comando, independente de terem ou não suporte ao proxy SOCKS.

Então, entram em cena as ferramentas torify e o torsocks, que fazem parte do pacote TOR. O uso delas é extremamente simples: basta executar uma dela passando na linha de comando o comando que você deseja executar através da rede TOR.

Para testar o acesso à Internet vamos fazer o seguinte: vamos obter o IP de acesso à Internet usando a ferramenta cURL em duas etapas: com e sem o uso da rede TOR.

Existe um site chamado ifconfig.me que retorna o endereço IP de acesso internet, o que torna a verificação do endereço de acesso muito simples.

Como primeiro teste, vamos obter o endereço IP sem o uso da TOR:

curl ifconfig.me
201.0.164.131

Agora, vamos repetir o teste usando a ferramenta torify:

torify curl ifconfig.me
193.90.12.90

Da mesma forma, podemos usar o torsocks:

torsocks curl ifconfig.me
193.90.12.90

O torify parece ser igual ao torsocks, no entanto, há várias diferenças. Ambos são o que costumamos chamar wrappers, que são uma espécia de encapsuladores de comandos. No entanto, o torsocks é mais completo e permite o uso de alguns parâmetros específicos. No final das contas, quando o torify é executado, ele executa o torsocks.

Para entender melhor como estas ferramentas funcionam, consulte aa páginas de manual:

man torify
man torsocks

Lembre-se apenas do seguinte: o acesso à Internet via rede TOR é mais lento, pois além da criptografia utilizada, a comunicação segue através de vários túneis virtuais e pode viajar o mundo antes de chegar ao seu destino (a maioria dos servidores da rede TOR parece estar na Europa). Além disso, o tráfego na rede TOR tem aumentado consideravelmente e, com isso, o tempo de resposta tende naturalmente a aumentar.

Um detalhe interessante: a rede TOR cuida de alterar o caminho de acesso à Internet a cada 10 minutos automaticamente. Resta saber se um download demorado será prejudicado.

Por hoje é só.