Realizziamo un Server DNS con Pi-Hole in grado di bloccare la pubblicità durante la navigazione

Pi-Hole è un progetto nato nel 2014 e pensato per implementare le reti locali di un Server DNS per bloccare o, comunque, filtrare la pubblicità durante la navigazione in rete. Pi-Hole gira su piattaforma Linux, il che lo rende adattabile ad ogni macchina, anche le più vecchie, purché possiedano un processore dual core, almeno 512MB di RAM e 2GB di memoria (4GB sono però consigliati).

Installeremo la piattaforma Pi-Hole su un Orange Pi Zero 2W, recensito recentemente. Il nostro consiglio, però, è di installarlo su una macchina dotata di connessione ethernet e non Wi-Fi. Noi ricicliamo questa single-board computer solo perché è già in nostro possesso.

Fase preliminare

Pi-Hole gira solo su sistema operativo Linux, quindi premuriamoci di scaricare la versione di ARMbian per il nostro Orange Pi Zero 2W, andando sul sito ufficiale e scaricando a questo LINK. Una volta scaricata, da PC tramite Rufus [LINK], carichiamola sulla MicroSD che adopereremo per il nostro Orange Pi Zero 2W. L’operazione è semplice, basta selezionare la destinazione (MicroSD), il sistema operativo e lanciare la copia dei file. Appena terminerà il processo, rimuoviamo la MicroSD ed inseriamola nella Orange Pi, mentre è ancora spenta.

Avviamo la single-board computer, collegandola a un monitor e ad una tastiera, e attendiamo il caricamento di ARMbian. Il sistema operativo vi chiederà di compilare alcune voci, come nome, password utente e amministratore, tastiera, scelta della rete (Wi-Fi o Ethernet) e tante altre informazioni che non vi mostriamo in questa guida. Una volta completata questa fase, procediamo installando SSH per controllare la scheda via terminale da un altro PC.

sudo apt install ssh

Conclusa l’installazione, riavviamo la scheda con il comando

sudo /sbin/shutdown -r now

Al riavvio, loggandoci con l’utente creato in precedenza, apparirà il nostro indirizzo IP, fondamentale e da conservare. A tal riguardo, recatevi sul vostro Modem/Router e impostate questo IP Statico. Successivamente, possiamo staccare il monitor e la tastiera e lavorare comodamente da PC usando PuTTY [LINK].

Avviato PuTTY, inseriamo in Host Name l’indirizzo IP e clicchiamo su Open. Si aprirà la finestra di terminale con cui fare login come utente e inserendo la password che avevamo scelto prima. Siamo dentro il nostro Orange Pi e possiamo passare alla vera e propria configurazione.

Installazione Pi-Hole

Per prima cosa aggiorniamo il sistema operativo, quindi da terminale digitiamo

sudo apt update && sudo apt upgrade -y

Al termine dell’aggiornamento, riavviamo la macchina e procediamo ad installare SELinux, un miglioramento per la sicurezza sui sistemi Linux ed indispensabile per installare Pi-Hole.

sudo apt install selinux

In alternativa, non dovesse funzionare, digitiamo:

sudo apt install policycoreutils selinux-basics selinux-utils -y

Al termine, avviamo SELinux con il comando:

sudo selinux-activate

Riavviamo nuovamente il nostro Orange Pi Zero 2W. Al termine del riavvio, sempre da terminale PuTTY, procediamo all’installazione di Pi-Hole:

curl -sSL https://install.pi-hole.net | bash

Durante il processo di installazione, ci verrà chiesto di configurare Pi-Hole. Raccomandiamo di non avere fretta e configurare correttamente ogni passaggio. Il primo step richiesto e di impostare l’IP Statico per Pi-Hole, operazione da effettuare anche sul vostro Modem/Router.

Il secondo step richiede di impostare un DNS Primario e un DNS Secondario, utilizzandoli tra quelli preimpostati o impostarne di personalizzati.

Lo step successivo richiede l’installazione della interfaccia Web per la configurazione e gestione di Pi-Hole. Vi suggeriamo caldamente di installarla per avere maggiore facilità.

L’ultima schermata ci mostra la password da usare per il nostro Pi-Hole, ma possiamo cambiarla da terminale tramite il comando:

pihole -a -p

Non ci resta che collegarci per la prima volta al nostro Pi-Hole, aprendo da PC una pagina da browser e digitando l’indirizzo IP http://xxx.xxx.xxx.xxx/admin nella barra di ricerca. Si aprirà l’interfaccia grafica web di Pi-Hole e digitiamo la password che abbiamo creato poco fa.

Pi-Hole, così configurato farà ben poco, quindi diamogli un setting iniziale. Per prima cosa andiamo sulla barra laterale di sinistra -> Settings -> DNS e nella sezione Advanced DNS settings attiviamo la voce Use DNSSEC, così da aumentare i livelli di sicurezza.

Al fine di organizzare al meglio i device che si collegano alla rete e gestirne eventualmente le eccezioni, possiamo organizzarli creando dei gruppi, dalla barra laterale di sinistra -> Groups.

In Domains, sempre sulla barra laterale, possiamo creare whitelist o blacklist di siti che possiamo reputare attendibili o meno.

Una volta creati i gruppi, generato l’elenco dei siti affidabili, possiamo andare a creare la nostra ADList, inserendo uno o più URL contenenti queste liste. Li trovare facilmente su GitHub, cercando come parola chiave “adlist pi hole”. Copiate gli URL e aggiungeteli. Questo è un lavoro enorme, perché le liste sono molte e vanno sempre aggiornate.

L’ultimo e più importante passo è configurare PI-Hole come DNS Primario nel nostro Modem/Router. Questa procedura cambia da dispositivo a dispositivo, ma generalmente lo troviamo nelle impostazioni di rete del modem, raggiungile all’indirizzo 192.168.0.1 oppure 192.168.1.1. Vi consigliamo di leggere prima il manuale del vostro dispositivo e poi procedere alla configurazione. Una volta terminata, Pi-Hole sarà pronto a lavorare.

Possiamo integrare Pi-Hole in Home Assistant, ottenendo prima la API key dal nostro device, al percorso la barra laterale di sinistra -> Settings -> API -> Show PAI Token, copiamo il token ottenuto, poi su Home Assistant andiamo su Impostazioni -> Dispositivi e servizi -> Aggiungi integrazione -> Pi-Hole. Inseriamo l’indirizzo IP del dispositivo su cui abbiamo installato Pi-Hole e lasciamo il resto così com’è.

Una volta integrato, avremo accesso a numerose entità per controllare il nostro Pi-Hole.