Posts Tagged ‘dominio’

Configurar el servidor DNS junto a un dominio

Posted in Curso Adm. Servidores, Servidores on enero 3rd, 2009 by Itimag – 6 Comments

Hace unos días vimos como instalar un servidor de DNS en nuestro equipo o servidor y ahora toca ver como se configura para que éste sea capaz de resolver nuestros dominios.

Supongamos que tenemos el dominio itimag.net y queremos configurarlo en nuestro servidor de tal forma que este mismo resuelva el dominios y que además tenga las entradas DNS primaria y secundária que nosotros mismos personalizaremos (en mi caso ns1.itimag.net para la primaria y ns2.itimag.net para la secundária).

Cuando hablo de dns primarias y secundarias, me refiero a aquellas que podemos modificar desde el panel de administración de dominios que nos ofrece nuestro agente registrador. Por ejemplo, en OVH es este: dns

Como observamos en la imagen, los DNS asociados a itimag.net son ns1.itimag.net y ns2.itimag.net. Pues bien, vamos a ver como configurar esto en nuestro servidor con la finalidad de que en el whois del dominio, aparezca ns1.itimag.net y ns2.itimag.net en vez de la IP xxx.xxx.xxx.xxx.

Como se observa en la imagen, los dos DNS (ns1.itimag.net y ns2.itimag.net) apuntan a distintas IP. Ambas IP están configuradas en el mismo equipo. No es precisamente así como debería estar ya que en caso de que el servidor falle, fallarían los 2 nombres de dominio y, por consiguiente, nadie podrá acceder al dominio o dominios configurados con estos servidores DNS.

En caso de que tu servidor disponga de una única ip, también puedes seguir el proceso que aquí se explica.

Pasemos a la acción:

  1. Accedemos al servidor por ssh y dirigirnos al directorio /etc/bind/
  2. ssh user@xxx.xxx.xxx.xxx -p puerto
    cd /etc/bind
  3. Para ver todos los ficheros de este directorio utilizamos el comando ls:
  4. ls
  5. Editamos el fichero /etc/bind/named.conf.local
  6. nano /etc/bind/named.conf.local
  7. Añadimos las siguientes zonas al fichero:
  8. zone "ns1.itimag.net" {
    type master;
    file "/etc/bind/ns1.itimag.net";
    allow-transfer {87.98.xxx.xxx; }; // Tu segunda IP
    };
     
    zone "ns2.itimag.net" {
    type master;
    file "/etc/bind/ns2.itimag.net";
    };
     
    // La zona inversa
    zone "xxx.xxx.xxx.in-addr.arpa" {
    type master;
    file "/etc/bind/pri.xxx.xxx.xxx.in-addr.arpa";
    };

    Nota: Debes substituir el nombre de dominio (itimag.net) por el tuyo y en el allow transfer insertar la segunda ip de tu equipo (o la ip del DNS secundario externo en caso de no tener segunda ip).

    El nombre de la zona inversa viene determinado por nuestra ip de tal forma que la zona inversa para la ip 10.11.12.13 sería “12.11.10.in-addr.arpa”

    Guardamos el fichero y salimos, pulsando “ctrl + o” y “ctrol+x”.

  9. Ahora vamos crear los ficheros /etc/bind/ns1.itimag.net y /etc/bind/ns2.itimag.net :
  10. nano /etc/bind/ns1.itimag.net

    El fichero resultante debe ser algo como esto:

    $ttl 86400
     
    @ IN SOA ns1.itimag.net. root.localhost. (
     
    2008092401; serial-no
     
    28800; refresh, seconds
     
    7200; retry, seconds
     
    604800; expiry, seconds
     
    86400 ); minimum-TTL, seconds
     
    ;
     
    ns1.itimag.net.         IN NS ns1.itimag.net
     
    ns1.itimag.net.         IN A 213.251.xxx.xxx

    Nota: Debes substituir cada ns1.itimag.net por tu ns1.dominio.com. Debes substituir la línea que contiene el serial-no siguiendo la siguiente norma:

    Año  	   Mes     Día      ID
     
    2008       09      24       01; serial-no

    Los cuatro primeros dígitos corresponden al año. Los dos siguientes al mes. Los dos siguientes al día y los 2 restantes hacen referencia a un identificador que indica la versión del fichero (cada vez que modificamos el fichero, debemos incrementar en una unidad el ID). También debes substituir la IP 213.251.xxx.xxx con la ip de tu servidor.

    Creamos el segundo fichero:

    nano /etc/bind/ns2.itimag.net

    Contendrá lo siguiente:

    $ttl 86400
     
    @ IN SOA ns2.itimag.net. root.localhost. (
    2008092401; serial-no
    28800; refresh, seconds
    7200; retry, seconds
    604800; expiry, seconds
    86400 ); minimum-TTL, seconds
    ;
     
    ns2.itimag.net.         IN NS ns2.itimag.net
    ns2.itimag.net.         IN A 87.98.xxx.xxx

    Nota: Debemos de realizar los mismos cambios que en el fichero anterior. Modificamos el fichero /etc/resolv.conf para añadir nuestro dominio y las ip’s de nuestro servidor o servidores dns.

  11. Creamos el fichero /etc/bind/pri.xxx.xxx.xxx.in-addr.arpa para la zona inversa:
  12. nano /etc/bind/pri.xxx.xxx.xxx.in-addr.arpa

    Debe quedar algo como esto:

    $ttl 86400
     
    @ IN SOA mi_dominio.com. root.localhost. (
    2008071901; serial-no
    28800; refresh, seconds
    7200; retry, seconds
    604800; expiry, seconds
    86400 ); minimum-TTL, seconds
    ;
     
    NS ns1.mi_dominio.com.;
    NS ns.kimsufi.com.;
     
    xxx PTR mi_dominio.com.

    Nota: El xxx corresponde con los últimos tres dígitos (o menos) de tu ip. El serial-no corresponde con la fecha actual: en este caso año 2008, mes 07, día 19, identificador 01. Cada vez que modifiquemos el fichero debemos aumentar en una unidad el identificador.

