Passos 2 - IPtables
IPtables - Liberando apenas saídas de pacotes TCP Pelo TOR Via GID.
Lembra da informação sobre o GID (ID de grupo) do TOR lá no início do artigo?
Vamos utilizar uma funcionalidade do IPtables para permitir saídas de pacotes apenas para o GID do TOR, mas também é possível fazer isso por PID e UID.
Sem mais, seguem as regras do IPtables para bloquear tudo e liberar apenas saídas e entradas pelo TOR.
#############################################
#Limpar todas as regras anteriores.
iptables -X
iptables -F
iptables -t nat -F
#Mudar as políticas padrão para DROP,
#descartar pacotes que não estiverem incluidos em uma regra que permita-os.
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
#As linhas aqui embaixo permitem saídas para qualquer porta do IP da interface de loopback
#e entradas da própria loopback na loopback. -d = destino e -s = source/fonte.
#diz de onde o pacote tem que vir e para onde ir "127.0.0.1" para ser permitido
iptables -A OUTPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
#Libera entrada de pacotes pelas portas que tiveram a conexão iniciada por esta máquina.
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#Liberando saída de pacotes de pacotes para o grupo do TOR (GID = 220)
iptables -A OUTPUT -p tcp -m owner --gid-owner 220 -j ACCEPT
###########################################
Esse script de Firewall precisa ser colocado para iniciar com o sistema, vide método para tua distro. No Slackware, eu coloquei em
/etc/rc.d/rc.meu-firewall e chamo-o em
/etc/rc.d/rc.M.
Passo 3 - POLIPO
POLIPO - "Servindo de ponte" entre os programas HTTP e o TOR via Proxy HTTP Local.
Agora, nós temos que configurar o Proxy HTTP local Polipo para direcionar seus pacotes de saída para o Proxy SOCKS do TOR, isso vai permitir o uso do TOR com aplicações que não suportam Proxys SOCKS.
Com o Polipo já instalado, vamos editar o arquivo
/etc/polipo/config e adicionar o seguinte ao final: dele:
##########################################################
#19/11/2016.
#Configurando um proxy http local que direciona para o proxy socks do tor em 127.0.0.1:9050
#Dica pega de: http://www.diolinux.com.br/2012/04/como-usar-o-tor-para-navegar.html
#Aqui em "localhost:9050" é endereço de onde o TOR está servindo o proxy socks.
socksParentProxy = "localhost:9050"
socksProxyType = socks5
#Setando a porta onde ele vai escutar.
#Poderia ser qualquer outra.
proxyPort = 80
##########################################################
Isso vai fazer com que o Polipo sirva em 127.0.0.1:80, um Proxy HTTP que leva para o Proxy SOCKS 127.0.0.1:9050 fazendo a "conversão" do SOCKS do TOR para HTTP.
Para fazer com que todos os programas reconheçam que é necessário usar um Proxy, configuraremos isso em variáveis de ambiente na próxima página.