Para a criação do artigo usei um desktop
Linux rodando
Debian 10 Buster. O processo de instalação e configuração do ambiente necessário não deve mudar muito caso esteja usando outra distribuição.
Para início de conversa, vamos atualizar a lista de pacotes dos repositórios APT:
sudo apt update
Em seguida instale o
Tor:
sudo apt install tor
Também precisaremos instalar suporte aos protocolos de obfuscação (obfuscation protocols):
sudo apt install obfs4proxy
Configuração do Tor
Entre no diretório de configuração do Tor:
cd /etc/tor/
Faça um backup do arquivo de configuração original:
sudo cp torrc torrc.original
E substitua todas as linhas do arquivo original pelo conteúdo abaixo:
sudo vim torrc
BridgeRelay 1
# Replace "TODO1" with a Tor port of your choice.
# This port must be externally reachable.
# Avoid port 9001 because it's commonly associated with Tor and censors may be scanning the Internet for this port.
ORPort 12345
ServerTransportPlugin obfs4 exec /usr/bin/obfs4proxy
# Replace "TODO2" with an obfs4 port of your choice.
# This port must be externally reachable and must be different from the one specified for ORPort.
# Avoid port 9001 because it's commonly associated with Tor and censors may be scanning the Internet for this port.
ServerTransportListenAddr obfs4 0.0.0.0:23456
# Local communication port between Tor and obfs4. Always set this to "auto".
# "Ext" means "extended", not "external". Don't try to set a specific port number, nor listen on 0.0.0.0.
ExtORPort auto
# Replace "" with your email address so we can contact you if there are problems with your bridge.
# This is optional but encouraged.
ContactInfo
# Pick a nickname that you like for your bridge. This is optional.
Nickname PickANickname
Não esqueça de substituir as seguintes linhas por algo de sua preferência:
- ORPort 12345 - aqui coloquei 12345
- ServerTransportListenAddr obfs4 0.0.0.0:23456 - aqui coloquei 23456
- ContactInfo - preencha com seu email
- Nickname PickANickname - preencha com seu nickname
Reinicie o serviço Tor:
sudo systemctl restart tor
Código Python
Crie um script em Python com o seguinte conteúdo:
import requests
session = requests.session()
session.proxies = {}
session.proxies['http'] = 'socks5h://localhost:9050'
session.proxies['https'] = 'socks5h://localhost:9050'
// requisição NORMAL
r = requests.get('http://httpbin.org/ip')
print(r.text)
// requisição pela rede TOR
r = session.get('http://httpbin.org/ip')
print(r.text)
O código é bem simples, em resumo criamos uma sessão (session) de requests e nela configuramos os servidores proxy para os protocolos http e https, que são direcionados para o serviço tor-socks que roda na porta 9050 da máquina local.
Se você usar requests.get() o Python irá usar a chamada tradicional da biblioteca requests, o que resultará numa request usando seu IP local.
Se você usar session.get() o Python realizará a request usando a sessão criada, onde a requisição irá passar pelo tor-socks e consequentemente terá um IP anônimo.
Enfim, é isso. Espero que o artigo tenha sido útil.
Referências