Estou tentando fazer um servidor DNS de cache/encaminhamento somente usando Bind9 com validação DNSSEC sendo habilitada por padrão.
Suponha que você tenha as seguintes informações do meu arquivo de configuração:
acl "home-net"
{
127.0.0.1;
::1;
192.168.1.0/24;
2000:db8:cafe:100::/64;
};
options
{
forwarders
{
# Use Google DNS either by IPv6 or IPv4 is fine.
2001:4860:4860::8888;
2001:4860:4860::8844;
8.8.8.8;
8.8.4.4;
};
dnssec-enable yes;
dnssec-validation auto;
allow-query { any; };
allow-query-cache { home-net; };
allow-recursion { home-net; };
};
zone "subdomain.example.net" {
type forward;
forward only;
forwarders
{
# SAMBA PDC1 (Active Directory)
2000:db8:cafe:100::1;
# SAMBA PDC2 (Active Directory)
2000:db8:cafe:100::2;
};
};
Pelo que entendi:
Sempre que eu quiser pesquisar um host registrado no subdomínio subdomain.example.net
, o servidor de nomes entrará em contato com um dos dois PDC do SAMBA que listei na seção de encaminhadores na configuração da zona.
O servidor de nomes, por sua vez, faria a validação do DNSSEC para garantir que os dois PDCs do SAMBA estejam realmente autorizados a responder a solicitações ao domínio subdomain.example.net
.
Se a resposta dos PDCs do SAMBA não puder ser validada por meio de DNSSEC, o servidor de nomes se voltará para o DNS do Google e perguntará se eles podem fornecer uma resposta validada por DNSSEC.
Agora, aqui está o problema:
Pelo que entendi, não há suporte a DNSSEC no SAMBA nem pelo uso do SAMBA INTERNAL_DNS ou pelo BIND9_DLZ, portanto, você não pode fazer a validação do DNSSEC em nenhuma zona mantida pelo SAMBA.
Pelo que entendi, existem 3 opções:
- Desabilite a validação DNSSEC globalmente.
- Use âncoras de confiança negativas.
- Use a opção 'validar-exceto'.
Eu vou lidar com eles um por um.
Desativar DNSSEC
Não é realmente uma opção no meu livro. Ele basicamente reduz sua configuração para "funciona em todo o mundo" ... exceto em um pequeno canto específico do mundo, então é melhor desativá-lo todos juntos.
Isso pode ser feito apenas alterando o valor de dnssec-enable
e dnssec-validation
para no
.
Vou usá-lo apenas como uma correção temporária até que eu possa ativar o DNSSEC novamente.
Use âncoras de confiança negativas
No início, meu interesse atingiu o pico. A ideia é você registrar uma chave criptografada especial rndc
e então ela não fará nenhuma validação DNSSEC para o domínio que você deseja.
No entanto, é uma correção temporária, pois a chave tem uma vida útil de no máximo uma semana .
Isso significa que você tem que fazer o mesmo tipo de fonte que os certificados do Let's Encrypt - só que o cron job precisa ser acionado com mais frequência.
Use a opção 'validate-except'
Em teoria, esta deve ser a solução mais fácil de todas.
Eu só tenho que adicionar uma nova seção ao options
chamado validate-except
.
Igual a:
options
{
dnssec-enable yes;
dnssec-validation auto;
validate-except
{
"subdomain.example.net";
"another.example.net";
};
};
Parece bastante simples - certo? :-)
... Exceto que meu servidor de nomes não foi iniciado devido a "opção desconhecida - validar exceto".
EDIT: Acontece que o Raspberry OS usa o Bind versão 9.11 enquanto a validate-except
opção foi implementada apenas no Bind versão 9.13 .
Para referência, o Ubuntu 20.04 para Raspberry usa o Bind versão 9.16.
Então, alguém por aí tem experiência com uma configuração de modo misto em relação ao DNSSEC?
... ou a solução mais fácil seria admitir a falha e instalar o Ubuntu 20.04? :-)
Não sei se isso ainda está quente, mas acho que tornar as configurações do BIND complexas convida a muitas horas de trabalho não remuneradas lutando contra o servidor. Embora você não liste as especificações do seu sistema, se for uma opção, seria melhor revisar a coisa e terminar com ela. A parte mais difícil dessas configurações é a luta pela simplicidade. A opção mais simples é ter tudo "simplesmente funcionando", então... Vá com o Ubuntu 20.04 LTS. No que diz respeito à sua configuração do SAMBA, (novamente, não conhecendo suas especificações) ir com 20.04 permite que você use o BIND DLZ com facilidade, junto com as atualizações do dhcpd. Se houver considerações de hardware, o servidor Ubuntu tem configurações mínimas disponíveis com pouco impacto adicional nos recursos do sistema.
Ubuntu 20.04 LTS para Rpi
Sobre o Ubuntu Core
O MagPi: Construa um Servidor RasPi SAMBA
Matthias Kerstner: Configurando um controlador de domínio do Active Directory com Samba 4 em um Raspberry Pi 3
Instalando manualmente o BIND