Herramientas personales

Servidor DNS Bind Centos

De Proyectos GULIX

Tabla de contenidos

Servidor DNS con Bind en Centos modo chroot

Instalando los requerimientos.

Lo primero es instalar los paquetes necesarios para poder hacer funcionar el servidor DNS asi que instalaremos los siguientes:

yum install bind bind-utils bind-libs bind-chroot caching-nameserver

No explicare en que consiste cada uno de los paquetes, pero solo notar que se instalara en modo enjaulado ( chroot ) por temas de seguridad.

Posterior a esto debemos cambiar el nombre de host de nuestro servidor por ejemplo a dns

vim /etc/sysconfig/network

y editamos donde dice hostnamte y colocamos dns como nombre de servidor.

NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=dns

Rutas de archivos

Existen dos pasos esenciales, en los cuales se debe configurar el archivo named.conf y los archivos de zona o dominios que se requieran.

Para ir detallando, casi siempre las instalaciones de servicios o aplicaciones quedan situadas en la ruta /etc/ en este caso no es la exepcion, pero como indicamos anteriormente estamos instalando Bind de forma enjaulada esto quiere decir que todos los archivos ya sean de configuracion y paquetes en si, se encontraran situados de la siguiente forma:

[root@dns chroot]# pwd
/var/named/chroot
[root@dns chroot]# ls
dev  etc  proc  var

Comprendiendo esta parte podemos interpretar que las configuraciones se encontraran en el la ruta:

/var/named/chroot/etc

y que las zonas, dominios, sub-dominos. Se encontraran en la ruta

/var/named/chroot/var/named


Configurando Bind

Configuracion de named.conf

Este archivo se encuentra en /var/named/chroot/etc/named.conf en caso de no existir deberemos crearlo o bien podemos copiar el archivo de ejemplo que trae bind

ls /usr/share/doc/bind*/sample/
ls /usr/share/doc/bind-9.3.6/sample/etc/
cp -a /usr/share/doc/bind-9.3.6/sample/etc/named.conf /var/named/chroot/etc/

Ya con el archivo existente visualizaremos su contenido y solo dejaremos lo siguiente:

options
{
        // Those options should be used carefully because they disable port
        // randomization
        // query-source    port 53;
        // query-source-v6 port 53;

        // Put files that named is allowed to write in the data/ directory:
        directory "/var/named"; // the default
        dump-file               "data/cache_dump.db";
        statistics-file         "data/named_stats.txt";
        memstatistics-file	"data/named_mem_stats.txt";
        version                 "[privado]";
        allow-recursion {
                127.0.0.1;
                192.168.1.0/24;
        };
	forwarders {
                200.33.146.209;
                200.33.146.217;
        };
	forward first;
};

include "/etc/rndc.key";

zone "." {
	type hint;
        file "named.ca";
};
# localhost
zone    "localhost" {
        type master;
        file "localhost.zone";
        allow-update { none; };
};

Casi es lo mismo que trae por defecto el ejemplo de configuración, con la diferencia que nosotros agregamos versión privada.

Ahora al final de la linea del archivo named.conf agregaremos nuestras zonas.

# configuracion para dominio.cl
zone "dominio.cl" {
        type master;
        file "dominio.cl.zone";
        allow-update { none; };
};

zone "1.168.192.in-addr.arpa.zone" {
        type master;
        file "1.168.192.in-addr.arpa.zone";
};

zone "254.160.190.in-addr.arpa.zone" {
        type master;
        file "254.160.190.in-addr.arpa.zone";
};

La primera linea indicamos nuestro servidor que el dominio "dominio.cl", es de tipo master o sea que sera el servidor principal que resuelve a el dominio, le pueden poner cualquier nombre al dominio pero solo resolverá dentro de su red y no de forma externa.

Las siguiente zona 1.168.192.in-addr.arpa.zone es un reverso del dominio de forma interna, esto quiere decir que pueden resolver a través de la ip hacia al dominio, su nombre se crea de acuerdo como sea la ip de su red interna, en mi caso es ip 192.168.1.100 por eso queda al revés sin anotar el ultimo numero como 1.168.192 el resto se deja tal cual.

