domingo, 13 de setembro de 2015

Configurando o Tor para escolher quais relays (ou países) desejo usar

Tor Map - Téchne Digitus
Tor Map

Escolhendo Relays e Países no Tor

Introdução ao tema:

Recentemente um colega pergunta no grupo se alguém tinha alguma VPN que saísse pela China ou Rússia para a realização de alguns testes...

Minha resposta foi: "-Usa a Tor!"

Respondi isso, pois lembrei de ter visto essa opção em meio a parâmetros de configurações disponíveis no Orbot:

Tela de Configuração do Orbot - Téchne Digitus
Tela de Configuração do Orbot
Pesquisando para ajudá-lo, encontrei ótimas informações para mais um post no Téchne Digitus! :)

Introdução técnica:


Tor:

Primeiramente, se você não sabe exatamente o que é o Tor Project, recomendo os dois seguintes links para passar a saber:


Orbot:


Sobre o Orbot, já mencionado anteriormente, é um app para celulares Android (https://play.google.com/store/apps/details?id=org.torproject.android&hl=pt_BR).

Trata-se da versão de Tor para celulares!

Entre suas principais habilidades:

- Podemos configurar aplicativos que permitam o uso de Proxy, como o Twitter por exemplo, para sair pela Tor.
- Podemos transformar nosso celular em um non-exit node, doando nossa banda Internet para a Tor.
- Se temos o Root no Android podemos rotear todo o tráfego do celular pela Tor.
- Existe uma funcionalidade em beta que cria uma VPN com o Tor. A única vez que testei não funcionou muito bem. Quem sabe neste momento que você está lento esse artigo, já tenham melhorado essa funcionalidade?

Relays:


Como sabe-se, a Tor funciona em roteamento cebola. Um nó (node, relay ou retransmissor) envia o pacote para outro nó, passando por 3 a 4 nós (se utilizada uma bridge) até chegar no destino final.

Na Tor temos três tipos de relays:

- Guard Relay: um relay que fecha uma conexão criptografada com o usuário da Tor e tunela suas comunicações pela Tor. O Guard Relay recebe o tráfego do usuário ou de uma bridge e encaminha para um non-exit relay.

- Non-Exit Relay: Recebe os pacotes de um guard relay e encaminha para um exit relay.

- Exit Relay: Recebe pacotes de um non-exit relay e encaminha para o destino final. É o IP do Exit Relay que os sites, servidores etc. na internet enxergam como origem do pacote. Ocultando assim a origem original do pacote: o IP do usuário.

A beleza da coisa é que: cada relay sabe e registra temporariamente (enquanto o circuito temporário estiver estabelecido) de onde veio o pacote e para onde deve ser mandado.

Por exemplo: um exit relay sabe quem foi o non-exit relay que enviou o pacote para ele e sabe qual o destino final, mas não sabe qual foi o guard relay utilizado e muito menos qual a origem do usuário.

Por quê manipular relays?


Em nosso contexto, quando dizemos manipular relays, nos referimos a escolher de alguma forma por quais relays desejo passar.

Sabe-se que um exit relay malicioso pode ser usado para monitorar o tráfego que por ele passa (conteúdo de sites, transferências, logins, senhas etc.).

Sabe-se também que agências internacionais de espionagem mantém relays para monitorar e investigar a Tor.

Supondo que considero os servidores relays russos, chineses ou norte-americanos provavelmente maliciosos (seja por um "hacker" ou uma agência de espionagem governamental), posso simplesmente configurar a Tor por não utilizar relays nesses países.

Outra questão é a performance: Eu, a partir de minha casa no Brasil, acessar um relay no Brasil tem menor latência que um relay internacional. Sendo assim, posso optar por somente utilizar relays no Brasil para melhorar a minha performance na Tor.

Como manipular relays?


Para manipular os relay que queremos ou não usar, basta que editemos um arquivo de configuração do Tor chamado: torrc.

Este arquivo possui a maioria das configurações sobre como seu cliente Tor se conecta na Tor. Inclusive, se desejamos configurar nosso Tor para fazer de nosso PC um relay na Tor, é este arquivo que temos que configurar. :) Até mesmo, através do torrc, podemos configurar um Hidden Service (que é um site ou outro serviço disponibilizado na Tor que "ninguém" sabe a origem.

Definindo Guard Relays:

Acrescente no arquivo torrc a linha:

EntryNodes $fingerprint,$fingerprint,$fingerprint

Obs.: Substitua "fingerprint" pelo código de fingerprint do relay desejado.
Veja um exemplo na imagem abaixo:

Relay in Globe - Téchne Digitus




Obs2.: Caso você não conheça o Atlas e o Globe, são sites onde podemos consultar informações sobre relays. Vale a pena conhecer!


Definindo Guard Relays por nome:


EntryNodes nickname,nickname

Obs.: Veja “Nickname” no screenshot do exemplo acima e substitua as strings "nickname" na linha de código acima.

Definindo Guard Relays por país:


EntryNodes {de},{se},{ch}

Obs.: No exemplo acima, selecionamos Alemanha, Suécia e Suíça respectivamente. O código de país com 2 dígitos utilizado é o ISO 3166-1 alpha-2.


Definindo Guard Relays de um único país:


EntryNodes {br}
StrictNodes 1

Obs.: No caso de selecionarmos um único país, precisamos acrescentar a linha “StrictNodes 1”.


Definindo Exit Relays:


ExitNodes $fingerprint,$fingerprint,$fingerprint

Definindo Exit Relays por nome:


ExitNodes nickname,nickname

Definindo Exit Relays por país:


ExitNodes {de},{se},{ch}

Definindo Exit Relays de um único país:


ExitNodes {br}
StrictNodes 1

Excluindo Guard Relays:


ExcludeEntryNodes $fingerprint,$fingerprint,$fingerprint

Excluindo Guard Relays por nome:


ExcludeEntryNodes nickname,nickname

Excluindo Guard Relays por país:


ExcludeEntryNodes {de},{se},{ch}

Obs.: Se quiser excluir somente um país, basta colocar só a sigla do país. Não precisa de segunda linha como no caso de acessar somente um país.


Excluindo Exit Relays:


ExcludeExitNodes $fingerprint,$fingerprint,$fingerprint

Excluindo Exit Relays por nome:


ExcludeExitNodes nickname,nickname

Excluindo Exit Relays por país:


ExcludeExitNodes {de},{se},{ch}

Para excluir qualquer tipo de nó (guard, non-exit e exit) por país:

ExcludeNodes {us}


Para saber mais sobre "Deep Web":



Se curtiu o conteúdo deste post, COMPARTILHE! :)