Servidor DNS Bind en Linux

download Servidor DNS Bind en Linux

of 16

Transcript of Servidor DNS Bind en Linux

Servidor DNS Bind en LinuxEl DNS (DomainNameSystem, Sistema de Nombres de Dominio) es una base de datos jerrquica distribuida que almacena la informacin sobre nombres de dominio e IPs en Internet, que se implementa con arquitectura cliente-servidor, por lo que necesita:y

un servidor DNS que escucha en los puertos 53 TCP y 53 UDP, que se ocupa de responder las consultas DNS. Prcticamente el nico software utilizado en servidores DNS es Bind, del ISC (Internet SystemsConsortium, isc.org). Equivalencias en Windows: MS-DNS.

y

un cliente DNS, generalmente un navegador o un servidor de correo, el programa que genera peticiones DNS de resolucin de nombres a un servidor DNS, del tipo qu IP corresponde a www.domain.com?

Vamos a ver dos ejemplos:y y

servidor DNS para un dominio registrado. servidor DNS local, sin dominio registrado.

Una vez configurado el servidor DNS comprobaremos que funciona correctamente con los comandos ping y dig. Es muy conveniente leer los HOWTOs y algn manual bueno de DNS:y y y y

DNS COMO: es.tldp.org/COMO-INSFLUG/COMOs/DNS-Como/ DNS - Bulma: bulma.net/body.phtml?nIdNoticia=1334 DNS - Smaldone: blog.smaldone.com.ar/2006/12/05/como-funciona-el-dns/ Analiza el DNS de nuestro dominio: dnsreport.com

Servidor DNS para un dominio registradoVamos a instalar un servidor DNS y vamos a configurarlo para servir tanto a la red local como a Internet, proporcionando a cada red distinta informacin.y

y

los ordenadores de la LAN consultarn a este servidor cuando tengan que resolver un nombre de host local o de Internet. De este modo, no tendremos que aadir manualmente los nombres de las mquinas de la LAN a /etc/hosts. a las mquinas de Internet que soliciten nuestro dominio www.fransberns.com (suponemos que est registrado y que dd1.dd2.dd3.dd4 es la IP asociada), les dirn que el servidor DNS para ese dominio est en nuestra mquina (IP del servidor DNS primario dd1.dd2.dd3.dd4, IP del servidor DNS secundario ss1.ss2.ss3.ss4).

Veamos cmo instalar el servidor DNS:

1. instalamos Bind (Berkeley Internet NameDomain, isc.org/products/BIND/, paquete bind9): el demonio es named y escucha los puertos 53 TCP y 53 UDP. 2. editamos el archivo de configuracin de bind/etc/bind/named.conf.local y aadimos las siguientes lneas:3. aclslaves { 4. ss1.ss2.ss3.ss4; 5. }; 6. aclinternals { 7. 127.0.0.1; 8. 192.168.1.0/24; 9. }; 10. view "internal" { 11. match-clients { 12. internals; 13. }; 14. recursion yes; 15. zone "fransberns.com" { 16. type master; 17. file "/etc/bind/internals/db.fransberns.com"; 18. }; 19. zone "dd3.dd2.dd1.in-addr.arpa" { 20. type master; 21. file "/etc/bind/db.dd1.dd2.dd3"; 22. }; 23. zone "1.168.192.in-addr.arpa" { 24. type master; 25. file "/etc/bind/db.192.168.1"; 26. }; 27. }; 28. view "external" { 29. match-clients { 30. any; 31. }; 32. recursion no; 33. zone "fransberns.com" { 34. type master; 35. file "/etc/bind/externals/db.fransberns.com"; 36. allow-transfer { 37. slaves; 38. }; 39. }; 40. zone "dd3.dd2.dd1.in-addr.arpa" { 41. type master; 42. file "/etc/bind/db.dd1.dd2.dd3"; 43. }; };

Qu hemos hecho?o

definimos una nueva zona, fransberns.com, sobre la que Bind ejerce el control, que tiene 2 sub-zonas: internal y external. o Bind servir distintos contenidos segn la sub-zona de donde provenga la consulta:

consultas "internas" son las que provienen de una IP que coincide con el rango de IPs definido en aclinternal, es decir, las que proceden de 192.168.1.0/24, y su configuracin est en el archivo /etc/bind/internals/db.fransberns.com consultas "externas" son todas las dems, y su configuracin est en el archivo /etc/bind/externals/db.fransberns.com o ambas sub-zonas son type master: significa que el servidor DNS es primario. o definimos un servidor DNS secundario (que lo tenemos en la IP ss1.ss2.ss3.ss4), mediante la directiva aclslave. Con la directiva allowtransfer permitimos transferir los datos de la sub-zona external a este servidor secundario. o creamos las zonas 1.168.192.in-addr.arpa y dd3.dd2.dd1.in-addr.arpa para que nuestro servidor DNS haga el mapeo inverso (traducir una IP a un nombre de dominio). 44. creamos el archivo /etc/bind/externals/db.fransberns.com (IN NS indica que este equipo es el servidor DNS): 45. ; fransberns.com-externals 46. $TTL 604800 47. @ IN SOA ns1.fransberns.com. root.fransberns.com. ( 48. 2006020201 ; Serial 49. 604800 ; Refresh 50. 86400 ; Retry 51. 2419200 ; Expire 52. 604800 ); Negative Cache TTL 53. ; 54. @ IN NS ns1 55. IN MX 10 mail 56. IN A dd1.dd2.dd3.dd4 57. ns1 IN A dd1.dd2.dd3.dd4 58. mail IN A dd1.dd2.dd3.dd4 www IN A dd1.dd2.dd3.dd4

59. creamos el archivo /etc/bind/internals/db.fransberns.com (IN A aade un nombre de host y su IP correspondiente):60. ; fransberns.com-internals 61. $include "/etc/bind/externals/db.fransberns.com" 62. @ IN A 192.168.1.3 63. pc350 IN A 192.168.1.3 64. pc450 IN A 192.168.1.2 pc266 IN A 192.168.1.4

65. creamos el archivo /etc/bind/internals/db.192.168.1 (contiene la misma informacin del mapeo de nombres a IPs):66. 67. 68. 69. 70. 71. 72. 73. 74. ; fransberns.com inverso red local $TTL 604800 @ IN SOA fransberns.com. root.fransberns.com. ( ; Serial 1 ; Refresh 8H ; Retry 2H 4W ; Expire 1D ) ; Minimum TTL ;

75. @ 76. 3 77. 2 4

IN IN IN IN

NS PTR PTR PTR

fransberns.com pc350.fransberns.com. pc450.fransberns.com. pc266.fransberns.com.

78. creamos el archivo /etc/bind/internals/db.dd1.dd2.dd3 (contiene la misma informacin del mapeo de nombres a IPs):79. ; fransberns.com inverso red pblica 80. $TTL 604800 81. @ IN SOA fransberns.com. root.fransberns.com. ( ; Serial 82. 1 83. 8H ; Refresh ; Retry 84. 2H 85. 4W ; Expire 86. 1D ) ; Minimum TTL 87. ; 88. @ IN NS fransberns.com 89. dd4 IN PTR ns1 90. dd4 IN PTR mail dd4 IN PTR www

91. cmo se configura el servidor secundario? En el /etc/bind/named.conf del servidor DNS secundario aadiremos las lneas:92. zone "fransberns.com" { 93. typeslave; 94. file "sec.db.fransberns.com"; 95. masters { 96. dd1.dd2.dd3.dd4; 97. }; 98. }; 99. zone "dd3.dd2.dd1.in-addr.arpa" { 100. typeslave; 101. file "sec.db.dd1.dd2.dd3"; 102. masters { 103. dd1.dd2.dd3.dd4; 104. }; };

