Poupe até 53% em Servidores VPS, escolha agora. Oferta limitada.

Checklist: DNS Registro.br com DNSSEC no FreeBSD 14.3

19 min de leitura  ·  Guia técnico

DNS Registro.br com DNSSEC no FreeBSD 14.3 significa operar um servidor autoritativo BIND 9.18+ ou 9.20 no FreeBSD 14.3, assinar criptograficamente a zona do seu domínio .br e publicar a chave DS no painel do Registro.br. Para executar esse checklist completo, siga os passos abaixo:

  1. Instalar o BIND 9.18 ou 9.20 via pkg no FreeBSD 14.3
  2. Configurar o named.conf com zona autoritativa e KASP (Key and Signing Policy)
  3. Gerar as chaves KSK e ZSK com dnssec-keygen ou deixar o KASP gerenciar automaticamente
  4. Assinar a zona com rndc sign ou inline signing habilitado
  5. Extrair a chave DS e publicar no painel do Registro.br
  6. Validar a cadeia de confiança com dig, delv e DNSViz

Pré-requisitos para configurar DNS Registro.br com DNSSEC no FreeBSD 14.3

  • FreeBSD 14.3 instalado com acesso root via SSH
  • Domínio .br registrado no Registro.br com acesso ao painel de gerenciamento
  • Pelo menos dois servidores NS (primário e secundário) com IP fixo e PTR configurado
  • Portas UDP/TCP 53 abertas no firewall (pf ou ipfw) para tráfego DNS externo
  • BIND 9.18 ou 9.20 disponível no repositório pkg do FreeBSD 14.3
  • Conhecimento básico de zona DNS: registros A, NS, MX, SOA e CNAME
  • Acesso ao painel do Registro.br para registrar glue records e publicar a chave DS

Instalação do BIND 9.18 no FreeBSD 14.3

O primeiro passo do checklist de DNS autoritativo com DNSSEC é instalar o servidor BIND. No FreeBSD 14.3, o gerenciador de pacotes pkg oferece as versões 9.18 (série ESV) e 9.20, ambas com suporte completo a DNSSEC, inline signing e KASP automático.

Atualize o índice de pacotes antes de instalar:

pkg update
pkg install bind918

Caso prefira a versão mais recente:

pkg install bind920

Habilite o named no rc.conf para que inicie automaticamente com o sistema:

sysrc named_enable="YES"
sysrc named_conf="/usr/local/etc/namedb/named.conf"

Verifique a versão instalada:

named -V
BIND 9.18.x (Extended Support Version) <id:...>
compiled by GCC 13.x on FreeBSD 14.3-RELEASE
...
DNSSEC: yes

A linha DNSSEC: yes confirma que o binário foi compilado com suporte ao protocolo. Sem ela, nenhuma assinatura de zona será possível. Se você já tem o BIND instalado sem essa flag, reinstale usando o port com opções corretas via make config em /usr/ports/dns/bind918.

Crie os diretórios necessários para chaves e zonas:

mkdir -p /usr/local/etc/namedb/keys
mkdir -p /usr/local/etc/namedb/zones
chown -R bind:bind /usr/local/etc/namedb/keys
chmod 750 /usr/local/etc/namedb/keys

Configuração do named.conf com zona autoritativa e KASP

A automação de zona com DNSSEC depende de uma configuração correta do named.conf. O KASP (Key and Signing Policy) introduzido no BIND 9.16 elimina a necessidade de scripts manuais para rotação de chaves ZSK e KSK — basta declarar a política e o daemon cuida do ciclo de vida completo.

Edite o arquivo principal de configuração:

vi /usr/local/etc/namedb/named.conf

Estrutura mínima funcional para um servidor primário autoritativo:

options {
    directory "/usr/local/etc/namedb";
    pid-file "/var/run/named/pid";
    listen-on { any; };
    listen-on-v6 { any; };
    recursion no;
    allow-query { any; };
    dnssec-validation yes;
    managed-keys-directory "/usr/local/etc/namedb/keys";
};

dnssec-policy "registrobr-policy" {
    keys {
        ksk lifetime unlimited algorithm ecdsa256;
        zsk lifetime P30D algorithm ecdsa256;
    };
    dnskey-ttl 3600;
    publish-safety PT1H;
    retire-safety PT1H;
    signatures-validity P14D;
    signatures-validity-dnskey P14D;
    signatures-refresh P7D;
    nsec3param iterations 0 optout no salt-length 0;
};

