Come configurare Pi-hole con OpenVPN

Se sullo stesso server (o Raspberry Pi, in questo caso) state utilizzando sia OpenVPN (nel caso qui la guida) che Pi-hole (anche qui l’altra guida) e state riscontrando delle problematiche per quanto riguarda il DNS, beh, la soluzione è molto semplice.

Modificate questo file:

sudo nano /etc/dnsmasq.conf

E modificate questa riga con anche l’IP che vi ha assegnato il vostro router:

listen-address=127.0.0.1, 192.168.1.2, 10.8.0.1

Altrimenti, provate con solo questo:

listen-address=127.0.0.1

Ora potete riavviare i servizi o banalmente riavviare direttamente il vostro Raspberry Pi con un sudo reboot now e ora anche tutto il traffico proveniente dai client in VPN passeranno sotto Pi-hole!

Photo by Viktor Talashuk on Unsplash

Lo so che sono molto invitanti questi raspberry qua sopra, ma non sono neanche paragonabili a quelli con 8GB di RAM!
Nel caso non sapeste dove acquistarlo, beh, ho una guida anche per quello.

Come installare Pi-hole con Docker

Prima di tutto è necessario che abbiate installato Docker. Qui la guida per Raspberry Pi e qui per Ubuntu.

Poi aprite il terminale ed eseguite:

docker run -d \\
--name pihole \\
-p 53:53/tcp -p 53:53/udp \\
-p 80:80 \\
-e TZ="America/Chicago" \\
-v "$(pwd)/etc-pihole/:/etc/pihole/" \\
-v "$(pwd)/etc-dnsmasq.d/:/etc/dnsmasq.d/" \\
--dns=127.0.0.1 --dns=1.1.1.1 \\
--restart=unless-stopped \\
--hostname pi.hole \\
-e VIRTUAL_HOST="pi.hole" \\
-e PROXY_LOCATION="pi.hole" \\
pihole/pihole:latest

Per visualizzare la password dovrete andare sull’indirizzo IP locale (se volete configurare un indirizzo IP statico a Raspberry Pi OS, qui la guida) eseguite:

docker exec -it pihole pihole -a -p

E come indicato in questo thread, se volete utilizzare Pi-hole come DNS all’interno di altri container Docker, dovrete modificare la terza riga con la specifica dell’indirizzo IP locale. Ad esempio se il vostro IP è 192.168.1.2:

-p 53:53/tcp -p 192.168.1.2:53:53/udp \

Successivamente, se volete configurarlo anche agli altri container su Docker, vi basterà seguire questi passaggi.

Come cambiare DNS su Docker

I DNS come potrete notare dai miei articoli, possono generare diversi problemi e a volte può capitare che abbiate anche difficoltà a capire quale DNS vi risponde quando effettuate delle query.

Modifica del file /etc/docker/daemon.json

Se volete forzare i container a usare un certo DNS, dovrete modificare questo file:

sudo nano /etc/docker/daemon.json

E incollate (modificatelo a vostra discrezione):

{
    "dns": ["192.168.1.2", "8.8.8.8"]
}

Poi riavviate il servizio di Docker con:

sudo service docker restart

Come svuotare la cache DNS di Safari

Se anche voi siete solidi utilizzatori di Safari e non vi siete convertiti a Google Chrome o Firefox come molti ormai sembrano aver fatto e volete svuotare la cache DNS del vostro browser preferito (anche se a oggi, 2020, è difficile che ancora lo sia), vi basterà aprire il terminale ed eseguire:

sudo killall -HUP mDNSResponder

Se invece volete farlo su Firefox trovate la guida qui. Mentre per Google Chrome qui.

Come funziona 1.1.1.1 l’app di CloudFlare

Sostanzialmente vi permette di utilizzare i DNS di CloudFlare in modo semplice e veloce:

È disponibile sia su iOS che su Android: https://1.1.1.1/ e per utilizzarla non dovrete far altro che confermare l’installazione di un profilo VPN e voilà, teoricamente ora avrete una risoluzione dei domini più sicura e veloce rispetto a quelli che vi vengono forniti dal vostro operatore telefonico.

Come installare Pi-hole su Raspberry Pi

Nell’ultimo articolo abbiamo visto come cambiare i DNS su Linux, guida peraltro valida anche su Raspberry Pi.

Ora vediamo come installare Pi-hole, il famoso DNS e DHCP-server personale (e in locale sopratutto).

Aprite il terminale ed eseguite, molto semplicemente:

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

Attendete che lo script d’installazione faccia il suo dovere e… voilà, fatto! Sì già fatto, il team che c’è dietro a questo fantastico progetto open source (cos’è un software open source?!) è davvero strabiliante. Viva Pihole!

Ora potete loggarvi con i dati che vi vengono forniti e personalizzarlo come meglio credete! Non dimenticatevi anche di modificare il DNS e nel caso disattivare il DHCP server sul vostro modem-router.

Come modificare e forzare le impostazioni del DNS su Linux

E per Linux intendo che nelle ultime versioni di Ubuntu, Debian, Raspbian funzionano a grandi linee allo stesso modo.

Se siete disperati e non riuscite a far funzionare il processo di DHCP (e quindi configurate la rete ancora alla vecchia maniera) o comunque non avete i parametri del DNS configurati come si deve, perché appunto vi appaiono dei messaggi tipo:

connect: Network is unreachable

Oppure:

Name or service not known

L’unica è cambiare il parametro che viene autogenerato dal servizio network:

sudo nano /etc/resolv.conf

Dovreste avere un file con qualcosa del genere:

# Generated by resolvconf
nameserver 127.0.0.1

Cambiatelo con l’IP che preferite e provate a pingare ad esempio

google.it

e vedere se vi restituisce l’IP corretto.
Nel caso non funzionasse, riavviate l’interfaccia (cos’è un interfaccia?) con:

sudo ifdown eth0
sudo ifup eth0

Se invece non dovesse ancora funzionarvi, provate a controllare il file:

sudo nano /etc/network/interfaces

Abbia qualcosa di questo genere, con tutti i parametri corretti:

auto lo
iface lo inet loopback

allow-hotplug eth0
iface eth0 inet static
address 192.168.1.2
netmask 255.255.255.0
network 192.168.1.1
gateway 192.168.1.1

Alla prossima!

Come impostare il DNS e nel caso forzarlo

Alzi la mano chi ha avuto problemi ad impostare i DNS sul proprio computer/server Linux. Ci sono almeno 3-4 impostazioni intercambiabili e dipendenti tra loro (il DHCP può darvi un’IP ma voi ne volete un altro).

Nel caso questa mini-descrizione faccia per voi, ecco come forzarli nel file di configurazione delle interfacce:

sudo nano /etc/network/interfaces

E incollate al fondo gli IP del vostro DNS preferito:

dns-nameservers 8.8.8.8 8.8.4.4

Ora riavviate con un sudo reboot now e dovrebbe essere cambiato (salvo altre impostazioni strane con dnsmasq, qui un esempio con un Raspberry Pi).

Controllate l’effettiva risposta con:

nslookup google.com

E dovrebbe comparirvi qualcosa del tipo:

Server:		8.8.8.8
Address:	8.8.8.8#53