105. y si no tenemos servidor DNS secundario? Un servidor DNS debe tener un servidor secundario. Podemos conseguir un servidor DNS secundario en xname.org. Slo tenemos que abrir una cuenta para fransberns.com y decirles que dd1.dd2.dd3.dd4 es la IP desde donde transferirn la informacin DNS del dominio fransberns.com. En ese caso, sustituiremos ss1.ss2.ss3.ss4 por la IP de xname.org (193.218.105.146). 106. editaremos /etc/bind/named.conf.options e incluiremos las IPs de los servidores DNS de nuestro ISP, de manera que Bind las utilizar para resolver peticiones que no pertenezcan a nuestro dominio. Buscaremos la directiva forwarders y pondremos:107. forwarders { 108. 80.58.61.250; 109. 80.58.61.254; };

110. editaremos el archivo /etc/resolv.conf y aadiremos la IP del servidor DNS (dejaremos los de nuestro ISP por si falla Bind):111. search fransberns.com 112. nameserver 192.168.1.3 113. nameserver 80.58.61.250 nameserver 80.58.61.254

114. cuando se nos pregunte por un servidor DNS al registrar fransberns.com, pondremos el que hemos montado, ns1.fransberns.com, como primario y ss1.ss2.ss3.ss4 como secundario. Los cambios de configuracin en el DNS son lentos, y no podremos comprobar los resultados hasta transcurridas algunas horas (hasta 48 horas). 115. reiniciamos el demonio de Bind (named) ejecutando:# /etc/init.d/bind9 restart

Una vez instalado el servidor DNS configuraremos los clientes. Para ello, configuraremos cada ordenador de la red local para que use el servidor DNS local editando el archivo /etc/resolv.conf de cada mquina y aadiendo la IP del servidor DNS:search fransberns.com nameserver 192.168.1.3 nameserver 80.58.61.250 nameserver 80.58.61.254

Servidor DNS local, sin dominio registradoVeamos cmo instalar un servidor DNS local: 1. editamos el archivo /etc/bind/named.conf.local y aadimos las siguientes lneas:2. 3. 4. 5. 6. 7. 8. zone "fransberns.com" { type master; file "/etc/bind/db.fransberns.com"; }; zone "1.168.192.in-addr.arpa" { type master; file "/etc/bind/internals/db.192.168.1"; };

9. creamos el archivo /etc/bind/db.fransberns.com, cuyo contenido es:10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. ; fransberns.com $TTL 604800 @ IN SOA 2006020201 ; Serial ns1.fransberns.com. root.fransberns.com. ( 604800 ; 86400 ; 2419200 ; 604800 ); ; @ IN IN NS A Refresh Retry Expire Negative Cache TTL

ns1 192.168.1.3

21. ns1 IN 22. www IN 23. pc350 IN 24. pc450 IN pc266 IN

A A A A A

192.168.1.3 192.168.1.3 192.168.1.3 192.168.1.2 192.168.1.4

25. creamos el archivo /etc/bind/internals/db.192.168.1, cuyo contenido es:26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 4 ; fransberns.com inverso red local $TTL 604800 @ IN SOA fransberns.com. root.fransberns.com. ( ; Serial 1 8H ; Refresh ; Retry 2H ; Expire 4W 1D ) ; Minimum TTL ; @ IN NS fransberns.com 3 IN PTR pc350.fransberns.com. 2 IN PTR pc450.fransberns.com. IN PTR pc266.fransberns.com.

38. editamos /etc/bind/named.conf.options para que consulte a los DNS del ISP:39. forwarders { 40. 80.58.61.250; 41. 80.58.61.254; };

42. editamos el archivo /etc/resolv.conf y aadiremos la IP del servidor DNS local:43. search fransberns.com 44. nameserver 192.168.1.3 45. nameserver 80.58.61.250 nameserver 80.58.61.254

46. reiniciamos el demonio de Bind (named) ejecutando:# /etc/init.d/bind9 restart

Los clientes los configuraremos exactamente igual que en el caso anterior.

Configurar BIND en el entorno grficoEn el entorno grfico podemos configurar BIND con GBIND Admin (paquete gbindadmin).

++++++++++++++++++++++++++++++++++++++++++++++++++++

