Introducción
LXE ofrece servicio de resolución de nombres utilizando LDAP como respaldo de su información. Con esto se pueden afectar zonas sin tener que reiniciar el servidor. Además de esto, las demás caractersticas de la consola permiten mantener un pista de quién es el usuario en sesión en la maquina que este dada de alta en la tabla de resolución.
Paquetes necesarios
Configuración
Una vez instalado el servidor de DNS podremos pasar a la parte de la configuración que prácticamente es jugar con los archivos de configuración, especialmente con /etc/named.conf.
| /etc/named.conf |
key mykey { algorithm hmac-md5; secret "c3Ryb25nIGVub3VnaCBmb3IgYSBtYW4gYnV0IG1hZGUgZm9yIGEgd29tYW4K"; }; controls { inet 127.0.0.1 port 953 allow { 127.0.0.1; } keys { mykey; }; }; acl localnetwork { 172.16.30.0/24; 127.0.0.1; 10.160.0.0/16; 10.161.0.0/16; }; // Access lists (ACL's) should be defined here include "/etc/bogon_acl.conf"; options { version ""; directory "/var/named"; dump-file "/var/tmp/named_dump.db"; pid-file "/var/run/named/named.pid"; statistics-file "/var/tmp/named.stats"; zone-statistics yes; coresize 100M; // fetch-glue no; // recursion no; auth-nxdomain yes; query-source address * port *; listen-on port 53 { any; }; cleaning-interval 120; transfers-in 20; transfers-per-ns 2; lame-ttl 0; max-ncache-ttl 10800; allow-transfer { any; }; // Prevent DoS attacks by generating bogus zone transfer // requests. This will result in slower updates to the // slave servers (e.g. they will await the poll interval // before checking for updates). notify no; // Generate more efficient zone transfers. This will place // multiple DNS records in a DNS message, instead of one per // DNS message. transfer-format many-answers; // Set the maximum zone transfer time to something more // reasonable. In this case, we state that any zone transfer // that takes longer than 60 minutes is unlikely to ever // complete. WARNING: If you have very large zone files, // adjust this to fit your requirements. max-transfer-time-in 60; // We have no dynamic interfaces, so BIND shouldn't need to // poll for interface state {UP|DOWN}. interface-interval 0; // Uncoment these to enable IPv6 connections support // IPv4 will still work // listen-on { none; }; // listen-on-v6 { any; }; // Deny anything from the bogon networks as // detailed in the "bogon" ACL. blackhole { bogon; }; // root-delegation-only exclude { "de"; "lv"; "museum"; }; }; // define logging channels include "/etc/logging.conf"; zone "." { type hint; file "named.ca"; }; // workaround stupid stuff... (OE: Wed 17 Sep 2003) zone "ac" { type delegation-only; }; zone "cc" { type delegation-only; }; zone "com" { type delegation-only; }; zone "cx" { type delegation-only; }; zone "museum" { type delegation-only; }; zone "net" { type delegation-only; }; zone "nu" { type delegation-only; }; zone "ph" { type delegation-only; }; zone "sh" { type delegation-only; }; zone "tm" { type delegation-only; }; zone "ws" { type delegation-only; }; zone "linuxchange.com" { type master; database "ldap ldap://127.0.0.1/dc=linuxchange,dc=com, ou=DNS,dc=linuxchange,dc=com???? !bindname=cn=root%2cdc=linuxchange%2cdc=com, !x-bindpw=secret 60"; allow-update { localnetwork; }; allow-query { localnetwork; }; allow-transfer { localnetwork; }; }; zone "30.16.172.in-addr.arpa" { type master; database "ldap ldap://127.0.0.1/dc=30,dc=16,dc=172, dc=in-addr,dc=arpa,ou=DNS,dc=linuxchange,dc=com???? !bindname=cn=root%2cdc=linuxchange%2cdc=com, !x-bindpw=secret 60"; allow-update { localnetwork; }; allow-query { localnetwork; }; allow-transfer { localnetwork; }; }; |
|
Como regla general toda lnea termina con un ; independientemente que sea una llave. La definición de una zona se indica con la palabra reservada zone seguida del nombre de la zona, que es el dominio como se muestra en el ejemplo. Dentro de las llaves deber indicar el tipo de base de datos que BIND leera. En este caso se especifica ldap seguido del url completo de la base donde se encuentran los datos del DNS y por último un número que ser el valor por defecto del valor TTL en caso que el objeto alcanzado caresca de valor en la propiedad dnsTTL.
Dentro de esta sección se puede especificar al igual que las vistas, quines pueden transferir los DNS. Esto es posible con la opción allow-transfer mandándole los parámetros en notación CIDR. En algunos casos tal vez sea necesario fraccionar el archivo por el tamaño que representa. Aunque esta no es una propiedad que debe ser propia de LXE, BIND soporta la directiva include seguida de la ruta al archivo a incluir.
Configuración del Directorio
La configuración del árbol LDAP está documentada en el documento Configuración del Directorio . El aspecto de un LDIF para la ou de la vista ser el siguiente:
Para los DC's:
dn: dc=com,ou=DNS,dc=linuxchange,dc=com dc: com objectClass: top objectClass: domain
Simplificando, se tendrá que añadir un archivo con el contenido siguiente para la zona linuxchange.com:
| dns.ldif |
dn: ou=DNS,dc=linuxchange,dc=com ou: DNS objectClass: top objectClass: organizationalUnit objectClass: domainRelatedObject associatedDomain: linuxchange.com dn: dc=com,ou=DNS,dc=linuxchange,dc=com dc: com objectClass: top objectClass: domain dn: dc=linuxchange,dc=com,ou=DNS,dc=linuxchange,dc=com dc: linuxchange objectClass: top objectClass: domain |
|
Para añadir el archivo nombrado dns.ldif se deberá ejecutar el comando ldapadd -x -c -D "cn=root,dc=linuxchange,dc=com" -W -f dns.ldif
Dentro de la ruta completa de este ejemplo dc=linuxchange,dc=com,ou=DNS,dc=linuxchange,dc=com debe exitir uan entrada relativeDomainName=@ que contiene entre otra información el registro SOA de la zona.
El aspecto general de un registro SOA puede ser el siguiente LDIF para @ de zonas dn:
| dns-soa.ldif |
dn: relativeDomainName=@,dc=linuxchange,dc=com,ou=DNS,dc=linuxchange,dc=com dNSClass: IN objectClass: top objectClass: dNSZone relativeDomainName: @ nSRecord: tao.linuxchange.com. nSRecord: ns2.linuxchange.com. zoneName: linuxchange.com mXRecord: 10 tao.linuxchange.com. mXRecord: 50 mail2.linuxchange.com. dNSTTL: 3600 sOARecord: tao.linuxchange.com. root.linuxchange.com. 1050445933 10800 3600 604800 38400 |
|
De igual forma, el archivo dns-soa.ldif se añade con el comando ldapadd -x -c -D "cn=root,dc=linuxchange,dc=com" -W -f dns-soa.ldif Las sintaxis con la que se debe de llenar los campos mXRecord, aARecord, CNameRecord, soARecord, nSRecord y demás no cambia del BIND normal (sin LDAP).
|