HowtoBind: document DNSSEC
This commit is contained in:
parent
8d1ffd81a2
commit
c418e315ea
99
HowtoBind.md
99
HowtoBind.md
|
@ -412,6 +412,105 @@ named-checkconf /etc/bind/named.conf && rndc reload
|
|||
rndc tsig-list
|
||||
~~~
|
||||
|
||||
## DNSSEC
|
||||
|
||||
### Ajouter la gestion DNSSEC
|
||||
|
||||
Créer le répertoire `/etc/bind/dnssec/db.$domain` (qui servira aussi à conserver les clefs et fichiers de zones dynamiques) et y déplacer le fichier de zone (un lien symbolique depuis son emplacement précédent permet de continuer à pouvoir l’éditer comme avant). Prendre garde à ce que tous les fichiers et répertoires appartiennent bien à bind.
|
||||
|
||||
~~~
|
||||
# sudo -u bind mkdir -p /etc/bind/dnssec/$domain
|
||||
# mv /etc/bind/db.$domain /etc/bind/dnssec/$domain/
|
||||
# ln -s dnssec/$domain/db.$domain /etc/bind/
|
||||
~~~
|
||||
|
||||
Mettre en place une paire de clefs de zone (ZSK) et de signature (KSK)
|
||||
|
||||
~~~
|
||||
# cd /etc/bind/dnssec/$domain
|
||||
# sudo -u bind dnssec-keygen -a ECDSAP256SHA256 -n ZONE $domain
|
||||
# sudo -u bind dnssec-keygen -a ECDSAP256SHA256 -n ZONE -f KSK $domain
|
||||
~~~
|
||||
|
||||
Modifier le fichier de zone dans `/etc/bind/named.conf.local` pour ajouter les trois dernières options suivantes (et modifier le chemin vers le fichier de zone).
|
||||
|
||||
~~~
|
||||
zone "$domain" {
|
||||
type master;
|
||||
file "/etc/bind/dnssec/$domain/db.$domain";
|
||||
allow-query { any; };
|
||||
allow-transfer { "foo"; };
|
||||
inline-signing yes;
|
||||
auto-dnssec maintain;
|
||||
key-directory "/etc/bind/dnssec/$domain";
|
||||
};
|
||||
~~~
|
||||
|
||||
Puis recharger la configuration de bind et la zone sera automatiquement signé.
|
||||
|
||||
~~~
|
||||
# systemctl reload bind9
|
||||
~~~
|
||||
|
||||
NSEC3 peut être ajouté à la zone signée.
|
||||
|
||||
~~~
|
||||
# rndc signing -nsec3param 1 0 10 `cat /dev/urandom | tr -dc 'A-F0-9' | fold -w 8 | head -n 1` $domain
|
||||
~~~
|
||||
|
||||
### Modification de la zone
|
||||
|
||||
Attention le serial de la zone signée et du fichier original non signé peuvent différer (mise à jour dynamique).
|
||||
|
||||
Deux commandes pour savoir où en est le serial :
|
||||
|
||||
~~~
|
||||
$ host -t soa $domain 127.0.0.1
|
||||
# named-compilezone -j -i none -f raw -F text -o - $domain $domain.signed
|
||||
~~~
|
||||
|
||||
Une fois le bon serial récupéré on peut modifier la zone en incrémentant le serial trouvé.
|
||||
|
||||
~~~
|
||||
# Modifier le domaine example.org
|
||||
domain=example.org
|
||||
# Vérification du SOA pour le mettre à jour dans le fichier.
|
||||
host -t soa $domain
|
||||
# Arrêt (gel) de la mise à jour dynamique
|
||||
rndc freeze $domain
|
||||
# Mise à jour de la zone en pensant au SOA.
|
||||
vim /etc/bind/db.$domain
|
||||
# Vérification de la configuration.
|
||||
named-checkzone $domain /etc/bind/db.$domain
|
||||
named-checkconf
|
||||
# Relance de la mise à jour dynamique
|
||||
rndc thaw $domain
|
||||
~~~
|
||||
|
||||
La zone sera automatiquement resigné.
|
||||
|
||||
==== Rotation de la ZSK ====
|
||||
|
||||
On génère une nouvelle clé comme vu [plus haut](#ajouter-la-gestion-dnssec).
|
||||
|
||||
Le temps d'inactivation de l'ancienne clé ainsi que la date de suppression doit être indiqué.
|
||||
|
||||
~~~
|
||||
# La clé doit être retirée dans 2 jours
|
||||
dnssec-settime -I +2d OLD_ZSK.key
|
||||
|
||||
# La clé doit être supprimée dans 6 jours
|
||||
dnssec-settime -D +6d Kexample.tld.+008+25266.key
|
||||
~~~
|
||||
|
||||
Bind fera tout seul la prébublication et le rollover.
|
||||
|
||||
Les 2 jours et les 6 jours sont à modifier en fonction du ttl de la zone, il faut à minima :
|
||||
|
||||
* 2 ttl avant que la OLD_ZSK soit inactivé ;
|
||||
* durant ces 2 ttl, il y a 1 ttl où la OLD_ZSK est activée et la NEW_ZSK est publiée ;
|
||||
* à la fin des 2 ttl la NEW_ZSK est activée et la OLD_ZSK peut être supprimée.
|
||||
|
||||
## Reverse DNS
|
||||
|
||||
Un reverse DNS est un nom de domaine associé à une adresse IP. Le nom de cet enregistrement est *PTR*. Exemples :
|
||||
|
|
Loading…
Reference in a new issue