zone "seudominio.com.br" {
    type primary;
    file "/usr/local/etc/namedb/zones/seudominio.com.br.zone";
    dnssec-policy "registrobr-policy";
    inline-signing yes;
    auto-dnssec maintain;
    allow-transfer { 203.0.113.2; };
};

Atenção: substitua seudominio.com.br pelo seu domínio real e 203.0.113.2 pelo IP do seu servidor DNS secundário. A política ecdsa256 (ECDSA P-256 SHA-256) é o algoritmo recomendado pelo Registro.br em substituição ao RSA-1024 depreciado.

Crie o arquivo de zona inicial sem assinatura. O inline signing adicionará os registros RRSIG, NSEC3 e DNSKEY automaticamente:

cat > /usr/local/etc/namedb/zones/seudominio.com.br.zone << 'EOF'
$TTL 3600
@   IN  SOA  ns1.seudominio.com.br. admin.seudominio.com.br. (
            2026010101  ; Serial YYYYMMDDNN
            3600        ; Refresh
            900         ; Retry
            604800      ; Expire
            300 )       ; Negative TTL

    IN  NS   ns1.seudominio.com.br.
    IN  NS   ns2.seudominio.com.br.

ns1 IN  A    203.0.113.1
ns2 IN  A    203.0.113.2

@   IN  A    203.0.113.1
www IN  A    203.0.113.1
EOF

Valide a sintaxe antes de iniciar o serviço:

named-checkconf /usr/local/etc/namedb/named.conf
named-checkzone seudominio.com.br /usr/local/etc/namedb/zones/seudominio.com.br.zone
zone seudominio.com.br/IN: loaded serial 2026010101
OK

Inicie o named:

service named start

Geração de chaves DNSSEC e publicação no Registro.br

Com o KASP habilitado no named.conf, o próprio BIND gerencia a geração das chaves KSK e ZSK. Ao iniciar o named com a política definida, ele cria automaticamente as chaves em /usr/local/etc/namedb/keys/. Para extrair a chave DS necessária para o Registro.br, aguarde alguns segundos após a inicialização e execute:

rndc dnssec -status seudominio.com.br
dnssec-policy: registrobr-policy
Current KSK: 20260101xxxxxx (published, active)
Current ZSK: 20260101yyyyyy (published, active)
Next ZSK rollover: 2026-01-31

Extraia a chave DS a partir da chave KSK gerada:

dnssec-dsfromkey /usr/local/etc/namedb/keys/Kseudominio.com.br.+013+XXXXX.key
seudominio.com.br. IN DS 12345 13 2 A1B2C3D4E5F6...

Este output contém o registro DS que deve ser inserido no painel do Registro.br. Os campos são: tag da chave (12345), algoritmo (13 = ECDSA P-256), tipo de digest (2 = SHA-256) e o hash hexadecimal.

Acesse o painel do Registro.br, selecione o domínio, clique em DNSSEC e insira os valores extraídos. O campo Algoritmo deve ser "13 - ECDSA Curve P-256 with SHA-256". Após salvar, aguarde a propagação (normalmente entre 10 minutos e 1 hora dependendo do TTL configurado).

Se preferir não usar KASP e gerar as chaves manualmente:

cd /usr/local/etc/namedb/keys

dnssec-keygen -a ECDSAP256SHA256 -f KSK -n ZONE seudominio.com.br
dnssec-keygen -a ECDSAP256SHA256 -n ZONE seudominio.com.br

Inclua as chaves no arquivo de zona e assine manualmente:

dnssec-signzone -A -3 $(head -c 16 /dev/random | xxd -p) \
  -N INCREMENT -o seudominio.com.br \
  -t /usr/local/etc/namedb/zones/seudominio.com.br.zone \
  /usr/local/etc/namedb/keys/Kseudominio.com.br.+013+*.key

Atenção: ao usar assinatura manual, você é responsável por re-assinar a zona antes da expiração das assinaturas RRSIG (validade padrão de 30 dias). Prefira sempre o KASP com inline signing para eliminar esse risco operacional.

Para gerenciar domínios com boas práticas de DNS, consulte também o artigo Como gerenciar um domínio na base de conhecimento da AviraHost.

Validação da cadeia de confiança DNSSEC

