Il Domain Name System (DNS) funziona come una rubrica: i resolver DNS traducono i nomi di dominio (es. novemila.org), leggibili dall’utente, in indirizzi IP, utilizzabili dai computer. Per impostazione predefinita, le query e le risposte DNS vengono trasmesse in chiaro tramite il protocollo UDP. Questa modalità espone i dati a potenziali intercettazioni da parte di governi, provider di servizi internet (ISP), attori malintenzionati o soggetti in grado di monitorare il traffico.

dns-traffic-unsecured

Per mitigare tali rischi, sono stati sviluppati due standard: DNS over TLS (DoT) e DNS over HTTPS (DoH). Entrambi i protocolli criptano il traffico DNS, garantendo così la sicurezza e la riservatezza delle informazioni trasmesse.

DNS over TLS

DNS over TLS è un protocollo che aggiunge la crittografia TLS sopra UDP, utilizzato tradizionalmente per le query DNS. DoT opera sulla porta 853, distinguendosi così dal traffico HTTPS.

DNS over HTTPS

DNS over HTTPS crittografa le query DNS utilizzando il protocollo HTTPS, trasmettendole tramite TCP sulla porta 443. Le richieste DNS inviate tramite DoH si nascondono con il resto del traffico HTTPS, rendendo più difficile l’identificazione e l’analisi da parte di osservatori esterni.

dns-traffic-over-tls-https

Configurazione di DoT in OPNsense

Accedere alla sezione Services > Unbound DNS > DNS over TLS e cliccare sul pulsante + per aggiungere un nuovo server DoT. Di seguito viene riportato un esempio di configurazione utilizzando i server DNS di Quad9, ma sono compatibili anche altri server DoT, come NextDNS e Cloudflare. Tutti i parametri si possono trovare nella documentazione di Quad9:

1
2
3
Server IP: 9.9.9.9
Server Port: 853
Verify CN: dns.quad9.net

quad9-dns

Si consiglia di aggiungere anche il server secondario 149.112.112.112 e, qualora la rete utilizzi IPv6, gli indirizzi IPv6 corrispondenti.

DNS di sistema

Per garantire l’uso esclusivo di DoT per tutte le query DNS della propria rete, accertarsi di non avere alcun server DNS specificato nella pagina System > Settings > General. Inoltre, è fondamentale deselezionare le opzioni “Allow DNS server list to be overridden by DHCP/PPP on WAN” e “Do not use the local DNS service as a nameserver for this system”.

system-dns

Test della configurazione

È possibile verificare se le query DNS vengono indirizzate sulla porta 853 impostando, da Unbound DNS > Advanced, il livello di log a 2 o superiore. Assicurarsi che la casella Log Queries sia selezionata.

dns-log

Dopo aver configurato il logging, spostarsi in Unbound DNS > Log File per osservare le risposte dai server DNS di Quad9 sulla porta 853 (il contenuto delle risposte non sarà visibile, in quanto crittografato).

dns-diagnostic

Oppure, il sito dnscheck.tools permette di sapere quale DNS resover é utilizzato per el query DNS.

Qualora si opti per l’utilizzo di NextDNS come provider DoT, è possibile gestire liste di blocco (ad esempio per pubblicità, traccianti o domini malevoli) direttamente dal pannello di amministrazione. Si sconsiglia di aggiungere ulteriori liste di blocco in Services > Unbound DNS > Blocklists su OPNsense, al fine di evitare sovrapposizioni e potenziali conflitti. È buona pratica mantenere una configurazione minima, riducendo il rischio di problemi durante la navigazione.

Crowdsec

crowdsec-opnsense

CrowdSec è un Intrusion Prevention System (IPS) open source che raccoglie in modo collaborativo informazioni su diverse tipologie di minacce, al fine di monitorare e proteggere la rete da attacchi noti.

A differenza di altre piattaforme IPS, che utilizzano regole specifiche per identificare e bloccare traffico malevolo, CrowdSec calcola un punteggio di reputazione per gli indirizzi IP, impiegando l’intelligence condivisa dalla comunità: il firewall si limita a bloccare tale elenco di IP noti come malevoli, evitando l’elaborazione di numerose regole.

Architettura

CrowdSec è composto da due elementi principali: l’agent e il bouncer. Gli agent monitorano i file di log alla ricerca di attività dannose e riportano informazioni alla comunità di CrowdSec. Il bouncer è invece responsabile del blocco degli indirizzi IP.

Riferirsi all’articolo sul VPS per maggiori informazioni e per conoscere i vari comandi da terminale.

Installazione e configurazione

Per configurare CrowdSec, accedere a System > Firmware > Plugins e installare il plugin os-crowdsec, assicurandosi che i community plugins siano abilitati.

Accedere a Services > CrowdSec > Settings e abilitare le seguenti opzioni:

1
2
3
4
5
6
7
Enable Log Processor: check
Enable LAPI: check
Enable Remediation Component: check
LAPI listen address: 127.0.0.1
LAPI listen port: 8080
Enable log for rules: check
Tag for matched packets: crowdsec

CrowdSec genera automaticamente floating rules per bloccare il traffico da e verso indirizzi IP segnalati come malevoli, inseriti negli alias crowdsec_blocklists e crowdsec6_blocklists, anch’essi generati in modo automatico.

crowdsec-floating-rules

È possibile verificare il corretto funzionamento del sistema tentando di pingare un indirizzo IP presente nell’alias crowdsec_blocklists: il traffico verso tali indirizzi verrà bloccato dalle floating rules impostate.

crowdsec-rules

Si consiglia di aggiungere il seguente Cronjob da System > Settings > Cron per aggiornare periodicamente le Unbound Blocklists:

1
2
3
Set Minutes,Hours,DotM,Months,DotW to 0,3,*,*,* to run at 03:00 every day
Command: Update and reload intrusion detection rules
Description: ids rule updates

Riferimenti