GNU/Linux >> LINUX-Kenntnisse >  >> Linux

DNS RPZ:Eine DNS-Firewall zum Filtern von Sites und Benutzern

Hallo Herden, heute werden wir einige DNS-Sachen lernen. Wir alle wissen, was ein DNS ist, wie DNS funktioniert, welche Typen es gibt usw. Fassen Sie die Dinge zusammen und lassen Sie uns in unser heutiges Thema über die DNS Response Policy Zone (RPZ) eintauchen.

Um unsere anderen Themen zu DNS-Servern anzuzeigen, besuchen Sie bitte hier.

Was ist RPZ?

DNS Response Policy Zone (RPZ) ist eine DNS-Zone, die es DNS-Administratoren ermöglicht, Richtlinien in DNS-Servern anzupassen, sodass der Server geänderte Antworten auf die DNS-Abfragen des Clients zurückgibt. Mit anderen Worten, RPZ bietet eine Möglichkeit, eine DNS-Antwort in Echtzeit zu ändern. Es kann verwendet werden, um potenziell unsichere DNS-Daten zu ändern, um die Kommunikation zu blockieren, oder um lokale Daten bereitzustellen, um sie an einen „Walled Garden“ umzuleiten. Da wir mit RPZ die Abfrageantwort ändern oder jede Domain blockieren können, wird sie auch als DNS-Firewall bezeichnet.

Wie jede andere DNS-Zone besteht RPZ aus verschiedenen Resource Records (RR) Sets. Anstelle von SOA-, NS- und DNSSEC-Einträgen enthalten alle anderen RRs einen Trigger und eine Aktion für den Trigger.

Trigger, die zum Umschreiben von DNS-Abfragen konfiguriert sind, basierend auf:

  • IP-Adresse/Subnetz (RPZ-IP)
  • Hostname/Domain (QNAME)
  • Nameservername/Domain (RPZ-NSDNAME)
  • Nameserver-Adresse/Subnetz (RPZ-NSIP)
  • Client-IP (RPZ-CLIENT-IP)

Richtlinienaktionen sind wie folgt

  • „NXDOMAIN“-Aktion (CNAME .)
  • „NODATA“-Aktion (CNAME *.)
  • "PASSTHRU"-Aktion (CNAME rpz-passthru.)
  • „DROP“-Aktion (CNAME rpz-drop.)
  • „Nur-TCP“-Aktion (nur CNAME rpz-tcp.)
  • „Lokale Daten“-Aktion (beliebige RR-Typen)

RPZ-Anwendungen:

DNS RPZ hat unterschiedliche Anwendungs- und Anwendungsfälle. Beispiele:

  • Malware- und Phishing-Websites blockieren
  • Anzeigen blockieren
  • Jede Domain-RR umschreiben und benutzerdefinierte DNS-Daten bereitstellen
  • Blockieren Sie den Datenverkehr einer Reihe von Internetnutzern und leiten Sie ihre Anfragen an einen ummauerten Garten weiter

In diesem Artikel werden wir lernen, wie man RPZ in BIND9 konfiguriert, eine Domain für alle Benutzer blockiert und einige Benutzer zu einem ummauerten Garten umleitet.

BIND9 installieren und RPZ konfigurieren:

Lassen Sie uns einen BIND9-Caching-DNS-Server unter Debian Linux installieren.

# apt-get update
# apt-get install -y bind9

Aktivieren und starten Sie bind9 Dienst

# systemctl enable bind9.service
# systemctl start bind9.service
# systemctl status bind9.service

Ausgabe:

Unser Server hat die Adresse 192.168.10.38 auf seiner physischen Schnittstelle konfiguriert. Überprüfen Sie nun den BIND9-Listening-Status

# netstat -lntup | grep -E "PID|named"

Ausgabe:

Wir sehen, dass BIND9 sowohl IPv4- als auch IPv6-Adressfamilien für alle Schnittstellen abhört. Um BIND9 auf IPv4 zu betreiben, ändern Sie nur die Startoption in /etc/default/bind9 Datei

OPTIONS="-4 -u bind"

Starten Sie bind9 neu Dienst

# systemctl restart bind9.service

Standardoptionsdatei sichern

