GNU/Linux >> Tutoriels Linux >  >> Linux

Configuration du serveur DNS de cache uniquement indépendant sur RHEL 7 Linux

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

Linux
  1. Comment installer le serveur DNS sur RHEL 8 / CentOS 8 Linux

  2. Configurer le serveur SysLog sur CentOS 6 / RHEL 6

  3. Configurer Apache Traffic Server en tant que proxy inverse sous Linux

  4. Configurer le serveur OpenVPN sur Rocky Linux 8

  5. Comment configurer SSH sans mot de passe sous Linux

Configuration du serveur http Kali

Comment configurer le serveur NFS sur CentOS 8 / RHEL 8

Comment configurer un serveur Linux sur Amazon AWS

Configurer un résolveur DNS non lié sur le serveur Ubuntu 20.04

Comment configurer la réplication maître-esclave MySQL sur RHEL 7 ?

Comment installer et configurer le serveur DNS sous Linux