O DNS (Domain Name System) é um serviço essencial que traduz nomes de domínio em endereços IP. Nesta aula, vamos explorar como configurar e gerenciar servidores DNS no Linux, usando o BIND (Berkeley Internet Name Domain), que é um dos servidores DNS mais populares. Vamos cobrir a instalação, configuração básica, segurança e práticas recomendadas.
O que é DNS?
DNS é um sistema hierárquico de nomes que facilita a tradução de nomes de domínio (como www.exemplo.com) em endereços IP que os computadores usam para se comunicar. Ele permite a localização de serviços e dispositivos em redes TCP/IP.
Vantagens de um Servidor DNS
- Resolução de nomes: Tradução de nomes de domínio amigáveis em endereços IP.
- Gestão centralizada: Permite a gestão centralizada de registros de nomes de domínio.
- Eficiência: Melhora a eficiência da rede ao reduzir a carga em servidores raiz e outros servidores DNS.
Instalação do BIND
No Servidor
Para instalar o BIND em distribuições baseadas em Debian (como Ubuntu):
$ sudo apt update
$ sudo apt install bind9 bind9utils bind9-doc
Para distribuições baseadas em Red Hat (como CentOS):
$ sudo yum install bind bind-utils
Configuração do Servidor DNS
Arquivos de Configuração
Os principais arquivos de configuração do BIND estão localizados em /etc/bind
(Debian) ou /etc/named
(Red Hat).
Editando o Arquivo named.conf
O arquivo de configuração principal é named.conf
. Edite este arquivo para configurar a zona DNS.
$ sudo nano /etc/bind/named.conf.local # Debian
$ sudo nano /etc/named/named.conf.local # Red Hat
Adicione a seguinte configuração para a zona de domínio meusite.com
:
zone "meusite.com" {
type master;
file "/etc/bind/db.meusite.com"; # Debian
file "/etc/named/db.meusite.com"; # Red Hat
};
Criando o Arquivo de Zona
Crie o arquivo de zona para meusite.com
:
$ sudo nano /etc/bind/db.meusite.com # Debian
$ sudo nano /etc/named/db.meusite.com # Red Hat
Adicione o seguinte conteúdo:
$TTL 604800
@ IN SOA ns1.meusite.com. admin.meusite.com. (
2 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS ns1.meusite.com.
@ IN A 192.168.1.10
ns1 IN A 192.168.1.10
www IN A 192.168.1.10
SOA
: Start of Authority, contém informações sobre a zona e o servidor DNS principal.NS
: Name Server, define os servidores de nomes autorizados para a zona.A
: Address record, mapeia um nome de domínio para um endereço IP.
Verificando a Configuração
Verifique a configuração do BIND:
$ sudo named-checkconf
$ sudo named-checkzone meusite.com /etc/bind/db.meusite.com # Debian
$ sudo named-checkzone meusite.com /etc/named/db.meusite.com # Red Hat
Iniciando e Parando o Servidor DNS
Para iniciar o serviço BIND:
$ sudo systemctl start bind9 # Debian
$ sudo systemctl start named # Red Hat
Para parar o serviço:
$ sudo systemctl stop bind9 # Debian
$ sudo systemctl stop named # Red Hat
Para verificar o status do serviço:
$ sudo systemctl status bind9 # Debian
$ sudo systemctl status named # Red Hat
Para habilitar o serviço DNS para iniciar automaticamente na inicialização:
$ sudo systemctl enable bind9 # Debian
$ sudo systemctl enable named # Red Hat
Configuração de Segurança
Configuração de Firewall
Certifique-se de que seu firewall permite tráfego DNS (porta 53):
Para ufw
(firewall do Ubuntu):
$ sudo ufw allow 53/tcp
$ sudo ufw allow 53/udp
Para firewalld
(firewall do CentOS):
$ sudo firewall-cmd --permanent --add-port=53/tcp
$ sudo firewall-cmd --permanent --add-port=53/udp
$ sudo firewall-cmd --reload
Configuração de Restrições
Para aumentar a segurança, restrinja quais clientes podem consultar seu servidor DNS. Edite o arquivo de configuração:
acl "trusted" {
192.168.1.0/24; # Rede de clientes confiáveis
};
options {
...
allow-query { trusted; };
...
};
Configuração de DNSSEC
DNSSEC (DNS Security Extensions) adiciona segurança às zonas DNS, protegendo contra ataques como spoofing.
- Gere chaves DNSSEC:
$ sudo dnssec-keygen -a RSASHA256 -b 2048 -n ZONE meusite.com
$ sudo dnssec-keygen -f KSK -a RSASHA256 -b 2048 -n ZONE meusite.com
- Assine a zona DNS:
$ sudo dnssec-signzone -A -3 $(head -c 1000 /dev/urandom | sha1sum | cut -b 1-16) -N increment -o meusite.com -t /etc/bind/db.meusite.com
- Adicione as chaves ao arquivo de zona.
Monitoramento e Logs
Os logs do BIND são armazenados em /var/log/syslog
(Debian) ou /var/log/messages
(Red Hat). Para monitorar os logs em tempo real:
$ sudo tail -f /var/log/syslog # Debian
$ sudo tail -f /var/log/messages # Red Hat
Exemplos Práticos
Exemplo 1: Configurando um Servidor DNS Básico
- Instale o BIND:
$ sudo apt install bind9 # Debian
$ sudo yum install bind # Red Hat
- Configure a zona DNS:
$ sudo nano /etc/bind/named.conf.local # Debian
$ sudo nano /etc/named/named.conf.local # Red Hat
# Adicione a seguinte configuração:
zone "meusite.com" {
type master;
file "/etc/bind/db.meusite.com"; # Debian
file "/etc/named/db.meusite.com"; # Red Hat
};
- Crie o arquivo de zona:
$ sudo nano /etc/bind/db.meusite.com # Debian
$ sudo nano /etc/named/db.meusite.com # Red Hat
# Adicione o seguinte conteúdo:
$TTL 604800
@ IN SOA ns1.meusite.com. admin.meusite.com. (
2 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS ns1.meusite.com.
@ IN A 192.168.1.10
ns1 IN A 192.168.1.10
www IN A 192.168.1.10
- Verifique a configuração:
$ sudo named-checkconf
$ sudo named-checkzone meusite.com /etc/bind/db.meusite.com # Debian
$ sudo named-checkzone meusite.com /etc/named/db.meusite.com # Red Hat
- Inicie e habilite o servidor DNS:
$ sudo systemctl start bind9 # Debian
$ sudo systemctl enable bind9 # Debian
$ sudo systemctl start named # Red Hat
$ sudo systemctl enable named # Red Hat
- Configure o firewall para permitir tráfego DNS:
Para ufw
:
$ sudo ufw allow 53/tcp
$ sudo ufw allow 53/udp
Para firewalld
:
$ sudo firewall-cmd --permanent --add-port=53/tcp
$ sudo firewall-cmd --permanent --add-port=53/udp
$ sudo firewall-cmd --reload
Configurar e gerenciar servidores DNS no Linux é uma habilidade essencial para administradores de sistemas, permitindo a resolução de nomes de domínio e a gestão centralizada de registros DNS. Nesta aula, exploramos como configurar um servidor DNS com BIND, adicionar registros de zona e aplicar práticas de segurança. Pratique essas técnicas para ganhar confiança na administração de servidores DNS no Linux.
Se tiver dúvidas ou sugestões, deixe um comentário no blog NerdExpert.com.br. Na próxima aula, exploraremos a configuração de servidores LDAP no Linux.
Sou um profissional na área de Tecnologia da informação, especializado em monitoramento de ambientes, Sysadmin e na cultura DevOps. Possuo certificações de Segurança, AWS e Zabbix.