En aquest document HackMD explicarem com crear un servidor DNS:
Josep Oriol Ferrufino: (cf21oriol.ferrufino@iesjoandaustria.org)
David Li: (cf21david.li@iesjoandaustria.org)
Nazmul Miah: (cf21nazmul.miah@iesjoandaustria.org)
Bruno GosΓ‘lvez: (cf21bruno.gosalvez@iesjoandaustria.org)
Entramos dentro del directorio
Ponemos comando ls -l para ver los archivos
sudo nano /etc/bind/named.conf.options
Dentro del archivo escribimos lo siguiente:
ββββββ - acl "trusted" {
ββββββ 10.21.73.2; #ponemos nuestra ip
ββββββ 10.21.73.100; #ponemos la ip del host
ββββββ };
ββββββ
ββββββ options{
ββββββ directory "/var/cache/bind";
ββββββ
ββββββ recursion yes; #
ββββββ allow-recursion { trusted; };
ββββββ listen-on {10.21.73.2; };
ββββββ allow-transfer { none; };
ββββββ
ββββββ
ββββββ forwaders {
ββββββ 8.8.8.8;
ββββββ 1.1.1.1;
ββββββ };
ββββββ
ββββββ dnssec-validation auto;
ββββββ
ββββββ listen-on-v6 { any; };
ββββββ };
Lo guardamos y salimos
En este paso entramos dentro del archivo local
poniendo este comando.
- sudo nano /etc/bind/named.conf.local
Y dentro editamos de esta manera
ββββ zone "dli.test" { #ponemos nuestro dominio que pondremos de esta forma -primera letra de nuestro nombre + el primero apellido + .test
ββββ type master;
ββββ file "/etc/bind/db.dli.test"; #aqui ponemos nuestro dominio con la nomenclatura que hemso puesto antes.
ββββ };
ββββ
ββββ zone "21.10.in-addr.arpa" {
ββββ type master;
ββββ file "/etc/bind/zones/db.10.21";
ββββ }
Ahora lo guardamos y salimos.
Acontinuacion ponemos este comando para crear el directorio donde dejaremos nuestros archivos de zona.
- sudo mkdir /etc/bind/zones
Luego seguimos con este comando para copiar a la ubicacion adecuada.
- sudo cp /etc/bind/db.local /etc/bind/db.dli.test
Una vez hecha el cambio de archivo de ubicacion entramos dentro del archivo con el siguiente comando.
**- sudo nano /etc/bind/zones/db.dli.test
Dentro del archivo cambiamos algunas cosas.
ββββ;
ββββ; BIND data file for local loopback interface
ββββ;
ββββ$TTL 604800
ββββ@ IN SOA server.dli.test. admin.dli.test. (
ββββ 3 ; Serial
ββββ 604800 ; Refresh
ββββ 86400 ; Retry
ββββ 2419200 ; Expire
ββββ 604800 ) ; Negative Cache TTL
ββββ
ββββ;
ββββ; name servers - NS records
ββββ IN NS server.dli.test
ββββ
ββββ; name servers - A records
ββββserver.dli.test. IN A 10.21.73.2
ββββ
ββββ;10.21.73.0/24 - A records
ββββclient.dli.test. IN A 10.21.73.100
Despues de editar este archivo ahora editaremos los archivos de la zona inversa
En la zona inversa que hemos creado dentro con el archivo named.conf.local, con nuestros archivos inversa que utilizaremos el db.127 de muestra que lo copiaremos en la ubicacion del zones. Utilizamos este comando para copiar la ubicacion.
- sudo cp /etc/bind/db.127 /etc/bind/zones/db.10.21
Despues de copiar la ubicacion a otro sitio, lo editamos con este comando.
- sudo nano /etc/bind/zones/db.10.21
ββββ- ;
ββββ ; BIND reverse data file for local loopback interface
ββββ ;
ββββ $TTL 604800
ββββ @ IN SOA server.dli.test. admin.dli.test. (
ββββ 3 ; Serial
ββββ 604800 ; Refresh
ββββ 86400 ; Retry
ββββ 2419200 ; Expire
ββββ 604800 ) ; Negative Cache TTL
ββββ ;
ββββ @ IN NS localhost.
ββββ 1.0.0 IN PTR localhost.
ββββ
ββββ ; name server
ββββ IN NS server.dli.test.
ββββ ; PTR Records
ββββ 2.71 IN PTR server.dli.test. ;10.21.73.2
ββββ 00.71 IN PTR client.dli.test. ;10.21.73.100
Acontinuacion tenemos que hacer una prueba para ver si lo tenemos el sintaxi haciendo de los archivos con este comando.
- sudo named-checkconf
Si te sale algun error lo corregimos, si no sale ninguno seguimos adelante.
Para saber si los archivos de zona estan correctos lo comprobamos con este comando.
Ahora despues de poner este comando vamos con los siguientes comandos para acabar de configurar servidor el DNS primario.
El comando sirve para reiniciar el bind
- sudo systemctl restart bind9
Luego escribimos lo siguiente que sirve para que el DNS primario que quedara bien configurado y listo para responder a las consultas de DNS.
**- sudo ufw allow Bind9
Ponemos este comando para ver la interfaz que quremos:
- ip address show to 10.21.0.0/24
Seguimos con el siguiente comando para crear un archivo en /etc/netplan que se llamarΓ 00-private-nameservers.yaml:
- sudo nano /etc/netplan/00-private-nameservers.yaml
En el archivo previamente creado escribimos esto:
ββββnetwork:
ββββversion: 2
ββββethernets:
ββββ eth1: #Private network interface
ββββ nameservers:
ββββ addresses:
ββββ - 10.128.10.11 # Private IP for ns1
ββββ - 10.132.20.12 # Private IP for ns2
ββββ search: [ nyc3.example.com ] # DNS zone
Despues escribimos:
- sudo netplan try
Nos saldra tres linias, con un comunicado, le damos intro y nos dirΓ‘ configuracion acceptada.
ββββOutput
ββββWarning: Stopping systemd-networkd.service, but it can still be activated by:
ββββsystemd-networkd.socket
ββββDo you want to keep these settings?
ββββPress ENTER before the timeout to accept the new configuration
ββββChanges will revert in 120 seconds
Luego verificamos la resolucion de DNS del sistema para ver si se ha aplicado nuestro configuracion de DNS con el siguiente comando:
- sudo systemd-resolved βstatus
Nos salda esto:
ββββOutput
ββββ. . .
ββββLink 3 (eth1)
ββββ Current Scopes: DNS
ββββ LLMNR setting: yes
ββββMulticastDNS setting: no
ββββ DNSSEC setting: no
ββββDNSSEC supported: no
ββββ DNS Servers: ipserver
ββββ DNS Domain: tu.dominio.com
Ya habremos configurado los servidores internos.
Para probar clientes tendremos que utiliza nslookup
ββββ$ nslookup nom.exemple.test
Nos saldra algo similar a esto:
ββββOutput
ββββServer: 127.0.0.53
ββββAddress: 127.0.0.53#53
ββββNon-authoritative answer:
ββββName: cliente.exemple.test
ββββAddress: ipcliente
Ahora probaremos con una busqueda inversa:
ββββ $ nslookup ip
El resultado sera algo similar a:
ββββOutput
ββββipserver.in-addr.arpa name = nom.example.test.
ββββAuthoritative answers can be found from:
Como se puede observar la IP del servidor estΓ‘ invertida.
Configurar el DNS nos permite poder referirnos a las distintas interfaces de nuestra red privada por el nombre en vez de por la direcciΓ³n IP.
DNS
DHCP