GNU/Linux >> Tutoriales Linux >  >> Linux

Configuración del servidor DNS solo de caché independiente en RHEL 7 Linux

Introducción

Unbound es un servidor DNS de validación, recursivo y de almacenamiento en caché. Habiendo dicho eso, el servidor DNS independiente no se puede usar como un servidor DNS autorizado, lo que significa que no se puede usar para alojar registros de nombres de dominio personalizados. Como resultado, si su objetivo es construir un servidor DNS de reenvío o solo caché, Unbound puede ser su opción preferida, ya que hace precisamente eso y lo hace bien.

Objetivo

El objetivo es proporcionar una guía de instalación y configuración rápida y fácil de seguir para el servidor DNS de solo caché Unbound en Redhat 7 Linux. Al final de esta guía, podrá usar el servidor DNS independiente de todos los clientes en su red de área local.

Requisitos

Acceso privilegiado a su servidor Redhat 7 Linux con repositorios RedHat estándar configurados.

Dificultad

MEDIO

Convenios

  • # – requiere que los comandos de Linux dados se ejecuten con privilegios de root, ya sea directamente como usuario root o mediante el uso de sudo comando
  • $ – requiere que los comandos de Linux dados se ejecuten como un usuario normal sin privilegios

Instrucciones

Instalación de herramientas Unbound y DNS

En el primer paso, vamos a instalar el servidor DNS Unbound real, así como las herramientas de DNS que eventualmente se utilizarán para probar la configuración del servidor de solo caché de DNS. Dado que tiene su repositorio de Redhat configurado correctamente, puede instalar ambos ejecutando el siguiente comando de Linux:

# yum install unbound bind-utils

Configuración básica independiente

Ahora, vamos a realizar una configuración básica del servidor de almacenamiento en caché de Unbound DNS. Esto se hará editando el archivo de configuración de Unbound /etc/unbound/unbound.conf ya sea usando el editor de texto o usando un sed a continuación comandos Primero, use su editor de texto preferido para ubicar la línea # interface: 0.0.0.0 y descoméntelo eliminando el # inicial señal. Alternativamente, use el siguiente sed comando:

# sed -i '/interface: 0.0.0.0$/s/#//' /etc/unbound/unbound.conf

La configuración anterior le indicará al servidor DNS Unbound que escuche en todas las interfaces de la red local. Luego, permita que sus clientes LAN consulten el caché de Unbound. Localice la línea correspondiente, cambie la dirección IP de loopback predeterminada 127.0.0.0/8 a la dirección de trabajo neto de su LAN, por ejemplo. 10.0.0.0/24 :

FROM:
access-control: 127.0.0.0/8 allow
TO
access-control: 10.0.0.0/24 allow

Lo anterior también se puede hacer por sed comando:

# sed -i 's/127.0.0.0\/8 allow/10.0.0.0\/24 allow/' /etc/unbound/unbound.conf

Configurar compatibilidad con DNSSEC

A continuación, instruimos al servidor DNS Unbound para que genere claves RSA a fin de proporcionar compatibilidad con 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

Todo lo que queda es comprobar la configuración de Unbound:

# unbound-checkconf
unbound-checkconf: no errors in /etc/unbound/unbound.conf

Habilitar e iniciar el servidor Unbound

En esta etapa, habilitaremos el servidor DNS independiente para que se inicie en el momento del arranque:

# systemctl enable unbound
Created symlink from /etc/systemd/system/multi-user.target.wants/unbound.service to /usr/lib/systemd/system/unbound.service.

e iniciar el servicio real:

# service unbound start
Redirecting to /bin/systemctl start  unbound.service

Asegúrese de que el servidor DNS independiente se esté ejecutando comprobando su estado:

[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).

Abrir puerto de cortafuegos DNS

Para permitir que sus clientes LAN locales se conecten a su nuevo servidor DNS de caché Unbound, deberá abrir un puerto DNS:

# firewall-cmd --permanent --add-service dns
success
# firewall-cmd --reload
success

Todo listo, ahora estamos listos para la prueba.

Pruebas

Finalmente, hemos llegado a un punto en el que podemos realizar algunas pruebas básicas de nuestro nuevo servidor de caché de DNS sin límites. Para esto usamos dig comando que forma parte de bind-utils instalado previamente paquete para realizar algunas consultas de DNS. Primero, ejecute la consulta DNS en el servidor DNS actual:

# 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

Tenga en cuenta que el tiempo de consulta es más de 817 mseg. Dado que hemos configurado un servidor de caché de DNS, esta consulta ahora se almacena en caché, por lo que cualquier resolución de consulta de DNS posterior de ese mismo nombre de dominio será bastante instantánea:

# 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

Por último, ahora puede probar la configuración del servidor DNS de Ubound desde sus clientes LAN locales apuntándolos a la dirección IP de Unbound, por ejemplo. 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. Cómo instalar un servidor DNS en RHEL 8 / CentOS 8 Linux

  2. Configuración del servidor WebDAV en Ubuntu Linux

  3. Configurar el servidor SysLog en CentOS 6 / RHEL 6

  4. Cómo configurar el servidor SysLog en CentOS 7 / RHEL 7

  5. Cómo configurar el servidor NFS en CentOS 7 / RHEL 7

Configuración del servidor Kali http

Cómo configurar el servidor NFS en CentOS 8 / RHEL 8

Cómo configurar un servidor Linux en Amazon AWS

Configurar el solucionador de DNS independiente en el servidor Ubuntu 20.04

¿Cómo configurar la replicación maestro-esclavo de MySQL en RHEL 7?

Cómo instalar y configurar el servidor DNS en Linux