Servidor DNS · 5 min read · Oct 08, 2025

El Clúster Web Perfecto Balanceado y de Alta Disponibilidad Con 2 Servidores Ejecutando Xen En Ubuntu 8.04 Hardy Heron - Página 3

8. Servidor DNS (web1, web2)

8.1 Instalar el Servidor DNS

Ejecutar :

apt-get install bind9

Por razones de seguridad, queremos ejecutar BIND en chroot, así que tenemos que hacer los siguientes pasos:

/etc/init.d/bind9 stop

Edita el archivo /etc/default/bind9 para que el demonio se ejecute como el usuario no privilegiado bind, chrooted a /var/lib/named. Modifica la línea: OPTIONS=”-u bind” para que lea OPTIONS=”-u bind -t /var/lib/named”:

vi /etc/default/bind9

OPTIONS="-u bind -t /var/lib/named"
# Establecer RESOLVCONF=no para no ejecutar resolvconf
RESOLVCONF=yes

Crea los directorios necesarios bajo /var/lib:

mkdir -p /var/lib/named/etc
mkdir /var/lib/named/dev
mkdir -p /var/lib/named/var/cache/bind
mkdir -p /var/lib/named/var/run/bind/run

Luego mueve el directorio de configuración de /etc a /var/lib/named/etc:

mv /etc/bind /var/lib/named/etc

Crea un enlace simbólico al nuevo directorio de configuración desde la antigua ubicación (para evitar problemas cuando bind se actualice en el futuro):

ln -s /var/lib/named/etc/bind /etc/bind

Crea dispositivos nulos y aleatorios, y corrige los permisos de los directorios:

mknod /var/lib/named/dev/null c 1 3
mknod /var/lib/named/dev/random c 1 8
chmod 666 /var/lib/named/dev/null /var/lib/named/dev/random
chown -R bind:bind /var/lib/named/var/*
chown -R bind:bind /var/lib/named/etc/bind

Necesitamos modificar /etc/default/syslogd para que aún podamos obtener mensajes importantes registrados en los registros del sistema. Modifica la línea: SYSLOGD=”” para que lea: SYSLOGD=”-a /var/lib/named/dev/log”:

vi /etc/default/syslogd

#
# Archivo de configuración principal para syslogd
#
# La documentación completa de los posibles argumentos se encuentra en la página del manual
# syslogd(8).
#
# Para el registro remoto por UDP usa SYSLOGD="-r"
#
SYSLOGD="-a /var/lib/named/dev/log"

Reinicia el demonio de registro:

/etc/init.d/sysklogd restart

Inicia BIND y verifica /var/log/syslog en busca de errores:

/etc/init.d/bind9 start

8.2 Configurar bind

Vamos a configurar bind con 2 dominios, example.com que será el servidor de nombres y también configuraremos bind para yoursite.com.

Ahora, el archivo de configuración principal en BIND se llama named.conf, sin embargo named.conf.local ya está incluido en named.conf y está allí para configuraciones personalizadas, así que editaremos named.conf.local y añadiremos nuestras zonas, aquí añadí una zona llamada tm.local así como una zona inversa para 192.168.1.0:

vi /etc/bind/named.conf.local

#EXAMPLE.COM
zone "example.com" {
        type master;
        file "/etc/bind/zones/example.com.db";
        };
#YOURSITE.COM
zone "yoursite.com" {
        type master;
        file "/etc/bind/zones/yoursite.com.db";
        };
# Esta es la definición de la zona para DNS inverso. reemplaza 1.168.192 con la dirección de tu red en notación inversa - por ejemplo, mi dirección de red es 192.168.1.X
zone "1.168.192.in-addr.arpa." {
     type master;
     file "/etc/bind/zones/rev.1.168.192.in-addr.arpa";
};

Nota: Si tu ISP te está delegando un mapa de subred (digamos ip 192.168.1.100 a 192.168.1.112) lee esto para la zona inversa (ver Archivo de Zona de Cliente/Usuario):

http://www.zytrax.com/books/dns/ch9/reverse.html

8.3 Configurar zonas

mkdir /etc/bind/zones
vi /etc/bind/zones/example.com.db

y haz que se vea así :

$TTL        86400
@       IN      SOA     ns1.example.com. admin.example.com. (
                        2008060902       ; serial, fecha de hoy + número de serie de hoy
                        28800              ; refresh, segundos
                        7200              ; retry, segundos
                        604800              ; expire, segundos
                        86400 )            ; minimum, segundos
;
                NS      ns1.example.com.              ; Dirección Inet del servidor de nombres 1
                NS      ns2.example.com.              ; Dirección Inet del servidor de nombres 2
;
  MX      10 example.com.
example.com.      A        192.168.1.106
www                   A        192.168.1.106
ns1                      A        192.168.1.106
ns2                      A        192.168.1.106
dom01                 A        192.168.1.100
dom02                 A        192.168.1.101
lb1                       A        192.168.1.102
lb2                       A        192.168.1.103
web1                   A        192.168.1.104
web2                   A        192.168.1.105

example.com.       TXT  "v=spf1 ip4:192.168.1.104 ip4:192.168.1.105 a ptr a:web1.example.com a:web2.example.com ~all"

Ahora crearemos la zona para yoursite.com :

vi /etc/bind/zones/yoursite.com.db

Haz que se vea así :

$TTL        86400
@       IN      SOA     ns1.example.com. admin.yoursite.com. (
                        2008060902       ; serial, fecha de hoy + número de serie de hoy
                        28800              ; refresh, segundos
                        7200              ; retry, segundos
                        604800              ; expire, segundos
                        86400 )            ; minimum, segundos
;
                NS      ns1.example.com.              ; Dirección Inet del servidor de nombres 1
                NS      ns2.example.com.              ; Dirección Inet del servidor de nombres 2
;
  MX      10 yoursite.com.
yoursite.com.      A        192.168.1.107
www                   A        192.168.1.107

yoursite.com.       TXT  "v=spf1 ip4:192.168.1.104 ip4:192.168.1.105 a ptr a:web1.example.com a:web2.example.com ~all"

Ahora procedamos con la zona inversa.

vi /etc/bind/zones/rev.1.168.192.in-addr.arpa

$TTL        86400
@               IN      SOA     ns1.example.com. hostmaster.example.com. (
                                2008060901       ; serial, fecha de hoy + número de serie de hoy
                                28800   ; Refresh
                                7200    ; Retry
                                604800  ; Expire
                                86400)  ; Minimum TTL
                        NS      ns1.example.com.
                        NS      ns2.example.com.
100       PTR     dom01.example.com.
101       PTR     dom02.example.com.
102       PTR     lb1.example.com.
103       PTR     lb2.example.com.
104       PTR     web1.example.com.
105       PTR     web2.example.com.
106       PTR     example.com.
107       PTR     yoursite.com.

Ahora configura el servidor para que reenvíe cualquier solicitud al servidor de tu ISP para que pueda resolver IPs externas.

vi /etc/bind/named.conf.options

Descomenta la sección de reenvío para que se vea así:

[...]
forwarders {
      # Reemplaza la dirección de abajo con la dirección de tu servidor DNS ISP
      123.123.123.123;
};
[...] 

8.4 Configurar el servidor para usarlo como DNS

vi /etc/resolv.conf

search example.com
nameserver localhost

Tenemos que reiniciar bind :

/etc/init.d/bind9 restart

8.5 Probar el servidor DNS

Primero instalaremos dig que está incluido en el paquete dnsutils :

apt-get install dnsutils

Ahora veremos si nuestros servidores DNS nos dan las respuestas correctas :

en web1

dig yoursite.com @192.168.1.105

en web2

dig yoursite.com @192.168.1.104

En ambos deberías ver una salida como esta :

;  DiG 9.4.2-P1  yoursite.com
;; opciones globales:  printcmd
;; Recibió respuesta:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 4547
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2
;; SECCIÓN DE PREGUNTAS:
;yoursite.com.                 IN      A
;; SECCIÓN DE RESPUESTA:
yoursite.com.          86400   IN      A       192.168.1.107
;; SECCIÓN DE AUTORIDAD:
yoursite.com.          15090   IN      NS      ns2.example.com.
yoursite.com.          15090   IN      NS      ns1.example.com.
;; SECCIÓN ADICIONAL:
ns2.example.com.       162439  IN      A       192.168.1.106
ns1.example.com.       162439  IN      A       192.168.1.106
;; Tiempo de consulta: 27 msec
;; CUANDO: Dom Sep 21 19:07:17 2008
;; TAMAÑO MSG  recibido: 124

Ahora probaremos la búsqueda inversa :

en web1

dig -x 192.168.1.107 @192.168.1.105

en web2*

dig -x 192.168.1.107 @192.168.1.104

La salida debería ser similar a esta :

;  DiG 9.4.2-P1  -x 192.168.1.107
;; opciones globales:  printcmd
;; Recibió respuesta:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 22614
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 2
;; SECCIÓN DE PREGUNTAS:
;107.1.168.192.in-addr.arpa.     IN      PTR
;; SECCIÓN DE RESPUESTA:
;107.1.168.192.in-addr.arpa. 86400 IN PTR  yoursite.com.
;; SECCIÓN DE AUTORIDAD:
;1.168.192.in-addr.arpa. 86400 IN  NS      ns2.example.com.
;1.168.192.in-addr.arpa. 86400 IN  NS      ns1.example.com.
;; SECCIÓN ADICIONAL:
ns1.example.com.       162147  IN      A       192.168.1.106
ns2.example.com.       162147  IN      A       192.168.1.106
;; Tiempo de consulta: 88 msec
;; CUANDO: Dom Sep 21 19:12:09 2008
;; TAMAÑO MSG  recibido: 172

Más información sobre cómo usar dig :

http://www.madboa.com/geek/dig/

9. Proftpd (web1, web2)

9.1 Instalación de Proftpd

Para instalar Proftpd, ejecuta

apt-get install proftpd ucf

Se te hará una pregunta:

Ejecutar proftpd: <– standalone

9.2 Configuración de Proftpd

vi /etc/proftpd/proftpd.conf

Por razones de seguridad, añade las siguientes líneas a /etc/proftpd/proftpd.conf:

DefaultRoot ~
IdentLookups off
ServerIdent on "FTP Server ready."

Luego reinicia Proftpd:

/etc/init.d/proftpd restart

Share: X/Twitter LinkedIn

Recibe nuevas publicaciones en tu bandeja de entrada.

No spam. Cancela la suscripción en cualquier momento.