[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Solicitud

2009/6/25 Yacell <yacell@rc.gr.rimed.cu>:
> Saludos listeros, necesito me envien alguna bibliografía de como configurar
> un dns con vistas en debian lenny.
> gracias de ante mano.
> nota: no tengo acceso a internet.
> --
> To UNSUBSCRIBE, email to debian-user-spanish-REQUEST@lists.debian.org
> with a subject of "unsubscribe". Trouble? Contact
> listmaster@lists.debian.org

esta en ingles pero te servira(mas abajo te envio la traduccion de google):

HowTo - Setup DNS (Domain Name Server) using BIND9.


This HOWTO will assist you in getting a Domain Name Server (DNS) up
and running using BIND9 on Debian Lenny. When setting up a DNS server
it is common practise to use two separate DNS servers for a domain as
you are required to have at least two DNS servers running for DNS to
work correctly. If one breaks, the other can continue to serve your

However, when I setup my DNS system I did not have the resources on
hand to use two different servers for DNS so the setup below will
configure one server to run both nameservers. It's not an ideal
solution and is definitely not a best practise solution but one can
only work with what you have.

Run BIND in a "chroot" jail, so it is much more difficult for a
compromised bind daemon to damage the operating system or compromise
other services.

In this HOWTO I will use the fictional domain "sampledns.com". The
nameservers will use and as their IP
addresses. Both the domain and namerserver IPs need to be changed to
reflect your server details.


A Debian Lenny base installation.
At least two static IP addresses that you can use to setup the
nameserver information.
Root access to your server.

Pre-Installation notes: (You need to be in the root terminal from here
on to the end of this HowTo)

Before proceeding to install, update the necessary packages in Debian
with these commands.

Code: Select all
    apt-get update


Code: Select all
    apt-get upgrade

Installing lsb-base and BIND9

To continue we need some Debian building tools since we are going to
download source packages:

Code: Select all
    apt-get install devscripts

The next two steps were put into 2 seperate code windows to shorten
the HowTo a bit since it's rather lenghy. Each command should be run
on a seperate line if not only for the simple reason you can see and
deal with any errors that may be presented without having to go back
and search logs.

BIND9 depends on lsb-base: (Syntax explanation: the -y tells apt to
say yes to all questions, build-dep installs all packages required for
-packageX- from the repository and with -b the source gets built
straight away.)

Code: Select all
    mkdir /usr/local/lsb-base/
    cd /usr/local/lsb-base/
    apt-get -y build-dep lsb-base
    apt-get source lsb-base -b
    dpkg -i lsb-base*.deb

Next is BIND9:

Code: Select all
    mkdir /usr/local/bind9
    cd /usr/local/bind9
    apt-get -y build-dep bind9
    apt-get source bind9 -b
    dpkg -i *.deb

Configure the Master DNS Server

First we need to stop BIND9:

Code: Select all
    /etc/init.d/bind9 stop

In order to chroot bind we need to set an option in /etc/default/bind9.

Locate this in /etc/default/bind9:

Code: Select all
    vim /etc/default/bind9

OPTIONS="-u bind"
Replace it with this:

Code: Select all
    OPTIONS="-u bind -t /var/lib/named"

It will now run as user 'bind' chrooted in '/var/lib/named'.
These steps are required for the chroot jail: (Recommend running each
command on a seperate line)

Code: Select all
    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
    mv /etc/bind /var/lib/named/etc
    ln -s /var/lib/named/etc/bind /etc/bind
    mknod /var/lib/named/dev/null c 1 3
    mknod /var/lib/named/dev/random c 1 8
    chmod 666 /var/lib/named/dev/*
    chown -R bind:bind /var/lib/named/var/*
    chown -R bind:bind /var/lib/named/etc/bind

Bind now has its own dir with space for .pid files and config files.
In order to keep things clear we made a symlink back to /etc/.

NOTE: In this next step i ran into a problem where sysklogd was not
installed for some reason on one the systems i installed the DNS on.
To Fix:

Code: Select all
    apt-get install sysklogd

it will either tell you that you have the latest version or install it
with dependencies.

Now edit /etc/init.d/sysklogd to allow logging of bind activity.

Code: Select all
    vim /etc/init.d/sysklogd

Replace this:

With this:

Code: Select all
    SYSLOGD="-a /var/lib/named/dev/log"

Now restart sysklogd and BIND9:

Code: Select all
    /etc/init.d/sysklogd restart

Code: Select all
    /etc/init.d/bind9 start

And test:
ping http://www.google.com (NOTE: to stop the ping outputs hit the
ctrl + c key, we do not want to packet flood google)

If you get a reply, then your DNS master server is working and ready
to use. To complete and use the sampledns.com domain with your new
master server. (IMPORTANT: Remember to replace sampledns.com and with your domain information)

Create the zone files:

Start with creating the directory where you will store the zone file.

Code: Select all
    mkdir /etc/bind/zones/master/

Now create the zones file: (This file contains all information about the domain)

Code: Select all
    vim /etc/bind/zones/master/sampledns.com.db

Add the following (NOTE:replacing sampledns.com and with
your own details):

Code: Select all
    ; BIND data file for sampledns.com
    $TTL    604800
    @       IN      SOA     sampledns.com. info.sampledns.com. (
                                2009051501         ; Serial
                                      7200         ; Refresh
                                       120         ; Retry
                                   2419200         ; Expire
                                    604800)        ; Default TTL
    @       IN        NS    ns1.sampledns.com.
    @       IN        NS    ns2.sampledns.com.
    sampledns.com.    IN    MX      10      mail.sampledns.com.
    sampledns.com.    IN    A
    www                     IN      CNAME   sampledns.com.
    mail                    IN      A
    ftp                     IN      CNAME   sampledns.com.
    sampledns.com.          IN      TXT     "v=spf1 ip4: a mx ~all"
    mail                    IN      TXT     "v=spf1 a -all"

Here we have created a DNS zone file with both nameservers as well as
records for the mail and ftp server for the domain sampledns.com.
Trying to go into more detail about what each item reflects above is
beyond the scope of this HOWTO and you should do your own research
into what each item means.

In South Africa registering domain names with the .co.za extension
requires that Reverse DNS (RDNS) is setup correctly. Other TLD's don't
necessarily require RDNS but either way it's good practise to setup
RDNS for your DNS server so we'll do so now.

Create a new file called 192.168.254.rev which follows the convention
of the first three IP ranges in your IP address:

Code: Select all
    vim /etc/bind/zones/master/192.168.254.rev

Add the following: (NOTE:replacing ns1.sampledns.com,
info.sampledns.com and ns2.sampledns.com with your own details):

Code: Select all
    $TTL 1d ;
    $ORIGIN 254.168.192.IN-ADDR.ARPA.
    @       IN      SOA     ns1.sampledns.com.   info.sampledns.com. (
            IN      NS      ns1.sampledns.com.
            IN      NS      ns2.sampledns.com.
    1       IN      PTR     ns1.sampledns.com.
    2       IN      PTR     ns2.sampledns.com.

The reverse lookup files are almost identical to the domain zone files
with only minor changes. The first section of this file is exactly the
same as the first section of the domain zone file. The bottom section
is where it is different. This time we are listing the last part of
the IP address first and then the hostname last.

There are 2 IMPORTANT things you must observe here. You have to use
the fully qualified domain name here and you must put a "." at the end
of it. These 2 things are important to the file and weird things
happen if you do not do it exactaly this way.

You must also change the $ORIGIN section at the top of the RDNS file
to reflect the reverse IP address of your server. In this sample our
IP address ranges are and the reverse of this would be
254.168.192.IN-ADDR.ARPA. In the PTR records at the bottom we assign
the final IP range to reflect our two nameservers - i.e. 1 & 2.

Making sure everything is OK-

Now that we have created both zone and reverse files. Now we need to
check that our main zone file is good to go. BIND9 breaks very easily
so it's best to run this check before committing your changes.

Code: Select all
    cd /etc/bind/zones/master/

Then run:

Code: Select all
    named-checkzone sampledns.com sampledns.com.db

You should get an OK status when doing this. If not you need to double
check your zone file and make changes until you get an OK status.

Adding zone files to BIND9
We now need to add the zone file data to the named.conf.local file:

Code: Select all
    vim /etc/bind/named.conf.local

And add the following to the file: (Replacing sampledns.com with your details)

Code: Select all
    zone "sampledns.com" {
           type master;
           file "/etc/bind/zones/master/sampledns.com.db";

    zone "254.168.192.IN-ADDR.ARPA" {
           type master;
           file "/etc/bind/zones/master/192.168.254.rev";


We can now restart bind and check if it works: (don't forget to
replace ns1.sampledns.com with your details)
/etc/init.d/bind9 restart
ping ns1.sampledns.com

This should bring bring up a ping result resolving to

Try another test:
nslookup ns1.sampledns.com

Should give you

Finally run this one:
dig @localhost sampledns.com

If all is OK then you'll be presented with the zone file information.

At this point you now have a working and usable DNS server.


If you're wondering why updates to the zone file on your master seem
to fail, check the serial number inside the zone file. Each time you
make a change to the zone file you will need to increase the Serial
number in the zone file to ensure that your latest changes are

The serial number is setup and constructed as follows:
2009051501 = (2007)(05)(15)(01)
First 4 digits of the serial indicate the year - i.e. 2009
Next 2 digits of the serial indicate the month - i.e. 05 (May)
Next 2 digits of the serial indicate the date - i.e. 15
The last 2 digits of the serial indicate the revision number for that
day - i.e. 01

If you are updating your Serial number but your changes are not being
reflected I suggest that you reload your BIND data by executing the
following command in a Linux shell:

Code: Select all
    rndc reload

If you are running BIND on two different servers you will need to
install ntpdate on both servers to ensure that zone transfers happen
correctly. Both master and slave servers need to have the exact same
time setting for zone transfers to take place:
apt-get -y install ntpdate

Esta es la traduccion de google:

HowTo - Configuración de DNS (Domain Name Server) utilizando bind9.

Postby Deja-Vu »2009-05-15 21:13
Descripción general

Esta guía le ayudará a conseguir un servidor de nombres de dominio
(DNS) en funcionamiento utilizando bind9 en Debian Lenny. Al
configurar un servidor DNS que es práctica común utilizar dos
servidores DNS de un dominio que se le exige tener un mínimo de dos
servidores DNS para el funcionamiento de DNS para funcionar
correctamente. Si una se rompe, la otra puede continuar sirviendo a su

Sin embargo, cuando la configuración DNS de mi sistema no tenía los
recursos a mano para usar dos diferentes servidores de DNS de manera
que la configuración de abajo configurar un servidor que ejecute ambos
nombres. No es una solución ideal y no es la mejor solución práctica,
pero sólo puede trabajar con lo que tienes.

Ejecutar BIND en un "chroot" la cárcel, por lo que es mucho más
difícil para un demonio comprometida obligar a los daños del sistema
operativo o de compromiso de otros servicios.

En esta guía voy a utilizar el dominio ficticio "sampledns.com". El
uso de nombres de y como sus direcciones
IP. Tanto el dominio y direcciones IP namerserver necesitan ser
modificados para reflejar los detalles de su servidor.


Una base de instalación de Debian Lenny.
Al menos dos direcciones IP que puede utilizar para configurar la
información del servidor de nombres.
Acceso de root a su servidor.

Preinstalación de notas: (Es necesario estar en la raíz de terminales
de aquí a finales de este HowTo)

Antes de proceder a instalar, actualizar los paquetes necesarios en
Debian con estos comandos.

Code: Select all
     apt-get update


Código: Seleccionar todos
     apt-get upgrade

Instalación lsb-base y bind9

Para continuar, necesitamos algunas herramientas de Debian, ya que se
van a descargar los paquetes fuente:

Código: Seleccionar todos
     apt-get install devscripts

Los dos pasos siguientes se pusieron en 2 ventanas de código separado
para acortar el HowTo un poco ya que es más bien lenghy. Cada comando
debe ejecutarse en una línea separada, si no sólo por la simple razón
de que puede ver y hacer frente a los errores que pueden presentarse
sin tener que volver atrás y los registros de búsqueda.

Bind9 depende de lsb-base: (Sintaxis de explicación:-y le dice a la
tendencia a decir que sí a todas las preguntas, la acumulación de dep
instala todos los paquetes necesarios para la packageX-desde el
repositorio y con b-se construyó la fuente de inmediato.)

Código: Seleccionar todos
     mkdir / usr / local / lsb-base /
     cd / usr / local / lsb-base /
     apt-get-y construir-dep lsb-base
     apt-get source lsb-base-b
     dpkg-i lsb-base *. deb

A continuación se bind9:

Código: Seleccionar todos
     mkdir / usr/local/bind9
     cd / usr/local/bind9
     apt-get-y construir-dep bind9
     apt-get source bind9-b
     dpkg-i *. deb

Configurar el servidor DNS principal

En primer lugar tenemos que dejar de bind9:

Código: Seleccionar todos
     / etc/init.d/bind9 parada

Con el fin de obligar chroot es necesario establecer una opción en /

Busque en / etc/default/bind9:

Código: Seleccionar todos
     vim / etc/default/bind9

OPCIONES = "-u bind"
Sustituirla por la siguiente:

Código: Seleccionar todos
     OPCIONES = "-u bind-t / var / lib / named"

Que ahora se ejecutan como usuario 'obligar' chroot en '/ var / lib / named ".
Estos pasos son necesarios para la cárcel chroot: (Recomendar
funcionamiento de cada comando en una línea separada)

Código: Seleccionar todos
     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
     mv / etc / bind / var / lib / named / etc
     ln-s / var / lib / named / etc / bind / etc / bind
     mknod / var / lib / named / dev / null c 1 3
     mknod / var / lib / named / dev / random c 1 8
     chmod 666 / var / lib / named / dev / *
     chown-R vinculará: bind / var / lib / named / var / *
     chown-R vinculará: bind / var / lib / named / etc / bind

Obligar ahora tiene su propio espacio de dir. Pid archivos y ficheros
de configuración. A fin de mantener las cosas claras que hicimos de
nuevo a un enlace simbólico / etc /.

NOTA: En este paso siguiente me encontré con un problema en el que
sysklogd no se ha instalado, por alguna razón, en uno de los sistemas
de i instalado en el DNS.
Para solucionarlo:

Código: Seleccionar todos
     apt-get install sysklogd

ya sea que te dicen que tienes la última versión o instalarlo con las

Ahora edite / etc / init.d / sysklogd para permitir la tala de obligar
a la actividad.

Código: Seleccionar todos
     vim / etc / init.d / sysklogd

Reemplace esto:
Syslogd = ""

Con esto:

Código: Seleccionar todos
     Syslogd = "-a / var / lib / named / dev / log"

Ahora reinicie sysklogd y bind9:

Código: Seleccionar todos
     / etc / init.d / sysklogd reiniciar

Código: Seleccionar todos
     / etc/init.d/bind9 inicio

Y la prueba:
ping http://www.google.com (NOTA: para poner fin a la producción de
ping golpear la tecla Ctrl + C, no queremos inundación de paquetes de

Si obtiene una respuesta, entonces su servidor DNS maestro está
trabajando y listas para usar. Para completar y utilizar el dominio
sampledns.com con su nuevo servidor maestro. (IMPORTANTE: Recuerde que
debe sustituir sampledns.com y con su información de

Crear la zona de archivos:

Comienza con la creación del directorio donde se almacenará el archivo de zona.

Código: Seleccionar todos
     mkdir / etc / bind / zonas / master /

Crear las zonas de archivo: (Este archivo contiene toda la información
sobre el dominio)

Código: Seleccionar todos
     vim / etc / bind / zonas / maestro / sampledns.com.db

Añadir las siguientes (NOTA: sustituir sampledns.com y
con sus propios detalles):

Código: Seleccionar todos
     ; Archivo de datos de BIND para sampledns.com
     $ TTL 604800
     @ IN SOA sampledns.com. info.sampledns.com. (
                                 2009051501; serie
                                       7200; Actualizar
                                        120; Reintentar
                                    2419200; Vence
                                     604800); TTL predeterminado
     @ IN NS ns1.sampledns.com.
     @ IN NS ns2.sampledns.com.
     sampledns.com. EN MX 10 mail.sampledns.com.
     sampledns.com. EN UN
     www IN CNAME sampledns.com.
     correo en un
     ftp IN CNAME sampledns.com.
     sampledns.com. EN TXT "v = spf1 ip4: un mx ~ todos"
     correo electrónico en formato TXT "v = spf1 un todo"

Aquí hemos creado una zona DNS de nombres de archivo con los
registros, así como para el correo y el servidor ftp para el dominio
sampledns.com. Tratando de entrar en más detalles acerca de cada tema
refleja lo que es más allá del alcance de esta guía y que debe hacer
su propia investigación en lo que cada uno de los puntos medios.

En Sudáfrica, el registro de nombres de dominio con la extensión.
Co.za extensión que requiere DNS invertida (RDNS) está configurada
correctamente. Otros TLD no necesariamente requieren RDNS pero de
cualquier manera es bueno practicar RDNS para configurar el servidor
DNS por lo que haremos ahora.

Crear un nuevo archivo llamado 192.168.254.rev que se ajusta a la
convención de los tres primeros rangos de IP en su dirección IP:

Código: Seleccionar todos
     vim / etc/bind/zones/master/192.168.254.rev

Añadir el texto siguiente: (NOTA: sustituir ns1.sampledns.com,
info.sampledns.com ns2.sampledns.com y con sus propios detalles):

Código: Seleccionar todos
     $ TTL 1d;
     $ ORIGIN 254.168.192.IN-ADDR.ARPA.
     @ IN SOA ns1.sampledns.com. info.sampledns.com. (
             IN NS ns1.sampledns.com.
             IN NS ns2.sampledns.com.
     1 IN PTR ns1.sampledns.com.
     2 IN PTR ns2.sampledns.com.

La búsqueda inversa archivos son casi idénticos a los archivos de zona
del dominio con sólo cambios menores. La primera sección de este
archivo es exactamente la misma que la primera sección del archivo de
zona del dominio. La sección inferior es donde es diferente. Esta vez
se lista la última parte de la dirección IP y, a continuación, el
nombre de host en último lugar.

Hay 2 cosas importantes que debemos observar aquí. Usted tiene que
usar el nombre de dominio completo aquí, y debe poner un "." al final
de la misma. Estas 2 cosas son importantes para el archivo y extraños
que las cosas sucedan, si no lo haces exactaly de esta manera.

También deberá cambiar el $ ORIGIN sección en la parte superior de la
RDNS archivo para reflejar la inversa dirección IP de su servidor. En
esta muestra nuestra dirección IP de los intervalos se /
2 y el reverso de esta situación sería 254.168.192.IN-ADDR.ARPA. En
los registros PTR en la parte inferior le asignamos el último rango de
direcciones IP a fin de reflejar los dos nombres - es decir, 1 y 2.

Asegurarse de que todo está OK

Ahora que hemos creado la zona y revertir los archivos. Ahora tenemos
que comprobar que nuestro principal archivo de zona es buena para ir.
Bind9 rompe muy fácilmente por lo que es mejor para ejecutar esta
comprobación antes de los cambios.

Código: Seleccionar todos
     cd / etc / bind / zonas / master /

A continuación, ejecute:

Código: Seleccionar todos
     named checkzone sampledns.com sampledns.com.db

Usted debe obtener un OK al estado haciendo esto. Si no es necesario
comprobar su archivo de zona y hacer cambios hasta que llegue un
estado en Aceptar.

Adición de archivos de zona a bind9
Ahora tenemos que añadir la zona de archivos de datos a la
named.conf.local el archivo:

Código: Seleccionar todos
     vim / etc / bind / named.conf.local

Y añadir lo siguiente al archivo: (Sustitución sampledns.com con sus datos)

Código: Seleccionar todos
     zona "sampledns.com" (
            type master;
            archivo "/ etc / bind / zonas / maestro / sampledns.com.db";

     zona "254.168.192.IN-ADDR.ARPA" (
            type master;
            archivo "/ etc/bind/zones/master/192.168.254.rev";


Ahora podemos obligar a reiniciar y comprobar si funciona: (no se
olvide de reemplazar ns1.sampledns.com con sus datos)
/ etc/init.d/bind9 reiniciar
ping ns1.sampledns.com

Esto debe llevar a lograr una solución al resultado de ping

Pruebe con otra prueba:
nslookup ns1.sampledns.com

Debe darle

Ejecutar este último uno:
dig @ localhost sampledns.com

Si todo está bien entonces se le presentó con la zona de información de archivo.

En este punto, ahora tiene un servidor DNS y utilizables.

Solución de problemas

Si usted se pregunta por qué las actualizaciones del archivo de zona
en su maestro parecen no, marque el número de serie en el interior de
la zona de archivo. Cada vez que realizar un cambio en el archivo de
zona tendrá que aumentar el número de serie en el archivo de zona para
asegurarse de que sus últimos cambios se actualizan.

El número de serie es la configuración y construido de la siguiente manera:
2009051501 = (2007) (05) (15) (01)
Los primeros 4 dígitos de la serie indican el año - es decir, 2009
Siguiente 2 dígitos de la serie indican el mes - es decir, 05 (de mayo)
Siguiente 2 dígitos de la serie indica la fecha - es decir, 15
Los 2 últimos dígitos de la serie indican el número de revisión de ese
día - es decir, 01

Si está actualizando su número de serie, pero los cambios no se
reflejan sugiero que volver a cargar sus datos de BIND ejecutando el
siguiente comando en una shell de Linux:

Código: Seleccionar todos
     rndc recarga

Si está corriendo BIND en dos diferentes servidores tendrá que
instalar ntpdate en ambos servidores para garantizar que las
transferencias de zona suceder correctamente. Ambos servidores maestro
y esclavo deben tener exactamente el mismo tiempo para las
transferencias de zona a tener lugar:
apt-get-y ntpdate

"It is human nature to think wisely and act in an absurd fashion."

"Todo el desorden del mundo proviene de las profesiones mal o
mediocremente servidas"

Reply to: