ajout guide tsig et update-policy

This commit is contained in:
Tom David--Broglio 2023-12-04 12:20:45 +01:00
parent 4256c6c681
commit dc7620b04f

View file

@ -181,10 +181,10 @@ ftp CNAME ftp.example.net.
### Options de configuration
* `allow-query` : spécifie les adresses autorisées à faire des requêtes DNS. Par défaut, toutes les adresses sont autorisées
* `allow-transfer` : spécifie les adresses des serveurs replica autorisées à faire des requêtes AXFR (transfert de zone). Par défaut, toutes les adresses sont autorisées, il est impératif de restreindre les autorisations.
* `allow-transfer` : spécifie les adresses des serveurs replica ou TSIGs autorisées à faire des requêtes AXFR (transfert de zone). Par défaut, toutes les adresses sont autorisées, il est impératif de restreindre les autorisations.
* `allow-recursion` : spécifie les adresses autorisées à faire des requêtes DNS récursives. À restreindre impérativement également.
* `allow-update` : spécifie les adresses autorisées à mettre à jour dynamiquement des informations dans leur zone. Par défaut, aucune adresse n'est autorisée.
* `allow-update` : spécifie les adresses ou TSIGs autorisées à mettre à jour dynamiquement des informations dans leur zone. Par défaut, aucune adresse n'est autorisée.
* `update-policy` : spécifie finement les droit de modification des entrées pour les adresses ou TSIGs autorisées via une liste d'ACL, **Attention** : on ne peut pas définir à la fois `allow-update` et `update-policy`. voir [Configuration update-policy](/HowtoBind#configuration-update-policy)
## chroot
@ -376,6 +376,35 @@ $ rndc thaw domain.tld
$ rndc reload domain.tld
~~~
### Petit guide TSIG
On peut utiliser nsupdate, ou n'importe quel client, pour mettre à jour la zone en s'authentifiant avec une clef TSIG.
Pour mettre celle-ci en place, il faut ...
Générer une clef TSIG avec tsig-keygen si disponible ou avec dnssec-keygen sinon
~~~
tsig-keygen -a hmac-sha512 nomclef
dnssec-keygen -a HMAC-SHA512 -b 512 -n HOST nomclef
~~~
Ajouter celle-ci à la configuration de bind...
~~~
# vim /etc/bind/named.conf.tsigkeys
key "happydomain" {
algorithm HMAC-SHA512;
secret "3JtiVQEBFXtQeU/3PorKpCV7jM1bZEEzkdD1zb9emvwaBZFSgYxOXV41OdSeeHb5dcud+SvNo47jEf5yRwfSkQ==";
};
~~~
> Ne pas oublier d'inclure named.conf.tsigkeys dans `/etc/bind/named.conf`
On peut maintenant recharger la configuration et vérifier que notre clef est bien présente:
~~~
named-checkconf /etc/bind/named.conf && rndc reload
rndc tsig-list
~~~
## Reverse DNS
@ -679,5 +708,24 @@ if [ `date "+%Y%m%d%H"` -gt $serial ]; then serial=$(date "+%Y%m%d%H"); else ser
sed -i "s/^\([ \t]*\)[0-9]\{10\}\([ \t]*; serial\)/\1$serial\2/" $zonefile
~~~
### Configuration update-policy
Dans `update-policy`, les régles ACLs prennent la forme `( grant | deny ) identity ruletype name types`
> La première règle qui match un requête sera utilisé
* `identity` correspond à un fqdn ou le nom la clef TSIG
* `name` le nom de l'entrée dans la zone
* `types` le ou les types de l'entrée(s) dans la zone
* `ruletype` est le type de règle utilisé, il en existe une vingtene de valeurs, les plus importantes sont (WIP)
**Les `ruletype`s pricipaux** :
* `name` la règle match exactement avec le nom de l'entrée `name`
* `subdomain` match avec tous le sous-domaine et le domaine de l'entrée `name`
* `zonesub` match tous les sous-domaines de la zone contenant la configuration, il ne faut pas préciser d'entrée `name`
* `wildcard` match toute les [expansions wildcard](https://en.wikipedia.org/wiki/Wildcard_DNS_record) valides de l'entrée `name`
* `self` permet de faire correspondre `identity` directement avec le nom d'une entrée, il ne faut pas préciser d'entrée `name` ou sinon y mettre `.` ou la même valeur que `identity`. On peut aussi mettre directement `*` pour `identity` si le nom est bien le même que celui d'une entrée (cela permet de matcher automatiquement les clefs avec les noms d'entrées)
* `selfsub` fonctionne comme self *et* permet de mettre à jour aussi les sous-domaine du nom d'une entrée
* `selfwild` fonctionne comme self *mais* permet de mettre à jour *uniquement* les sous-domaine du nom d'une entrée
* Liste complète: https://bind9.readthedocs.io/en/v9_18_2/reference.html#dynamic-update-policies