Diferencia entre revisiones de «Instalar Servidor DNS (Bind9)»
(No se muestran 27 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 | + | |
− | 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: | ||
− | |||
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 | ||
− | |||
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 46: | Línea 63: | ||
; | ; | ||
$TTL 604800 | $TTL 604800 | ||
− | @ IN SOA | + | @ IN SOA primary.vm.enunpimpam.com. root.primary.vm.enunpimpam.com. ( |
2 ; Serial | 2 ; Serial | ||
604800 ; Refresh | 604800 ; Refresh | ||
Línea 67: | Línea 84: | ||
;CNAME Record | ;CNAME Record | ||
− | ftp IN CNAME | + | ftp IN CNAME capi.vm.enunpimpam.com.</syntaxhighlight> |
− | + | 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. | |
− | + | ||
− | + | <div class="alert alert-danger text-center"> | |
− | + | <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 | + | cp db.127 reverse.vm.enunpimpam.com |
+ | nano reverse.vm.enunpimpam.com | ||
+ | <syntaxhighlight>; | ||
+ | ; 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.</syntaxhighlight> | ||
+ | |||
+ | <div class="alert alert-danger text-center"> | ||
+ | <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> | ||
+ | |||
+ | ==Comprobación== | ||
+ | Reincidamos el servicio 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 | ||
+ | <syntaxhighlight> | ||
+ | Rules updated | ||
+ | Rules updated (v6) | ||
+ | root@svm:/etc/bind#</syntaxhighlight> | ||
+ | |||
+ | ===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 | ||
+ | |||
+ | Para comprobar que la búsqueda en la zona directa esta bien configurada. | ||
+ | named-checkzone vm.enunpimpam.com forward.vm.enunpimpam.com | ||
+ | <syntaxhighlight>zone vm.enunpimpam.com/IN: loaded serial 2 | ||
+ | OK</syntaxhighlight> | ||
+ | |||
+ | Para comprobar que la búsqueda en la zona inversa. | ||
+ | named-checkzone vm.enunpimpam.com reverse.vm.enunpimpam.com | ||
+ | <syntaxhighlight>zone vm.enunpimpam.com/IN: loaded serial 1 | ||
+ | OK</syntaxhighlight> | ||
+ | |||
+ | ===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 | ||
+ | <syntaxhighlight>nameserver 10.10.20.10 | ||
+ | options edns0 | ||
+ | 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 | ||
+ | |||
+ | <syntaxhighlight> | ||
+ | ; <<>> 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</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
Sumario
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.options
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:
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
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