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/