Noticia 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!


44ICuknFjH4


Continúar leyendo...