Diferencia entre revisiones de «Instalar Servidor DNS (Bind9)»

De enunpimpam
Saltar a: navegación, buscar
 
(No se muestran 20 ediciones intermedias del mismo usuario)
Línea 1: Línea 1:
 
[[category:Linux]]
 
[[category:Linux]]
 +
'''DNS Domain Name System'''
 +
Es un servicio que permite asignar nombres de dominio a direcciones IP.
  
Ubuntu 20.04 = 10.10.20.10
+
La configuración del servidor dns.
Nombre del domimio = vm.enunpimpam.com
+
 
Red = 10.10.20.0/24
+
*Ubuntu 20.04
 +
*IP = 10.10.20.10
 +
*Nombre del dominio = vm.enunpimpam.com
 +
*Red = 10.10.20.0/24
  
 
==Instalar Bind 9==
 
==Instalar Bind 9==
Línea 10: Línea 15:
  
 
===Configurar Bind9===
 
===Configurar Bind9===
 +
Todos los archivos para configurar Bind9 están dentro '''/etc/bind'''
 +
 +
Editaremos el archivo <code>named.conf.options</code>con la siguiente configuración.
 +
 +
*Permitir la consulta de dns desde red privada (LAN).
 +
*Permitir consulta recursiva
 +
*Especifique el puerto DNS (53)
 +
*Reenviadores (la consulta DNS se reenviará a los reenviadores cuando su servidor DNS local no pueda resolver la consulta)
 +
Según mi configuración de red, he especificado los siguientes parámetros:
  
'''/etc/bind/named.conf.options'''
 
 
  nano /etc/bind/named.conf.options
 
  nano /etc/bind/named.conf.options
 
<syntaxhighlight lang="bash">  
 
<syntaxhighlight lang="bash">  
Línea 24: Línea 37:
 
         };
 
         };
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
Ahora tenemos que configurar las zona y la búsqueda inversa, en el archivo <code>/etc/bind/named.conf.local</code>.
 +
*Zona directa vm.enunpimpam.com
 +
*Zona inversa 20.10.10.in-addr.arpa
  
'''/etc/bind/named.conf.local'''
 
 
  nano /etc/bind/named.conf.local
 
  nano /etc/bind/named.conf.local
 
<syntaxhighlight lang="bash">  
 
<syntaxhighlight lang="bash">  
Línea 39: Línea 54:
  
 
===Zona directa===
 
===Zona directa===
 +
Ahora tenemos que crear los archivos de configuración de la zona de búsqueda directa y de la búsqueda inversa.
 +
 
  cp db.local forward.vm.enunpimpam.com
 
  cp db.local forward.vm.enunpimpam.com
 
  nano forward.vm.enunpimpam.com
 
  nano forward.vm.enunpimpam.com
Línea 68: Línea 85:
 
;CNAME Record
 
;CNAME Record
 
ftp    IN      CNAME  capi.vm.enunpimpam.com.</syntaxhighlight>
 
ftp    IN      CNAME  capi.vm.enunpimpam.com.</syntaxhighlight>
{|class="cuidado"
+
Aquí, hemos agregado información sobre nuestro servidor DNS y también hemos agregado registros '''A''' para dos servidores, tambien hemos agregado registros para un servidor de correo y registros '''CNAME''' para el servidor ftp.
|-
+
 
|align="center"|<i class="fas fa-exclamation-circle text-danger fa-3x"></i>
+
<div class="alert alert-danger text-center">
|'''El PUNTO''' después de cada dominio
+
<i class="fas fa-exclamation-circle text-danger fa-3x"></i><span class="nota">'''Cuidado''' No olvidarse del '''punto''' final de cada dominio.</span>
|-
+
</div>
|}
+
 
 
===Zona Inversa===
 
===Zona Inversa===
 
  cp db.127 reverse.vm.enunpimpam.com
 
  cp db.127 reverse.vm.enunpimpam.com
Línea 98: Línea 115:
 
