GNU/Linux >> Linux Esercitazione >  >> Linux

DNS RPZ:un firewall DNS per filtrare siti e utenti

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/


Linux
  1. Rilevamento automatico e autoconfigurazione record DNS

  2. Cluster utenti e gruppi

  3. File di zona di grandi dimensioni per Bind9:blocco degli annunci?

  4. Crea e rimuovi utenti CentOS

  5. LVM e multipathing:stringhe di filtri LVM di esempio

Come installare e configurare Utangle Firewall

Utenti e gruppi LDAP

Come installare il server DNS master e slave BIND9 su Ubuntu

Come elencare utenti e gruppi su Linux

Come installare e configurare il server DNS in Linux

Debug di iptables e insidie ​​comuni del firewall?