Jump to content

# Pi-hole (Italiano)

From ArchWiki
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-ftlAUR (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-serverAUR[broken link: 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:

1. I dati giornalieri vengono archiviati nella RAM e acquisiti in tempo reale all'interno di `/run/log/pihole/pihole.log`
2. 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:

1. Nelle impostazioni DHCP della LAN del router, impostare l'indirizzo IP di Pi-hole come unico server DNS disponibile per i dispositivi collegati.
2. 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-standaloneAUR[broken link: 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:

1. Domini traccianti
2. Domini malware
3. Siti di pirateria
4. Siti di notizie false
5. 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-ftlAUR 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

Category:

- Domain Name System (Italiano)

Hidden categories:

- Pages with broken package links
- Pages or sections flagged with Template:Accuracy

Pi-hole (Italiano)
Add topic