Questo passo è opzionale in senso stretto — Unbound da solo è già un resolver privato — e quasi tutti lo vogliono comunque. AdGuard Home offre blocklist, policy per singolo client, un log delle query leggibile mentre esegue il debug, e, cosa più utile, listener nativi DNS-over-TLS e DNS-over-HTTPS così che telefoni e browser possano parlare con il suo resolver da reti dove una VPN non è praticabile.
La disposizione è una catena, e ottenere le porte giuste è tutto il trucco: AdGuard Home possiede la 53 ed è rivolta verso i client, Unbound sta su 127.0.0.1:5335 ed è rivolta verso internet. Nient'altro sulla macchina è in ascolto sulla 53.
curl -fsSL https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh -s -- -v
# Web interface: http://<vps>:3000 — reach it over the SSH tunnel below,
# never by opening 3000 to the internet.
ssh -N -L 3000:127.0.0.1:3000 root@<vps>
Esegua la configurazione guidata iniziale attraverso quel tunnel. Imposti il listener di amministrazione su 127.0.0.1 o sull'indirizzo del tunnel, mai su 0.0.0.0, e gli assegni una password lunga — questa interfaccia può riscrivere ogni nome che la sua rete risolve, il che la rende sensibile quanto il resolver stesso.
Poi imposti esattamente un upstream: in Impostazioni → Impostazioni DNS, svuoti l'elenco predefinito e inserisca la sua istanza di Unbound. Una riga, nient'altro. Se in quella casella resta un resolver pubblico, tutto quanto fatto nel passo 01 è stato vanificato.
127.0.0.1:5335
Lasci disattivato "Richieste parallele" — con un solo upstream non fa altro che duplicare il traffico — e disattivi "Usa resolver DNS inversi privati" a meno che non gestisca davvero una zona interna. Imposti i server di bootstrap su qualcosa di cui si fida; vengono usati solo per risolvere gli hostname dei server upstream, e con un upstream a IP semplice non verranno mai consultati.
Blocklist: inizi con poco. L'istinto è attivare tutto nella pagina degli elenchi e godersi il contatore. Resista alla tentazione. Ogni lista è un insieme di scelte discrezionali fatte da qualcun altro su cosa i suoi dispositivi possano raggiungere, e i guasti sono silenziosi e confusi — una pagina caricata a metà, un pulsante che non fa nulla, un'app bancaria che si rifiuta di aprirsi. Inizi con il filtro DNS predefinito di AdGuard, o con un unico aggregato ben mantenuto come OISD, lo tenga attivo per una quindicina di giorni, e solo allora ne aggiunga altri. Mantenga un'allowlist e la usi senza sensi di colpa.
Il log delle query è la parte scomoda
Ha appena costruito una macchina il cui scopo è impedire a qualcun altro di tenere un elenco di ogni nome che i suoi dispositivi risolvono — e la prima cosa che fa AdGuard Home è tenere esattamente quell'elenco, per impostazione predefinita, per novanta giorni. È genuinamente utile mentre sta calibrando le blocklist, ed è il file più sensibile in assoluto sul server. Decida deliberatamente: 24 ore bastano per rispondere a "cosa ha appena chiesto questo dispositivo?", zero è l'impostazione onesta una volta finita la calibrazione, e novanta giorni è una decisione che nessuno dovrebbe prendere semplicemente lasciando un valore predefinito. Impostazioni → Generale → Log delle query, e imposti anche la conservazione delle statistiche mentre è lì.
Punti il firewall verso la nuova disposizione — AdGuard Home ora possiede la porta 53 sull'interfaccia del tunnel, e Unbound è raggiungibile solo su loopback. Nulla cambia riguardo all'interfaccia pubblica: continua a non avere alcun DNS su di essa.