Após publicar a chave DS no Registro.br, é imprescindível validar que toda a cadeia de confiança está funcional — desde a raiz (.) até a zona folha do seu domínio .br. Esta etapa evita falhas silenciosas que podem travar a resolução DNS para usuários que utilizam resolvers com validação DNSSEC habilitada.

Verifique se os registros DNSKEY estão sendo servidos corretamente:

dig +dnssec +short DNSKEY seudominio.com.br @ns1.seudominio.com.br
256 3 13 mdsswUyr3DPW132mOi8V9xESWE8jTo0dxCjjnopKl+GqJxpVXckHAeF+
...
257 3 13 mdsswUyr3DPW132mOi8V9xESWE8jTo0dxCjjnopKl+GqJxpVXckHAeF+
...

O código 256 indica ZSK e 257 indica KSK. Ambos devem aparecer com o algoritmo 13 (ECDSA P-256).

Valide a cadeia completa com o comando delv (BIND's DNS lookup and validation tool):

delv @8.8.8.8 seudominio.com.br A +rtrace +multiline
; fully validated
seudominio.com.br.      3600 IN A 203.0.113.1
seudominio.com.br.      3600 IN RRSIG A 13 3 3600 (
                20260215000000 20260101000000 12345 seudominio.com.br.
                ... )

A linha ; fully validated confirma que a cadeia KSK → DS → zona está íntegra. Se aparecer ; unsigned answer ou ; bad signature, há problema na publicação da chave DS ou na assinatura da zona.

Verifique também os registros NSEC3 para confirmar que o DNSSEC está protegendo os tipos inexistentes (NXDOMAIN autenticado):

dig +dnssec NSEC3PARAM seudominio.com.br @ns1.seudominio.com.br
seudominio.com.br. 3600 IN NSEC3PARAM 1 0 0 -

O parâmetro 0 0 - (iterações zero, sem salt) está alinhado com a recomendação da RFC 9276, que desencoraja iterações altas por razões de performance e resistência a ataques de dicionário off-line.

Para validação gráfica completa da cadeia, acesse dnsviz.net e insira seu domínio. A ferramenta exibe visualmente cada nó da delegação, identificando erros de algoritmo, expiração de RRSIG e ausência de DS.

Após confirmar a validação, reforce a segurança do servidor configurando firewall e autenticação adequados. Veja dicas adicionais no artigo Dicas de Otimização de Servidores Linux.

Configuração do servidor DNS secundário (slave) no FreeBSD 14.3

O Registro.br exige no mínimo dois servidores NS para registrar um domínio .br. O servidor secundário recebe a zona assinada por transferência AXFR/IXFR do primário, incluindo todos os registros DNSSEC (RRSIG, NSEC3, DNSKEY). Configure o named.conf no servidor secundário:

zone "seudominio.com.br" {
    type secondary;
    file "/usr/local/etc/namedb/zones/seudominio.com.br.zone.signed";
    primaries { 203.0.113.1; };
    dnssec-validation yes;
};

No servidor primário, certifique-se de que a diretiva allow-transfer inclui o IP do secundário. Após reiniciar o named no secundário, force a transferência:

rndc retransfer seudominio.com.br

Verifique se a transferência ocorreu:

rndc zonestatus seudominio.com.br
name: seudominio.com.br
type: secondary
files: seudominio.com.br.zone.signed
serial: 2026010101
nodes: 12
last loaded: Thu, 01 Jan 2026 10:00:00 GMT
secure: yes
inline signing: no

Com secure: yes, o secundário está servindo a zona com DNSSEC corretamente. Registre os glue records no painel do Registro.br: vá em Servidores DNS, adicione ns1.seudominio.com.br com o IP do primário e ns2.seudominio.com.br com o IP do secundário.

Automação de zona DNS: renovação de chaves e re-assinatura com cron

Com KASP habilitado, o BIND executa automaticamente o rollover de ZSK (a cada 30 dias na política definida) e mantém as assinaturas RRSIG renovadas. Porém, é boa prática monitorar o status de expiração via cron para detectar falhas antes que impactem usuários:

vi /usr/local/etc/namedb/scripts/check-dnssec.sh
#!/bin/sh
DOMAIN="seudominio.com.br"
EXPIRY=$(dig +dnssec +short RRSIG SOA @127.0.0.1 "$DOMAIN" | awk '{print $9}')
TODAY=$(date +%Y%m%d%H%M%S)

if [ "$EXPIRY" -lt "$TODAY" ]; then
    echo "ALERTA: RRSIG expirado para $DOMAIN em $EXPIRY" | \
    mail -s "[DNS] RRSIG Expirado" [email protected]
fi
chmod +x /usr/local/etc/namedb/scripts/check-dnssec.sh

Adicione ao cron do root para verificação diária:

crontab -e
0 6 * * * /usr/local/etc/namedb/scripts/check-dnssec.sh

Para zonas sem KASP (assinatura manual), crie um script de re-assinatura periódica com rndc sign:

0 2 * * 0 /usr/local/bin/rndc sign seudominio.com.br && \
           /usr/local/bin/rndc reload seudominio.com.br

Atenção: para domínios sem KASP, a nova chave DS deve ser publicada no Registro.br antes da expiração da chave atual. Recomenda-se iniciar o rollover com 30 dias de antecedência para garantir propagação completa na hierarquia DNS.

Problemas comuns e como resolver

Sintoma: named não inicia após configurar DNSSEC no FreeBSD 14.3

Causa: erro de sintaxe no named.conf, permissões incorretas no diretório de chaves ou caminho inválido para o arquivo de zona.
Solução: execute named-checkconf -p /usr/local/etc/namedb/named.conf para ver o arquivo expandido e identificar o erro. Verifique as permissões: ls -la /usr/local/etc/namedb/keys/ — o dono deve ser bind:bind com permissão 750. Consulte o log em /var/log/messages ou via journalctl -u named para a mensagem exata de erro.

Sintoma: chave DS publicada no Registro.br mas dig retorna "bad signature"

Causa: o algoritmo ou digest da chave DS publicada não corresponde à KSK ativa no servidor, ou a zona ainda não foi re-assinada após a geração de novas chaves.
Solução: compare o hash DS publicado no Registro.br com o gerado localmente via dnssec-dsfromkey. Se diferentes, delete a entrada no painel do Registro.br e republique. Após qualquer mudança de chave, execute rndc loadkeys seudominio.com.br seguido de rndc sign seudominio.com.br para forçar a re-assinatura imediata.

Sintoma: transferência de zona AXFR falha entre primário e secundário

Causa: restrição de firewall bloqueando TCP/53, IP do secundário ausente na diretiva allow-transfer do primário, ou TSIG (Transaction Signature) configurado em apenas um dos servidores.
Solução: verifique no primário se a porta TCP 53 está aberta no pf: pfctl -sr | grep 53. Confirme que o IP do secundário está em allow-transfer no named.conf do primário. Se usar TSIG, ambos os servidores devem ter a mesma chave configurada. Teste a transferência manualmente: dig AXFR seudominio.com.br @203.0.113.1.

Sintoma: NSEC3PARAM ausente ou formato incorreto na zona assinada

Causa: a configuração KASP não especificou o parâmetro nsec3param ou a zona foi assinada previamente com NSEC (não NSEC3) e o inline signing manteve o formato antigo.
Solução: adicione explicitamente nsec3param iterations 0 optout no salt-length 0; dentro do bloco dnssec-policy. Depois force a re-assinatura completa: rndc signing -nsec3param 1 0 0 - seudominio.com.br. Aguarde alguns segundos e verifique: dig +short NSEC3PARAM seudominio.com.br.

Perguntas frequentes sobre DNS Registro.br com DNSSEC no FreeBSD 14.3

O DNSSEC é obrigatório para domínios .br no Registro.br?

O DNSSEC não é obrigatório, mas é fortemente recomendado pelo Registro.br para domínios .br. Ele protege contra ataques de envenenamento de cache DNS (DNS cache poisoning) ao assinar criptograficamente os registros da zona. A ativação é feita publicando a chave DS no painel do Registro.br após gerar as chaves KSK e ZSK no servidor autoritativo. Domínios sem DNSSEC ficam vulneráveis a ataques man-in-the-middle que redirecionam usuários para servidores maliciosos sem qualquer aviso visível.

Qual versão do BIND devo usar no FreeBSD 14.3 para suporte a DNSSEC?

No FreeBSD 14.3, o BIND disponível via ports e pkg é o BIND 9.18 (série ESV) ou BIND 9.20, ambos com suporte completo a DNSSEC, inline signing e KASP. Evite versões anteriores ao 9.16, pois não possuem suporte a KASP automático. Instale com pkg install bind918 ou bind920 conforme disponibilidade no repositório. O BIND 9.18 é a escolha mais conservadora para produção por ser a versão de suporte estendido (ESV) com patches de segurança garantidos por mais tempo.

Como automatizar a renovação de chaves DNSSEC no FreeBSD 14.3?

Com BIND 9.18+ e KASP habilitado, a renovação de chaves ZSK e KSK é automática via política definida no named.conf. O daemon named gerencia o ciclo de vida das chaves sem intervenção manual. Para zonas sem KASP, use um script cron que chama dnssec-keygen e rndc sign periodicamente, garantindo que a nova chave DS seja publicada no Registro.br antes da expiração da chave atual. O KASP com inline signing é a abordagem recomendada pois elimina o risco de expiração silenciosa de assinaturas.

Como verificar se o DNSSEC está funcionando corretamente para um domínio .br?

Execute dig +dnssec +short DNSKEY seudominio.com.br para verificar se as chaves estão publicadas. Use delv @8.8.8.8 seudominio.com.br A +rtrace para validação completa da cadeia de confiança — o output deve exibir ; fully validated. Ferramentas online como DNSViz (dnsviz.net) e Verisign DNSSEC Debugger também permitem visualizar graficamente a cadeia de assinatura e identificar erros de configuração sem precisar de acesso ao servidor.

Posso usar o FreeBSD 14.3 como servidor DNS autoritativo para domínios registrados no Registro.br?

Sim. O FreeBSD 14.3 com BIND 9.18+ funciona perfeitamente como servidor DNS autoritativo para domínios .br. Você precisa configurar pelo menos dois servidores NS (primário e secundário), registrar os glue records no Registro.br e publicar a chave DS para ativar o DNSSEC. O FreeBSD oferece suporte nativo a BIND via ports/pkg e o rc.d integra o named ao sistema de inicialização com sysrc named_enable="YES", garantindo disponibilidade após reinicializações.

Conclusão

  • Instale o BIND 9.18 ou 9.20 no FreeBSD 14.3 via pkg install bind918, configure o named.conf com KASP e inline signing para automatizar completamente o ciclo de vida das chaves DNSSEC sem scripts manuais.
  • Publique a chave DS no Registro.br imediatamente após gerar a KSK — use dnssec-dsfromkey para extrair o hash e insira no painel do Registro.br com algoritmo 13 (ECDSA P-256 SHA-256) para compatibilidade máxima.
  • Valide a cadeia de confiança com delv @8.8.8.8 seudominio.com.br A +rtrace e monitore diariamente via cron a expiração de RRSIG para evitar falhas silenciosas que impedem a resolução DNS para usuários com validação DNSSEC ativa.

Leia também

Precisa de ajuda com DNS e DNSSEC no seu servidor?

Configurar um servidor DNS autoritativo com DNSSEC requer precisão em cada etapa — da geração das chaves à propagação do registro DS. Um erro na publicação da chave pode tornar seu domínio .br irresolvível para milhões de usuários com resolvers validadores. Na AviraHost, os planos de VPS oferecem IP fixo, suporte técnico especializado e infraestrutura adequada para operar servidores BIND em produção.

Conheça os planos de VPS da AviraHost para hospedar seu servidor DNS autoritativo

  • 0 Os usuários acharam isso útil
  • DNSSEC, FreeBSD, DNS, Registro.br, BIND, automação, AviraHost
Esta resposta foi útil?

Artigos Relacionados

Guia Completo para Configurar E-mails Profissionais no cPanel

Guia Completo para Configurar E-mails Profissionais no cPanel Ter um e-mail profissional é...

Como Configurar DNS Personalizado para Seu Domínio na AviraHost

Como Configurar DNS Personalizado para Seu Domínio na AviraHost Ter um DNS personalizado é...

Como gerenciar um domínio.

Adicione um domínio a sua conta, utilizando nosso painel de gerenciar domínios, Você pode...

Solucionar problemas de resolução de nomes DNS em VPS Linux e servidor dedicado

Introdução Falhas na resolução de nomes DNS podem causar lentidão, indisponibilidade de sites e...

Checklist para Configurar e Testar Limite de E-mails Enviados por Hora no VPS Linux e Servidor Dedicado

Introdução Controlar o volume de e-mails enviados por hora é fundamental para evitar bloqueios...