DNS Server · 4 min read · Oct 02, 2025

Como instalar o servidor DNS rápido e leve MaraDNS no CentOS 7

MaraDNS é um pequeno, gratuito e leve Servidor de Nomes de Domínio. É um servidor DNS alternativo de código aberto, que atua como um servidor de nomes em cache, recursivo ou autoritativo. É notavelmente fácil de configurar e está disponível para plataformas Linux e Windows. Pode ser baixado daqui. Você pode ler mais sobre DNS, DNS recursivo, DNS Autoritativo aqui.

Abaixo estão algumas características interessantes do MarDNS:

  • Fácil de instalar
  • Baixo uso de memória (Usa aproximadamente 5MB de RAM)
  • Pode atuar como um servidor de nomes Autoritativo e servidor de nomes Recursivo.
  • Não podemos esquecer, a documentação no site do MaraDNS é muito simples de entender.

Vamos agora começar com o MaraDNS no CentOS 7. Os passos abaixo irão guiá-lo sobre a instalação e configuração do MaraDNS:

Instalando o MaraDNS

Atualmente, não há RPMs disponíveis do MaraDNS para CentOS 7, então iremos instalá-lo e compilá-lo a partir do código-fonte.

Instale o gcc:

sudo yum install gcc

Baixe o arquivo de origem mais recente daqui. Você pode fazer isso como:

wget http://maradns.samiam.org/download/2.0/2.0.11/maradns-2.0.11.tar.bz2

Extraia o conteúdo do arquivo:

tar -xjf maradns-2.0.11.tar.bz2

Mude para o diretório extraído do MaraDNS, compile e instale os programas:

cd maradns-2.0.11
sudo make
sudo make install

O MaraDNS está agora instalado. O serviço do MaraDNS está instalado em /etc/init.d/maradns. Você pode simplesmente iniciar o serviço por:

sudo /etc/init.d/maradns start

Para iniciar o demônio recursivo, execute:

sudo /etc/init.d/maradns.deadwood start

Por padrão, o servidor de nomes autoritativo escuta na porta 127.0.0.1 e o recursivo na porta 127.0.0.2.

Vamos garantir que o MaraDNS inicie na inicialização:

chkconfig maradns on

O script de inicialização do servidor DNS recursivo precisa ser compatível com chkconfig antes que você possa executá-lo na inicialização. Adicione o conteúdo abaixo ao topo do arquivo /etc/init.d/maradns.deadwood:

# chkconfig: - 55 45  
# description: MaraDNS é um Servidor de Nomes de Domínio (DNS) seguro  
# probe: true

Defina-o para ser executado na inicialização:

chkconfig maradns.deadwood on

Configurando o MaraDNS como um Servidor de Nomes Autoritativo

Os servidores DNS autoritativos “sabem” o mapeamento de URL para IP para qualquer domínio dado. Eles são a fonte das informações que os servidores DNS recursivos enviam para clientes da web como navegadores (Chrome, Firefox). Você pode configurar o MaraDNS como um servidor de nomes autoritativo da seguinte forma:

Edite o arquivo de configuração do MaraDNS, ou seja, /etc/mararc:

ipv4_bind_addresses = "127.0.0.1"
chroot_dir = "/etc/maradns"  
csv2 = {}
csv2["example.net."] = "db.example.net"
    

A primeira linha diz ao MaraDNS para escutar no IP- 127.0.0.1. Você pode adicionar mais IPs a ele, separados por vírgula. Por exemplo: 127.0.0.1, x.x.x.x

A segunda linha chroot_dir é para mencionar o diretório onde todos os arquivos de zona serão mantidos.

A terceira linha inicializa o hash csv2 com o comando csv2 = {}.

A quarta linha menciona o arquivo de zona chamado db.example.net para o nome de domínio example.net.

Aqui está o arquivo de zona chamado db.example.net para o nome de domínio example.net, que é autoexplicativo:

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 ~

Você começa com a linha de Início da Autoridade (SOA). Em seguida, você especifica os servidores de nomes autoritativos e os outros registros. Um registro consiste no nome do domínio, TTL (Tempo de vida), tipo de registro e o valor do registro.
Duas coisas a notar são que todos os nomes de domínio terminam com um ponto, ou seja, devem ser nomes de domínio totalmente qualificados e todos os registros terminam com um caractere til (~). Para saber mais, confira a documentação sobre o formato dos arquivos de zona.

Para ser mais simples, vamos apenas apontar example.net para 127.0.0.1. É assim que você faz:

example.net.    127.0.0.1 ~

Reinicie o serviço como:

sudo /etc/init.d/maradns restart

Configurando o MaraDNS como um Servidor de Nomes Recursivo

Quando seu navegador da web envia uma consulta DNS — assumindo que o navegador não tenha o mapeamento armazenado em seu cache — ela é enviada a um servidor DNS recursivo. Também é chamado de encaminhamento DNS. Ele escuta por padrão na porta- 127.0.0.2 e você pode adicionar mais IPs a ele, separados por vírgula. Por exemplo: 127.0.0.2, x.x.x.x. Você pode configurar o MaraDNS como um servidor de nomes recursivo adicionando as linhas abaixo ao arquivo /etc/dwood3rc:

upstream_servers = {}  
upstream_servers["."] = "8.8.8.8, 8.8.4.4" # Encaminhando solicitações para os Servidores DNS do Google

Reinicie o serviço como:

sudo /etc/init.d/maradns.deadwood restart

Você terminou de configurar o servidor MaraDNS! :)

Dica - Se você quiser que seu servidor MaraDNS responda a consultas DNS externas, você precisaria:

Adicionar o IP público da sua máquina a ambos os arquivos de configuração (/etc/mararc e /etc/dwood3rc) e modificá-los como:

/etc/mararc:

ipv4_bind_addresses = "127.0.0.1, x.x.x.x" #Substitua x.x.x.x pelo endereço público da sua máquina.

/etc/dwood3rc:

bind_address="127.0.0.2, x.x.x.x" #Substitua x.x.x.x pelo endereço público da sua máquina.

recursive_acl = “0.0.0.0/0” #Para permitir conexões de qualquer lugar.

Você pode obter esses arquivos de exemplo daqui. Não se esqueça de reiniciar os serviços mais uma vez.

É isso!

Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.