Bind9 et les requêtes récursives

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

1. Le dimanche, décembre 4 2011, 13:44 par mz23

allow-transfert { "CLIENT_NAME"; };

->

allow-transfer { "CLIENT_NAME"; };

2. Le vendredi, décembre 23 2011, 15:45 par Sébastien PALMA

Merci pour la correction de typo !

3. Le dimanche, décembre 25 2011, 09:06 par 2012 Timberland

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"

Ajouter un commentaire

Le code HTML est affiché comme du texte et les adresses web sont automatiquement transformées.

La discussion continue ailleurs

URL de rétrolien : https://blog.cp2i.com/?trackback/6

Fil des commentaires de ce billet