Instalar Servidor DNS (Bind9)
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