20.7. Transactions sécurisées

Des transactions sécurisées peuvent être réalisées à l'aide de signatures de transaction (TSIG) basées sur des clés secrètes partagées (également nommées clés TSIG). Cette section explique comment générer et utiliser ces clés.

Les transactions sécurisées sont nécessaires pour la communication entre différents serveurs et pour la mise à jour dynamique des données de zone. Il est plus sûr de rendre le contrôle d'accès dépendant de clés que de faire confiance aux seules adresses IP.

Générez une clé TSIG avec la commande suivante (pour plus de détails, reportez-vous à man dnssec-keygen) :

   dnssec-keygen -a hmac-md5 -b 128 -n HOST host1-host2
  

Cela crée deux fichiers dont les noms sont semblables à ceux-ci :

Khost1-host2.+157+34265.private Khost1-host2.+157+34265.key
  

La clé elle-même (une chaîne de type ejIkuCyyGJwwuN3xAteKgg==) se trouve dans les deux fichiers. Pour l'utiliser dans les transactions, le second fichier (Khost1-host2.+157+34265.key) doit être transféré vers l'hôte distant, de préférence de façon sécurisée (en utilisant scp, par exemple). Sur le serveur distant, la clé doit être incluse au fichier /etc/named.conf pour permettre la communication sécurisée entre host1 et host2 :

key host1-host2. {
 algorithm hmac-md5;
 secret ";ejIkuCyyGJwwuN3xAteKgg==;
};
[Warning]autorisations de fichier de /etc/named.conf

Vérifiez que les autorisations de /etc/named.conf sont correctement définies. La valeur par défaut pour ce fichier est 0640, le propriétaire étant root et le groupe named. Vous pouvez également déplacer les clés vers un fichier supplémentaire avec des autorisations spécialement limitées, qui est alors inclus depuis /etc/named.conf.

Pour permettre au serveur host1 d'utiliser la clé pour host2 (qui a l'adresse 192.168.2.3 dans cet exemple), le fichier /etc/named.conf du serveur doit inclure la règle suivante :

server 192.168.2.3 {
  keys { host1-host2. ;};
};

Des entrées analogues doivent être incluses aux fichiers de configuration de host2.

Ajoutez les clés TSIG de toutes les ACL (listes de contrôle d'accès, à ne pas confondre avec les ACL du système de fichiers) qui sont définies pour les adresses IP et les plages d'adresse pour assurer la sécurité des transactions. L'entrée correspondante doit ressembler à cela :

allow-update { key host1-host2. ;};

Ce sujet est abordé plus en détail dans le document BIND Administrator Reference Manual sous update-policy.