Pi-hole (Italiano)

From ArchWiki
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
Translation Status: This article is a localized version of Pi-hole. Last translation date: 2019-02-12. You can help to synchronize the translation, if there were changes in the English version.

Pi-hole è un DNS sinkhole che redige una lista di blocco di domini conosciuti per offrire pubblicità e malware da sorgenti multiple di terze parti. Pi-hole, attraverso l'uso di dnsmasq, elimina semplicemente tutte le richieste di domini nella sua lista di blocco. Questa configurazione implementa efficacemente il blocco della pubblicità a livello di rete senza dover configurare ogni singolo client. Il pacchetto offre una interfaccia web e una a riga di comando.

Pi-hole Server

Nota: pi-hole-serverAUR non è ufficialmente supportato dal progetto Pi-hole.

Installazione

Installa il pacchetto pi-hole-serverAUR.

Configurazione iniziale

FTL

Pi-hole FTL (pi-hole-ftlAUR) è una dipendenza del progetto Pi-hole.

FTL è un DNS server/forwarder e una interfaccia simil-database/fornitore di API che si occupa del salvataggio a lungo termine delle richieste che gli utenti possono richiedere "long-term data" section of the WebGUI. To be clear, data are collected and stored in two places:

  1. I dati giornalieri vengono conservati in RAM e sono catturati in tempo reale dal file /run/log/pihole/pihole.log
  2. I dati storici (i.e. di diversi giorni/settimane/mesi) sono conservati sul filesystem /etc/pihole/pihole-FTL.db aggiornati ad un intervallo deciso dall'utente.

pi-hole-ftl.service è abilitato staticamente; ri/avvialo. Consultare la documentazione ufficiale per come configurare FTL.

Suggerimento: Se Pi-hole è installato su una unità a stato solito (SD dei mini PC, SSD, unità M.2/NVMe, etc...) si raccomanda di settare il valore di DBINTERVAL almeno a 60.0 per minimizzare le scritture sul database.
Nota: Dalla versione 4.0, Pi-hole-FTL integra un fork privato di dnsmasq. Il pacchetto originale dnsmasq ora confligge con pi-hole-ftlAUR e sarà disinstallato su aggiornamento da una precedente versione. E' ancora possibile usare i precedenti file di configurazione di dnsmasq, assicurati solamente che la riga conf-dir=/etc/dnsmasq.d/,*.conf nel file originale /etc/dnsmasq.conf non sia commentata.

Web Server

Opzionalmente è possibile scegliere un server web per usare l'interfaccia web di Pi-hole.

Nota: Pi-hole non richiede forzatamente l'uso dell'interfaccia web in quanto molti comandi sono disponibili via CLI.

File di configurazione già funzionanti sono forniti sia per lighttpd che per nginx. Altri server web possono tranquillamente eseguire l'interfaccia web, ma non sono al momento supportati.

Installa php-sqlite e abilita le necessarie estensioni di seguito elencate:

/etc/php/php.ini
[...]
extension=pdo_sqlite
[...]
extension=sockets
extension=sqlite3
[...]

Per ragioni di sicurezza, se vuoi popolare la direttiva PHP open_basedir, l'interfaccia web di amministrazione di Pi-hole necessita l'accesso ai seguenti file e cartelle:

/srv/http/pihole
/run/pihole-ftl/pihole-FTL.port
/run/log/pihole/pihole.log
/run/log/pihole-ftl/pihole-FTL.log
/etc/pihole
/etc/hosts
/etc/hostname
/etc/dnsmasq.d/02-pihole-dhcp.conf
/etc/dnsmasq.d/03-pihole-wildcard.conf
/etc/dnsmasq.d/04-pihole-static-dhcp.conf
/proc/meminfo
/proc/cpuinfo
/sys/class/thermal/thermal_zone0/temp
/tmp
Lighttpd

Installa lighttpd e php-cgi.

Copia il file di configurazione fornito dal pacchetto:

# cp /usr/share/pihole/configs/lighttpd.example.conf /etc/lighttpd/lighttpd.conf

Abilita lighttpd.service e ri/avvia il servizio.

Nginx

Installa nginx-mainline e php-fpm.

