Servicio de Directorio con LDAP [3]: Isc-DHCP-Server y Bind9

¡Hola Amigos!. Aquí estamos con la tercera entrega de la serie, y hoy estará dedicada a los que prefieran o necesiten el Bind9 como Servidor de Nombres de Dominio, y del Isc-DHCP-Server para la asignación automática de direcciones IP y otros aspectos más.

En éste caso, configuraremos ambos servicios de forma que el servidor DHCP actualice las zonas del servidor DNS. No confundamos al servicio Dinamyc Domain Name Server con ésta solución, aunque se acostumbre llamarla DNS Dinámico, pues el servidor DHCP actualiza de forma dinámica a las zonas del DNS que se le indiquen.

Los que quieran tener una detallada guía sobre cómo implementar y configurar un DNS, favor y visiten Cómo instalar y configurar un DNS Maestro Primario para una LAN en Debian 6.0 (I), o descarguen el compendio Artículos de instalación y configuración de un DNS todo en 1.

Recomendamos lean las dos partes anteriores de la serie antes de continuar:

  • Servicio de Directorio con LDAP. Introducción.
  • Servicio de Directorio con LDAP [2]: NTP y dnsmasq.

Por otra parte, en la Aldea WWW encontramos libros, manuales, ayudas acompañantes y demás literatura, sobre el ¿cómo se hace? para instalar y configurar éstos servicios. También podemos hacer uso del paquete WebMin para la instalación, configuración y administración de ellos y de otros servicios más. Es una herramienta de administración vía web En Extremo Potente. ¡Cuidado al emplearla!. 🙂 La aplicación la puede descargar desde aquí.

¿Cuál debo utilizar: el DNSMasq o el DNS/DHCP?

Caballeros, esa selección queda a criterio de cada cual. El DNSMasq está concebido para pequeñas redes, aunque hay que tener en cuenta que una red con 250 máquinas o menos, se considera pequeña.

Siempre recordemos que en una red, sólo debe existir un servidor DHCP autoritario.

Red de ejemplo

Lan: 10.10.10.0/24
Dominio: amigos.cu
Servidor: mildap.amigos.cu
Sistema Operativo Servidor: Debian 6 "Squeeze
Dirección IP del servidor: 10.10.10.15
Cliente 1: debian7.amigos.cu
Cliente 2: raring.amigos.cu
Cliente 3: suse13.amigos.cu
Cliente 4: seven.amigos.cu

Instalemos y configuremos el Bind9

La mayoría de lo que escribiremos a continuación son comandos de consola, por lo cual y en lo adelante, usaremos ese estilo siempre que sea posible. De paso, ahorramos espacio. 🙂

Declaración de los repositorios, actualización del sistema, e instalación del Bind9:

~# nano /etc/apt/sources.list
# Mínimo estos repositorios. Declaramos acorde a lo que tenemos.
deb http://mihost.midominio/debian6/squeeze/ squeeze main contrib
deb http://mihost.midominio/debian6/squeeze-security/ squeeze/updates main contrib
deb http://mihost.midominio/debian6/squeeze-updates/ squeeze-updates main contrib

:~# aptitude update
:~# aptitude upgrade

:~# aptitude install bind9 dnsutils

Configuremos y comprobemos cada cambio:

:~# nano /etc/resolv.conf
search amigos.cu
nameserver 127.0.0.1

-----------------------------------------------
:~# nano /etc/bind/named.conf
acl mired {
        127.0.0.0/8;
        10.10.10.0/24;
        };

include "/etc/bind/named.conf.options";
include "/etc/bind/named.conf.local";
include "/etc/bind/named.conf.default-zones";
-----------------------------------------------
:~# named-checkconf -z
:~# service bind9 restart

:~# cat /etc/bind/rndc.key
key "rndc-key" {
    algorithm hmac-md5;
    secret "3nG8BU/IEe4lS189SV27ng==";
};

-----------------------------------------------
:~# nano /etc/bind/named.conf.options
options {
        directory "/var/cache/bind";
        // forwarders {
        //      0.0.0.0;
        // };

        auth-nxdomain no;    # conform to RFC1035
        listen-on-v6 { any; };
        allow-query { mired; };
};

key "rndc-key" {
        algorithm hmac-md5;
        secret "3nG8BU/IEe4lS189SV27ng==";
};

