Pi-hole (Italiano)

Translation Status:
This article is a localized version of
Pi-hole
. Last translation date: 2022-10-02. You can help to synchronize the translation, if there were
changes
in the English version.
Related articles
dnsmasq
Domain name resolution
lighttpd
Linux Containers
nginx
OpenVPN
WireGuard
Il progetto
Pi-hole
è un
DNS sinkhole
che compila una lista nera di domini attingendo da diverse sorgenti di terze parti. Pi-hole usa
pi-hole-ftl
AUR
(un fork di
dnsmasq
) per filtrare tutte le richieste di domini nella sua blocklist. L'esecuzione distribuisce efficacemente il blocco degli annunci a livello di rete senza la necessità di configurare i singoli client. Il pacchetto viene fornito con un'interfaccia di amministrazione web opzionale.
Note
Pi-hole su Arch Linux non è ufficialmente supportato dal progetto Pi-hole.
Panoramica
Sono disponibili due versioni per Arch Linux:
#Pi-hole server
– Questo è il server Pi-hole predefinito e noto che la maggior parte degli utenti sta cercando. Fornisce un server DNS per altri dispositivi sulla LAN.
#Pi-hole standalone
– Questa è un'installazione Pi-hole leggera alternativa, progettata per un contesto mobile. È progettato per essere utilizzato sullo stesso dispositivo (ad esempio un laptop), dove non è disponibile un server Pi-hole esterno e centralizzato. Non ha interfaccia web e si aggiorna automaticamente.
Pi-hole server
Installazione
Installa il pacchetto
pi-hole-server
AUR
[
collegamento interrotto
: package not found]
.
Configuratione
FTL (Faster Than Light)
Pi-hole-FTL è un resolver/forwarder DNS e un wrapper/API simile a un database che fornisce l'archiviazione a lungo termine delle richieste che gli utenti possono interrogare attraverso la sezione "long-term data" della WebGUI. I dati sono raccolti e conservati in due luoghi:
I dati giornalieri vengono archiviati nella RAM e acquisiti in tempo reale all'interno di
/run/log/pihole/pihole.log
I dati storici (diversi giorni/settimane/mesi) sono archiviati nel file system
/etc/pihole/pihole-FTL.db
e scritti a intervalli specificati dall'utente.
Nota
Per disabilitare la registrazione, vedere
#Disabilita la registrazione delle query
.
pihole-FTL.service
è abilitato staticamente; riavviarlo/avviarlo. Per la configurazione FTL, vedere
la documentazione ufficiale
.
Nota
L'avvio di
pihole-FTL.service
potrebbe non riuscire. Vedi
#Impossibile avviare il motore Pi-hole FTLDNS
.
Interfaccia web
Pi-hole ha un'interfaccia web potente, facile da usare, ma completamente opzionale. Oltre a modificare le impostazioni, l'utente può analizzare e visualizzare le query DNS gestite da Pi-hole.
Configurazione PHP
Installa
php-sqlite
(
php
verrà installato automaticamente) e abilita le estensioni pertinenti descritte qui:
/etc/php/php.ini
[...]
extension=pdo_sqlite
[...]
extension=sockets
[...]
extension=sqlite3
[...]
Opzionale: permessi in lettura per PHP
In php 7.0 e versioni successive, la direttiva
PHP open_basedir
è vuota, il che significa che PHP può accedere a ogni directory e file che può essere letto dall'id utente del server web. Per una maggiore sicurezza, decommenta open_basedir in
/etc/php/php.ini
e aggiungi l'elenco di directory e file a cui si accede dall'interfaccia web di amministrazione di Pi-hole. L'elenco è piuttosto lungo:
/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
/var/log/lighttpd/error-pihole.log
/proc/cpuinfo
/proc/loadavg
/proc/meminfo
/sys/class/thermal/thermal_zone0/temp
/tmp
La direttiva open_basedir prevede un elenco separato da due punti:
/etc/php/php.ini
open_basedir = /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:/var/log/lighttpd/error.log:/proc/loadavg:/proc/meminfo:/proc/cpuinfo:/sys/class/thermal/thermal_zone0/temp:/tmp
Configurare lighttpd
Tip
Gli utenti possono anche eseguire invece il server web Nginx. Vedere
#Nginx al posto di Lighttpd
.
Installa
lighttpd
e
php-cgi
.
Copia la configurazione predefinita fornita dal pacchetto per Pi-hole:
# cp /usr/share/pihole/configs/lighttpd.example.conf /etc/lighttpd/lighttpd.conf
Abilita
lighttpd.service
e avvialo.
Aggiornare il file hosts
filesystem
fornisce un file
/etc/hosts
vuoto che è noto per impedire a Pi-hole il recupero delle blocklist. È necessario aggiungere quanto segue al file per garantirne il corretto funzionamento, notando che
ip.address.of.pihole
dovrebbe essere l'indirizzo IP effettivo della macchina che esegue Pi-hole (ad es. 192.168.1.250) e
myhostname
dovrebbe essere il nome host effettivo della macchina che esegue Pi-hole:
/etc/hosts
127.0.0.1              localhost
ip.address.of.pihole   pi.hole myhostname
Per ulteriori informazioni, vedere
Issue#1800
.
Configurare i dispositivi per l'uso di Pi-hole
Per utilizzare Pi-hole, i dispositivi all'interno della rete devono utilizzare l'indirizzo IP di Pi-hole come unico server DNS. Per fare questo, ci sono generalmente due metodi:
Nelle impostazioni DHCP della LAN del router, impostare l'indirizzo IP di Pi-hole come unico server DNS disponibile per i dispositivi collegati.
Configura manualmente ogni dispositivo per utilizzare l'indirizzo IP di Pi-hole come unico server DNS.
Note
Alcuni router (o anche ISP) non consentono modifiche alle impostazioni DNS LAN, quindi disabilitando il server DHCP del router e utilizzando il
DHCP integrato di Pi-hole
potrebbe essere una soluzione.
Maggiori informazioni su come utilizzare Pi-hole per altri dispositivi sono disponibili all'indirizzo
documentazione a monte
.
Tip
Il dispositivo che esegue Pi-hole può utilizzare a sua volta Pi-hole. Basta modificare le impostazioni DNS in solo indirizzo IP
127.0.0.1
.
Pi-hole standalone
Installazione
Installa il pacchetto
pi-hole-standalone
AUR
[
collegamento interrotto
: package not found]
.
Configuratione
Timer
Il pacchetto standalone Pi-hole installa un timer abilitato staticamente (e relativo servizio) che aggiornerà settimanalmente l'elenco dei server nella lista nera di Pi-hole.
I valori predefiniti possono essere modificati tramite una modifica nel servizio o può essere impedita l'esecuzione impostando un
masking
su di esso.
Ricordarsi di avviare manualmente
pi-hole-gravity.timer
o semplicemente riavviare dopo la modifica.
FTL
Vedi
#FTL (Faster Than Light)
.
Usage
Modifica le impostazioni di rete del computer in modo che l'unico server DNS in uso sia
127.0.0.1
.
Se si utilizza il DHCP da un router esterno per ottenere indirizzi IP, aggiungere
bind-interfaces
a
/etc/dnsmasq.conf
per la risoluzione delle query DNS.
Testare le query DNS indipendentemente dal server dei nomi configurato in
/etc/resolv.conf
utilizzando
drill @127.0.0.1 archlinux.org
.
Usage
Sia la versione standalone che quella server possono essere controllate tramite CLI, ma solo la versione server può essere controllata tramite interfaccia web.
Uso dell'interfaccia web
Vai su
pi.hole
o
<Pi-hole IP address>/admin/
per accedere all'interfaccia web.
Uso della linea di comando (CLI)
Gestione dei DNS di Pi-hole
Per impostazione predefinita, Pi-hole utilizza il server DNS di Google. Modifica i server DNS utilizzati da Pi-hole con:
$ pihole -a setdns
server
Specifica più server DNS separando i loro indirizzi con virgole.
Aggiornamento forzato dell'elenco dei domini della blocklist
Per aggiornare l'elenco dei domini bloccati, eseguire:
$ pihole -g
Disattiva temporaneamente Pi-hole
Pi-hole può essere messo in pausa tramite CLI eseguendo:
$ pihole disable [time]
Lasciando vuoto il valore per
time
, la disabilitazione sarà permanente fino alla successiva riattivazione manuale.
time
può essere espresso in secondi o minuti con la sintassi #s e #m. Ad esempio, per disabilitare Pi-hole per 5 minuti:
$ pihole disable 5m
In qualsiasi momento, riattiva Pi-hole eseguendo:
$ pihole enable
Suggerimenti e trucchi
Interfaccia web protetta da password
Per proteggere con password l'interfaccia Web Pi-hole, eseguire il comando seguente e immettere la password:
$ pihole -a -p
Per disabilitare la protezione con password, impostare una password vuota.
Cloudflare DoH
Pi-hole può essere configurato per utilizzare
Cloudflared
per ottenere la funzionalità
DNS over HTTPS
.
Per far funzionare
Cloudflared
con Pi-hole, modifica il file
cloudflared.yml
e modifica le impostazioni come di seguito:
/etc/cloudflared/cloudflared.yml
...
proxy-dns-port: 53000
proxy-dns-address: 127.0.0.1
Quindi riavvia
cloudflared@cloudflared.service
. Ora usa
127.0.0.1#53000
come unica voce del server DNS in Pi-hole.
Ottimizzazione per unità a stato solido
Se Pi-hole è in esecuzione su un
solid state drive
(scheda SD, SSD ecc..) si consiglia di rimuovere il commento dal valore
DBINTERVAL
e cambiarlo almeno in
60.0
per ridurre al minimo le scritture nel database:
/etc/pihole/pihole-FTL.conf
...

