Présentation
Unbound est un serveur DNS de validation, récursif et de mise en cache. Cela dit, le serveur DNS non lié ne peut pas être utilisé comme serveur DNS faisant autorité, ce qui signifie qu'il ne peut pas être utilisé pour héberger des enregistrements de noms de domaine personnalisés. Par conséquent, si votre objectif est de créer un serveur DNS de cache uniquement ou de transfert, Unbound peut être votre choix préféré, car c'est exactement ce qu'il fait et il le fait bien.
Objectif
L'objectif est de fournir un guide d'installation et de configuration rapide et facile à suivre pour le serveur DNS de cache uniquement Unbound sur Redhat 7 Linux. À la fin de ce guide, vous serez en mesure d'utiliser le serveur DNS non lié de tous les clients de votre réseau local.
Exigences
Accès privilégié à votre serveur Linux Redhat 7 avec des référentiels RedHat standard configurés.
Difficulté
MOYEN
Congrès
- # - nécessite que les commandes linux données soient exécutées avec les privilèges root soit directement en tant qu'utilisateur root, soit en utilisant
sudo
commande - $ - nécessite que les commandes linux données soient exécutées en tant qu'utilisateur régulier non privilégié
Instructions
Installation des outils Unbound et DNS
Dans la première étape, nous allons installer le serveur DNS Unbound réel ainsi que les outils DNS qui seront éventuellement utilisés pour tester la configuration de votre serveur de cache DNS uniquement. Étant donné que votre référentiel Redhat est correctement configuré, vous pouvez installer les deux en exécutant la commande linux suivante :
# yum install unbound bind-utils
Configuration non liée de base
Nous allons maintenant effectuer une configuration de base du serveur de mise en cache DNS non lié uniquement. Cela se fera en éditant le fichier de configuration d'Unbound /etc/unbound/unbound.conf
soit en utilisant un éditeur de texte, soit en utilisant un sed
ci-dessous commandes. Tout d'abord, utilisez votre éditeur de texte préféré pour localiser la ligne # interface: 0.0.0.0
et décommentez-le en supprimant le premier #
signe. Vous pouvez également utiliser le sed
ci-dessous commande :
# sed -i '/interface: 0.0.0.0$/s/#//' /etc/unbound/unbound.conf
La configuration ci-dessus demandera au serveur DNS non lié d'écouter sur toutes les interfaces réseau locales. Ensuite, autorisez vos clients LAN à interroger le cache d'Unbound. Localisez la ligne appropriée, modifiez l'adresse IP de bouclage par défaut 127.0.0.0/8
à l'adresse réseau de votre réseau local, par exemple. 10.0.0.0/24
:
FROM: access-control: 127.0.0.0/8 allow TO access-control: 10.0.0.0/24 allow
Ce qui précède peut également être fait par sed
commande :
# sed -i 's/127.0.0.0\/8 allow/10.0.0.0\/24 allow/' /etc/unbound/unbound.conf
Configurer la prise en charge de DNSSEC
Ensuite, nous demandons au serveur DNS non lié de générer des clés RSA afin de fournir un support DNSSEC :
# unbound-control-setup setup in directory /etc/unbound generating unbound_server.key Generating RSA private key, 1536 bit long modulus .................++++ .........++++ e is 65537 (0x10001) generating unbound_control.key Generating RSA private key, 1536 bit long modulus .........++++ ..................................++++ e is 65537 (0x10001) create unbound_server.pem (self signed certificate) create unbound_control.pem (signed client certificate) Signature ok subject=/CN=unbound-control Getting CA Private Key Setup success. Certificates created. Enable in unbound.conf file to use
Il ne reste plus qu'à vérifier la configuration d'Unbound :
# unbound-checkconf unbound-checkconf: no errors in /etc/unbound/unbound.conf
Activer et démarrer le serveur Unbound
À ce stade, nous allons permettre au serveur DNS non lié de démarrer au démarrage :
# systemctl enable unbound Created symlink from /etc/systemd/system/multi-user.target.wants/unbound.service to /usr/lib/systemd/system/unbound.service.
et démarrez le service proprement dit :
# service unbound start Redirecting to /bin/systemctl start unbound.service
Assurez-vous que le serveur DNS indépendant est en cours d'exécution en vérifiant son état :
[root@localhost unbound]# service unbound status Redirecting to /bin/systemctl status unbound.service ● unbound.service - Unbound recursive Domain Name Server Loaded: loaded (/usr/lib/systemd/system/unbound.service; enabled; vendor preset: disabled) Active: active (running) since Wed 2016-12-07 10:32:58 AEDT; 6s ago Process: 2355 ExecStartPre=/usr/sbin/unbound-anchor -a /var/lib/unbound/root.key -c /etc/unbound/icannbundle.pem (code=exited, status=0/SUCCESS) Process: 2353 ExecStartPre=/usr/sbin/unbound-checkconf (code=exited, status=0/SUCCESS) Main PID: 2357 (unbound) CGroup: /system.slice/unbound.service └─2357 /usr/sbin/unbound -d Dec 07 10:32:57 localhost.localdomain systemd[1]: Starting Unbound recursive Domain Name Server... Dec 07 10:32:57 localhost.localdomain unbound-checkconf[2353]: unbound-checkconf: no errors in /etc/unbound/unbound.conf Dec 07 10:32:58 localhost.localdomain systemd[1]: Started Unbound recursive Domain Name Server. Dec 07 10:32:58 localhost.localdomain unbound[2357]: Dec 07 10:32:58 unbound[2357:0] warning: increased limit(open files) from 1024 to 8266 Dec 07 10:32:58 localhost.localdomain unbound[2357]: [2357:0] notice: init module 0: validator Dec 07 10:32:58 localhost.localdomain unbound[2357]: [2357:0] notice: init module 1: iterator Dec 07 10:32:58 localhost.localdomain unbound[2357]: [2357:0] info: start of service (unbound 1.4.20).
Ouvrir le port du pare-feu DNS
Pour permettre à vos clients LAN locaux de se connecter à votre nouveau serveur DNS de cache uniquement, vous devez ouvrir un port DNS :
# firewall-cmd --permanent --add-service dns success # firewall-cmd --reload success
Tout est fait, nous sommes maintenant prêts pour les tests.
Test
Enfin, nous sommes arrivés à un point où nous pouvons effectuer des tests de base de notre nouveau serveur de cache DNS non lié uniquement. Pour cela, nous utilisons dig
commande qui fait partie de bind-utils
précédemment installé package pour effectuer certaines requêtes DNS. Tout d'abord, exécutez la requête DNS sur le serveur DNS réel :
# dig @localhost example.com ; <<>> DiG 9.9.4-RedHat-9.9.4-37.el7 <<>> @localhost example.com ; (2 servers found) ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 53485 ;; flags: qr rd ra ad; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;example.com. IN A ;; ANSWER SECTION: example.com. 86400 IN A 93.184.216.34 ;; Query time: 817 msec ;; SERVER: 127.0.0.1#53(127.0.0.1) ;; WHEN: Wed Dec 07 10:40:46 AEDT 2016 ;; MSG SIZE rcvd: 56
Notez que le temps de requête est supérieur à 817 msec. Puisque nous avons configuré le serveur de cache DNS uniquement, cette requête est maintenant mise en cache afin que toute résolution de requête DNS ultérieure de ce même nom de domaine soit plutôt instantanée :
# dig @localhost example.com ; <<>> DiG 9.9.4-RedHat-9.9.4-37.el7 <<>> @localhost example.com ; (2 servers found) ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 34443 ;; flags: qr rd ra ad; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;example.com. IN A ;; ANSWER SECTION: example.com. 86272 IN A 93.184.216.34 ;; Query time: 0 msec ;; SERVER: 127.0.0.1#53(127.0.0.1) ;; WHEN: Wed Dec 07 10:42:54 AEDT 2016 ;; MSG SIZE rcvd: 56
Enfin, vous pouvez maintenant tester la configuration du serveur DNS Ubound à partir de vos clients LAN locaux en les pointant vers l'adresse IP d'Unbound, par exemple. 10.1.1.45 :
$ dig @10.1.1.45 example.com ; <<>> DiG 9.9.5-9+deb8u6-Debian <<>> @10.1.1.45 example.com ; (1 server found) ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: REFUSED, id: 50494 ;; flags: qr rd ad; QUERY: 0, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0 ;; WARNING: recursion requested but not available ;; Query time: 0 msec ;; SERVER: 10.1.1.45#53(10.1.1.45) ;; WHEN: Wed Dec 07 10:45:43 AEDT 2016 ;; MSG SIZE rcvd: 12