Configuração de Servidores DNS Master-Slave e Gerenciamento de Rede com iptables

1. Funiconamento do DNS e Configuração de Servidores Master-Slave

Princípios do Serviço DNS

O processo de resolução de nomes ocorre através de consultas estruturadas:

  • Consulta Recursiva: O cliente solicita a resolução de um domínio (ex: www.google.com) ao servidor DNS local. O servidor assume a responsabilidade de encontrar o IP e retornar a resposta final ao cliente.
  • Consulta Iterativa: Caso o servidor local não possua a informação em cache, ele consulta os Root Servers. O Root Server indica o srevidor responsável pelo TLD (.com), que por sua vez aponta para o servidor autoritativo do domínio (google.com), até que o IP seja obtido.

Implementação de Servidores Master e Slave

Neste cenário, utilizaremos dois nós com o serviço BIND para garantir redundância.

**Configuração do Servidor Master (IP: 10.0.0.10)**Instale o pacote necessário e ajuste as permissões de escuta no arquivo principal:

# Instalação do BIND
dnf install bind bind-utils -y
systemctl enable --now named

# Edição do arquivo /etc/named.conf
# Comente as linhas de restrição para permitir acessos externos
// listen-on port 53 { 127.0.0.1; };
// allow-query     { localhost; };

# Definição da zona no arquivo /etc/named.rfc1912.zones
zone "projeto.net" {
    type master;
    file "projeto.net.zone";
};

Criação do arquivo de zona /var/named/projeto.net.zone:

$TTL 86400
@ IN SOA ns1.projeto.net. admin.projeto.net. (
    2023102701 ; serial
    21600      ; refresh
    3600       ; retry
    604800     ; expire
    86400 )    ; minimum
      NS  ns1
      NS  ns2
ns1   A   10.0.0.10
ns2   A   10.0.0.11
www   A   10.0.0.20
app   A   10.0.0.21
*     A   10.0.0.20

**Configuração do Servidor Slave (IP: 10.0.0.11)**O servidor secundário sincronizará automaticamente as zonas do mestre:

# No arquivo /etc/named.rfc1912.zones do Slave
zone "projeto.net" {
    type slave;
    masters { 10.0.0.10; };
    file "slaves/projeto.net.slave";
};

# Recarregar as configurações
rndc reload

2. Implementação de DNS Inteligente (Split DNS)

O DNS inteligente permite responder IPs diferentes dependendo da origem da requisição, utilizando ACLs e Views.

# Configuração de ACLs no /etc/named.conf
acl rede_primaria { 192.168.10.0/24; };
acl rede_secundaria { 172.16.50.0/24; };

# Definição de Views
view "Visao_Interna" {
    match-clients { rede_primaria; };
    include "/etc/named.rfc1912.zones.interna";
};

view "Visao_Externa" {
    match-clients { rede_secundaria; };
    include "/etc/named.rfc1912.zones.externa";
};

Cada arquivo de zona incluído apontará para registros A distintos (ex: a visão interna aponta para IPs de LAN e a externa para IPs de WAN/Proxy).

3. Segurança com iptables: Filtragem de Serviços Específicos

Para proteger um servidor permitindo apenas tráfego essencial (SSH, HTTP, FTP, Telnet) e rejeitando o restante:

# Limpar regras existentes
iptables -F

# Permitir SSH (22), Telnet (23), FTP (20,21) e HTTP (80)
# Bloquear o restante explicitamente
iptables -A INPUT -p tcp -m multiport --dports 20,21,22,23,80 -j ACCEPT
iptables -A INPUT -j REJECT --reject-with icmp-host-prohibited

# Listar regras para verificação
iptables -L -n -v

4. Fundamentos de NAT (Network Address Translation)

O NAT é essencial para a conservação de endereços IPv4 e segurança de perímetro:

  • SNAT (Source NAT): Modifica a origem do pacote. Utilizado para permitir que máquinas de uma rede privada acessem a internet através de um único IP público (Masquerading).
  • DNAT (Destination NAT): Modifica o destino do pacote. Utilizado para redirecionar tráfego externo para um servidor específico dentro da rede privada (Port Forwarding).

5. Implementação Prática de SNAT e DNAT

Cenário de Gateway de Rede

Considere um servidor com duas interfaces: eth0 (Internet) e eth1 (LAN).

**Configuração de SNAT (Masquerade)**Para que a rede interna (10.0.0.0/24) navegue na internet:

# Ativar encaminhamento de pacotes no kernel
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
sysctl -p

# Aplicar regra de Masquerade na interface de saída
iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -o eth0 -j MASQUERADE

**Configuração de DNAT (Redirecionamento de Porta)**Para encaminhar requisições da porta 80 do IP público para um servidor web interno (10.0.0.20):

iptables -t nat -A PREROUTING -d [IP_PUBLICO] -p tcp --dport 80 -j DNAT --to-destination 10.0.0.20:80

Persistência de Regras

As regras do iptables são voláteis e se perdem no reboot. Para torná-las permanentes no ecossistema RHEL/CentOS/Rocky:

# Instalação do utilitário de persistência
yum install iptables-services -y
systemctl enable iptables

# Salvar regras atuais no arquivo de configuração padrão
iptables-save > /etc/sysconfig/iptables

# Testar reiniciando o serviço
systemctl restart iptables

Tags: DNS bind iptables Networking linux-administration

Publicado em 8-4 16:43