O Pi-hole foi pensado para ser instalado num simples Raspberry Pi, mas também o podemos usar numa máquina virtual ou num container lxc/lxd. A sua versão Docker torna-o fácil de instalar em diversos sistemas, como por exemplo num NAS compatível com esta tecnologia. Neste artigo usamos um Raspberry Pi, onde vamos instalar o Ubuntu (com Docker) e correr o container com o nosso Pi-hole. A protecção oferecida por este recurso é feita através da filtragem dos pedidos de DNS, o serviço responsável por fazer corresponder nomes facilmente identificáveis (por exemplo, ansol.org) a endereços IP (como 35.185.44.232) bastante mais difíceis de memorizar.
Instalar o Ubuntu no Raspberry Pi
O Raspberry Pi, através da sua ferramenta [imager](raspberrypi.com/software), permite, de uma forma simples, instalar um elevado número de sistemas operativos e apps. Na lista de opções para ‘Operating System’ basta escolher ‘Other general-purpose OS’ > ‘Ubuntu’ > ‘Ubuntu Server 22.04.3 LTS’.
Na opção ‘Storage’ escolhemos o cartão de memória a usar no Raspberry Pi. Na roda dentada é ainda necessário activar o SSH, a autenticação com password (ou chave pública) e definir nome de utilizador/palavra passe do administrador que vai ser criado durante a instalação. Podem ainda definir o ‘hostname’, que pode ajudar na identificação da lista de equipamentos da vossa rede: ‘pihole’ é uma excelente opção. Finalmente, clicamos em ‘Save’ > ‘Write’ e, depois, basta colocar o cartão de memória no Raspberry Pi, ligá-lo ao à rede, à corrente e esperar que o sistema operativo termine o primeiro arranque.
Instalar o Docker no Ubuntu
Se tudo correu conforme planeado é agora possível aceder via SSH ao Ubuntu, usando o comando ssh [email protected] e a palavra passe que definiram na instalação, no Terminal. Em vez de pihole.local poderá ser necessário usar o IP do vosso Raspberry Pi – para descobrir este dado, podem usar o painel de administração do vosso router ou uma app de restreio de rede. O passo seguinte será instalar o Docker no Ubuntu e para isso basta correr três comandos:
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh ./get-docker.sh
Instalar o Pi-hole
O passo final desta instalação é a instalação do Pi-hole: para isso vamos criar uma pasta, com o comando sudo mkdir /opt/pihole. Aqui, colocamos o nosso ficheiro docker-compose.yml (sudo nano /opt/pihole/docker-compose.yml), com o seguinte conteúdo:
version: “3”
services:
pihole:
container_name: pihole
image: pihole/pihole:latest
ports:
– “53:53/tcp”
– “53:53/udp”
– “80:80/tcp”
environment:
TZ: ‘Europe/Lisbon’
WEBPASSWORD: ‘UmaPalavraPasseMuitoSegura’
volumes:
– ‘./etc-pihole:/etc/pihole’
– ‘./etc-dnsmasq.d:/etc/dnsmasq.d’
restart: unless-stopped
Como estamos a usar o Ubuntu precisamos de fazer alguns ajustes na forma como o sistema operativo usa o seu DNS, internamente:
sudo sed -r -i.orig ‘s/#?DNSStubListener=yes/DNSStubListener=no/g’ /etc/systemd/resolved.conf
sudo sh -c ‘rm /etc/resolv.conf && ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf’
sudo systemctl restart systemd-resolved
Para iniciar o Pi-hole, só falta entrar na pasta e executar o docker compose:
cd /opt/pihole/
sudo docker compose up -d
O serviço está, agora, pronto a ser usado e deverá funcionar sem mais configurações. Porém, para consultar estatísticas ou configurações adicionais, podemos usar o painel Web do Pi-hole através do endereço pihole.local/admin, com a password definida no docker-compose.yml. Mais uma vez, poderá ser necessário usar o IP do vosso Raspberry Pi em vez de pihole.local.
Alterar o DNS da rede
O passo final será mudar a configuração do DNS da rede. Para isso, basta seguir as instruções descritas no artigo ‘Como alterar o DNS no router e no Windows’, que está no site da PCGuia (bit.ly/dnsrouterwin).
Conclusão
Com o Pi-hole responsável pelo DNS da rede, passa a ser possível filtrar o conteúdo indesejado, reduzir o tráfego da rede e consultar estatísticas dos endereços bloqueados através da interface Web, sem necessidade de qualquer aplicação instalada em computadores, tablets ou smartphones.