TOP

Servidor DNS CentOS 6

Introducción

Domain Name System o DNS (en español: sistema de nombres de dominio) es un sistema de nomenclatura jerárquica para computadoras, servicios o cualquier recurso conectado a Internet o a una red privada. Este sistema asocia información variada con nombres de dominios asignado a cada uno de los participantes. Su función más importante, es traducir (resolver) nombres inteligibles para las personas en identificadores binarios asociados con los equipos conectados a la red, esto con el propósito de poder localizar y direccionar estos equipos mundialmente.

Instalación


Para instalar el servidor de DNS, escribimos la siguiente orden.

yum -y install bind bind-chroot bind-utils

Ejecutamos lo siguiente:

rndc-confgen -a -r /dev/urandom -b 512 -c /etc/rndc.key

Cambiamos las pertenencias para que este archivo sea propiedad del usuario y grupo named:

chown named:named /etc/rndc.key

Aseguramos que los permisos de acceso sean lectura y escritura para usuario, sólo lectura para grupo y nada para otros, es decir un permiso 640 (rw-r-----):

chmod 640 /etc/rndc.key

Cambiamos hacia el directorio /var/named:

cd /var/named

Y creamos un script (script1.sh) dentro del directorio con las siguientes líneas:

for f in named.* data dynamic slaves
do
mv $f ./chroot/var/named/
ln -s /var/named/chroot/var/named/$f ./
done

Le pondremos permisos de ejecución al script y lo ejecutamos:

chmod 650 /var/named/script1.sh
./script1.sh

Cambiamos hacia el directorio /etc:

cd /etc

Creamos otro script (script2.sh) dentro del directorio /etc con las siguientes líneas:

for f in named.* rndc.key
do
mv $f /var/named/chroot/etc/
ln -s /var/named/chroot/etc/$f ./
done

Le pondremos permisos de ejecución al script y lo ejecutamos:

chmod 650 /etc/script2.sh
./script2.sh

Volvemos al directorio de root:

cd /root

Ejecutamos la siguiente línea en la terminal:

setsebool -P named_write_master_zones 1

Configuración mínima para el archivo /etc/named.conf.

Entramos al directorio /var/named/chroot/etc/

cd /var/named/chroot/etc/



Le hacemos una copia al archivo named.conf



mv named.conf named.conf.original

Y nos descargarmos un named.conf desde la página de Joel Barrios:

wget http://www.alcancelibre.org/linux/secrets/named.conf

Reseteamos los atributos extendidos del named.conf

restorecon named.conf


Editamos el archivo /etc/named.conf:

options {
    directory "/var/named";
    dump-file "/var/named/data/cache_dump.db";
    statistics-file "/var/named/data/named_stats.txt";
    memstatistics-file "/var/named/data/named_mem_stats.txt";
    forwarders {
        8.8.8.8;
        192.168.1.240;
    };
    forward first;
// Solo habilitar lo siguiente si se va a utilizar DNSSEC.
    dnssec-enable yes;
    dnssec-validation yes;
    dnssec-lookaside auto;
    bindkeys-file "/etc/named.iscdlv.key";
};

include "/etc/rndc.key";

logging {
    channel default_debug {
        file "data/named.run";
        severity dynamic;
    };
};

controls {
    inet 127.0.0.1 allow { 127.0.0.1; } keys { "rndc-key"; };
};

view "local" {
    match-clients {
        127.0.0.0/8;
        10.0.0.0/8;
        172.16.0.0/16;
        192.168.0.0/16;
    };
    recursion yes;
    include "/etc/named.rfc1912.zones";
    zone "." IN {
        type hint;
        file "named.ca";
    };
    zone "red20.local" {
        type master;
        file "data/red20.local.zone";
        allow-update { none; };
    };
    zone "16.172.in-addr.arpa" {
        type master;
        file "data/16.172.in-addr.arpa.zone";
        allow-update { none; };
    };
};


Nos aseguramos que el archivo /etc/named.conf tenga los contextos correspondientes para SELinux a fin de evitar potenciales problemas de seguridad.

chcon -u system_u -r object_r -t named_conf_t /var/named/chroot/etc/named.conf



Creamos las distintas zonas directas e inversas.

Ejemplo de Zona de reenvío red local 

/var/named/chroot/var/named/data/red20.local.zone.



$TTL 86400
@    IN    SOA    red20.local. angel_aranda86.hotmail.com. (
    2012101501; número de serie
    28800 ; tiempo de refresco
    7200 ; tiempo entre reintentos de consulta
    604800 ; tiempo tras el cual expira la zona
    86400 ; tiempo total de vida
)

@    IN    NS    red20.local.
@    IN    MX    10    mail
@    IN    A    172.16.13.120
server    IN    A    172.16.13.120
www    IN    CNAME    server
dns    IN    A    172.16.13.120
mail    IN    A    172.16.13.120
ftp    IN    A    172.16.13.120
//definimos algunas máquinas más
rafa    IN    A    172.16.13.101
adri    IN    A     172.16.13.119
profe  IN    A     172.16.254.1

Zona de resolución inversa red local

/var/named/chroot/var/named/data/16.172.in-addr.arpa.zone

$TTL 86400
@    IN    SOA    red20.local. angel_aranda86.hotmail.com. (
    2012101501; número de serie
    28800 ; tiempo de refresco
    7200 ; tiempo entre reintentos de consulta
    604800 ; tiempo tras el cual expira la zona
    86400 ; tiempo total de vida
)
@    IN    NS    dns.red.local.
120.13    IN    PTR    server.red.local.
119.13    IN    PTR    adri.red20.local.
101.13    IN    PTR    rafa.red20.local.


Iniciamos el servicio named:

service named start

Abrimos el puerto 53 TCP/UDP



Para comprobar que todo ha salido bien, escribimos la orden dig de la zona directa en el terminal:

dig @127.0.0.1 server.red20.local

Y este es el resultado:


; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.10.rc1.el6_3.3 <<>> @127.0.0.1 server.red20.local
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 57732
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1

;; QUESTION SECTION:
;server.red20.local.        IN    A

;; ANSWER SECTION:
server.red20.local.    86400    IN    A    172.16.13.120

;; AUTHORITY SECTION:
red20.local.        86400    IN    NS    red20.local.

;; ADDITIONAL SECTION:
red20.local.        86400    IN    A    172.16.13.120

;; Query time: 89 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Fri Oct  5 19:08:10 2012
;; MSG SIZE  rcvd: 82


Si nos da como resultado la IP nuestra, es que ha resuelto bien el dominio.

Para hacer permanente el servicio DNS, escribimos en la terminal:

chkconfig named on 

Si nos queremos poner como servidor de DNS a nosotros mismos, nos metemos en /etc/resolv.conf y ponemos como nameserver nuestra IP

nameserver 127.0.0.1
nameserver 192.168.1.240 

Y en /var/named/chroot/etc/named.conf ponemos como forwarders la IP del servidor que pueda resolvernos en caso de que nuestro servidor no pueda.

forwarders {
                 192.168.1.240;
};

Reiniciamos los servicios named y network

service named restart
service network restart

Comprobamos que nuestro navegador resuelve cualquier página de internet. 

1 comentarios:

  1. Harrah's Cherokee Casino Resort - MapyRO
    Harrah's 오산 출장안마 Cherokee 속초 출장마사지 Casino Resort features over 강릉 출장샵 4,600 rooms and suites, including the AAA 영천 출장안마 Four Diamond 나주 출장샵 Award winner, Harrah's Cherokee Casino Resort.

Publicar un comentario