La siguiente zona 254.160.190.in-addr.arpa.zone es un reverso del dominio pero de forma externa, en mi caso mi ip externa es 190.160.254.190 por lo mismo el archivo se deja como 254.160.190.


Creando y configurando archivos de zona

Esta parte es un tanto mas complicado de comprender, pero no es nada de otro mundo y por lo mismo tratare de explicarlo detalladamente.

Nos situaremos en la siguiente ruta:

/var/named/chroot/var/named

Que contendrá los dominios que iremos creando.

Creamos el archivo dominio.cl.zone con la siguiente información en su interior:

; Configuracion de dominio dominio.cl

$TTL    86400
@	IN	SOA     dns.dominio.cl. admin.dominio.cl. (
                201111151; Serial formato: yyyymmddn donde n es un número cualquiera
                10800; Refresh después de tres horas
                3600; Reintentar después de una hora
                604800; Expirar después de una semana
                86400; TTL(Time to Live) mínimo de un día
                )
@	IN	NS	dns
@	IN	MX	100 mail.dominio.cl.
@	IN	A	190.160.254.190
dns     IN	A	190.160.254.190
www     IN	A	190.160.254.190
dns     IN	A	192.168.1.100

Ahora creamos los archivos de zona para los reversos: zona interna.

; Resolución inversa para 192.168.1.100

$TTL    86400
@	IN	SOA     dns.dominio.cl. admin.dominio.cl. (
                                201111152; Serial
                                28800; Refresh
                                7200; Retry
                                604800; Expire
                                86400; Minimum TTL
                                )
@	IN	NS	dns.dominio.cl.
100     IN	PTR     dns.dominio.cl.

Zona Externa

; Resolución inversa para 190.160.254.190
$TTL 86400
@               IN	SOA     dominio.cl. admin.dominio.cl (
                                201111152	; Serial
                                28800   ; Refresh
                                7200    ; Retry
                                604800  ; Expire
                                86400)  ; Minimum TTL
                        NS	dominio.cl.
                        NS	dns.dominio.cl.
;
;	Servers
;
190     PTR     dominio.cl.
190     PTR     dns.dominio.cl.
190     PTR     www.dominio.cl.

En el caso de las zonas de reversa al final agregamos el ultimo numero de la ip y posteriormente el nombre del dominio ( 190 PTR www.dominio.cl. ).

Antes de proseguir se explicaran un poco las siglas indicadas en las configuraciones:

Hay muchas opciones de configuración para los dominios, los más comunes son: •

  • A (Address).

• Es el registro más usado, que define una dirección IP y el nombre asignado al host.Generalmente existen varios en un dominio. •

  • MX (Mail eXchanger).

• Se usa para identificar servidores de correo, se pueden definir dos o más servidoresde correo para un dominio, siendo que el orden implica su prioridad. Debe haber almenos uno para un dominio. •

  • CNAME (Canonical Name).

• Es un alias que se asigna a un host que tiene una dirección IP valida y que responde adiversos nombres. Pueden declararse varios para un host. •

  • NS (Name Server).

• Define los servidores de nombre principales de un dominio. Debe haber al menosuno y pueden declararse varios para un dominio. •

  • SOA (Start Of Authority).

• Este es el primer registro de la zona y sólo puede haber uno en cada archivo de lazona y sólo está presente si el servidor es autoritario del dominio. Especifica elservidor DNS primario del dominio, la cuenta de correo del administrador y tiempode refresco de los servidores secundarios

Iniciando el servidor DNS

Colocamos lo siguiente para que inicie siempre el servicio de dominio cada ves que se inicie el servidor.

chkconfig named on

y luego iniciamos el servicio

service named start

Luego debería aparecer algo como:

