GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Configuration de DNSSEC sur Bind 9.8.2 sur CentOS, RHEL, Ubuntu et Debian

Ce tutoriel vous aidera à configurer DNSSEC sur Bind9 (version 9.8.2) sur le système d'exploitation CentOS. Cependant, la procédure fonctionnera également sur RedHat Enterprise Linux Server, Ubuntu et Debian. J'expliquerai comment activer DNSSEC sur vos serveurs de noms faisant autorité, créer des clés, signer des zones, ajouter des ancres de confiance à l'aide de la validation et des tests DNSSEC Lookaside.

Si vous débutez dans la configuration de Bind, consultez ce guide pour en savoir plus sur la configuration de BIND. De plus, si vous n'êtes pas sûr de ce qu'est DNSSEC et pourquoi vous devriez l'activer ? puis cliquez ici.

Avis de non-responsabilité : Je partage la procédure que j'ai apprise et essayée sur mon banc d'essai et il n'y a aucune garantie que cela fonctionnera sur votre environnement. Cependant, vous pouvez essayer votre banc d'essai avant de le configurer immédiatement sur vos systèmes de production.

Allons-nous avancer ?

Préparez votre environnement DNS avec la configuration Bind.

Comme ce didacticiel parlera de DNSSEC sur Bind, assurez-vous que l'environnement de travail de Bind est prêt. Pour installer et configurer Bind, suivez ce guide simple.

Prérequis :

Étape 1 : Téléchargez et installez le package dnssec-tools. Nous utiliserons ce package pour signer vos zones.

$wget http://www.dnssec-tools.org/download/dnssec-tools-2.0.tar.gz
$tar xvzf dnssec-tools-2.0.tar.gz
$cd dnssec-tools-2.0

Sur debian et Ubuntu, vous pouvez l'installer via apt-get.

$apt-get install dnssec-tools

Étape 2 : Activer DNSSEC, Validation et Lookaside

$vi /etc/named.conf

Cependant le chemin de named.conf peut varier selon votre environnement. Vous le cherchez dans /etc/named/named.conf ou /var/named/named.conf .

Attention aux 'options ‘ directive dans named.conf . Si vous ne le trouvez pas ici, vous pouvez le trouver named.options dossier. Quoi qu'il en soit, cela ne fait aucune différence.

Sous la directive Options, modifiez les attributs ci-dessous.

dnssec-enable yes;
dnssec-validation yes;
dnssec-lookaside auto;

D'accord! Voici à quoi ressemble ma directive Options,

options {
listen-on port 53 { 10.180.1.115; };
listen-on-v6 port 53 { ::1; };
version "not currently available";
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
allow-query { any; };
recursion no;
dnssec-enable yes;
dnssec-validation yes;
dnssec-lookaside auto;
/* Path to ISC DLV key */
 bindkeys-file "/etc/named.iscdlv.key";
managed-keys-directory "/var/named/dynamic";};

fichier de clés de liaison :Cette ligne n'est requise que si les clés de liaison se trouvent à un emplacement différent. Quoi qu'il en soit, nous en reparlerons plus tard.

dnssec-lookaside automatique  :Ce paramètre indique à Bind de lire la clé DLV (validation DNSSEC Lookaside) à partir de bind.keys pour la première fois, il s'exécute. Le DLV actuel est dlv.isc.org clé.

Pour mieux le comprendre :Pour créer une chaîne de confiance, le chemin DNS complet de la zone racine jusqu'à votre propre zone doit être signé. Prenons par exemple le domaine techglimpse.com. La zone racine de techglimpse.com est .com  qui doit être signé, puis techglimpse.com, la zone doit être signée. Mais tous les domaines de premier niveau (TLD) ne sont pas signés (au moment de la rédaction de cet article). Si le parent n'est pas signé, la chaîne de confiance est rompue et vous ne pouvez pas utiliser la clé de la zone racine comme ancre de confiance dans la configuration de BIND.