ConfiguracionBasica DNSPublicadas por Xaero a la/s 17:54 Etiquetas: DNS, Fedora, Linux, planeta El siguiente mini how-to es para mostra la configuracionbasica de un servidor DNS para una red interna, donde el servidor DNS local dependera de los servidores externos DNS obtenido via el ISP(fowardersonly ) Este mini how-to lo realizare en Fedora9, el procedimiento es el mismo para RedHat/CentOS, lo primero es definir la configuracion de red a utilizar la cual sera la siguiente: Red privada clase C: 192.168.1.0/24 Gateway: 192.168.1.10 DNS: 192.168.1.1 (el servidor que configurare) Dominio: mynetwork.lan (el dominio puede ser cualquiera, puesto que esto no sera visible desde el internet)

DNS(fowards = servidores DNS externos): 208.67.222.222 208.67.220.220 ahora los paquetes los instalamos usando el gestor de paquetes yum que es un frontend del comando "rpm"

viewplainprint? 1. # yuminstall -y bind* con esto instalamos todos los paquetes necesarios, Bind9 se instalara en fedora en un chroot (entorno restringido) teniendo sus archivos de configuracion en los siguientes directorios:

viewplainprint? 1. 2. 3. 4. 5. 6. # configuracion /var/named/chroot/etc # archivos de zona /var/named/chroot/var/named

definiremos 2 archivos de zonas con los registros de los recursos que tenemos en la red

viewplainprint? 1. ; file: net.db 2. $TTL 1D 3. mynetwork.lan. IN SOA xaero.mynetwork.lan. root.mynetwork.lan. ( 4. 1 ; serial 5. 3h ; refreshafter 3 hours 6. 1h ; retryafter 1 hour 7. 1w ; expiryafter 1 week 8. 1h ; minimum, Negative caching TTL of 1 hour 9. ) 10. 11. @ NS xaero.mynetwork.lan. 12. 13. IN A 192.168.1.1 14. www IN A 192.168.1.1 ; web server 15. ftp IN A 192.168.1.1 ; ftp server

16. 17. wrack IN A 192.168.1.2 ; old file server machine 18. mynx IN A 192.168.1.3 ; laptop 19. 20. xaero IN HINFO i686 Unix ; this server 21. 22. ;Test Virtual hosts 23. www.phpweb20.lan IN CNAME xaero.mynetwork.lan. 24. www.django_demo.lan IN CNAME xaero.mynetwork.lan.

El archivo "net.db" define los recursos de la red y con los registros A, CNAME, NS.

viewplainprint? 1. ; file: 192.db 2. ; Zone file for 192.168.1.x 3. ; 4. 5. $TTL 3h 6. 7. 1.168.192.in-addr.arpa. IN SOA xaero.mynetwork.lan. root.mynetwork.lan. ( 8. 1 ; Serial 9. 3h ; Refreshafter 3 hours 10. 1h ; Retryafter 1 hour 11. 1w ; Expire after 1 week 12. 1h ) ; Negative caching TTL of 1 hour 13. 14. ; Name servers 15. 16. @ IN NS xaero.mynetwork.lan. 17. 18. 1 IN PTR xaero.mynetwork.lan. 19. 2 IN PTR wrack.mynetwork.lan. 20. 3 IN PTR mynx.mynetwork.lan.

Este archivo permitira resolver en reversa los hosts de la red a partir del IP. los archivos a modificar son:

/var/named/chroot/etc/named.conf viewplainprint? 1. // named.conf 2. aclmynetwork-lan { 192.168.1.0/24; 127.0/8; }; 3. options { 4. listen-onport 53 { 192.168.1.1; 127.0.0.1; }; 5. listen-on-v6 port 53 { ::1; }; 6. directory "/var/named"; 7. dump-file "/var/named/data/cache_dump.db"; 8. statistics-file "/var/named/data/named_stats.txt"; 9. memstatistics-file "/var/named/data/named_mem_stats.txt"; 10. allow-query { localhost; mynetwork-lan; }; 11. forwarders { 208.67.222.222; 208.67.220.220; }; #IP dns servers 12. forward only; # rely completely on our upstream nameservers 13. query-sourceport 53; 14. query-source-v6 port 53; 15. recursion yes; 16. }; 17. 18. logging { 19. channeldefault_debug { 20. file "data/named.run"; 21. severitydynamic; 22. }; 23. }; 24. 25. view "internal" { 26. 27. match-clients {mynetwork-lan;}; 28. zone "." IN { 29. typehint; 30. file "named.ca"; 31. }; 32. 33. zone "mynetwork.lan" in { 34. type master; 35. file "net.db"; 36. }; 37. 38. zone "1.168.192.in-addr.arpa" in { 39. type master; 40. file "192.db"; 41. }; 42.

43. include "/etc/named.rfc1912.zones"; 44. };

En named.conf se definen los dns externos una ACL para limitar el acceso de los clientes DNS a solo los clientes que se encuentra en la red 192.168.1.0/24, se definen los puertos en los cuales el Bind9 escuchara, otros parametros y los archivos de zona

/etc/resolv.conf

viewplainprint? 1. searchmynetwork.lan 2. 3. nameserver 127.0.0.1 4. nameserver 192.168.1.1

Los parametros en "resolv.conf" le dicen al sistema como resolvera los nombre y la busqueda de dominio asi como los servidores de nombre.

/etc/sysconfig/network

viewplainprint? 1. 2. 3. 4. 5. # file: network NETWORKING=yes HOSTNAME=xaero.mynetwork.lan IPV6_DEFAULTGW= PEERDNS=no

Aqui el parametro importante es la opcion "PEERDNS=no" sin esta opcion las lineas en el resolv.conf cambiaran al reiniciar y usaran los DNS de la conexion del gateway, lo cual no es lo que se desea.

ahora que el DNS esta configurado se necesita que los clientes de la red haga uso del, para esto se tienen 2 opciones configurar el servicio DHCP en el router que sirve de gateway para que use el servidor Linux que funciona como DNS o instalar el servicio DHCP en linux para que funcione con DNS local.

Una vez configurado lo anterior solo basta con probar la configuracion

Configuracion DHCP basica

