MaraDNS es un servidor de nombres de dominio pequeño, gratuito y ligero. Es un servidor DNS alternativo de código abierto, que actúa como un servidor de nombres de almacenamiento en caché, recursivo o autorizado. Es notablemente fácil de configurar y está disponible para plataformas Linux y Windows. Se puede descargar desde aquí. Puede leer más sobre DNS, DNS recursivo, DNS autorizado aquí.
A continuación se presentan algunas características interesantes de MarDNS:
- Fácil de instalar
- Uso de memoria bajo (utiliza aproximadamente 5 MB de RAM)
- Can actúa como servidor de nombres autorizado y servidor de nombres recursivo.
- No te lo pierdas, la documentación en el sitio web de MaraDNS es muy fácil de entender.
Comencemos ahora con MaraDNS en CentOS 7. Los pasos a continuación lo guiarán sobre la instalación y configuración de MaraDNS:
Instalando MaraDNS
A partir de ahora, no hay ningún RPM disponible de MaraDNS para CentOS 7, por lo que lo instalaremos y compilaremos desde la fuente.
Instalar gcc:
sudo yum install gcc
Descargue el archivo fuente más reciente desde aquí. Puedes hacerlo como:
wget http://maradns.samiam.org/download/2.0/2.0.11/maradns-2.0.11.tar.bz2
Extraiga el contenido del archivo:
tar -xjf maradns-2.0.11.tar.bz2
Cambie al directorio MaraDNS extraído, compile e instale los programas:
cd maradns-2.0.11
sudo make
sudo make install
MaraDNS ya está instalado. El servicio MaraDNS está instalado en /etc/init.d/maradns. Simplemente puede iniciar el servicio por:
sudo /etc/init.d/maradns start
Para iniciar el demonio recursivo, ejecute:
sudo /etc/init.d/maradns.deadwood start
De forma predeterminada, el servidor de nombres autorizado escucha en el puerto 127.0.0.1 y el recursivo en el puerto 127.0.0.2.
Asegurémonos de iniciar MaraDNS al arrancar:
chkconfig maradns on
Se requiere que la secuencia de comandos de inicio del servidor DNS recursivo sea compatible con chkconfig antes de que pueda ejecutarse al inicio. Agregue el contenido a continuación a la parte superior del archivo /etc/init.d/maradns.deadwood file:
# chkconfig: - 55 45
# description: MaraDNS is secure Domain Name Server (DNS)
# probe: true
Configúrelo para que se ejecute al arrancar:
chkconfig maradns.deadwood on
Configurar MaraDNS como un servidor de nombres autorizado
Los servidores DNS autorizados "conocen" la asignación de URL a IP para cualquier dominio dado. Son la fuente de la información que los servidores DNS recursivos envían a clientes web como navegadores (Chrome, Firefox). Puede configurar MaraDNS como un servidor de nombres autorizado como:
Edite el archivo de configuración de MaraDNS, es decir, /etc/mararc:
ipv4_bind_addresses = "127.0.0.1" chroot_dir = "/etc/maradns"
csv2 = {} csv2["example.net."] = "db.example.net"
La primera línea le dice a MaraDNS que escuche en IP-127.0.0.1. Puede agregarle más direcciones IP, separadas por comas. Por ej.- 127.0.0.1, x.x.x.x
La segunda línea chroot_dir es para mencionar el directorio donde se guardarán todos los archivos de zona.
La tercera línea inicializa el hash csv2 con el comando csv2 ={}.
La cuarta línea menciona el archivo de zona denominado db.example.net para el nombre de dominio example.net.
Aquí está el archivo de zona llamado db.example.net para el nombre de dominio example.net que se explica por sí mismo:
example.net. +14400 soa ns1.example.net. [email protected] 2012010117 14400 3600 604800 14400 ~ example.net. +14400 ns ns1.example.net. ~ example.net. +14400 ns ns2.example.net. ~ ns1.example.net. +14400 a 127.0.0.1 ~ ns2.example.net. +14400 a 127.0.0.1 ~ example.net. +14400 a 127.0.0.1 ~ www.example.net. +14400 a 127.0.0.1 ~ example.net. +14400 mx 10 mail.example.net. ~ mail.example.net. +14400 a 127.0.0.1 ~
Comienza con la línea Start Of Authority (SOA). A continuación, especifique los servidores de nombres autorizados y los demás registros. Un registro consiste en el nombre de dominio, TTL (Tiempo de vida), el tipo de registro y el valor del registro.
Dos cosas a tener en cuenta son que todos los nombres de dominio terminan con un punto, es decir, deben ser nombres de dominio completos y todos los registros terminan con un carácter de tilde (~). Para obtener más información, consulte la documentación sobre el formato de los archivos de zona.
Para ser más simple, apuntemos a example.net a 127.0.0.1. Así es como lo haces:
example.net. 127.0.0.1 ~
Reinicie el servicio como:
sudo /etc/init.d/maradns restart
Configurar MaraDNS como servidor de nombres recursivo
Cuando su navegador web envía una consulta DNS, suponiendo que el navegador aún no tenga el mapeo almacenado en su caché, se envía a un servidor DNS recursivo. También se denomina reenvío de DNS. De manera predeterminada, escucha en el puerto 127.0.0.2 y puede agregarle más direcciones IP, separadas por comas. Por ej.- 127.0.0.2, x.x.x.x. Puede configurar MaraDNS como un servidor de nombres recursivo agregando las siguientes líneas al archivo /etc/dwood3rc:
upstream_servers = {}
upstream_servers["."] = "8.8.8.8, 8.8.4.4" # Forwarding requests to Google DNS Servers
Reinicie el servicio como:
sudo /etc/init.d/maradns.deadwood restart
¡Ya ha terminado de configurar el servidor MaraDNS! :)
Sugerencia:si desea que su servidor MaraDNS responda a consultas DNS externas, deberá:
Agregue la IP pública de su máquina a ambos archivos de configuración (/etc/mararc y /etc/dwood3rc) y modifíquelos como:
/etc/mararc:
ipv4_bind_addresses = "127.0.0.1, x.x.x.x" #Replace x.x.x.x with your machine's public address.
/etc/dwood3rc:
bind_address="127.0.0.2, x.x.x.x" #Replace x.x.x.x with your machine's public address.
recursive_acl ="0.0.0.0/0" #Para permitir conexiones desde cualquier lugar.
Puede obtener estos archivos de muestra desde aquí. No olvide reiniciar los servicios una vez más.
¡Eso es todo!