Ciao stormi, oggi impareremo alcune cose DNS. Sappiamo tutti che cos'è un DNS, come funziona il DNS, i suoi tipi, ecc. Quindi, concludi le cose e tuffiamoci nel nostro argomento di oggi sulla zona delle politiche di risposta DNS (RPZ).
Per visualizzare i nostri altri argomenti sul server DNS, visita qui.
Cos'è RPZ?
DNS Response Policy Zone (RPZ) è una zona DNS che consente agli amministratori DNS di personalizzare la politica nei server DNS, in modo che il server restituisca risposte modificate alle query DNS del Cliente. In altre parole, RPZ fornisce un modo per modificare una risposta DNS in tempo reale. Può essere utilizzato per modificare dati DNS potenzialmente non sicuri per bloccare la comunicazione o fornire dati locali per reindirizzare a un "giardino recintato". Poiché possiamo modificare la risposta alle query o bloccare qualsiasi dominio utilizzando RPZ, è anche noto come firewall DNS.
Come qualsiasi altra zona DNS, RPZ è costituito da diversi set di record di risorse (RR). Invece dei record SOA, NS e DNSSEC, tutti gli altri RR contengono un trigger e un'azione per il trigger.
Trigger configurati per riscrivere le query DNS in base a:
- Indirizzo IP/sottorete (RPZ-IP)
- Nome host/dominio (QNAME)
- Nome/dominio del server dei nomi (RPZ-NSDNAME)
- Indirizzo/sottorete del server dei nomi (RPZ-NSIP)
- IP client (RPZ-CLIENT-IP)
Le azioni per le norme sono le seguenti
- Azione "NXDOMAIN" (CNAME .)
- Azione “NODATA” (CNAME *.)
- Azione "PASSTHRU" (CNAME rpz-passthru.)
- Azione "DROP" (CNAME rpz-drop.)
- Azione "solo TCP" (solo CNAME rpz-tcp.)
- Azione "Dati locali" (tipi RR arbitrari)
Applicazioni RPZ:
DNS RPZ ha diverse applicazioni e casi d'uso. Esempi:
- Blocca siti Web di malware e phishing
- Blocca annunci
- Riscrivi qualsiasi RR di dominio e fornisci dati DNS personalizzati
- Blocca un insieme di traffico di utenti Internet e invia le loro richieste a un giardino recintato
In questo articolo impareremo come configurare RPZ in BIND9, bloccare un dominio per tutti gli utenti e reindirizzare alcuni utenti a un walled-garden.
Installa BIND9 e configura RPZ:
Installiamo un server DNS di memorizzazione nella cache BIND9 su Debian Linux.
# apt-get update
# apt-get install -y bind9
Abilita e avvia bind9 servizio
# systemctl enable bind9.service
# systemctl start bind9.service
# systemctl status bind9.service
Uscita:
Il nostro Server ha l'indirizzo 192.168.10.38 configurato sulla sua interfaccia fisica. Ora controlla lo stato di ascolto di BIND9
# netstat -lntup | grep -E "PID|named"
Uscita:
Vediamo che BIND9 è in ascolto su entrambe le famiglie di indirizzi IPv4 e IPv6 per tutte le interfacce. Per utilizzare BIND9 solo su IPv4, cambia l'opzione di avvio in /etc/default/bind9 file
OPTIONS="-4 -u bind"
Riavvia bind9 servizio
# systemctl restart bind9.service
Eseguire il backup del file delle opzioni predefinite
# cp /etc/bind/named.conf.options /etc/bind/named.conf.options.ori
Aggiungi le direttive di configurazione RPZ nelle opzioni principali di BIND9 e i nomi delle zone in /etc/bind/named.conf.options file
response-policy { zone "rpz"; };
Possiamo anche aggiungere più zone nella politica di risposta direttiva come segue
response-policy {
zone "rpz1";
zone "rpz2";
};
Ora definisci le proprietà della zona
zone "rpz" {
type master;
file "rpz.local";
allow-query { localhost; };
allow-update { none; };
};
Supponiamo ora di voler bloccare un dominio a causa di attività di malware o potrebbe essere un sito di annunci o potrebbe essere richiesto dall'autorità di regolamentazione di bloccare il sito. In questo esempio, stiamo bloccando "youtube.com “. Crea rpz.local file nella directory predefinita per BIND9 incluso il contenuto sottostante
$TTL 60
@ IN SOA localhost. root.localhost. (
2022012801 ; serial
1h ; refresh
30m ; retry
1w ; expiry
30m) ; minimum
IN NS ns1.example.com.
IN NS ns2.example.com.
youtube.com 30 IN CNAME .
*.youtube.com 30 IN CNAME .
Riavvia il servizio BIND9
# systemctl restart bind9.service
Nelle direttive di configurazione precedenti abbiamo definito le azioni della politica "NXDOMAIN" per il dominio "youtube.com “. Ora se proviamo a navigare dalla nostra workstation non saremo in grado di navigare nel sito e restituirà il messaggio NXDOMAIN nel browser
Nel prossimo esempio, reindirizzeremo “btcl.com.bd ” utenti in un giardino recintato tramite RPZ. Mostrerà un messaggio agli utenti fornendo dati locali nella query DNS. Per ottenere ciò dovremo scrivere RR come segue
btcl.com.bd 30 IN A 192.168.10.38
*.btcl.com.bd 30 IN A 192.168.10.38
Nota: Abbiamo un server web in esecuzione su 192.168.10.38 e fornirà un messaggio personalizzato agli utenti.
Riavvia il servizio BIND9.
Navigando nel sito “http://btcl.com.bd " risultati sotto il messaggio
Blocca il pagamento inadempiente del cliente che utilizza RPZ
In questo esempio, reindirizzeremo tutti gli utenti con saldo in sospeso a un giardino recintato per mostrare un messaggio per pagare le loro quote.
Abbiamo un utente con indirizzo IP 192.168.10.13 che non ha pagato le bollette. Per reindirizzare tutte le richieste dell'utente a un server web wall-garden 192.168.10.38 configureremo rpz.local file come segue
32.13.10.168.192.rpz-client-ip 30 IN A 192.168.10.38
Nota: 32.13.10.168.192.rpz-client-ip definisce l'IP host nella notazione CIDR 192.168.10.13/32 . Se desideri bloccare una sottorete 172.16.20.0/24 quindi dovrebbe presentarsi come 24.0.20.16.172.rpz-client-ip .
Riavvia il servizio BIND9.
Navigazione da cliente normale
Navigazione da client wall gardened
Riferimenti:
https://tools.ietf.org/id/draft-vixie-dnsop-dns-rpz-00.html
http://www.zytrax.com/books/dns/