DNS o sistema de nombres de dominio, como sabemos, es un servicio de Internet que se utiliza para traducir el dominio fácil de usar en direcciones IP fáciles de usar para la computadora. No solo podemos traducir nombres de dominio a direcciones IP, también podemos realizar una traducción inversa, es decir, de direcciones IP a traducciones de nombres de dominio. En este tutorial, vamos a aprender a configurar un servidor DNS privado implementando BIND9 en el sistema Ubuntu/Debian.
BIND o BIND 9 es una implementación de código abierto de DNS, disponible para casi todas las distribuciones de Linux. Soportes BIND Dominio de nombre de Internet de Berkeley Y nos permite publicar información de DNS en Internet y también nos permite resolver consultas de DNS para los usuarios. BIND es, con mucho, el software de DNS más utilizado en Internet. En este tutorial usaré lo siguiente:
- Enlace IP del servidor (Ubuntu / Debian) = 192.168.0.40
- Nombre de dominio = linuxtechi.local
- Red privada = 192.168.0.0/24
Así que comencemos el tutorial con la instalación de paquetes para BIND 9….
Instalación de Bind 9 en el sistema Debian/Ubuntu:
Necesitamos instalar ‘bind9 bind9utils bind9-doc dnsutils’ para instalar BIND 9 y herramientas relacionadas. Abra su terminal y ejecute el siguiente comando,
[email protected]:~$ sudo apt-get install bind9 bind9utils bind9-doc dnsutils
Configuración de bind 9 en el sistema Debian/Ubuntu:
Una vez instalados todos los paquetes, pasaremos a la parte de configuración. Todos los archivos de configuración para BIND se encuentran en la carpeta ‘/etc/bind’.
Uno de los archivos de configuración importantes para bind es «/etc/bind/named.conf.opciones“, desde este archivo podemos configurar los siguientes parámetros:
- Permitir consulta a su dns desde su red privada (como sugiere el nombre, solo los sistemas de su red privada pueden consultar el servidor dns para la traducción de nombre a ip y viceversa)
- 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 la configuración de mi red privada, he especificado los siguientes parámetros:
[email protected]:~$ sudo vi /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; 192.168.0.0/24; }; allow-query { localhost; 192.168.0.0/24; }; forwarders { 8.8.8.8; }; recursion yes; };
El siguiente archivo de configuración importante es “/etc/bind/named.conf.local“, en este archivo definiremos los archivos de zona para nuestro dominio, edite el archivo agregue las siguientes entradas:
[email protected]:~$ cd /etc/bind [email protected]:~$ sudo vi named.conf.local zone "linuxtechi.local" { type master; file "/etc/bind/forward.linuxtechi.local"; }; zone "0.168.192.in-addr.arpa" { type master; file "/etc/bind/reverse.linuxtechi.local"; };
Guarde el archivo y salga. Aquí hemos mencionado ubicaciones para nuestro archivo de zona de búsqueda directa y archivos de zona de búsqueda inversa. A continuación, crearemos los archivos de zona de avance y retroceso mencionados.
En primer lugar, cree el archivo de zona de búsqueda directa, los archivos de zona de muestra (db.local) ya están allí en ‘carpeta /etc/bind‘, podemos usar y copiar el archivo de zona de muestra,
[email protected]:/etc/bind$ sudo cp db.local forward.linuxtechi.local [email protected]-server:/etc/bind$ sudo vi forward.linuxtechi.local $TTL 604800 @ IN SOA primary.linuxtechi.local. root.primary.linuxtechi.local. ( 6 ; Serial 604820 ; Refresh 86600 ; Retry 2419600 ; Expire 604600 ) ; Negative Cache TTL ;Name Server Information @ IN NS primary.linuxtechi.local. ;IP address of Your Domain Name Server(DNS) primary IN A 192.168.0.40 ;Mail Server MX (Mail exchanger) Record linuxtechi.local. IN MX 10 mail.linuxtechi.local. ;A Record for Host names www IN A 192.168.0.50 mail IN A 192.168.0.60 ;CNAME Record ftp IN CNAME www.linuxtechi.local.
Su archivo de búsqueda directa debería verse como algo a continuación:
Aquí, hemos agregado información sobre nuestro servidor DNS y también hemos agregado registros A para un par de servidores, también hemos agregado un registro para un servidor de correo y registro CNAME para servidor ftp. Asegúrese de editar este archivo para adaptarlo a su red.
A continuación, crearemos un archivo de zona de búsqueda inversa en la misma ubicación, el archivo de zona de búsqueda inversa de muestra está presente en ‘/etc/bind‘carpeta.
[email protected]:/etc/bind$ sudo cp db.127 reverse.linuxtechi.local [email protected]:~$ sudo vi /etc/bind/reverse.linuxtechi.local $TTL 604800 @ IN SOA linuxtechi.local. root.linuxtechi.local. ( 21 ; Serial 604820 ; Refresh 864500 ; Retry 2419270 ; Expire 604880 ) ; Negative Cache TTL ;Your Name Server Info @ IN NS primary.linuxtechi.local. primary IN A 192.168.0.40 ;Reverse Lookup for Your DNS Server 40 IN PTR primary.linuxtechi.local. ;PTR Record IP address to HostName 50 IN PTR www.linuxtechi.local. 60 IN PTR mail.linuxtechi.local.
Su archivo de búsqueda de zona inversa debería tener el siguiente aspecto:
Guardar archivo y salir. Ahora todo lo que tenemos que hacer es reiniciar el servicio BIND para implementar los cambios realizados,
[email protected]:~$ sudo systemctl restart bind9 [email protected]:~$ sudo systemctl enable bind9
Nota:- En caso de que el firewall del sistema operativo se esté ejecutando en su servidor de enlace, ejecute el siguiente comando para permitir el puerto 53
[email protected]:~$ sudo ufw allow 53 Rule added Rule added (v6) [email protected]:~$
Validación de la sintaxis de la configuración de bind9 y los archivos de zona
Si desea cruzar, verifique la sintaxis de su archivo de configuración de bind 9 (named.conf.local). Usa el comando “llamada-checkconf“, el ejemplo se muestra a continuación:
[email protected]:~$ sudo named-checkconf /etc/bind/named.conf.local [email protected]:~$
Si no hay ningún error de sintaxis en su archivo de configuración de enlace, entonces debería volver al shell sin mostrar ningún error.
Para verificar la sintaxis de sus archivos de zona de búsqueda directa e inversa, use el comando «zona de control nombrada“, el ejemplo se muestra a continuación:
[email protected]:~$ sudo named-checkzone linuxtechi.local /etc/bind/forward.linuxtechi.local zone linuxtechi.local/IN: loaded serial 6 OK [email protected]:~$ [email protected]:~$ sudo named-checkzone linuxtechi.local /etc/bind/reverse.linuxtechi.local zone linuxtechi.local/IN: loaded serial 21 OK [email protected]:~$
Probando el servidor DNS con dig & nslookup
Para probar nuestro servidor DNS BIND 9, usaremos otra máquina Ubuntu y cambiaremos su DNS para señalar nuestro servidor DNS. Para cambiar el servidor DNS, abra ‘/etc/resol.conf‘ & haga la siguiente entrada de DNS,
[email protected]:~$ sudo vi /etc/resolv.conf search linuxtechi.local nameserver 192.168.0.40
guardar el archivo y salir. Ahora tenemos nuestro cliente listo con DNS apuntando a nuestro servidor. Ahora usaremos una herramienta CLI llamada ‘cavar‘comando, que se utiliza para averiguar el DNS y su información relacionada. Ejecute el siguiente comando desde la terminal,
[email protected]:~$ dig primary.linuxtechi.local
& deberíamos obtener el siguiente resultado del comando,
Este resultado muestra que nuestro DNS funciona bien.
Hagamos una consulta de búsqueda inversa (PTR):
[email protected]:~$ dig -x 192.168.0.40
La salida del comando debería ser algo como lo siguiente:
También podemos correr’nslookup‘ comando contra nuestro servidor DNS para confirmar la salida del comando dig,
[email protected]:~$ nslookup primary.linuxtechi.local
& debería producir el siguiente resultado,
Nota:- Mientras ejecuta el comando de excavación, si obtiene el error «comando no encontrado», entonces necesitamos instalar el paquete «dnsutils», ya que el comando de excavación es parte del paquete «dnsutils».
[email protected]:~$ sudo apt-get install dnsutils -y
Ahora que nuestro servidor funciona bien, podemos agregar otros servidores como el servidor de correo, el servidor ftp o los servidores web a los archivos de configuración del servidor DNS creando los registros apropiados según los requisitos. Además, solo hemos configurado un servidor DNS local en este tutorial, si necesita configurar un DNS público, necesitará una dirección IP pública para el mismo.
Con esto finalizamos nuestro tutorial sobre cómo instalar y configurar el servidor DNS en Ubuntu/Debian usando BIND 9. Envíenos sus valiosos comentarios/consultas, estaremos encantados de atenderlas todas.
Leer también : Cómo instalar y configurar Webmin en Debian/Ubuntu