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=yesCrea 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 localhostTenemos 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: 172Má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
Recibe nuevas publicaciones en tu bandeja de entrada.
No spam. Cancela la suscripción en cualquier momento.