Configuración del dominio:

  1. Añadimos el dominio a configurar insertando la siguiente linea:
  2. search mi_dominio.com
  3. Obsevemos que la ip de nuestro servidor se encuentra ya insertada en una linea como esta:
  4. nameserver tu_ip

    Ejemplo de configuración:

    search mi_dominio.com
    nameserver 127.0.0.1
    nameserver 213.251.xxx.xx
  5. Modificamos el fichero /etc/bind/named.conf.local y le añadimos la zona para nuestro dominio:
  6. zone "mi_dominio.com" {
    type master;
    file "/etc/bind/pri.mi_dominio.com";
    allow-transfer {213.186.33.199; };
    };
  7. Creamos el ficgero /etc/bind/pri.mi_dominio.com
  8. nano /etc/bind/pri.mi_dominio.com

    Debe quedar algo como esto:

    $ttl 86400
     
    @ IN SOA ns1.mi_dominio.com. root.localhost. (
    2008092201; serial-no
    28800; refresh, seconds
    7200; retry, seconds
    604800; expiry, seconds
    86400 ); minimum-TTL, seconds
    ;
     
    NS xxx.xxx.xxx.xxx ;
    NS ns.ns.kimsufi.com. ;
    MX 10 mail.mi_dominio.com.;
     
    mi_dominio.com. A xxx.xxx.xxx.xxx
    www A xxx.xxx.xxx.xxx
    ns1 A xxx.xxx.xxx.xxx
    mail A xxx.xxx.xxx.xxx
     
    mi_dominio.com. TXT "v=spf1 a mx ~all"
    mi_dominio.com. TXT "v=spf1 a -all"

    Nota: Debemos substituir las xxx.xxx.xxx.xxx por la ip donde va a apuntar al dominio

  9. Forzamos bind a actualizar las zonas:
  10. /etc/init.d/bind9 force-reload
  11. Ahora podemos observar si se han producido errores observando los logs del demonio ejecutando el siguiente comando:
  12. less /var/log/daemon.log

Como instalar un server de DNS con BIND en linux

Posted in Curso Adm. Servidores, Servidores on octubre 31st, 2008 by Itimag – Be the first to comment

Continuando con el Curso de Administración de Servidores, hoy toca ver como instalar un servidor bind en  una distribución basada en Debian (Debian etch, Ubuntu, Kubuntu, etc.)

En pocas palabras, ¿Qué hace un servidor de DNS?