Modifica /etc/php/php-fpm.d/www.conf e cambia la direttiva di ascolto come segue:

listen = 127.0.0.1:9000  

Modifica /etc/nginx/nginx.conf in modo da aggiungere ciò che segue nella sezione http:

gzip            on;
gzip_min_length 1000;
gzip_proxied    expired no-cache no-store private auth;
gzip_types      text/plain application/xml application/json application/javascript application/octet-stream text/css;
include /etc/nginx/conf.d/*.conf;

Copia il file di configurazione fornito dal pacchetto:

# mkdir /etc/nginx/conf.d
# cp /etc/pihole/configs/nginx.pi-hole.conf /etc/nginx/conf.d/

Abilita nginx.service php-fpm.service e ri/avvia i servizi.

/etc/hosts

filesystem contiene il file /etc/hosts vuoto, condizione nota ad impedire a Pi-hole il recupero delle liste. E' possibile risolvere aggiungendovi quanto segue assicurando il corretto funzionamento, notando bene che indirizzo.ip.di.pihole dovrà essere l'attuale indirizzo IP della macchina che esegue Pi-hole (es. 192.168.1.250) e myhostname il suo relativo hostname.

127.0.0.1                localhost
indirizzo.ip.di.pihole   pi.hole myhostname

Per approfondire, leggi Issue#1800.

Far usare Pi-hole ai propri apparati

La documentazione ufficiale descrive quattro metodi diversi:

  1. Definire l'indirizzo IP di Pi-hole come unico server DNS nel router
  2. Rendere noto l'indirizzo IP di Pi-hole attraverso dnsmasq nel router (se supportato)
  3. Configurare manualmente ogni apparato in modo che usi Pi-hole com server DNS
  4. Usare il DHCP integrato di Pi-hole

Risoluzione dei problemi

  • Se configuri usando il metodo del DHCP server e su un apparato il blocco della pubblicità non funziona, potrebbe avere ancora un rilascio DHCP obsoleto. Se non sai come rinnovarlo, prova a riavviare l'apparato.
  • Un semplice metodo per capire se il router è configurato correttamente è per prima cosa rinnovare il rilascio DHCP, quindi verificare il contenuto del file /etc/resolv.conf su un client Linux. Si dovrebbe vedere l'indirizzo IP di Pi-hole e non l'indirizzo del router.
  • Se hai problemi con il secondo metodo, prova a disabilitare il dns-rebind sul router (se presente).

Usare Pi-hole attraverso OpenVPN

Un server OpenVPN può essere configurato per informare i sui client della presenza di Pi-hole. Aggiungi le due seguenti linee al tuo /etc/openvpn/server/server.conf:

push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS Pi-Hole-IP"

Se ancora non dovesse funzionare, provare a creare il file /etc/dnsmasq.d/00-openvpn.conf con il seguente contenuto:

interface=tun0

Questo potrebbe essere necessario per far si che dnsmasq sia in ascolto su tun0.

Proteggere con password l'interfaccia web

Per proteggere con password l'interfaccia web di Pi-hole, esegui il seguente comando e inserisci la tua password:

pihole -a -p

Per disabilitare la protezione inserisci una password vuota.

Usare DNS Over HTTPS (DOH)

Le richieste DNS possono anche essere eseguite via HTTPS usando un privacy-first DNS 1.1.1.1 di Cloudflare. Installa cloudflared-binAUR e segui la documentatione del progetto.

Pi-hole Standalone

Nota: pi-hole-standaloneAUR non è ufficialmente supportato dal progetto Pi-hole.

La variante Standalone di Pi-hole per Archlinux è nata dalla necessità di usare i servizi di Pi-hole in mobilità. L'articolo Sky-hole è stato di ispirazione.

Installazione

Installa il pacchetto pi-hole-standaloneAUR. Il pacchetto Pi-hole standalone installa un timer (e relativo service) staticamente abilitato che aggiornerà settimanalmente la lista nera dei server di Pi-hole. Se non dovessi essere d'accordo con le temporizzazioni predefinite del timer (ereditata dal progetto principale) puoi, ovviamente, modificarlo o evitare che venga eseguito mascherandolo. Devi far partire manualmente pi-hole-gravity.timer o semplicemente riavvia a configurazione terminata.

Configurazione iniziale

Dnsmasq

Assicurati che la seguente riga in /etc/dnsmasq.conf sia non commentata:

conf-dir=/etc/dnsmasq.d/,*.conf

Abilita dnsmasq.service e ri/avvia il servizio.

Configurare la risoluzione dei nomi

Il pacchetto Pi-hole standalone per funzionare correttamente richiede che sia impostato un unico server DNS sulla tua macchina. L'indirizzo DNS deve essere quello della tua stessa macchina.
Questo può essere fatto in diverse maniere.

Manualmente

Se sulla tua macchina nessun servizio gestisce automaticamente il file /etc/resolv.conf, puoi facilemente modificarlo in modo da inserire una unica voce nameserver:

/etc/resolv.conf
[...]
nameserver 127.0.0.1
Nota: No other nameserver items need to be present in the config file.
Openresolve

E' probabile che sia il servizio openresolv a gestire /etc/resolv.conf nel caso in cui sia usato un gestore di connessioni come netctl, networkmanager o altri. Se è il tuo caso, occorre forzare openresolv ad usare localhost come server dei nomi.
Modifica /etc/resolvconf.conf in modo da togliere il commento alla riga name_servers:

/etc/resolvconf.conf
[...]
name_servers=127.0.0.1

e aggiorna resolvconf:

# resolvconf -u

Usare Pi-hole

Come precedentemente menzionato, Pi-hole offre la possibiltà di essere usato e configurato sia da riga di comando sia dalla sua interfaccia web (solo pacchetto server).

Gestione dei DNS di Pi-hole

By default Pi-hole uses the Google DNS server. You can change which DNS servers Pi-hole uses with:

$ pihole -a setdns server

You can specify multiple DNS servers by separating their addresses with commas.

Per il solo pacchetto server, puoi fare la stessa cosa via interfaccia web (http://pi.hole) andando su Settings e aggiungendo i server DNS desiderati nella sezione Upstream DNS Servers. Save per applicare i cambiamenti.

Aggiornamento forzato della lista dei domini pubblicitari

Se hai la necessità di aggiornare la lista dei domini bloccati, sulla macchina Pi-hole puoi eseguire

pihole -g

o, sul solo pacchetto server, via interfaccia web (http://pi.hole) vai su Tools/Update Lists ed esegui Update Lists.

Disabilitare temporaneamente Pi-hole

Pi-hole può venire facilmente messo in pausa attraverso la sua intefaccia web (http://pi.hole): vai su Disable e scegli l'opzione di disabilitazione che preferisci.
E' possibile anche via CLI eseguendo

pihole disable [time]

Lasciando time vuoto la disabilitazione sarà permanente fino alla successiva manuale riabilitazione.
time può essere espresso in secondi o minuti con la sintassi #s e #m. Per esempio, per disabilitare Pi-hole per soli 5 minuti, puoi eseguire

pihole disable 5m

In qualsiasi momento è possibile riabilitare Pi-hole con

pihole enable

o, via interfaccia web, cliccando su Enable.

Risoluzione di problemi

Perdita di dati su riavvio

I sistemi senza il RTC come alcuni dispositivi ARM è probabile che possano perdere dati dal log delle query durante un riavvio. Quando un sistema senza RTC si avvia, l'orologio di sistema è impostato dopo l'esecuzione della rete e del resolver. Alcune parti di Pi-hole possono avviarsi prima che questo accada portando alla perdita di dati. Anche un valore RTC sbagliato può causare problemi. Vedi: Installation guide#Time zone and System time. Per dispositivi senza RTC: Una possibile soluzione può essere l'uso di Systemd#Drop-in files su pihole-FTL.service usando una chiamata ritardata /usr/bin/sleep x con una direttiva ExecStartPre. Da notare che il valore di "x" dipende da quanto tempo il tuo sistema impiega ad effettuare un time sync. Al momento la segnalazione Issue#11008 su systemd-timesyncd sta impedento l'uso di time-sync.target per automatizzare il tutto.

Risorse