Source: https://alfaexploit.com/readArticle/59
Timestamp: 2020-08-09 20:18:10+00:00

Document:
Configuración básica Bind
Como muchos sabréis la resolución DNS se lleva a cabo mediante el protocolo DNS, este se encarga de responder con una dirección IP cuando se pregunta por un nombre o responder con un nombre cuando se pregunta por un dominio, este último tipo de resolución se le llama resolución inversa.
Los dominios DNS se organizan de forma jerárquica, esto quiere decir que si queremos resolver el dominio www.alfaexploit.com los pasos de la resolución serán:
Al servidor root se pregunta que servidor se encarga de los dominios .com
Al servidor encargado de los .com se le pregunta por el servidor encargado del dominio alfaexploit
Al servidor encargado de alfaexploit se le pregunta por www
Finalmente responde con la dirección IP
Este proceso se puede realizar de dos modos distintos:
Modo iterativo: Modo recursivo:
En el modo iterativo es el cliente el que va contactando con los servidores de la jerarquía hasta obtener la resolución final y en modo recursivo el cliente únicamente contacta con su servidor DNS y es este el que se encarga de recorrer el arbol hasta obtener la dirección IP.
La configuración típida de un servidor DNS es Master-Slave, las zonas se editan en el master y automáticamente se propagan al Slave, en el servidor de nivel superior que sabe que servidores son los encargados del dominio se indicarán los dos servidores(Master-Slave) de este modo si falla el master se consultará al slave.
Ahora que ya ha quedado claro el funcionamiento del protocolo DNS podemos proceder a la instalación del servidor, Bind es un conocido servidor DNS en sistema Unix, en este artículo voy a explicar como instalarlo y como realizar una configuración básica de este.
emerge -av net-dns/bind
El fichero de configuración principal es /etc/bind/named.conf este viene con la siguiente configuración por defecto:
Definimos algunas ACLs que luego utilizaremos en la config
acl "red_lan" {
A.B.C.D/24;
listen-on { A.B.C.D; };                                        --> Dirección IP a la que bindear Bind
allow-query {                                                      --> Definimos quien podrá realizar queries en el server
red_lan;
allow-query-cache {                                           --> Definimos a quien se le servirán datos cacheados en caso de existir
allow-recursion {                                                --> Definimos quien podrá realizar queries recursivas
allow-transfer {                                                  --> Definimos quien podrá realizar peticiones de transferencia de zona
allow-update {                                                   --> Definimos quien podrá actualizar las zonas
forward first;                                                     --> Cuando una query es de un dominio que no está configurado en alguna zona local el servidor enviará la petición a los servidores indicados, si estos no son capaces de llevar a cabo la resolución será nuestro servidor el que recorrerá la  jerarquía anteriormente descrita
Parámetros de logging:
Hay una utilidad llamada rndc para gestionar la config del servidor, esta se conecta al servidor por el puerto 953 y se autentica, si la autenticación es correcta se permite la ejecución de comandos
inet 127.0.0.1 port 953 allow { 127.0.0.1/32; ::1/128; } keys { "rndc-key"; };   --> Definimos quien podrá conectar por rndc y con que keys
zone "." in {                                                    --> Zona con la que encontrar a los root servers
zone "localhost" IN {                                     --> Zona para que cuando se haga una query a localhost resuelva a 127.0.0.1
zone "127.in-addr.arpa" IN {                        --> Zona para que la resolución inversa de 127.0.0.1 resuelva a localhost
Los campos de las zonas son:
El primer campo de una zona es el TTL, cuando servidores intermedios preguntan a nuestro servidor la respuesta queda cacheada en estos servidores intermedios el tiempo indicado aquí:
El Start Of Authority es el servidor final encargado de la zona, en este se tiene la info que cuenta, no hay cachés ya que es la info real sin servidores intermedios.
Se compone de 7 campos:
MNAME: El servidor maestro de esta zona --> ns1.AAAA.com
RNAME: Dirección de mail del responsable del dominio --> admin@AAAA.com
Serial number: Debe incrementarse en cada cambio, en caso contrario Bind no recarga la zona porque considera que no hay cambios y los slaves no actualizarán la zona.
Refresh secondary: Tiempo en que los slaves chequean y actualizan su db.
Retry: Tiempo que espera en reintentar una consulta el slave si el master no responde.
Expire: Tiempo que el slave considerará su info válida si el master no responde, cuando caduque el dominio no resolverá.
Negativa caching: Tiempo que los servidores intermedios deben cachear la inexistencia de una entrada.
AAAA.com. IN SOA ns1.AAAA.com admin (
NS      ns1.AAAA.com.
NS      ns2.AAAA.com.
MX 10    mail.AAAA.com.
A    A.B.C.D
www                   A   E.F.G.H
Ahora que ya tenemos la configuración por default podemos pasar a configurar nuestra propia zona.
zone "prueba.com" IN {
file "/etc/bind/prueba.com.zone";
vi /etc/bind/prueba.com.zone
prueba.com. IN SOA ns1.prueba.com admin (
NS      ns1.prueba.com.
NS      ns2.prueba.com.
MX 10   mail.prueba.com.
www             A       2.2.2.2
ns1             A       IP_SERVIDOR_DNS
ns2             A       IP_SERVIDOR_DNS
dig @ IP_SERVIDOR_DNS prueba.com
prueba.com.        86400    IN    A    1.1.1.1
dig @ IP_SERVIDOR_DNS www.prueba.com
www.prueba.com.        86400    IN    A    2.2.2.2
Las entradas mas utilizadas en zonas DNS son:
A --> Resolución normal
PTR --> Resolución inversa
CNAME --> Alias(Canonical Name)
TXT --> Informativo, DKIM, SPF...
SRV --> Balanceo de carga
Bueno esto es todo, espero que haya quedado claro, como configuración base lo veo bien y si tenéis alguna duda enviadme un e-mail, nos vemos en el próximo artículo ;)
Autor: kr0m -- 04/02/2014 13:18:52

References: resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 Resolución 
 Resolución