AdGuard Home - un AdBlocker per tutta la rete
AdGuard Home è un software progettato per bloccare pubblicità e tracker a livello di rete. Detto così sembra magia nera, ma in realtà il suo funzionamento è molto semplice. Vediamolo insieme!
Introduzione: cosa è AdGuard Home
AdGuard Home è un software progettato per bloccare pubblicità e tracker a livello di rete. Detto così sembra magia nera, ma in realtà il suo funzionamento è molto semplice.
AdGuard Home è un server DNS con la particolare funzionalità di utilizzare -ed aggiornare autonomamente- una o più blocklist contenenti domini relativi ad AdWare e TrackerWare.
Installando e configurando un'istanza di AdGuard home nella propria rete, ogni volta che un client cerca di risolvere il nome di un dominio associato a queste funzionalità, AdGuard gli darà una risposta (configurabile) che di fatto gli impedirà di risolvere il nome e di conseguenza di mostrare pubblicità, o fornire informazioni di tracciamento.
Il risultato quindi è quello di avere pubblicità e tracker bloccati su tutti i dispositivi collegati alla rete domestica (a patto che usino AdGuard come unico server DNS) senza dover installare alcun software sui dispositivi.
AdGuard Home ha anche altre funzionalità disponibili per l'uso, come la riscrittura DNS (per esempio per risolvere in LAN un FQDN con indirizzo privato) ed ha anche un server DHCP completo che però è disattivato di default (per evitare disastri durante l'installazione).
Una valida alternativa ad AdGuard è PiHole, che è nato come progetto nativo su Raspberry Pi ma che ha poi esteso la sua compatibilità a praticamente tutte le principali piattaforme.
Installazione
L'installazione di AdGuard è talmente semplice da richiedere un solo comando, diverso a seconda dell'ambiente scelto.
Per comodità, potete trovare il suddetto comando sulla pagina GitHub del progetto.
In questo articolo preferisco piuttosto soffermarmi sulla configurazione di AdGuard e sulle sue potenzialità, di cui parlo nei capitoli successivi.
Configurazione - livello base
Frutto dell'enorme impegno degli sviluppatori nel fornire quanto più possibile una soluzione che funziona "out-of-the-box", una volta installato AdGuard è praticamente già funzionante, e non necessita di alcuna configurazione se non si vuole approfondire il suo funzionamento.
L'unica cosa che rimane da fare è quella di impostarlo sui dispositivi in rete. Per questo ci sono due opzioni:
Configurazione manuale sui dispositivi (sconsigliata)
Se non si vuole (o non si può) mettere mano al proprio Gateway, è possibile far utilizzare AdGuard ai propri dispositivi modificando la configurazione IPv4 di ognuno.
Basta infatti impostare il DNS in manuale (se attualmente impostato in automatico) ed indicare come unico server DNS l'indirizzo locale dell'istanza di AdGuard installata.
In generale (ma si applicano eccezioni) quando un client DNS ha più di un server DNS, esso invierà una richiesta DNS a tutti i server che ha in lista, e prenderà per buona la risposta di chi gli risponderà per primo.
Attenzione quindi, perchè se AdGuard sarà sempre più lento a rispondere rispetto al vostro DNS secondario, AdGuard non verrà mai utilizzato!
Configurazione sul server DHCP
La soluzione migliore è quella di istruire il vostro server DHCP in modo che sia lui ad indicare AdGuard come server DNS a tutti i dispositivi.
Per ovvie ragioni, è per me impossibile indicarvi come fare ciò su qualsiasi tipo di server DHCP stiate usando, perchè non si tratta di una procedura standard identica per tutte le soluzioni. Generalmente, i passaggi sono molto simili per la maggior parte delle piattaforme, ma in questo caso vi faccio un esempio utilizzando il server DHCP di Unifi, che nel mio caso è un Cloud Gateway Ultra di Ubiquiti.
Unifi Cloud Gateway Ultra
€110 - Un Gateway con porta WAN a 2.5Gb e capacità di WAN Failover. Perfetto per un ambiente gestito con la Network Application di Unifi.
Accedendo alla vostra Network Application ed andando in Settings → Networks potrete modificare le impostazioni del server DHCP selezionando la rete in questione.
Basta togliere la spunta Auto alla voce DNS Server ed indicare l'istanza (o le istanze) di AdGuard a cui far puntare i vostri dispositivi.
Nel mio caso, si tratta in realtà di due NGINX che fanno ognuno da load balancer verso due istanze di AdGuard Home.