129      IN      PTR    thor.vm.enunpimpam.com.
 
129      IN      PTR    thor.vm.enunpimpam.com.
 
130      IN      PTR    mail.vm.enunpimpam.com.</syntaxhighlight>
 
130      IN      PTR    mail.vm.enunpimpam.com.</syntaxhighlight>
{|class="cuidado"
+
 
|-
+
<div class="alert alert-danger text-center">
|align="center"|<i class="fas fa-exclamation-circle text-danger fa-3x"></i>
+
<i class="fas fa-exclamation-circle text-danger fa-3x"></i><span class="nota">'''Cuidado''' No olvidarse del '''punto''' final de cada dominio.</span>
|'''El PUNTO''' después de cada dominio
+
</div>
|-
+
 
|}
 
 
==Comprobación==
 
==Comprobación==
 +
Reincidamos el servicio Bind9
 
  systemctl restart bind9
 
  systemctl restart bind9
  
 +
 +
<div class="alert alert-info">Si el Firewall del sistema operativo esta activado, hay que permitir el acceso al puetro 43 con el siguiente comando.</div>
 
  ufw allow 43
 
  ufw allow 43
 
<syntaxhighlight>
 
<syntaxhighlight>
Línea 113: Línea 132:
 
root@svm:/etc/bind#</syntaxhighlight>
 
root@svm:/etc/bind#</syntaxhighlight>
  
'''comprobacion de la configuracion'''
+
===comprobación de la configuración===
 +
Comprobar que la configuración del archivo <code>named.conf.local</code> es correcta.(solo en caso de fallo devuelve resultado).
  
 
  named-checkconf named.conf.local
 
  named-checkconf named.conf.local
  
 +
Para comprobar que la búsqueda en la zona directa esta bien configurada.
 
  named-checkzone vm.enunpimpam.com forward.vm.enunpimpam.com
 
  named-checkzone vm.enunpimpam.com forward.vm.enunpimpam.com
 
<syntaxhighlight>zone vm.enunpimpam.com/IN: loaded serial 2
 
<syntaxhighlight>zone vm.enunpimpam.com/IN: loaded serial 2
 
OK</syntaxhighlight>
 
OK</syntaxhighlight>
  
 
+
Para comprobar que la búsqueda en la zona inversa.
 
  named-checkzone vm.enunpimpam.com reverse.vm.enunpimpam.com
 
  named-checkzone vm.enunpimpam.com reverse.vm.enunpimpam.com
 
<syntaxhighlight>zone vm.enunpimpam.com/IN: loaded serial 1
 
<syntaxhighlight>zone vm.enunpimpam.com/IN: loaded serial 1
 
OK</syntaxhighlight>
 
OK</syntaxhighlight>
===Testeando servidor DNS===
+
 
 +
===Testando servidor DNS===
 +
 
 +
Para comprobar el funcionamiento del servidor DNS, utilizaremos otra maquina con Linux,  editamos el archivo <code>resolv.conf</code> introducimos la IP del servidor DNS y el nombre del dominio.
  
 
  nano /etc/resolv.conf
 
  nano /etc/resolv.conf
Línea 131: Línea 155:
 
options edns0
 
options edns0
 
search vm.enunpimpam.com</syntaxhighlight>
 
search vm.enunpimpam.com</syntaxhighlight>
 +
 +
Realizamos una petición de consulta al servidor principal del dominio sobre el nombre del dominio. <code class="alert-success>vm.enunpimpam.com</code>
  
 
   dig primary.vm.enunpimpam.com
 
   dig primary.vm.enunpimpam.com
 +
 
<syntaxhighlight>
 
<syntaxhighlight>
 
; <<>> DiG 9.16.1-Ubuntu <<>> primary.vm.enunpimpam.com
 
; <<>> DiG 9.16.1-Ubuntu <<>> primary.vm.enunpimpam.com
Línea 149: Línea 176:
 
;; WHEN: dom may 10 17:30:22 UTC 2020
 
