BIND: Servidor de Nombres de Dominio
Sep 24, 07 by Juan Lebrijo about DNS, Services, blog
Domain Name System, es el servicio gracias al cual podemos utilizar bonitos nombres de dominio en lugar de inmemorizables direcciones IP. Bind es la aplicación más ampliamente utilizada para implementar estre servidor, y la vamos a instalar sobre un Debian Etch. Mis condiciones de partida son:
  • Dirección IP fija proporcionada por el ISP (ej. 85.48.162.99). En españa en la fecha del artículo recomiendo Orange, ya que es el que menos cobra por este servicio (2 €/mes).
  • Nombre de dominio (ej. lebrijo.com) comprado a una Empresa Registradora. Recomiendo http://www.domiteca.com, a fecha del artículo me han dado un servicio muy eficaz, aunque ya sé que no es el más barato.
Para profundizar: Origen http://www.isc.org/index.pl?/sw/bind/ Repositorio http://www.isc.org/index.pl?/sw/bind/ Paquete apt 9.3.4 Documentación (Castellano) http://bulma.net/body.phtml?nIdNoticia=1334 Documentación (Inglés) admin. Guide: http://www.isc.org/index.pl?/sw/bind/ http://www.isc.org/index.pl?/sw/bind/ http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/ network-dns.html Ficheros Configuración: /etc/bind/named.conf.options Conf zonas: /etc/bind/named.conf Conf local: /etc/bind/named.conf.local Control demonio: /etc/init.d/bind9 Puertos 53 TCP/UDP

Acciones previas

Si vamos a montar el servidor en la dirección anterior, tenemos que solicitar al registrador que nos delege la zona (lebrijo.com) a la IP fija que tenemos (85.48.162.99). Para que a todo el mundo que pregunte por algo.lebrijo.com venga a nuestro servidor a preguntar; ó por lo menos todos los servidores superiores cojan el fichero de zona alojado ahí, y respondan bien ante la pregunta ¿donde está algo.lebrijo.com?. El registrador debe saber donde se controla la zona lebrijo.com. Ponemos nuestros DNS.
domiteca.PNG 104 KB
Veremos que aunque sean cuatro están referenciados al mismo servidor, lo ideal es que tengamos primario y secundarios por si se caen y todo eso....., pero somos humildes y solo tenemos un servidor. En segundo lugar tendremos que abrir nuestro firewall, y/o hacer NAT en nuestro router de cabecera para que cualquier petición al puerto 85.48.162.99:53 sean respondidas por nuestro servidor.

Instalación

Instalamos, fácil en debian:
elite:~# apt-get install bind9
Leyendo lista de paquetes... Hecho
Creando árbol de dependencias... Hecho
dnsutils ya está en su versión más reciente.
Paquetes sugeridos:
  bind9-doc
Se instalarán los siguientes paquetes NUEVOS:
  bind9
0 actualizados, 1 se instalarán, 0 para eliminar y 6 no actualizados.
Necesito descargar 441kB de archivos.
Se utilizarán 901kB de espacio de disco adicional después de desempaquetar.
Añadimos nuestras zonas al /etc/bind/named.conf
zone "lebrijo.com" {
      type master;
      file "/etc/bind/db.lebrijo.com";
};
zone "0.168.192.in-addr.arpa" {
	type master;
	file "/etc/bind/db.192.168.0";
};
Creamos un fichero de zona directa db.lebrijo.com:
;
; BIND data file for zone lebrijo.com
;
$TTL 3600        ; 1 hour
@    IN      SOA      ns1.lebrijo.com. root.lebrijo.com. (
                                2007083001      ; Serial
                                10800           ; Refresh
                                3600            ; Retry
                                604800          ; Expire
                                86400           ; Minimum TTL
                        )

; Servidores DNS
                IN      NS      ns1.lebrijo.com.
                IN      NS      ns2.lebrijo.com.
                IN      NS      ns3.lebrijo.com.
                IN      NS      ns4.lebrijo.com.

; Servidores de correo
                IN      MX      0	correo.lebrijo.com.

                IN      A       85.48.162.99

; Nombres de Máquina
localhost       IN      A       127.0.0.1
ns1             IN      A       85.48.162.99
ns2             IN      A       85.48.162.99
ns3             IN      A       85.48.162.99
ns4             IN      A       85.48.162.99
correo          IN      A       85.48.162.99
ntp             IN      A       85.48.162.99

; Webs servidas
www             IN      A       85.48.162.99
blog            IN      A       85.48.162.99

curriculum      IN      CNAME   www
Observemos varias cosas del fichero:
  • Marcamos los cuatro servidores dns a la misma máquina.
  • MX es la etiqueta de los servidores de correo. Abría que poner algún relay, pero como comentaba antes somos humildes.
  • Luego todo eso hay que direccionarlo a la IP propia. Cualquier nombre de máquina y de servicio.
  • Por último las webs que servimos.

Operación

