Neste tutorial, passo por todas as etapas para configurar um proxy Tor em um Raspberry Pi (Modelo B). Este trabalho foi baseado em alguns tutoriais da Adafruit .
Configurando um Raspberry Pi
Instalando um sistema operacional no cartão SD
Você pode instalar o NOOBS e escolher seu sistema operacional:
http://www.raspberrypi.org/help/noobs-setup .
Ou você pode baixar o Fedora ARM Installer e a imagem do sistema operacional de sua preferência:
http://fedoraproject.org/wiki/Fedora ARM Installer .
Configuração de rede
A maneira mais fácil é conectar seu Pi na rede através de uma interface ethernet . A conexão do cabo deve permitir a conexão direta, desde que o roteador da rede permita DHCP.
Além disso, você também pode configurar uma conexão sem fio, que requer que seu roteador transmita o SSID. No Raspbian, há um ícone de configuração de WiFi. Digite wlan0 adapter
e digitalize. Depois de se conectar em sua rede, você também poderá ver o IP do seu Pi.
Configuração de entrada / saída
A maneira mais fácil de se conectar ao seu Pi é por meio de um cabo HDMI a um monitor e a um teclado USB. Outra opção é por meio de um cabo de console ou uma conexão SSH.
Conexão através de um cabo de console (níveis lógicos de 3,3 V)
As conexões são para as conexões de pino externas do cabeçalho GPIO:
- O fio vermelho deve ser conectado a 5V.
- O cabo preto para GND,
- O fio branco para TXD.
- A liderança verde para RXD.
Se o cabo serial (vermelho) estiver conectado, não conecte o adaptador de alimentação USB do Pi.
No Linux, você pode usar a tela :
$ sudo apt-get install screen
$ sudo screen /dev/ttyUSB0 115200
No Windows, você pode usar uma emulação de terminal como Putty e os drivers deste link:
http://www.prolific.com.tw/US/ShowProduct.aspx?p_id=225&pcid=41 . Verifique o número da porta serial COM no gerenciador de dispositivos e conecte com a velocidade 115200.
Conexão SSH
Você precisa habilitar SSH no Pi:
$ sudo raspi-config
Encontre o IP do Pi por:
$ sudo ifconfig
Em seu PC Linux (usando “pi” como usuário):
$ sudo PI-IP -l pi
Você pode (deve) definir chaves RSA. Em uma sessão de terminal no cliente Linux, digite:
$ mkdir ~/.ssh
$ chmod 700 ~/.ssh
$ ssh-keygen -t rsa
Agora copie a chave pública para o Pi digitando no cliente:
$ ssh-copy-id <userid>@<hostname or ip address>
Configurando um Ponto de Acesso Wi-Fi
Você precisa de um cabo Ethernet e um adaptador sem fio. Primeiro, verifique se você vê o módulo wlan0 (o WiFi):
$ ifconfig -a
Configuração do servidor DHCP
Instale o software que atuará como hostap (ponto de acesso do host):
$ sudo apt-get install hostapd isc-dhcp-server
Se o Pi não conseguir os repositórios apt-get:
$ sudo apt-get update
Editar :/etc/networks/interfaces
auto lo
iface lo inet loopback
iface eth0 inet dhcp
allow-hotplug wlan0
iface wlan0 inet static
address 192.168.42.1
netmask 255.255.255.0
Em seguida, edite o arquivo de configuração do servidor DHCP :/etc/dhcp/dhcpd.conf
subnet 192.168.42.0 netmask 255.255.255.0 {
range 192.168.42.10 192.168.42.50;
option broadcast-address 192.168.42.255;
option routers 192.168.42.1;
default-lease-time 600;
max-lease-time 7200;
option domain-name "local";
option domain-name-servers 8.8.8.8, 8.8.4.4;
}
Agora, adicione a linha abaixo a :/etc/default/isc-dhcp-server
INTERFACES="wlan0"
Reinicie a rede:
$ sudo /etc/init.d/networking restart
Encaminhamento de IP
Ative o encaminhamento de IP e configure o NAT para permitir que vários clientes se conectem ao WiFi e tenham todos os dados ‘encapsulados’ por meio de um único IP Ethernet:
$ sudo echo 1 > /proc/sys/net/ipv4/ip_forward
$ sudo nano /etc/sysctl.conf
Remova o comentário da próxima linha para habilitar o encaminhamento de pacotes para IPv4:
net.ipv4.ip_forward=1
E atualizar:
sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"
Configuração de Firewall
Nós inserimos regras de iptables para permitir NAT (tradução de endereços de rede) :
$ iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
$ iptables -A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
$ iptables -A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
Para tornar verdadeiro o acima em cada reinicialização:
$ sudo sh -c "iptables-save > /etc/iptables.ipv4.nat"
Para segurança adicional (bloqueia o acesso de sub-redes RFC 1918 na sua interface de internet (eth0), bem como pacotes ICMP (ping) e conexões ssh.):
$ sudo iptables -A INPUT -s 192.168.0.0/24 -i eth0 -j DROP
$ sudo iptables -A INPUT -s 10.0.0.0/8 -i eth0 -j DROP
$ sudo iptables -A INPUT -s 172.16.0.0/12 -i eth0 -j DROP
$ sudo iptables -A INPUT -s 224.0.0.0/4 -i eth0 -j DROP
$ sudo iptables -A INPUT -s 240.0.0.0/5 -i eth0 -j DROP
$ sudo iptables -A INPUT -s 127.0.0.0/8 -i eth0 -j DROP
$ sudo iptables -A INPUT -i eth0 -p tcp -m tcp --dport 22 -j DROP
$ sudo iptables -A INPUT -i eth0 -p icmp -m icmp --icmp-type 8 -j DROP
$ sudo iptables-save > /etc/iptables.up.rules
Se você quiser ver quantos pacotes seu firewall está bloqueando:
$ iptables -L -n -v
Se o seu eth0 ainda mostra um endereço privado, provavelmente não foi renovado quando você o moveu para o seu modem. Corrija isso executando:
$ sudo ifdown eth0 && sudo ifup eth0
Configuração do Ponto de Acesso
Configure o ponto de acesso com hostpad, editando :/etc/hostapd/hostapd.conf
interface=wlan0
driver=rtl871xdrv
ssid=Pi_AP
hw_mode=g
channel=6
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=Raspberry
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP
Agora diremos ao Pi onde encontrar esse arquivo de configuração em :/etc/default/hostapd
DAEMON_CONF="/etc/hostapd/hostapd.conf"
E inicie o ponto de acesso executando o hostpad:
$ hostapd -d /etc/hostapd/hostapd.conf
Para iniciar automaticamente, adicione o comando a :/etc/rc.local
$ hostapd -B /etc/hostapd/hostapd.conf
Logs e status
Para ver os dados de registro do sistema, execute no Pi:
$ tail -f /var/log/syslog
Você sempre pode verificar o status do servidor AP host e do servidor DHCP com:
$ sudo service hostapd status
$ sudo service isc-dhcp-server status
Configurando um Daemon
Agora que sabemos que funciona, podemos configurá-lo como um ‘daemon’ (um programa que será iniciado quando o Pi for inicializado):
$ sudo service hostapd start
$ sudo service isc-dhcp-server start
Para iniciar os serviços daemon. Verifique se ambos começam com sucesso (sem ‘falha’ ou ‘erros’)
$ sudo update-rc.d hostapd enable
$ sudo update-rc.d isc-dhcp-server enable
Removendo WPA-Suplicante
Dependendo da sua distribuição, pode ser necessário remover o WPASupplicant . Faça isso executando este comando:
sudo mv /usr/share/dbus-1/system-services/fi.epitest.hostap.WPASupplicant.service ~/
Configurando o Tor Proxy
Agora você tem um ponto de acesso sem fio em seu Pi. Para torná-lo um proxy Tor, primeiro instale o Tor:
$ sudo apt-get install tor
Em seguida, edite o arquivo de configuração do Tor em /etc/tor/torrc
:
Log notice file /var/log/tor/notices.log
VirtualAddrNetwork 10.192.0.0/10
AutomapHostsSuffixes .onion,.exit
AutomapHostsOnResolve 1
TransPort 9040
TransListenAddress 192.168.42.1
DNSPort 53
DNSListenAddress 192.168.42.1
Altere as tabelas de roteamento de IP para que as conexões por meio da interface WiFi (wlan0) sejam roteadas por meio do software Tor. Para eliminar as regras antigas da tabela IP NAT, faça o seguinte:
$ sudo iptables -F
$ sudo iptables -t nat -F
Adicione o iptables, para poder fazer o ssh:
$ sudo iptables -t nat -A PREROUTING -i wlan0 -p tcp --dport 22 -j REDIRECT --to-ports 22
Para rotear todos os DNS (porta UDP 53) da interface wlan0 para a porta interna 53 (DNSPort em nosso torrc):
$ sudo iptables -t nat -A PREROUTING -i wlan0 -p udp --dport 53 -j REDIRECT --to-ports 53
Para rotear todo o tráfego TCP da interface wlan0 para a porta 9040 (TransPort em nosso torrc):
$ sudo iptables -t nat -A PREROUTING -i wlan0 -p tcp --syn -j REDIRECT --to-ports 9040
Verifique se os iptables estão corretos com:
$ sudo iptables -t nat -L
Se tudo estiver bem, vamos salvá-lo em nosso antigo arquivo de salvamento NAT:
$ sudo sh -c "iptables-save > /etc/iptables.ipv4.nat"
A seguir, criaremos nosso arquivo de log (útil para depuração) com:
$ sudo touch /var/log/tor/notices.log
$ sudo chown debian-tor /var/log/tor/notices.log
$ sudo chmod 644 /var/log/tor/notices.log
Verifique com:
ls -l /var/log/tor
Finalmente, você pode iniciar o serviço Tor manualmente:
$ sudo service tor start
E faça com que comece na inicialização:
$ sudo update-rc.d tor enable
É isso aí! Navegador seguro!