C'est la raison pour laquelle la validation DNSSEC lookaside (DLV) a été présenté. Il s'agit en fait d'un référentiel alternatif pour les clés de confiance, où l'on peut soumettre ses clés de zone, s'il n'y a pas de chemin entièrement signé de la zone racine à votre propre zone. Le registre DLV fonctionnel est dlv.isc.org. Par défaut, la clé de la zone racine et la clé dlv.isc.org sont incluses dans /etc/named.iscdlv.key et qui va comme valeur dans bindkeys-file attribut dans Options directive. Si vous ne le trouvez pas automatiquement dans named.conf ou named.options , mettez à jour votre bind (yum install bind9 ) et vérifiez à nouveau.

Learn more about DLV registry:
DLV Solution by ISC : https://www.isc.org/solutions/dlv
DLV Background : https://dlv.isc.org/about/background
Status of TLDs signed: http://stats.research.icann.org/dns/tld_report/

validation DNSsec automatique : Cette option n'est disponible qu'à partir de Bind 9.8, 9.9.  Bind 9.7 ne prend pas en charge auto option pour dnssec-validation, à la place nous utilisons dnssec-validation :oui  ce qui signifie que la clé de la zone racine n'est pas chargée. Pour résoudre le problème, nous pouvons utiliser bind.keys fichier.

$more bind.keys
managed-keys {
        # ISC DLV: See https://www.isc.org/solutions/dlv for details.
        # NOTE: This key is activated by setting "dnssec-lookaside auto;"
        # in named.conf.
        dlv.isc.org. initial-key 257 3 5 "BEAAAAPHMu/5onzrEE7z1egmhg/WPO0+juoZrW3euWEn4MxDCE1+lLy2
                brhQv5rN32RKtMzX6Mj70jdzeND4XknW58dnJNPCxn8+jAGl2FZLK8t+
                1uq4W+nnA3qO2+DL+k6BD4mewMLbIYFwe0PG73Te9fZ2kJb56dhgMde5
                ymX4BI/oQ+cAK50/xvJv00Frf8kw6ucMTwFlgPe+jnGxPPEmHAte/URk
                Y62ZfkLoBAADLHQ9IrS2tryAe7mbBZVcOwIeU/Rw/mRx/vwwMCTgNboM
                QKtUdvNXDrYJDSHZws3xiRXF1Rf+al9UmZfSav/4NWLKjHzpT59k/VSt
                TDN0YUuWrBNh";

        # ROOT KEY: See https://data.iana.org/root-anchors/root-anchors.xml
        # for current trust anchor information.
        # NOTE: This key is activated by setting "dnssec-validation auto;"
        # in named.conf.
        . initial-key 257 3 8 "AwEAAagAIKlVZrpC6Ia7gEzahOR+9W29euxhJhVVLOyQbSEW0O8gcCjF
                FVQUTf6v58fLjwBd0YI0EzrAcQqBGCzh/RStIoO8g0NfnfL2MTJRkxoX
                bfDaUeVPQuYEhg37NZWAJQ9VnMVDxP/VHL496M/QZxkjf5/Efucp2gaD
                X6RS6CXpoY68LsvPVjR0ZSwzz1apAzvN9dlzEheX7ICJBBtuA6G3LQpz
                W5hOA2hzCTMjJPJ8LbqF6dsV6DoBQzgul0sGIcGOYl7OyQdXfZ57relS
                Qageu+ipAdTTJ25AsRTAoub8ONGcLmqrAmRLKBP1dfwhYB4N7knNnulq
                QxA+Uk1ihz0=";
};

Ensuite, vous pouvez inclure les bind.keys dans named.conf ou named.options.

include "/etc/bind/bind.keys";

Remarque :Vérifiez le chemin d'accès correct de bind.keys

Une fois terminé, redémarrez Bind.

$service named restart
or
$/etc/init.d/bind9 restart
or
$rndc reload

D'accord! Nous avons maintenant activé DNSSEC sur Bind. Ensuite, nous verrons comment signer une zone.

Comment signer une zone dans DNSSEC ?

Pour signer une zone, nous allons utiliser dnsssec-tools, que nous avons installé au début de ce tutoriel. dnssec-tools est livré avec des commandes de signature de zone qui sont un wrapper sur dnssec-keygen et dnssec-signzone.

Consultez la page de manuel de zonesigner pour plus d'informations.

$man zonesigner

Emplacement du fichier de configuration dnssec-tools : /usr/local/etc/dnssec-tools/dnssec-tools.conf . Cependant, le chemin peut varier selon votre système.

Pour signer la zone, la commande se déroule ainsi :

zonesigner -genkeys -usensec3 -zone <domain-name> <zone-file>
$zonesigner -genkeys -usensec3 -zone techglimpse.com db.techglimpse.com
if zonesigner appears hung, strike keys until the program completes
(see the "Entropy" section in the man page for details)
Generating key pair......................................++++++ ..............++++++
Generating key pair......++++++ ..++++++
Generating key pair...................................+++ ..................................+++
Verifying the zone using the following algorithms: NSEC3RSASHA1.
Zone signing complete:
Algorithm: NSEC3RSASHA1: KSKs: 1 active, 0 stand-by, 0 revoked
ZSKs: 1 active, 1 stand-by, 0 revoked
zone signed successfully
techglimpse.com:
KSK (cur) 47781 2048 11/14/13 (techglimpse.com-signset-00003)
ZSK (cur) 06809 1024 11/14/13 (techglimpse.com-signset-00001)
ZSK (pub) 26330 1024 11/14/13 (techglimpse.com-signset-00002)
zone will expire in 30 days
DO NOT delete the keys until this time has passed.

Extrayez le répertoire pour vérifier les fichiers clés.

$ ls -lrt
-rw-r--r--. 1 root root 571 Oct 14 14:09 db.10.180.4
-rw-------. 1 root root 1015 Nov 14 11:45 Ktecglimpse.com.+007+06809.private
-rw-r--r--. 1 root root 436 Nov 14 11:45 Ktechglimpse.com.+007+06809.key
-rw-------. 1 root root 1015 Nov 14 11:45 Ktechglimpse.com.+007+26330.private
-rw-r--r--. 1 root root 437 Nov 14 11:45 Ktechglimpse.com.+007+26330.key
-rw-------. 1 root root 1779 Nov 14 11:45 Ktechglimpse.com.+007+47781.private
-rw-r--r--. 1 root root 611 Nov 14 11:45 Ktechglimpse.com.+007+47781.key
-rw-r--r--. 1 root root 777 Nov 14 11:45 db.techglimpse.com
-rw-r--r--. 1 root root 173 Nov 14 11:45 dsset-techglimpse.com.
-rw-r--r--. 1 root root 7183 Nov 14 11:45 db.techglimpse.com.signed
-rw-r--r--. 1 root root 2172 Nov 14 11:45 techglimpse.com.krf

Vérifiez si tout s'est bien passé lors de la signature.

$ donuts --level 8 -v db.techglimpse.com.signed techglimpse.com
--- loading rule file /usr/local/share/dnssec-tools/donuts/rules/check_nameserve rs.txt
 rules: MEMORIZE_NS_ADDRS DNS_SERVERS_MATCH_DATA
--- loading rule file /usr/local/share/dnssec-tools/donuts/rules/dns.errors.txt
 rules: DNS_SOA_REQUIRED MEMORIZE_NS_CNAME_RECORDS DNS_NS_NO_CNAME
--- loading rule file /usr/local/share/dnssec-tools/donuts/rules/dnssec.rules.tx t
 rules: DNSSEC_RRSIG_TTL_MATCH_ORGTTL DNSSEC_MEMORIZE_NS_RECORDS DNSSEC_CHECK _IF_NSEC3 DNSSEC_MISSING_NSEC_RECORD1 DNSSEC_MISSING_RRSIG_RECORD1 DNSSEC_RRSIG_ NOT_SIGNING_RRSIG DNSSEC_RRSIG_FOR_NS_GLUE_RECORD DNSSEC_NSEC_FOR_NS_GLUE_RECORD DNSSEC_RRSIG_SIGEXP DNSSEC_NSEC_TTL DNSSEC_NSEC3_TTL DNSSEC_DNSKEY_MUST_HAVE_SA ME_NAME DNSSEC_DNSKEY_PROTOCOL_MUST_BE_3 DNSSEC_BOGUS_NS_MEMORIZE DNSSEC_MISSING _RRSIG_RECORD2 DNSSEC_RRSIG_TTL_MUST_MATCH_RECORD DNSSEC_MISSING_NSEC_RECORD2 DN SSEC_RRSIG_SIGNER_NAME_MATCHES DNSSEC_NSEC_RRSEC_MUST_NOT_BE_ALONE DNSSEC_MEMORI ZE_KEYS DNSSEC_RRSIGS_VERIFY DNSSEC_TWO_ZSKS DNSSEC_OPENSSL_KEY_ISSUES
