Temos uma rede com roteador e DNS interno em um Windows Server 2019. O DNS é visível externamente através de um NAT no roteador (UDP 53 -> IP do servidor, isso é necessário porque somos um primário oculto/ autoridade DNS para o nosso domínio).
Há algum tempo, recebemos solicitações maliciosas de DNS como parte de um ataque de amplificação.
Estamos usando o Response Rate Limiting conforme este artigo usando o Set-DNSServerresponseratelimiting
comando ... até agora tudo bem.
Agora, o mesmo artigo e também outro artigo descrevem um método como a recursão pode ser limitada apenas aos clientes internos.
Essencialmente, ambos os artigos dizem que você desativa a recursão e adiciona uma regra que permite isso para clientes que atendem a determinados critérios.
O primeiro passo é desativar a recursão:
Set-DnsServerRecursionScope -Name . -EnableRecursion $false /* or $true */
Estou testando isso com um Mac com um IP 192.168.1.149
e usando um comando dig como dig -4 @server some.obscuredomain.com
e verificando se o comando dig imprime um aviso de que a recursão está desabilitada. Isso funciona dependendo da configuração geral. Se eu ativar ou desativar isso com o comando acima, o dig
comando mostrará (ou não) o aviso sobre a recursão de acordo. Até aí tudo bem também.
A sequência completa de comandos para desativá-lo e adicionar uma exceção é esta:
Add-DnsServerClientSubnet -Name "Internal-24" -IPv4Subnet "192.168.1.0/24" -PassThru
Set-DnsServerRecursionScope -Name . -EnableRecursion $False
Add-DnsServerRecursionScope -Name "InternalClients" -EnableRecursion $True
Add-DnsServerQueryResolutionPolicy -Name "AllowInternal" -Action ALLOW -ApplyOnRecursion -RecursionScope "InternalClients" -ClientSubnet "EQ,Internal-24"
Porém, eu utilizo essa sequência de comandos, não importa o que eu faça, não consigo que ela seja recursiva para Mac.
Eu pensei que poderia ter a sub-rede errada, mas então, para um teste, acabei de usar "NE,Internal-24"
, pensando que qualquer uma das duas cláusulas deveria corresponder à solicitação (ou EQ ou NE deveria corresponder a essas solicitações, você está em uma sub-rede ou está não). Eu também tentei -Computername
ou -Fqdn
. Aparentemente nada faz diferença.
Alguma ideia?