Es el encargado de convertir distintos nombres de dominio (Ej: www.itimag.net) en su ip. Por lo tanto, cada vez que accedemos a un servidor mediante un dominio de internet, pasamos por un servidor de dns que se encarga de decirnos cúal es la ip del equipo en la que se encuentra la web a la que estamos accediendo.

Pasemos a la acción. Para instalar bind, ejecutamos el siguiente comando en una consola o shell:

su
apt-get install bind9

Por razones de seguridad, vamos a ejecutar el BIND de tal forma que pueda correr en un directorio chroot. Lo hacemos de la siguiente forma:

/etc/init.d/bind9 stop

Editamos el fichero /etc/default/bind9 . Queremos que el demonio del bind se ejecute con el usuario bind sin privilegios, “chrooted” al directorio /var/lib/named. Para ello, buscamos donde pone <<OPTIONS=”-u bind”>> y lo substituimos por <<OPTIONS=”-u bind -t /var/lib/named”>>:

nano /etc/default/bind9
OPTIONS="-u bind -t /var/lib/named"
# Set RESOLVCONF=no to not run resolvconf
RESOLVCONF=yes

Ahora creamos los directorios necesarios en /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

Y a continuación movemos el directorio de configuración desde /etc hasta /var/lib/named/etc:

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

Creamos un link simbólico al nuevo directorio de configuración partiendo del antiguo directorio (para evitar problemas cuando bind se actualice):

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

Hacemos “null” y “random”, y cambiamos 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

Ahora necesitamos modificar el fichero /etc/default/syslogd con la finalidad de registrar los mensajes que muestre bind el algún fichero de log. Debemos buscar la linea que pone <<SYSLOGD=”">> y lo substituimos por <<SYSLOGD=”-a /var/lib/named/dev/log”>>:

nano /etc/default/syslogd

El fichero resultante es el siguiente:

#
# Top configuration file for syslogd
#
 
#
# Full documentation of possible arguments are found in the manpage
# syslogd(8).
#
 
#
# For remote UDP logging use SYSLOGD="-r"
#
SYSLOGD="-a /var/lib/named/dev/log"

Reiniciamos el demonio del generador de logs:

/etc/init.d/sysklogd restart

Iniciamos o arrancamos BIND, y chequeamos /var/log/syslog para observar si se han producido errores:

/etc/init.d/bind9 start

Para ver si hay errores, hacemos:

less /var/log/syslog

Ahora pulsamos la z para recorrer el texto hasta el final y observamos si se ha producido algún error tras reiniciar:

Ejemplo:

Sep 22 13:13:01 ksxxxxx syslogd 1.4.1#18: restart.
 
Sep 22 13:13:01 ksxxxxx /USR/SBIN/CRON[11162]: (root) CMD (/usr/local/rtm/bin/rtm 12 &gt; /dev/null 2&gt; /dev/null)
 
Sep 22 13:13:15 ksxxxxx named[11217]: starting BIND 9.3.4-P1.1 -u bind -t /var/lib/named
 
Sep 22 13:13:15 ksxxxxx named[11217]: found 1 CPU, using 1 worker thread
 
Sep 22 13:13:15 ksxxxxx named[11217]: loading configuration from '/etc/bind/named.conf'
 
Sep 22 13:13:15 ksxxxxx named[11217]: no IPv6 interfaces found
 
Sep 22 13:13:15 ksxxxxx named[11217]: listening on IPv4 interface lo, 127.0.0.1#53
 
Sep 22 13:13:15 ksxxxxx named[11217]: listening on IPv4 interface eth0, 213.251.xxx.xxx#53
 
Sep 22 13:13:15 ksxxxxx named[11217]: command channel listening on 127.0.0.1#953
 
Sep 22 13:13:15 ksxxxxx named[11217]: zone 0.in-addr.arpa/IN: loaded serial 1
 
Sep 22 13:13:15 ksxxxxx named[11217]: zone 127.in-addr.arpa/IN: loaded serial 1
 
Sep 22 13:13:15 ksxxxxx named[11217]: zone 255.in-addr.arpa/IN: loaded serial 1
 
Sep 22 13:13:15 ksxxxxx named[11217]: zone localhost/IN: loaded serial 1
 
Sep 22 13:13:15 ksxxxxx named[11217]: running

En este ejemplo, no se observa ningún mensaje de error y, por lo tanto, la instalación ha sido un éxito.