## Database Interval
## How often do we store queries in FTL's database -minutes-?
## See: https://docs.pi-hole.net/ftldns/database/
## Options: number of minutes
DBINTERVAL=60.0

...
Dopo aver eseguito le modifiche, riavvia
pihole-FTL.service
.
Disabilita la registrazione delle query
Sia i dati giornalieri che quelli storici raccolti per impostazione predefinita contengono dati di query che potrebbero essere considerati sensibili.
Per disabilitare il salvataggio su database dei dati storici delle query, impostare il massimo livello di privacy
Anonymous mode
nell'amministrazione web (Settings > Privacy) o nel file di configurazione
/etc/pihole/pihole-FTL.conf
modificandolo alla linea:
PRIVACYLEVEL=3
Per disabilitare anche la registrazione per i dati giornalieri, utilizzare il comando seguente:
$ pihole logging off
Warning
Pi-hole cancellerà tutte le statistiche dopo l'esecuzione di questo comando.
Utilizzo con server VPN
Pi-hole può essere utilizzato dai client VPN connessi.
OpenVPN
Un server
OpenVPN
può essere configurato per utilizzare un'istanza Pi-hole verso i suoi client. Aggiungi le seguenti due righe a
/etc/openvpn/server/server.conf
:
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS
Pi-hole-IP
"
Se ancora non funziona, prova a creare un file
/etc/dnsmasq.d/00-openvpn.conf
con il seguente contenuto:
interface=tun0
Potrebbe essere necessario fare in modo che
dnsmasq
ascolti su
tun0
.
WireGuard
I client
WireGuard
possono essere configurati per utilizzare il server DNS Pi-hole. Nel file di configurazione del client, specificare la riga seguente:
DNS =
Pi-hole-IP
Affinché il DNS sia funzionante dalla VPN, Pi-hole deve ascoltare tutte le interfacce locali:
pihole -a -i local
Vedere ulteriori informazioni in
WireGuard#Client configuration
.
Nginx al posto di Lighttpd
Questa è
configurazione non ufficiale supportata dalla comunità
[
link interrotto
2025-03-15]
. Assicurati che PHP sia impostato (vedi
#Configurazione PHP
) e che il server lighttpd sia inattivo.
Installa
nginx-mainline
e
php-fpm
.
Modifica
/etc/nginx/nginx.conf
per contenere quanto 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 la configurazione predefinita fornita dal pacchetto per Pi-hole:
# mkdir /etc/nginx/conf.d
# cp /usr/share/pihole/configs/nginx.example.conf /etc/nginx/conf.d/pihole.conf
Modifica
/etc/nginx/conf.d/pihole.conf
e cambia la direttiva
fastcgi_pass
come segue:
fastcgi_pass  unix:/run/php-fpm/php-fpm.sock;
Facoltativamente, imposta
VIRTUAL_HOST
sul CNAME di Pi-hole se l'intenzione è di eseguire più host virtuali su Nginx.
fastcgi_param VIRTUAL_HOST "pihole.example.com";
Dalla versione 7.4 php-fpm è protetto per impostazione predefinita e revoca l'accesso in lettura/scrittura su
/usr
(e sottodirectory).
Crea un
drop-in file
per
php-fpm
con il seguente contenuto:
/etc/systemd/system/php-fpm.service.d/pihole.conf
[Service]
ReadWritePaths = /srv/http/pihole
ReadWritePaths = /run/pihole-ftl/pihole-FTL.port
ReadWritePaths = /run/log/pihole/pihole.log
ReadWritePaths = /run/log/pihole-ftl/pihole-FTL.log
ReadWritePaths = /etc/pihole
ReadWritePaths = /etc/hosts
ReadWritePaths = /etc/hostname
ReadWritePaths = /etc/dnsmasq.d/01-pihole.conf
ReadWritePaths = /proc/meminfo
ReadWritePaths = /proc/cpuinfo
ReadWritePaths = /sys/class/thermal/thermal_zone0/temp
ReadWritePaths = /tmp
Quindi avvia e abilita
nginx.service
e
php-fpm.service
.
Blocklists addizionali
Pi-hole è inteso con lo scopo di bloccare gli annunci, ma può anche essere utilizzato per bloccare altri contenuti indesiderati:
Domini traccianti
Domini malware
Siti di pirateria
Siti di notizie false
Siti di phishing
Nota
Le liste di blocco Pi-hole devono contenere
domini
. Alcuni elenchi potrebbero contenere combinazioni di indirizzi IP e 127.0.0.1: questo formato è accettato da Pi-hole.
Ci sono molte fonti che forniscono queste liste di blocco. Alcuni esempi:
firebog.net
e
oisd.nl
.
Usare Unbound come server DNS a monte
Per impostazione predefinita, Pi-hole inoltra le richieste ai server DNS a monte, il che potrebbe causare problemi di privacy.
Vedere la
documentatione
per una guida sull'impostazione di
Unbound
in locale per risolvere le richieste DNS.
Risoluzione dei problemi
Comportamento strano nell'interfaccia web dopo un aggiornamento
Alcuni problemi di rendering strani / inspiegabili nella GUI Web possono spesso essere risolti svuotando la cache del browser.
Perdita di dati al riavvio
I sistemi senza un
RTC
come alcuni dispositivi ARM probabilmente subiranno la perdita di dati nel registro delle query al riavvio. Quando i sistemi non dispongono di un avvio
RTC
, l'ora viene impostata
dopo
che la rete e il resolver si sono attivati. Alcune parti di Pi-hole possono essere avviati prima che ciò accada portando alla perdita di dati. Anche un
RTC
impostato in modo errato può causare problemi. Vedere:
Guida all'installazione#Fuso orario
e
System time
.
Per i dispositivi privi di
RTC
:
Una soluzione fantasiosa per questo è usare un
drop-in file
su
pihole-FTL.service
in cui viene aggiunto un ritardo nella chiamata
/usr/bin/sleep x
in un'istruzione
ExecStartPre
. Si noti che il valore di "x" nel tempo di sospensione dipende dal tempo impiegato dall'hardware specifico per stabilire la sincronizzazione dell'ora.
Issue#11008
su systemd-timesyncd che sta attualmente impedendo l'uso di
time-sync.target
per automatizzare questa operazione.
Impossibile avviare il motore Pi-hole FTLDNS
Tip
Controlla quale processo ha aperto la porta 53 con:
# lsof -i :53
.
Potrebbe essere che
systemd-resolved.service
occupi già la porta 53, richiesta per
pihole-FTL.service
.
Per risolvere questo problema, disabilitare lo stub listener modificando il file di configurazione
systemd-resolved
:
/etc/systemd/resolved.conf
[Resolve]
DNSStubListener=no
Quindi riavvia
systemd-resolved.service
e
pihole-FTL.service
.
Per ulteriori informazioni, vedere
resolved.conf(5)
.
In alternativa, indicare a dnsmasq di collegarsi a ciascuna interfaccia in modo esplicito, invece del carattere jolly
0.0.0.0:53
, decommentando la riga
bind-interfaces
in
/etc/dnsmasq.conf
. Ciò eviterà conflitti con
systemd-resolved
che è in ascolto su
127.0.0.53:53
.
Conflitto con il pacchetto DNSMasq
A partire da Pi-hole-FTL 4.0, un fork privato di dnsmasq è integrato nel sottoprogetto FTL. Il pacchetto originale
dnsmasq
è ora in conflitto con
pi-hole-ftl
AUR
e verrà disinstallato durante l'aggiornamento da una versione precedente. È ancora possibile utilizzare i file di configurazione di dnsmasq precedenti, assicurati solo che
conf-dir=/etc/dnsmasq.d/,*.conf
nell'originale
/etc/dnsmasq.conf
non sia commentato.
Stato sconosciuto e modifiche non salvate
Il problema, come visto in
FS#63704
, riguarda l'utente creato da systemd-sysusers
http
, che viene creato in uno stato scaduto. Per risolverlo, esegui:
# chage --expiredate -1 http
Tempi di caricamento lenti
The factual accuracy of this article or section is disputed.
Reason:
Questo problema sembra riguardare la configurazione DNS. Potrebbe non essere una buona idea indicare modifiche dirette a
/etc/resolv.conf
. (Discuss in
Talk:Pi-hole (Italiano)
)
Se i browser segnalano "Risoluzione host" o semplicemente impiegano più tempo del solito per caricare le pagine, assicurati che
/etc/resolv.conf
appaia
esattamente
come questo:
/etc/resolv.conf
nameserver 127.0.0.1
Se ci vuole molto tempo per caricare le pagine, può essere un problema con l'esecuzione di
lsof
nello script di pihole
(/usr/bin/pihole)
chiamato tramite php. Verificalo durante il caricamento della pagina con:
ps -ef | grep lsof
. Terminalo e se la pagina viene visualizzata, sostituisci la chiamata di
lsof
nello script di pihole (ce n'è solo una) con:
ss -lnp '( sport = 53 )'
Associa il servizio DNS di Pihole-FTL all'indirizzo IP effettivo del Pi-hole (invece di 0.0.0.0) per evitare problemi di risoluzione DNS per altri host virtuali
In maniera predefinita, il servizio DNS (pihole-FTL) viene associato all'indirizzo IP 0.0.0.0:
# netstat -ltnp | grep 53
tcp        0      0 0.0.0.0:53              0.0.0.0:*               LISTEN      2196/pihole-FTL
tcp6       0      0 :::53                   :::*                    LISTEN      2196/pihole-FTL
Ciò potrebbe impedire a qualsiasi altro host virtuale sulla stessa macchina che ospita l'istanza pihole (come i contenitori docker) di ottenere le risoluzioni DNS.
Approfondimenti
qui
e
qui
.
Per risolvere questo problema, devi creare un file di configurazione in /etc/dnsmasq.d/ con il seguente contenuto (dove X.X.X.X è l'indirizzo IP del tuo pi-hole):
# cat /etc/dnsmasq.d/99-dns-bind.conf
listen-address=X.X.X.X
bind-interfaces
Quindi, è necessario riavviare il servizio pihole-FTL per applicare le modifiche
# systemctl restart pihole-FTL
Tip
Per completare questa configurazione potrebbe essere necessario attivare il servizio di attesa online del proprio gestore di rete
Risorse
Homepage di Pi-hole
GitHub di Pi-hole
GitHub di Pi-hole FTL
Sky-hole, l'idea dietro Pi-hole standalone
Impedire a systemd-resolved stub server l'uso della porta 53
Problemi di lentezza con Unbound