viewplainprint? 1. ddns-update-styleinterim; 2. ignore client-updates; 3. subnet 192.168.1.0 netmask 255.255.255.0 { 4. 5. # --- default gateway 6. optionrouters 192.168.1.10; 7. optionsubnet-mask 255.255.255.0; 8. optionbroadcast-address 192.168.1.255; 9. # option nis-domain "mynetwork.lan"; 10. option domain-name "mynetwork.lan"; 11. optiondomain-name-servers 192.168.1.1; 12. 13. option time-offset -18000; # Eastern Standard Time 14. # optionntp-servers 192.168.1.1; # NTP 15. # optionnetbios-name-servers 192.168.1.1; # SAMBA 16. 17. optionip-forwarding off; 18. rangedynamic-bootp 192.168.1.21 192.168.1.254; 19. default-lease-time 21600; 20. max-lease-time 43200; 21. }

Ahora solo queda probar la configuracion del Servidor DNS para esto se utilizar la poderosa herramienta "dig" uso: # dig mynetwork.lan

la respuesta debe ser:

como vemos la respuesta fue obtenida desde el server local, ahora si probamos haciendo la consulta al server por su IP 192.168.1.1 obtendremos lo siguiente:

# dig @192.168.1.1 mynetwork.lan

Referencia DNS for Rocket Scientists

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++Como ejecutar DNS

En los "Host" donde se esta ejecutando un "DNS Server" debe existir un proceso llamado named, si utiliza el comando ps -uaxdebe observar una linea con el parmetro named, esto indica que el servidor "DNS" estaactivo.En dado caso de no estar activo DNS, en todos los sistemas Unix existe un "Script" de arranque en el directorio /etc/rc.d/init.dllamado namedque puede ser utilizado para arrancar el servidor "DNS".Archivos de Configuracin named.conf

Este archivo ubicado en el directorio /etces el archivo de configuracin principal de DNS ya que contiene la ubicacin y parmetros de los dems archivos de configuracin. Este archivo contiene dos tipos de secciones:

y y

Opciones "options": Indica el directorio donde se encuentran otros archivos de configuracin y algunas otras opciones. Zonas "zone": Pueden existir varias zonas por archivo,estas zonas definen los dominios (osmosislatina.com) y redes "networks" (192.168.1.0) sobre los que se mantiene informacin

Un ejemplo del archivo named.confes el siguiente:options { directory "/var/named"; // Opciones adicionales en esta seccin }; zone "osmosislatina.com" in { type master; file "db.osmosislatina"; }; zone "1.168.192.in-addr.arpa" in { type master; file "db.192.168.1"; }; zone "0.0.127.in-addr.arpa"{ type master; file "db.127.0.0"; }; zone "." { type hint; file "named.ca"; };

Definiciones por seccin Opciones" options "

Esta seccin comnmente solo contiene el parmetro directoryque indica el directorio donde se encontrarn los dems archivos de configuracin estos son primordialmente aquellos de la forma db.192.168.1 y db.osmosislatina.com .Zonas" zone "

Si observa el archivo notar que existen diferentes variaciones en las secciones de Zonas "zone" , a continuacin se mencionan los detalles de cada una.

y

Zonas de Dominio : La seccin que inicia con zone "osmosislatina.com" in { es considerada un zona de dominio ya que declara el dominio osmosislatina.com, estas Zonas de Dominio contienen dos parmetros principales typey file .

El parmetro typepuede llevar los valores master o slave, el que una Zona de Dominio lleve el valor master significa que este servidor "DNS" contiene la informacin principal sobre el dominio (ms sobre slaveen Configuracin de "Slaves" y "Cache" ). El parmetro file indica el nombre del archivo que contiene los parmetros especficos de la Zona , este archivo es denominado Archivo de Zonay

Zonas de Redes "Network" : La seccin zone "1.168.192.in-addr.arpa" in { declara la red ("Network") 192.168.1.0, esta declaracin debe ser expresada para todas las redes ("Networks") que compongan el Sistema, al igual que las Zonas para dominio stas tambin pueden ser master o slave. La necesidad de utilizar estas Zonas ser ms clara una vez que observe como estn compuestos los Archivo de Zona

Porque la zona de Red ("Network") esta inversa ?

Debido a la estructura jerrquica de Dominios y Nodos IP, es necesario este tipo de configuracin. La parte ms general de un dominio se encuentra del lado derecho y se hace ms especifica conforme se avanza a la izquierda , todos los dominios son .com(general) y se van haciendo ms especficos osmosislatina.com , sun.com y an ms especficos: java.sun.com , desarrollo.osmosislatina.com (Vea Subdominios ) Ahora bien, los nodos IP de Internet (delegados por IANA "Internet AssignedNumbersAuthority") son ms generales de su lado izquierdo y se hacen ms especficos conforme se avanza a la derecha:La Red 14.0.0.0 incluye a 14.2.0.0 y 14.125.4.7 , 14.2.6.1 es parte de 14.2.0.0 ..etc.Ms especifico Menos especifico desarrollo.mexico.osmosislatina.com 7.4.125.14

Por lo tanto si la interpretacin de Zona de Red ("Network") de la Red "Network" 15.0.0.0 fuera realizada de la misma forma que un dominio como "15.in-addr.arpa" esto implicara todos los nodos de la Red terminados en 15 , por lo tanto se opta por una interpretacin inversa de "15.in-addr.arpa" lo cual viene a significar todos los nodos de la Red que inicien con 15 , esto ltimo garantiza una administracin ordenada de los nodos IP.

y

Zonas de Raz (".") : Esta Zona de Raz es una zona especial que especifica el archivo que contiene informacin sobre los servidores raz ("Root") mundiales, estos servidores raz (".") contienen TODA la informacin sobre las Redes que han sido delegadas en Internet, se utilizan cuando no es posible localizar informacin en otros "DNS servers", este es el ltimo recurso con el que se acude para intentar la resolucin. El archivo que utiliza esta zona named.ca debe ser actualizado por el administrador del Sistema, este archivo se puede encontrar en ftp://ftp.rs.internic.net

NOTA:Pueden existir un nmero ilimitado de cualquier tipo de Zonas, sin embargo en ocasiones se limita este nmero pero solo por razones administrativas. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Webadmin!!!

[email protected]