Caso práctico
Se va a utilizar el servidor DNS Bind9 para mostrar un caso práctico de
instalación y configuración de un servidor DNS en Linux. Para la instalación del
software desde los repositorios de Linux vamos a utilizar la herramienta apt. Esta
herramienta se encarga de descargar el software e instalarlo. Al mismo tiempo,
instalará todas las dependencias necesarias.
La instalación del servicio
El primer paso consiste en la instalación de bind9, para ello, desde la
terminal hay que introducir el siguiente comando:
# apt install bind9
También es recomendable la instalación del paquete dnsutils. Este paquete
contiene una serie de utilidades que nos podrían servir en caso de que nos
surja algún problema, para ello tecleamos en la terminal:
# apt install dnsutils
Una vez instalados estos dos paquetes ya podremos proceder a configurar nuestro
servidor DNS. Los ficheros de configuración se encuentran en el directorio /etc/
bind. Cada vez que se efectúe algún cambio en estos ficheros habrá que
reiniciar el servicio con el comando service para que tenga efecto:
# service bind9 restart
Los ficheros de configuración
Dentro del directorio /etc/bind nos encontramos ya por defecto una
serie de ficheros. El fichero /etc/bind/[Link] es el fichero de
configuración principal, pero para simplificar la configuración, este fichero se
limita a incluir otros tres ficheros, /etc/bind/[Link],
/etc/bind/[Link] y /etc/bind/[Link]-zones.
La configuración por defecto es la de un servidor DNS caché. Para utilizarlo
como tal, lo único que habría que hacer sería quitarle los comentarios a las
siguientes líneas de /etc/bind/[Link] options:
fowarders {
[Link];
};
Y sustituir la dirección [Link] por la dirección IP del servidor DNS que nos
proporcione nuestro ISP • Se pueden añadir múltiples servidores.
El fichero /etc/bind/[Link]-zones contiene las definiciones de las
zonas por defecto del servidor DNS. Por un lado contiene las direcciones IP de
los servidores DNS raíces del mundo y por otro se definen las zonas de
loopback , de red y de broadcast del servidor.
Por último, el fichero /etc/bind/[Link], que viene vacío, es el que
contendrá las definiciones de zonas. Este es el fichero que habrá que modificar
para añadir zonas nuevas al servidor.
Añadiendo una zona directa
Vamos a crear una zona para nuestro dominio de ejemplo y vamos a
configurar el servidor como servidor DNS maestro para dicha zona. Para ello
incluiremos en el fichero /etc/bind/[Link] las siguientes líneas:
zone " [Link]" {
type master;
file "/etc/bind/[Link]";
};
El fichero /etc/bind/[Link] , todavía no existe. Lo vamos a crear y en
él se añadirán los registros de recursos necesarios para definir la zona. La
forma más sencilla de crearlo es copiando el fichero /etc/bind/[Link] ya que
este último nos servirá de plantilla. Para ello tecleamos el siguiente comando
desde la terminal:
# cp [Link] [Link]
A continuación lo editamos con un editor de textos y lo modificamos adaptándolo
a nuestras necesidades.
$TTL 604800
@ IN SOA [Link]. [Link].(
2018051401 ; serial-number
21600 ; time-to-refresh
3600 ; time-to-retry
604800 ; time-to-expire
86400); minimum-TTL
@ IN NS ns1
@ IN NS ns2
ns1 IN A [Link]
ns2 IN A [Link]
web IN A [Link]
files IN A [Link]
mail IN A 192. 168.1.7
@ IN MX 10 mail
www IN CNAME web
ftp IN CNAME files
Ahora habrá que reiniciar el servicio para que cargue la nueva configuración,
para ello, desde la terminal introducimos el siguiente comando:
# service bind9 restart
Tanto si ha funcionado todo bien como si no, el servicio no nos lo comunica
por la terminal. Habrá que consultar /var/log/syslog para averiguar si se ha
producido algún error. Las utilidades de DNS cuentan con una herramienta
para comprobar los ficheros de zona con el fin de verificar si son correctos
sintácticamente. En el ejemplo anterior se puede verificar con el siguiente
comando:
# named-checkzone [Link] /etc/bind/[Link]
El primer parámetro es el dominio de la zona y el segundo el fichero que
contiene las definiciones de la misma.
Añadiendo una zona inversa
Para crear la zona inversa, de modo que a partir de la dirección IP se
pueda resolver el nombre de dominio, habrá que añadir la siguiente zona en
el fichero /etc/bind/[Link]. Nótese que la dirección de red se pone
con los bytes en orden inverso:
zone "[Link]"{
type master;
file "/etc/bind/db.l.168.192";
};
Como en el caso anterior, el fichero /etc/bind/db.1.168.192, todavía no existe.
Lo vamos a crear copiando el fichero /etc/bind/db.127, de modo que nos sirva
de plantilla. Para ello tecleamos el siguiente comando desde la termina l:
# cp db.127 db.1.168.192
A continuación lo editamos y lo modificamos adaptándolo a nues tras
necesidades. Para cada registro A definido en el fichero de zona directa , habrá
que definir aquí un registro PTR. Para este ejemplo usaremos el siguiente:
@ IN SOA [Link] .lan. [Link]. {
201705 1401 ; serial-number
21600 ; time-to-refresh
3600 ; time-to-retry
604800 ; time-to-expire
86400) ; minimum-TTL
@ IN NS [Link].
@ IN NS [Link].
21 IN PTR [Link].
22 IN PTR [Link].
1 IN PTR [Link].
5 IN PTR [Link].
7 IN PTR [Link].
Dentro del fichero de zona sólo se ponen las direcciones de host y no las de red,
en este caso el último byte. Si se quisiera poner la dirección IP completa habría
que poner:
[Link]. IN SOA [Link].
[Link]. (
2018051401 ; serial-number
21600 ; time-to-refresh
3600 ; time-to-retry
604800 ; time-to-expire
86400) ; minimum-TTL
[Link]. IN NS [Link].
[Link]. IN NS [Link].
[Link].[Link]. IN PTR [Link].
[Link].[Link]. IN PTR [Link].
[Link].[Link]. IN PTR [Link].
[Link].[Link]. IN PTR [Link].
[Link].[Link]. IN PTR [Link].
De nuevo habrá que reiniciar el servicio para que los cambios tengan efecto y
comprobar, mirando en syslog, si se ha producido algún fallo. Para reiniciar el
servidor ejecutamos el siguiente comando:
# service bind9 restart