Nov 16 12:29:42 dns named[18514]: starting BIND 9.3.6-P1-RedHat-9.3.6-16.P1.el5 -u named -t /var/named/chroot
Nov 16 12:29:42 dns named[18514]: found 1 CPU, using 1 worker thread
Nov 16 12:29:42 dns named[18514]: using up to 4096 sockets
Nov 16 12:29:42 dns named[18514]: loading configuration from '/etc/named.conf'
Nov 16 12:29:42 dns named[18514]: max open files (1024) is smaller than max sockets (4096)
Nov 16 12:29:42 dns named[18514]: using default UDP/IPv4 port range: [1024, 65535]
Nov 16 12:29:42 dns named[18514]: using default UDP/IPv6 port range: [1024, 65535]
Nov 16 12:29:42 dns named[18514]: listening on IPv4 interface lo, 127.0.0.1#53
Nov 16 12:29:42 dns named[18514]: listening on IPv4 interface virbr0, 192.168.122.1#53
Nov 16 12:29:42 dns named[18514]: binding TCP socket: address in use
Nov 16 12:29:42 dns named[18514]: listening on IPv4 interface eth0, 192.168.1.100#53
Nov 16 12:29:42 dns named[18514]: command channel listening on 127.0.0.1#953
Nov 16 12:29:42 dns named[18514]: command channel listening on ::1#953
Nov 16 12:29:42 dns named[18514]: the working directory is not writable
Nov 16 12:29:42 dns named[18514]: zone dominio.cl/IN: loaded serial 201111151
Nov 16 12:29:42 dns named[18514]: zone localhost/IN: loaded serial 42
Nov 16 12:29:42 dns named[18514]: zone 254.160.190.in-addr.arpa.zone/IN: loaded serial 201111152
Nov 16 12:29:42 dns named[18514]: zone 1.168.192.in-addr.arpa.zone/IN: loaded serial 201111152
Nov 16 12:29:42 dns named[18514]: running
Nov 16 12:29:42 dns named[18514]: zone 254.160.190.in-addr.arpa.zone/IN: sending notifies (serial 201111152)
Nov 16 12:29:42 dns named[18514]: client 190.160.254.190#40993: received notify for zone '254.160.190.in-addr.arpa.zone'
Nov 16 12:29:42 dns named[18514]: client 192.168.1.100#48190: received notify for zone '254.160.190.in-addr.arpa.zone'

También lo pueden visualizar con tail -f /var/log/messages

Revisando con el comando Dig

Podemos ver que se encuentra funcionado revisando con el comando:


[root@dns ~]# dig dominio.cl

; <<>> DiG 9.3.6-P1-RedHat-9.3.6-16.P1.el5 <<>> shuriken.cl
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 4806
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2

;; QUESTION SECTION:
;dominio.cl.			IN	A

;; ANSWER SECTION:
dominio.cl.		86400	IN	A	190.160.254.190

;; AUTHORITY SECTION:
dominio.cl.		86400	IN	NS	dns.dominio.cl.

;; ADDITIONAL SECTION:
dns.dominio.cl.	86400	IN	A	192.168.1.100
dns.dominio.cl.	86400	IN	A	190.160.254.190

;; Query time: 2 msec
;; SERVER: 192.168.1.100#53(192.168.1.100)
;; WHEN: Wed Nov 16 12:37:24 2011
;; MSG SIZE  rcvd: 98

revisando la zona inversa

[root@dns ~]#  dig -x 190.160.254.190
;; global options: +cmd                                                                                                                                
;; Got answer:                                                                                                                                         
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 34904                                                                                              
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0                                                                                   
                                                                                                                                                       
;; QUESTION SECTION:                                                                                                                                   
;254.160.190.in-addr.arpa.          IN      PTR                                                                                                            
                                                                                                                                                       
;; ANSWER SECTION: 
254.160.190.in-addr.arpa.   86400   IN      PTR     190.160.254.190

;; Query time: 6 msec
;; SERVER: 192.168.1.100#53(192.168.1.100)
;; WHEN: Sat May 26 12:27:20 2012
;; MSG SIZE  rcvd: 82

NOTA

A mi me paso algo extraño que cuando quise iniciar el bind con /etc/init.d/named start me reclamaba que no estaba el archivo /etc/named.conf Tonces lo que hice fue generar un enlace simbólico

/etc/named.conf -> /var/named/chroot/etc/named.conf

Conclusiones

  • Bueno, eso fue todo espero que les sirva, como siempre cualquier duda o comentario son bienvenidos, ademas si deciden complementar esta información bienvenido sera.

By Created Mauricio Vásquez Torrealba

--NiXoN 12:37 16 Nov 2011 (ART)

Leer más

Autores de este Resumen

--NiXoN 12:37 16 Nov 2011 (ART)

--RAcl 16:35 26 may 2012 (UTC) revisión y anexo de información


Buscar