# cp /etc/bind/named.conf.options /etc/bind/named.conf.options.ori

Fügen Sie RPZ-Konfigurationsdirektiven unter BIND9-Hauptoptionen und Zonennamen in /etc/bind/named.conf.options hinzu Datei

response-policy { zone "rpz"; };

Wir können auch mehrere Zonen in der Antwortrichtlinie hinzufügen Direktive wie folgt

response-policy { 
zone "rpz1";
zone "rpz2";
};

Definieren Sie nun die Zoneneigenschaften

zone "rpz" {
type master;
file "rpz.local";
allow-query { localhost; };
allow-update { none; };
};

Nehmen wir nun an, wir möchten eine Domain aufgrund von Malware-Aktivität sperren oder es könnte sich um eine Werbeseite handeln oder sie könnte von einer Regulierungsbehörde angewiesen werden, die Seite zu sperren. In diesem Beispiel blockieren wir „youtube.com “. Erstellen Sie rpz.local Datei im Standardverzeichnis für BIND9 einschließlich des folgenden Inhalts

$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 .

Starten Sie den BIND9-Dienst neu

# systemctl restart bind9.service

In den obigen Konfigurationsanweisungen haben wir "NXDOMAIN"-Richtlinienaktionen für die Domain "youtube.com" definiert “. Wenn wir jetzt versuchen, von unserer Workstation aus zu browsen, können wir die Site nicht durchsuchen und es wird eine NXDOMAIN-Nachricht im Browser zurückgegeben

Im nächsten Beispiel werden wir „btcl.com.bd umleiten ” Benutzer zu einem ummauerten Garten mittels RPZ. Es zeigt den Benutzern eine Nachricht an, indem es lokale Daten in der DNS-Abfrage bereitstellt. Um das zu erreichen, müssen wir RRs wie folgt schreiben

btcl.com.bd      30    IN    A    192.168.10.38
*.btcl.com.bd 30 IN A 192.168.10.38

Hinweis: Wir haben einen Webserver, der auf 192.168.10.38 läuft und es wird den Benutzern eine benutzerdefinierte Nachricht bereitgestellt.

Starten Sie den BIND9-Dienst neu.

Durchsuchen der Website „http://btcl.com.bd ” Ergebnisse unten Nachricht

Zahlungssäumige Kunden mit RPZ blockieren

In diesem Beispiel werden wir alle Benutzer mit ausstehendem Guthaben zu einem ummauerten Garten umleiten, um eine Nachricht zur Zahlung ihrer Gebühren anzuzeigen.

Wir haben einen Benutzer mit der IP-Adresse 192.168.10.13, der Rechnungen nicht bezahlen konnte. Um alle Anfragen für den Benutzer an einen Wall-Garden-Webserver 192.168.10.38 umzuleiten, konfigurieren wir die rpz.local Datei wie folgt

32.13.10.168.192.rpz-client-ip    30    IN    A    192.168.10.38

Hinweis: 32.13.10.168.192.rpz-client-ip definiert die Host-IP in CIDR-Notation 192.168.10.13/32 . Wenn Sie ein Subnetz blockieren möchten 172.16.20.0/24 dann sollte es als 24.0.20.16.172.rpz-client-ip angezeigt werden .

Starten Sie den BIND9-Dienst neu.

Browsen vom regulären Client

Durchsuchen vom Wall-Gardened-Client

Referenzen:

https://tools.ietf.org/id/draft-vixie-dnsop-dns-rpz-00.html

http://www.zytrax.com/books/dns/


Linux
  1. Spickzettel für Linux-Benutzer und -Berechtigungen

  2. DNS-Einträge für automatische Erkennung und automatische Konfiguration

  3. Benutzer und Gruppen

  4. Einfache und einfache Möglichkeit, blockierte Websites zu umgehen?

  5. Erstellen und entfernen Sie CentOS-Benutzer

So installieren und konfigurieren Sie die Utangle Firewall

LDAP-Benutzer und -Gruppen

So installieren Sie den BIND9 Master- und Slave-DNS-Server unter Ubuntu

So listen Sie Benutzer und Gruppen unter Linux auf

So installieren und konfigurieren Sie den DNS-Server unter Linux

Debuggen von iptables und häufigen Firewall-Fallstricken?