Bind9 et les requêtes récursives
Par zokar le mercredi, janvier 7 2009, 11:37 - Sysadmin - Lien permanent
Dans ce billet, je vais vous expliquer brièvement comment empêcher Bind9 d'accepter les requêtes récursives de l'extérieur uniquement.
Pourquoi donc? Et bien tout simplement pour éviter que de petits malins s'amusent à placer votre serveur DNS à la place du leur et génère du traffic sur votre serveur
Tout d'abord, vous devez avoir un Bind9 actif et fonctionnel.
Une commande dig @votreserveur domaine.tld
doit vous renvoyer une adresse IP.
Tout d'abord, créez le fichier /etc/bind/named.conf.acl avec pour contenu :
acl "CLIENT_NAME" { // votre ip poublique pour administration ::ffff:[ADRESSE_IP]; [ADRESSE_IP]; // Une ligne par adresse adresses ip... Exemple : ::ffff:91.121.0.1; 91.121.0.1; };
Sauvez le fichier et attribuez-le a l'utilisateur bind;bind avec comme droits d'accès 644 comme ceci :
root@> chown bind:bind /etc/bind/named.conf.acl root@> chmod 644 /etc/bind/named.conf.acl
Ouvrez maintenant le fichier named.conf et modifiez/rajoutez les lignes suivantes
include "/etc/bind/named.conf.acl"; directory "/var/cache/bind"; version "Bingo"; auth-nxdomain no; //listen-on-v6 { any; }; allow-query { localhost; }; allow-transfer { localhost; }; allow-recursion { localhost; };
Sauvez votre fichier et ouvrez le fichier dans lequel vous avez indiqué les zones que vous gérez. Son contenu doit ressembler à un enchaînement de blocs formés comme suit :
zone "domaine.tld" { type master; file "/etc/bind/domaine.tld.db"; };
Editez donc le contenu pour que chaque bloc ressemble à ceci :
zone "domaine.tld" { type master; file "/etc/bind/domaine.tld.db"; allow-query { any; }; allow-transfer { "CLIENT_NAME"; }; // CLIENT_NAME correspond au nom de l'acl dans named.conf.acl };
Voila, il vous suffit de sauvegarder le fichier et de redémarrer Bind9 (généralement à l'aide de la commande root@> /etc/init.d/bind9 restart
).
Votre serveur répondra aux requêtes concernant le(s) domaine(s) que vous possédez, mais ne répondra plus aux autres requêtes.
Optionnellement, vous pouvez activer le logging en ajoutant dans le fichier named.conf les lignes suivantes :
logging{ channel simple_log { file "/var/log/bind.log" versions 3 size 5m; severity warning; print-time yes; print-severity yes; print-category yes; }; category default{ simple_log; }; };
Commentaires
allow-transfert { "CLIENT_NAME"; };
->
allow-transfer { "CLIENT_NAME"; };
Merci pour la correction de typo !
Many smart senior people (un-named because their companies are involved in this snake-oil sale) have confirmed this for me, saying "sentiment analysis software? don't bother"