--- loading rule file /usr/local/share/dnssec-tools/donuts/rules/nsec_check.rule s.txt
 rules: DNSSEC_NSEC_MEMORIZE DNSSEC_NSEC3_MEMORIZE DNSSEC_NSEC3_CHECK DNSSEC_ NSEC_CHECK
--- loading rule file /usr/local/share/dnssec-tools/donuts/rules/parent_child.ru les.txt
 rules: DNS_MULTIPLE_NS DNSSEC_SUB_NOT_SECURE DNSSEC_DNSKEY_PARENT_HAS_VALID_ DS DNSSEC_DS_CHILD_HAS_MATCHING_DNSKEY
--- loading rule file /usr/local/share/dnssec-tools/donuts/rules/recommendations .rules.txt
 rules: DNS_REASONABLE_TTLS DNS_NO_DOMAIN_MX_RECORDS
--- Analyzing individual records in db.techglimpse.com.signed
--- Analyzing records for each name in db.techglimpse.com.signed
techglimpse.com:
 Rule Name: DNS_MULTIPLE_NS
 Level: 6
 Warning: Only 1 NS record(s) for techglimpse.com found, but at least 2
 are suggested/required
 Details: Tests to see if at least two NS records exist for a
 delegated zone.
results on testing techglimpse.com:
 rules considered: 38
 rules tested: 30
 records analyzed: 33
 names analyzed: 10
 errors found: 0

Remplacez maintenant la zone signée (techglimpse.com) dans named.conf

zone "techglimpse.com" {
 type master;
 file "/var/named/zones/master/db.techglimpse.com.signed";
 };

Redémarrez Bind comme ci-dessous,

$service named restart
or
$/etc/init.d/bind9 restart

Tester la configuration DNSSEC avec dig

Le format de la commande dig ressemble à ceci.

$dig @<dns_server> +dnssec <domain_name>

Dans la sortie, recherchez "ad ‘ dans les drapeaux.

;; flags: qr rd ra ad; QUERY: 1, ANSWER: 2, AUTHORITY: 3, ADDITIONAL: 1

Annonce représente l'indicateur de données authentifiées, qui ne sera défini que si le résolveur a validé la réponse qu'il a reçue du serveur de noms faisant autorité.

C'est ça! Si tout s'est bien passé, vous avez réussi à configurer DNSSEC de base sur Bind 9.8.2.

LIRE :Guide du débutant sur DNSSEC

LIRE :Comment identifier un domaine signé DNSSEC ou non ?


Ubuntu
  1. Comment installer le chargeur Ioncube sur CentOS, Debian et Ubuntu

  2. Comment installer Ansible sur CentOS 7 / RHEL 7 / Ubuntu 18.04 / 16.04 &Debian 9

  3. Installer Node.js dans Ubuntu et Debian

  4. Installez Real Player 11 sur CentOS, RHEL, Fedora et Ubuntu

  5. CentOS / RHEL 7 :Configuration d'un serveur NFS et d'un client NFS

Comment installer TeamViewer 15 sur Fedora/RHEL/CentOS et Debian/Ubuntu

Comment installer VestaCP sur Ubuntu/ Debian et RHEL/Centos

Installer et configurer OwnCloud sur Ubuntu 21 / Debian 11

Comment installer et configurer Smartctl sur CentOS/RHEL 8 et Ubuntu 20.04

Comment installer Zabbix sur RHEL/CentOS et Debian/Ubuntu

Comment installer TeamViewer 15 sur RHEL/CentOS/Fedora et Debian/Ubuntu