;; WHEN: dom may 10 17:30:22 UTC 2020
 
;; MSG SIZE  rcvd: 54</syntaxhighlight>
 
;; MSG SIZE  rcvd: 54</syntaxhighlight>
 +
 +
 +
Ahora realizamos una consulta sombre la IP del servidor DNS:
 +
 +
dig -x 10.10.20.129
 +
 +
<syntaxhighlight>
 +
; <<>> DiG 9.16.1-Ubuntu <<>> -x 10.10.20.129
 +
;; global options: +cmd
 +
;; Got answer:
 +
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 52575
 +
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1
 +
 +
;; OPT PSEUDOSECTION:
 +
; EDNS: version: 0, flags:; udp: 65494
 +
;; QUESTION SECTION:
 +
;129.20.10.10.in-addr.arpa. IN PTR
 +
 +
;; Query time: 3 msec
 +
;; SERVER: 127.0.0.53#53(127.0.0.53)
 +
;; WHEN: dom may 10 17:33:46 UTC 2020
 +
;; MSG SIZE  rcvd: 54</syntaxhighlight>
 +
 +
POr ultimo comprobamos que el servidor DNS resuelve correctamente los nombres del dominio y las IP
 +
 +
  nslookup primary.vm.enunpimpam.com
 +
<syntaxhighlight>
 +
Server: 10.10.20.128
 +
Address: 10.10.20.128#53
 +
 +
Name: primary.vm.enunpimpam.com
 +
Address: 10.10.20.128
 +
</syntaxhighlight>

Revisión actual del 11:16 14 may 2020

DNS Domain Name System Es un servicio que permite asignar nombres de dominio a direcciones IP.

La configuración del servidor dns.

  • Ubuntu 20.04
  • IP = 10.10.20.10
  • Nombre del dominio = vm.enunpimpam.com
  • Red = 10.10.20.0/24

Instalar Bind 9

apt-get install bind9 bind9utils bind9-doc dnsutils

Configurar Bind9

Todos los archivos para configurar Bind9 están dentro /etc/bind

Editaremos el archivo named.conf.optionscon la siguiente configuración.

  • Permitir la consulta de dns desde red privada (LAN).
  • Permitir consulta recursiva
  • Especifique el puerto DNS (53)
  • Reenviadores (la consulta DNS se reenviará a los reenviadores cuando su servidor DNS local no pueda resolver la consulta)

Según mi configuración de red, he especificado los siguientes parámetros:

nano /etc/bind/named.conf.options
options {
        directory "/var/cache/bind";
        auth-nxdomain no;    # conform to RFC1035
     // listen-on-v6 { any; };
        listen-on port 53 { localhost; 10.10.20.0/24; };
        allow-query { localhost; 10.10.20.0/24; };
        forwarders { 8.8.8.8; };
        recursion yes;
        };

Ahora tenemos que configurar las zona y la búsqueda inversa, en el archivo /etc/bind/named.conf.local.

  • Zona directa vm.enunpimpam.com
  • Zona inversa 20.10.10.in-addr.arpa
nano /etc/bind/named.conf.local
zone    "vm.enunpimpam.com"   {
        type master;
        file    "/etc/bind/forward.vm.enunpimpam.com";
 };

zone   "20.10.10.in-addr.arpa"        {
       type master;
       file    "/etc/bind/reverse.vm.enunpimpam.com";
 };

Zona directa

Ahora tenemos que crear los archivos de configuración de la zona de búsqueda directa y de la búsqueda inversa.

cp db.local forward.vm.enunpimpam.com
nano forward.vm.enunpimpam.com
;
; BIND data file for local loopback interface
;
$TTL    604800
@       IN      SOA     primary.vm.enunpimpam.com. root.primary.vm.enunpimpam.com. (
                              2         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;Name Server Information
@       IN      NS      primary.vm.enunpimpam.com.

;IP address of Your Domain Name Server(DNS)
primary IN       A      10.10.20.10

;Mail Server MX (Mail exchanger) Record
vm.enunpimpam.com. IN  MX  10  mail.vm.enunpimpam.com.

;A Record for Host names
capi    IN       A       10.10.20.128
thor    IN       A       10.10.20.129
mail    IN       A       10.10.20.130

;CNAME Record
ftp     IN      CNAME   capi.vm.enunpimpam.com.

Aquí, hemos agregado información sobre nuestro servidor DNS y también hemos agregado registros A para dos servidores, tambien hemos agregado registros para un servidor de correo y registros CNAME para el servidor ftp.

Cuidado No olvidarse del punto final de cada dominio.

Zona Inversa

cp db.127 reverse.vm.enunpimpam.com
nano reverse.vm.enunpimpam.com
;
; BIND reverse data file for local loopback interface
;
$TTL    604800
@       IN      SOA     vm.enunpimpam.com. root.vm.enunpimpam.com. (
                              1         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;Your Name Server Info
@       IN      NS      primary.vm.enunpimpam.com.
primary IN      A       10.10.20.10

;Reverse Lookup for Your DNS Server
10      IN      PTR     primary.vm.enunpimpam.com.

;PTR Record IP address to HostName
128      IN      PTR     capi.vm.enunpimpam.com.
129      IN      PTR     thor.vm.enunpimpam.com.
130      IN      PTR     mail.vm.enunpimpam.com.

Cuidado No olvidarse del punto final de cada dominio.

Comprobación

Reincidamos el servicio Bind9

systemctl restart bind9


Si el Firewall del sistema operativo esta activado, hay que permitir el acceso al puetro 43 con el siguiente comando.
ufw allow 43
Rules updated
Rules updated (v6)
root@svm:/etc/bind#

comprobación de la configuración

Comprobar que la configuración del archivo named.conf.local es correcta.(solo en caso de fallo devuelve resultado).

named-checkconf named.conf.local

Para comprobar que la búsqueda en la zona directa esta bien configurada.

named-checkzone vm.enunpimpam.com forward.vm.enunpimpam.com
zone vm.enunpimpam.com/IN: loaded serial 2
OK

Para comprobar que la búsqueda en la zona inversa.

named-checkzone vm.enunpimpam.com reverse.vm.enunpimpam.com
zone vm.enunpimpam.com/IN: loaded serial 1
OK

Testando servidor DNS

Para comprobar el funcionamiento del servidor DNS, utilizaremos otra maquina con Linux, editamos el archivo resolv.conf introducimos la IP del servidor DNS y el nombre del dominio.

nano /etc/resolv.conf
nameserver 10.10.20.10
options edns0
search vm.enunpimpam.com

Realizamos una petición de consulta al servidor principal del dominio sobre el nombre del dominio. vm.enunpimpam.com

 dig primary.vm.enunpimpam.com
; <<>> DiG 9.16.1-Ubuntu <<>> primary.vm.enunpimpam.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 34464
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;primary.vm.enunpimpam.com.	IN	A

;; Query time: 0 msec
;; SERVER: 127.0.0.53#53(127.0.0.53)
;; WHEN: dom may 10 17:30:22 UTC 2020
;; MSG SIZE  rcvd: 54


Ahora realizamos una consulta sombre la IP del servidor DNS:

dig -x 10.10.20.129
; <<>> DiG 9.16.1-Ubuntu <<>> -x 10.10.20.129
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 52575
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;129.20.10.10.in-addr.arpa.	IN	PTR

;; Query time: 3 msec
;; SERVER: 127.0.0.53#53(127.0.0.53)
;; WHEN: dom may 10 17:33:46 UTC 2020
;; MSG SIZE  rcvd: 54

POr ultimo comprobamos que el servidor DNS resuelve correctamente los nombres del dominio y las IP

 nslookup primary.vm.enunpimpam.com
Server:		10.10.20.128
Address:	10.10.20.128#53

Name:	primary.vm.enunpimpam.com
Address: 10.10.20.128