Utiliser rndc

BIND contient un utilitaire appelé rndc qui permet d'administrer, localement ou à distance, le démon named grâce à des déclarations en lignes de commandes. Le programme rndc utilise le fichier /etc/rndc.conf pour ses options de configuration qui seront outrepassées par la priorité des options de lignes de commandes.

Afin d'empêcher des utilisateurs non autorisés sur d'autres systèmes de contrôler BIND sur votre serveur, on utilise une méthode de clé secrète partagée pour accorder explicitement des privilèges à certains hôtes. Pour que rndc émette des commandes vers n'importe quel named, même sur un ordinateur local, les clés utilisées dans /etc/named.conf et /etc/rndc.conf doivent se correspondre.

Fichiers de configuration

Avant d'essayer la commande rndc, vérifiez que les lignes de configuration adéquates sont en place dans les fichiers nécessaires. Il est probable que vos fichiers de configuration ne soient pas installés comme il le faudrait si après avoir lancé rndc vous voyez le message suivant :

rndc: connect: connection refused

/etc/named.conf

Pour que rndc soit autorisé à se connecter à votre service named, vous devez disposer d'une déclaration controls placée dans votre fichier /etc/named.conf quand named démarre. L'exemple de déclaration controls montré dans la Figure 14-21 vous permet d'exécuter des commandes rndc localement.

controls {
  inet 127.0.0.1 allow { localhost; } keys { <key-name>; };
};

Figure 14-21. Exemple de déclaration controls dans /etc/named.conf

Cette déclaration dit à named de se mettre à l'écoute du port TCP 953 par défaut de l'adresse inversée et d'autoriser les commandes rndc provenant de l'hôte local, si la clé adéquate est présentée. <key-name> fait référence à la déclaration key, qui se trouve aussi dans le fichier /etc/named.conf. Un exemple de déclaration key est montré dans Figure 14-22.

key "<key-name>" {
  algorithm hmac-md5;
  secret "<key-value>";
};

Figure 14-22. Exemple de déclaration key dans /etc/named.conf

Dans ce cas, <key-value> est une clé HMAC-MD5. Vous pouvez générer vos propres clés HMAC-MD5 à l'aide de la commande suivante.

dnssec-keygen -a hmac-md5 -b <bit-length> -n HOST <key-file-name>

Une clé d'au moins 256 bits de long est un bon choix. La bonne clé qui doit être placée dans la zone <key-value> se trouve dans <key-file-name>.

Le nom de la clé utilisée dans /etc/named.conf doit être différent de key.

/etc/rndc.conf

Afin de configurer rndc pour qu'il utilise automatiquement la clé spécifiée dans /etc/named.conf pour l'hôte local, vous avez besoin de trois déclarations. La déclaration options vous permet de régler le serveur et la clé par défaut pour utilisation par rndc, comme on le voit dans Figure 14-23.

options {
  default-server  localhost;
  default-key     "<key-name>";
};

Figure 14-23. Exemple de déclaration options dans /etc/rndc.conf

L'option existe de dire à la commande rndc d'utiliser une clé par défaut quand elle accède à un serveur particulier, comme on le voit dans Figure 14-24.

server localhost {
  key  "<key-name>";
};

Figure 14-24. Exemple de déclaration server dans /etc/rndc.conf

Toutefois, cette déclaration server n'est réellement utile que si vous vous connectez à de multiples serveur avec rndc.

La déclaration key est la plus importante dans /etc/rndc.conf.

key "<key-name>" {
  algorithm hmac-md5;
  secret "<key-value>";
};

Figure 14-25. Exemple de déclaration key dans /etc/rndc.conf

<key-name> et <key-value> doivent être absolument identiques à leur configuration dans /etc/named.conf.

Pour tester toutes les configurations, essayez la commanderndc reload. Vous devriez voir une réponse ressemblant à ceci:

rndc: reload command successful

Si la commande a échoué, examinez avec précaution les fichiers /etc/named.conf et /etc/rndc.conf pour chercher les erreurs.

AttentionAttention
 

Il faut s'assurer que les utilisateurs sans privilèges ne peuvent pas lire ou écrire dans le fichier /etc/rndc.conf.

Options de ligne de commande

Une commande rndc se présente selon la forme suivante :

rndc <options> <commande> <commande-options>

Figure 14-26. Structure d'une commande rndc

La zone <options> n'est pas nécessaire, et vous n'êtes pas obligé d'utiliser <command-options> sauf si la commande le requiert.

Quand on exécute rndc sur un hôte local configuré de façon appropriée, les commandes suivantes sont disponibles:

On peut à l'occasion vouloir passer outre les réglages par défaut dans le fichier /etc/rndc.conf. Sont disponibles les options suivantes :

Des informations supplémentaires sur ces options peuvent être consultées dans la page de manuel rndc.