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