Anche tu vuoi mettere più istanze di AdGuard in load balancing?
Leggi il mio articolo al riguardo!
Una volta applicata la modifica basta attendere che ogni dispositivo collegato in rete contatti nuovamente il server DHCP, ed otterrà il puntamento alla vostra istanza di AdGuard.
Per forzare l'aggiornamento di questa impostazione sui dispositivi potete -ma non è garantito che funzioni- riavviare il vostro Gateway o disconnettere e riconnettere i dispositivi.
Per questi dispositivi (se ne avete) dovrete seguire i passaggi indicati nella sezione precedente.
Configurazione - livello avanzato
Ora che abbiamo messo AdGuard in funzione, è arrivato il momento di smanettare un po'! (se volete).
Impostare i server DNS Upstream
Accedendo ad Impostazioni → Impostazioni DNS è possibile indicare i server DNS di Upstream. Questi sono i server DNS che AdGuard contatterà quando non saprà come risolvere un nome che gli viene richiesto da un client.

Nel mio caso, ho inserito i miei due Domain Controller in modo da non dover censire manualmente in AdGuard gli FQDN dei computer a dominio.
Ovviamente i server DNS sui Domain Controller sono poi a loro volta impostati per avere come server DNS Upstream il mio Gateway, che infine contatterà i DNS di Cloudflare.
Idealmente, se non avete Domain Controller, potete indicare il vostro Gateway o direttamente i DNS di Google o di Cloudflare.
Disabilitare il limite delle richieste
Se avete intenzione di utilizzare NGINX come load balancer per AdGuard, allora dovrete valorizzare a 0 l'impostazione Limite delle richieste nella sezione Configurazione server DNS.
Questo perchè AdGuard vedrà tutte le richieste DNS provenire da un unico dispositivo (il vostro NGINX) e non modificando questo parametro riceverete spesso errore di timeout.

Attivare il server DHCP
non attivate mai due server DHCP in contemporanea, a meno che non colloquino tra di loro (come per esempio due Server DHCP Windows a Dominio) o avrete sicuramente problemi con indirizzi IP duplicati.
Se volete usare il server DHCP di AdGuard, prima disattivate quello del Gateway e solo dopo attivate quello di AdGuard.
Non è certo il non plus ultra dei server DHCP, ma anche AdGuard ne ha uno incorporato, disattivato di default.
Se volete utilizzarlo, basta andare in Impostazioni → Impostazioni DHCP, compilare la maschera di configurazione e premere il pulsante Attiva server DHCP in alto a sinistra.

Personalizzare le liste nere DNS
Come vi ho spiegato nell'introduzione, AdGuard si serve di "liste nere" compilate dalla community per bloccare i nomi associati ai server di pubblicità e tracciamento.
Potete consultare queste liste ed aggiungerne di nuove andando in Filtri → Liste nere DNS.
Tramite il pulsante Ricerca aggiornamenti aggiornerete all'ultima versione (dalle relative repo GitHub) le liste che avete abilitato.
Premendo invece Aggiungi lista nera potrete aggiungere una lista da un elenco già pronto da cui è possibile anche vedere le caratteristiche di ciascuna lista, oppure caricarne una che avete creato voi dandogli in pasto l'URL della lista.

Bloccare specifici servizi
Con AdGuard è possibile anche bloccare completamente alcuni servizi, bloccandone tutti i domini relativi.
Per fare ciò potete andare su Filtri → Servizi bloccati e bloccare -per esempio- TikTok oppure League of Legends (entrambi citati completamente a caso 😇).

Consultare il log delle richieste DNS
Potete consultare l'elenco delle richieste DNS che AdGuard ha gestito, e sapere anche quali sono state gestite, bloccate e quali hanno matchato con una vostra riscrittura DNS (impostata su AdGuard).
Per farlo basta premere su Registro Richieste.

Questo può essere risolto facendo passare ad NGINX degli header specifici che indichino al server DNS quale è il vero client che ha effettuato la richiesta, ma è necessario un modulo di NGINX PLUS, che è la versione a pagamento di NGINX.
Monitoraggio ed integrazione
Ora che hai installato e configurato AdGuard Home, puoi dedicarti a funzionalità più integrate con la tua rete, per esempio:
- Monitorare AdGuard tramite Grafana e Prometheus
- Creare più istanze di AdGuard sincronizzate tra di loro
- Creare un Load Balancer per server DNS usando NGINX