controls {
    inet 127.0.0.1 allow { localhost; 10.10.10.15; } keys { rndc-key; };
};
-----------------------------------------------

:~# named-checkconf -z
:~# service bind9 restart

------------------------------------------------
:~# nano /etc/bind/named.conf.local
zone "amigos.cu" {
        type master;
        file "amigos.cu.hosts";
        allow-update { key "rndc-key"; };
};

zone "10.10.10.in-addr.arpa" {
        type master;
        file "10.10.10.rev";
        allow-update { key "rndc-key"; };
};
-----------------------------------------------

:~# named-checkconf -z
:~# service bind9 restart

:~# cp /etc/bind/db.local /var/cache/bind/amigos.cu.hosts
-----------------------------------------------
:~# nano /var/cache/bind/amigos.cu.hosts
;
; BIND data file for local loopback interface
;
$TTL    604800
@       IN      SOA     mildap.amigos.cu. root.mildap.amigos.cu. (
                              2         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;
@       IN      NS      mildap.amigos.cu.
;
mildap  IN      A       10.10.10.15
gandalf IN      A       10.10.10.1
miwww   IN      A       10.10.10.5
-------------------------------------------------

:~# named-checkzone amigos.cu /var/cache/bind/amigos.cu.hosts
:~# service bind9 restart

:~# dig amigos.cu ns
:~# dig amigos.cu axfr

:~# cp /etc/bind/db.127 /var/cache/bind/10.10.10.rev
--------------------------------------
:~# nano /var/cache/bind/10.10.10.rev
;
; BIND reverse data file for local loopback interface
;
$TTL    604800
@       IN      SOA     mildap.amigos.cu. root.mildap.amigos.cu. (
                              1         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;
@       IN      NS      mildap.amigos.cu.
;
15      IN      PTR     mildap.amigos.cu.
1       IN      PTR     gandalf.amigos.cu.
5       IN      PTR     miwww.amigos.cu.
----------------------------------------------------------------------

:~# named-checkzone 10.10.10.in-addr.arpa /var/cache/bind/10.10.10.rev
:~# named-checkconf -z
:~# named-checkconf -p
:~# service bind9 restart
===================================
Si no tenemos conexión con Internet
====================================
:~# cp /etc/bind/db.root /etc/bind/db.root.original
:~# cp /dev/null /etc/bind/db.root

:~# named-checkconf -z
:~# named-checkconf -p
:~# service bind9 restart

:~# rndc reload
server reload successful

Instalemos y configuremos el Isc-DHCP-Server

:~# aptitude install isc-dhcp-server
--------------------------------------
:~# nano /etc/default/isc-dhcp-server
# On what interfaces should the DHCP server (dhcpd) serve DHCP requests?
#       Separate multiple interfaces with spaces, e.g. "eth0 eth1".
INTERFACES="eth1"
---------------------------------------

:~# cp /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.original
---------------------------------------
:~# nano /etc/dhcp/dhcpd.conf
key rndc-key {
        secret "3nG8BU/IEe4lS189SV27ng==";
        algorithm hmac-md5;
        }
server-identifier mildap.amigos.cu;
ddns-update-style interim;
ddns-updates on;
ddns-domainname "amigos.cu";
ddns-rev-domainname "in-addr.arpa.";
ignore client-updates;
authoritative;
option domain-name "amigos.cu";
option ntp-servers 10.10.10.15;

zone amigos.cu. {
        primary 10.10.10.15;
        key rndc-key;
        }
zone 10.10.10.in-addr.arpa. {
        primary 10.10.10.15;
        key rndc-key;
        }

subnet 10.10.10.0 netmask 255.255.255.0 {
        option netbios-name-servers 10.10.10.15;
        option netbios-node-type 8;
        option domain-name-servers 10.10.10.15;
        option routers 10.10.10.1;
        range 10.10.10.200 10.10.10.250;
        }
--------------------------------------------------

:~# service isc-dhcp-server start

Comprobaciones en un cliente

Hasta aquí los dos servicios funcionan correctamente. Hagamos entonces las comprobaciones desde un cliente. En éste caso, tomaremos al cliente debian7.amigos.cu. Nos conectaremos a él mediante el protocolo ssh:

root@mildap:~# ssh debian7
root@debian7's password: 
Linux debian7 3.2.0-4-686-pae #1 SMP Debian 3.2.41-2 i686
[----]

root@debian7:~# ifconfig
eth0      Link encap:Ethernet  HWaddr 52:54:00:8f:ee:f6  
          inet addr:10.10.10.200  Bcast:10.10.10.255  Mask:255.255.255.0
[----]

root@debian7:~# dig amigos.cu axfr
[---]
amigos.cu.		604800	IN	SOA	mildap.amigos.cu. root.mildap.amigos.cu. 3 604800 86400 2419200 604800
amigos.cu.		604800	IN	NS	mildap.amigos.cu.
debian7.amigos.cu.	21600	IN	TXT	"0047c481c633aee670d1f8874855f942e3"
debian7.amigos.cu.	21600	IN	A	10.10.10.200
gandalf.amigos.cu.	604800	IN	A	10.10.10.1
mildap.amigos.cu.	604800	IN	A	10.10.10.15
miwww.amigos.cu.	604800	IN	A	10.10.10.5
amigos.cu.		604800	IN	SOA	mildap.amigos.cu. root.mildap.amigos.cu. 3 604800 86400 2419200 604800
;; Query time: 5 msec
;; SERVER: 10.10.10.15#53(10.10.10.15)
;; WHEN: Sun Feb  2 17:03:23 2014
;; XFR size: 8 records (messages 1, bytes 258)

root@debian7:~# dig 10.10.10.in-addr.arpa axfr
[----]
10.10.10.in-addr.arpa.     604800    IN    SOA    mildap.amigos.cu. root.mildap.amigos.cu. 2 604800 86400 2419200 604800
10.10.10.in-addr.arpa.     604800    IN    NS    mildap.amigos.cu.
1.10.10.10.in-addr.arpa.   604800    IN    PTR    gandalf.amigos.cu.
15.10.10.10.in-addr.arpa.  604800    IN    PTR    mildap.amigos.cu.
200.10.10.10.in-addr.arpa. 21600     IN    PTR    debian7.amigos.cu.
5.10.10.10.in-addr.arpa.   604800    IN    PTR    miwww.amigos.cu.
10.10.10.in-addr.arpa.     604800    IN    SOA    mildap.amigos.cu. root.mildap.amigos.cu. 2 604800 86400 2419200 604800
;; Query time: 5 msec
;; SERVER: 10.10.10.15#53(10.10.10.15)
;; WHEN: Sun Feb  2 17:04:42 2014
;; XFR size: 7 records (messages 1, bytes 235)

Y podemos realizar cuantas comprobaciones más queramos o necesitemos.

Y ésto es todo por hoy. La próxima entrega será la de Instalar y configurar el servidor OpenLDAP. ¡Hasta pronto, amigos!


Deja tu comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

*

  1. Responsable de los datos: Miguel Ángel Gatón
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.

  1.   dhunter dijo

    Y otro post más para marcadores, deberías considerar publicar un libro pdf estilo el de Alcance Libre. Slds.

    1.    federico dijo

      Gracias dhunter, pero escribir un libro como el del Maestro José Barrios Dueñas, está fuera de mi alcance. Ese libro, ajustado a la forma de Debian, lo he seguido y está fuera de serie. Se necesita mucho conocimiento y tiempo para escribir algo que se le aproxime.

      No sabes cuanto trabajo paso en comentar con mi super lenta conexión a la Aldea WWW. 🙂

      Saludos

  2.   federico dijo

    … perdón, del Maestro Joel Barrios Dueñas. Ahora si. Siempre me confundo. Los años. 🙂

  3.   eliotime3000 dijo

    Muy bueno el tutorial. Y por cierto, estaré haciendo unos experimentos para poder hacer un servidor de juegos F2P privados como Gunbound (precisamente, casi todos los de Softnyx) como éste, pero en GNU/Linux >> http://hackzvip.obolog.com/video-tutorialcomo-crear-servidor-gunbound-season-2-565871

  4.   Jose Luis Gonzalez dijo

    Muy buen aporte. Esperaré el de Openldap…

  5.   Julio C. Carballo dijo

    Muy bueno amigo lo tratare de propar en un ambiente no productivo

    saludos