Para que el servidor (ó cualquiera actuen como cliente) debemos añadir en primera línea de /etc/resolv.conf:
nameserver 85.48.162.99
Para reiniciar los servicios:
/etc/init.d/bind9 restart
/etc/init.d/networking restart
Cuando quieras propagar las zonas a los raices por que hayas añadido un registro, ó cambiado la configuración:
  • Cambias el campo Serial del fichero de zona (db.lebrijo.com), ya que en este campo se basan los servidores superiores para saber cual es el último. El número se suele componer de fecha y versión, pero podría ser un número incremental.
                 2007083001      ; Serial
  • Y haces un reload para que cargen las nuevas zonas y se propaguen.
  • /etc/init.d/bind9 reload
    NTP: Servicio de reloj
    Sep 21, 07 by Juan Lebrijo about NTP, Services, blog
    Network Time Protocol, es un protocolo que sirve para sincronizar relojes de los sistemas operativos sobre TCP(UDP)/IP. Este artículo trata de explicar muy brevemente como se instala y se utiliza servidor y cliente sobre un Debian Etch. Instalación:
    elite:~# apt-get install ntp ntpdate ntp-server ntp-simple
    Leyendo lista de paquetes... Hecho
    Creando árbol de dependencias... Hecho
    Paquetes sugeridos:
      ntp-doc
    Se instalarán los siguientes paquetes NUEVOS:
      ntp ntp-server ntp-simple ntpdate
    0 actualizados, 4 se instalarán, 0 para eliminar y 3 no actualizados.
    Necesito descargar 449kB de archivos.
    Se utilizarán 1098kB de espacio de disco adicional después de desempaquetar.
    En el fichero de configuración /etc/ntp.conf, cambiamos:
    • Descomentamos la línea: logfile /var/log/ntpd. Si deseamos apuntar las consultas que se hacen a nuestro servidor, sincronizaciones con otros, etc.
    • Añadimos los servidores padre, esto es opcional, por que con los pool que vienen configurados, ya sincroniza bien:
    server chronos.bulma.net
    server es.pool.ntp.org
    server ntp.obspm.fr
    server ntp.cs.strath.ac.uk
    server europe.pool.ntp.org
    server pool.ntp.org
    Para conrtolar el demonio del servidor tenemos el script: /etc/init.d/ntp restart AL probar ya el funcionamiento del servidor quiero daros algunos avisos:
    • Tarda un buen rato en sincronizarse (~30min), hasta entonces sigue como si no funcionara
    • Si lo abrimos como servidor (quitando las restricciones) no servirá la hora hasta que no se sincronice con otros.
    • Es posible que haya que abrir el firewall: Puerto 123 TCP/UDP. Ó hacer NAT en el router de salida, depende de como sea vuestro sistema.
    Para hacer comprobaciones tenemos las herramientas:
    • ntpq –pn: Muestra con que servidores esta calculando la sincronización.
    • ntptrace –n: Muestra los servidores origen de nuestra hora, el stratum en el que estamos etc.
    • tail -f /var/log/ntpd: Monitorizamos el log de ntp.
    Podemos evaluar el servidor con cualquier cliente, por ejemplo en el XP con Service Pack 2 (mínimo), tenemos en las propiedades de la hora la posibilidad de sincronizar con un servidor:
    ntp.PNG 5.74 KB
    Si quereis profundizar más en el tema os remito a los enlaces de la ficha: Origen http://www.ntp.org/ Repositorio http://www.ntp.org/downloads.html Paquete apt - 4.2.0a Documentación (Castellano) http://weblog.benetjoandarder.cat/descarregues/NTPv1.0.pdf http://bulma.net/body.phtml?nIdNoticia=1947 http://bulma.net/impresión.phtml?nIdNoticia=1778 Documentación (Inglés) http://www.ntp.org/documentation.html Ficheros Configuración: /etc/ntp.conf Control demonio: /etc/init.d/ntp-server Log: /var/log/ntpd Puertos 123 TCP/UDP
    NTP: Time Service in our network
    Sep 21, 07 by Juan Lebrijo about NTP, blog
    Network Time Protocol, is a protocol to synchronize the time clocks of every operating system over TCP(UDP)/IP. Here I am going to explain shortly how it is installed in a server and clients, over Debian Etch operating system. installation:
    elite:~# apt-get install ntp ntpdate ntp-server ntp-simple
    Leyendo lista de paquetes... Hecho
    Creando árbol de dependencias... Hecho
    Paquetes sugeridos:
      ntp-doc
    Se instalarán los siguientes paquetes NUEVOS:
      ntp ntp-server ntp-simple ntpdate
    0 actualizados, 4 se instalarán, 0 para eliminar y 3 no actualizados.
    Necesito descargar 449kB de archivos.
    Se utilizarán 1098kB de espacio de disco adicional después de desempaquetar.
    Let modyfy following aspects in config file, /etc/ntp.conf:
    • Uncomment the line: logfile /var/log/ntpd. If we want to log the service.
    • Add root our root server. It is optional, the pool configured is totally operative:
    server chronos.bulma.net
    server es.pool.ntp.org
    server ntp.obspm.fr
    server ntp.cs.strath.ac.uk
    server europe.pool.ntp.org
    server pool.ntp.org
    We can manage the NTP daemon with the script: /etc/init.d/ntp restart I want to warn you in follow three points, when you first getting up the service:
    • It takes log time to sinchronize (~30min in my server), during this time not runs.
    • If we want the service as server, it do not serve the time until its synchrnization.
    • Maybe we must open our firewall in 123 TCP/UDP port. Or making NAT in output server, it depends on our network configuration.
    We can test it with the following tools:
    • ntpq –pn: Show what servers it synchronioze with.
    • ntptrace –n: Show which serves the time to our server, our server stratum etc.
    • tail -f /var/log/ntpd: NTP log.
    Evaluating the service in a client, with Windows XP Service Pack 2, we could doit in "Time and date properties", her we can set our favorite server:
    ntp.PNG 5.74 KB
    If you want to study in depth about NTP, you can learn more in the links on the table: Origin http://www.ntp.org/ Repository http://www.ntp.org/downloads.html Package apt - 4.2.0a Documentation (Spanish) http://weblog.benetjoandarder.cat/descarregues/NTPv1.0.pdf http://bulma.net/body.phtml?nIdNoticia=1947 http://bulma.net/impresión.phtml?nIdNoticia=1778 Documentation (English) http://www.ntp.org/documentation.html Files Configuration: /etc/ntp.conf Daemon: /etc/init.d/ntp-server Log: /var/log/ntpd Port 123 TCP/UDP