DNS over HTTPS con filtraggio#

DNS over HTTPS (DoH) è un protocollo per la cifratura delle query DNS tramite HTTPS, migliorando la privacy impedendo l’intercettazione del traffico DNS. Questa funzionalità consente di configurare server DNS upstream che supportano il protocollo DoH. Il pacchetto https-dns-proxy fornisce un proxy DNS-to-HTTPS locale che inoltra le query DNS a un provider DoH remoto.

Questo documento fornisce istruzioni per l’installazione e la configurazione dei server upstream DoH che offrono filtraggio e sono basati nell’UE, ma è possibile utilizzare qualsiasi provider DoH che soddisfi le proprie esigenze. Questa configurazione si applica solo ai server upstream del firewall: i client continueranno a inviare richieste DNS al firewall in chiaro sulla porta 53.

Un elenco di provider DoH che supportano località europee e il filtraggio è disponibile sul sito European Alternatives.

Alcune alternative popolari includono:

  • DNS4EU, servizio DNS europeo con funzionalità di risoluzione protetta e blocco degli annunci

  • Quad9, orientato alla privacy con blocco dei malware

  • Mullvad, include il blocco di malware, il blocco di pubblicità e il filtraggio di base (Pornografia, Gioco d’azzardo, ecc.)

  • Cloudflare, provider DoH veloce e ampiamente utilizzato con blocco malware (1.1.1.1 for families)

Installazione#

Il pacchetto https-dns-proxy non è incluso nelle immagini predefinite di NethSecurity, quindi sarà necessario installarlo manualmente:

opkg update
opkg install https-dns-proxy

Configurazione#

Per impostazione predefinita, il pacchetto include due provider (Cloudflare e Google). Per utilizzare un provider DoH personalizzato, è necessario:

  1. Rimuovere i provider predefiniti (opzionale)

  2. Aggiungere la configurazione del provider DoH preferito

  3. Eseguire il commit e applicare la configurazione

Passaggi di configurazione#

In questo esempio verrà configurato il provider DoH DNS4EU (joindns4.eu).

  1. Rimuovere i provider predefiniti (se si desidera utilizzare solo DNS4EU):

    uci del https-dns-proxy.@https-dns-proxy[1]
    uci del https-dns-proxy.@https-dns-proxy[0]
    
  2. Aggiungere il provider DNS4EU DoH:

    uci set https-dns-proxy.joindns4=https-dns-proxy
    uci set https-dns-proxy.joindns4.resolver_url='https://noads.joindns4.eu/dns-query'
    uci set https-dns-proxy.joindns4.bootstrap_dns='86.54.11.13,86.54.11.213,2a13:1001::86:54:11:13,2a13:1001::86:54:11:213'
    uci set https-dns-proxy.joindns4.listen_addr='127.0.0.1'
    uci set https-dns-proxy.joindns4.listen_port='5053'
    uci commit https-dns-proxy
    

Il parametro bootstrap_dns è facoltativo; se non viene fornito, il sistema utilizzerà i DNS di Google e Cloudflare per il bootstrap.

  1. Applicare la configurazione, https-dns-proxy utilizzerà automaticamente il proxy DoH locale come DNS upstream:

    reload_config
    

Verifica#

Per verificare che il proxy DoH stia funzionando correttamente, controllare lo stato del servizio:

/etc/init.d/https-dns-proxy status

È anche possibile testare la risoluzione DNS:

dig google.com @127.0.0.1 -p 5053

Risoluzione dei problemi#

Reindirizzamento DNS#

Per impostazione predefinita, tutte le query DNS verso qualsiasi server vengono forzate attraverso il proxy DoH locale per garantire che tutto il traffico DNS sia crittografato, ma ciò potrebbe causare problemi con alcuni dispositivi o applicazioni.

Se viene visualizzato un errore «Impossibile accedere al server DNS privato» sul dispositivo Android, è possibile risolverlo disabilitando il forcing DNS nella configurazione di https-dns-proxy.

Eseguire i seguenti comandi tramite SSH o terminale:

uci set https-dns-proxy.config.force_dns='0'
uci commit https-dns-proxy
service https-dns-proxy restart

Aggiornamento dell’immagine#

Il pacchetto https-dns-proxy sovrascrive la configurazione DNS predefinita, quindi se si aggiorna l’immagine di NethSecurity, il sistema non sarà in grado di connettersi a Internet e ripristinare il pacchetto.

Per superare questo problema, è possibile interrompere temporaneamente il proxy DoH prima di aggiornare l’immagine:

service https-dns-proxy stop

Questo ripristinerà la configurazione DNS predefinita e consentirà al sistema di connettersi a Internet dopo l’aggiornamento dell’immagine. Una volta completato l’aggiornamento, è possibile riavviare il proxy DoH:

service https-dns-proxy restart

Blocco di altri provider DoH#

Per bloccare le richieste DoH dai client verso qualsiasi altro server consentendo però le richieste provenienti dal firewall, sono disponibili due opzioni:

  1. Abilitare la categoria public DoH-Providers all’interno di Threat Shield IP e inserire nella allowlist il server upstream scelto come provider DoH

  2. Utilizzare DPI (Deep Packet Inspection) per bloccare DoH, che opera solo sul traffico inoltrato, consentendo al firewall di utilizzare DoH mentre si impedisce ai client di utilizzarlo direttamente