Bonjour les troupeaux, aujourd'hui nous allons apprendre quelques trucs DNS. Nous savons tous ce qu'est un DNS, son fonctionnement, ses types, etc. Alors, récapitulons et plongeons dans le sujet d'aujourd'hui sur la zone de politique de réponse DNS (RPZ).
Pour voir nos autres sujets sur le serveur DNS, veuillez visiter ici.
Qu'est-ce que le RPZ ?
La zone de politique de réponse DNS (RPZ) est une zone DNS qui permet aux administrateurs DNS de personnaliser la politique dans les serveurs DNS, afin que le serveur renvoie des réponses modifiées aux requêtes DNS du client. En d'autres termes, RPZ fournit un moyen de modifier une réponse DNS en temps réel. Il peut être utilisé pour modifier des données DNS potentiellement dangereuses afin de bloquer la communication ou fournir des données locales à rediriger vers un « jardin clos ». Comme nous pouvons modifier la réponse aux requêtes ou bloquer n'importe quel domaine à l'aide de RPZ, il est également connu sous le nom de pare-feu DNS.
Comme toute autre zone DNS, RPZ se compose de différents ensembles d'enregistrements de ressources (RR). Plutôt que les enregistrements SOA, NS et DNSSEC, tous les autres RR contiennent un déclencheur et une action pour le déclencheur.
Déclencheurs configurés pour réécrire les requêtes DNS en fonction de :
- Adresse IP/sous-réseau (RPZ-IP)
- Nom d'hôte/Domaine (QNAME)
- Nom/Domaine du serveur de noms (RPZ-NSDNAME)
- Adresse/sous-réseau du serveur de noms (RPZ-NSIP)
- IP client (RPZ-IP-CLIENT)
Les actions de politique sont comme ci-dessous
- Action "NXDOMAIN" (CNAME .)
- Action "NODATA" (CNAME *.)
- Action "PASSTHRU" (CNAME rpz-passthru.)
- Action « DROP » (CNAME rpz-drop.)
- Action "TCP uniquement" (CNAME rpz-tcp uniquement.)
- Action "Données locales" (types RR arbitraires)
Applications RPZ :
DNS RPZ a différents cas d'application et d'utilisation. Exemples :
- Bloquer les sites Web malveillants et d'hameçonnage
- Bloquer les publicités
- Réécrivez n'importe quel RR de domaine et fournissez des données DNS personnalisées
- Bloquer le trafic d'un ensemble d'internautes et diriger leurs requêtes vers un jardin clos
Dans cet article, nous allons apprendre à configurer RPZ dans BIND9, à bloquer un domaine pour tous les utilisateurs et à rediriger certains utilisateurs vers un jardin clos.
Installez BIND9 et configurez RPZ :
Installons un serveur DNS de mise en cache BIND9 sur Debian Linux.
# apt-get update
# apt-get install -y bind9
Activer et démarrer bind9 services
# systemctl enable bind9.service
# systemctl start bind9.service
# systemctl status bind9.service
Sortie :
Notre serveur a l'adresse 192.168.10.38 configurée sur son interface physique. Vérifiez maintenant l'état d'écoute de BIND9
# netstat -lntup | grep -E "PID|named"
Sortie :
Nous voyons que BIND9 écoute sur les familles d'adresses IPv4 et IPv6 pour toutes les interfaces. Pour utiliser BIND9 sur IPv4 uniquement, modifiez l'option de démarrage dans /etc/default/bind9 fichier
OPTIONS="-4 -u bind"
Redémarrez bind9 services
# systemctl restart bind9.service
Sauvegarder le fichier d'options par défaut
# cp /etc/bind/named.conf.options /etc/bind/named.conf.options.ori
Ajoutez des directives de configuration RPZ sous les options principales de BIND9 et les noms de zone dans /etc/bind/named.conf.options fichier
response-policy { zone "rpz"; };
Nous pouvons également ajouter plusieurs zones dans la response-policy directive comme suit
response-policy {
zone "rpz1";
zone "rpz2";
};
Définissez maintenant les propriétés de la zone
zone "rpz" {
type master;
file "rpz.local";
allow-query { localhost; };
allow-update { none; };
};
Supposons maintenant que nous souhaitions bloquer un domaine en raison d'une activité de logiciel malveillant ou qu'il s'agisse d'un site d'annonces ou qu'il puisse être ordonné par une autorité réglementaire de bloquer le site. Dans cet exemple, nous bloquons "youtube.com “. Créer rpz.local fichier dans le répertoire par défaut pour BIND9, y compris le contenu ci-dessous
$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 .
Redémarrez le service BIND9
# systemctl restart bind9.service
Dans les directives de configuration ci-dessus, nous avons défini les actions de stratégie "NXDOMAIN" pour le domaine "youtube.com “. Maintenant, si nous essayons de naviguer à partir de notre poste de travail, nous ne pourrons pas parcourir le site et il renverra le message NXDOMAIN dans le navigateur
Dans l'exemple suivant, nous allons rediriger "btcl.com.bd ” utilisateurs à un jardin clos au moyen de RPZ. Il affichera un message aux utilisateurs en fournissant des données locales dans la requête DNS. Pour y parvenir, nous devrons écrire les RR comme suit
btcl.com.bd 30 IN A 192.168.10.38
*.btcl.com.bd 30 IN A 192.168.10.38
Remarque : Nous avons un serveur Web fonctionnant sur 192.168.10.38 et il fournira un message personnalisé aux utilisateurs.
Redémarrez le service BIND9.
Naviguer sur le site "http://btcl.com.bd ” résultats sous le message
Bloquer les clients en défaut de paiement utilisant RPZ
Dans cet exemple, nous allons rediriger tous les utilisateurs ayant un solde impayé vers un jardin clos pour afficher un message leur demandant de payer leurs cotisations.
Nous avons un utilisateur avec l'adresse IP 192.168.10.13 qui n'a pas pu payer ses factures. Pour rediriger toutes les requêtes de l'utilisateur vers un serveur Web wall-garden 192.168.10.38, nous allons configurer le rpz.local fichier comme suit
32.13.10.168.192.rpz-client-ip 30 IN A 192.168.10.38
Remarque : 32.13.10.168.192.rpz-client-ip définit l'IP de l'hôte en notation CIDR 192.168.10.13/32 . Si vous souhaitez bloquer un sous-réseau 172.16.20.0/24 alors il devrait se présenter comme 24.0.20.16.172.rpz-client-ip .
Redémarrez le service BIND9.
Navigation depuis un client régulier
Navigation à partir du client wall-garden
Références :
https://tools.ietf.org/id/draft-vixie-dnsop-dns-rpz-00.html
http://www.zytrax.com/books/dns/