Existe uma maneira de criar um registro de domínio que funcione como uma lista de permissões de IP de entrada, para ser usada em firewalls? Essencialmente, criando um proxy de entrada HTTPS.
Exemplo:
FQDN | Intervalo de IP |
---|---|
lista de permissões.bob.com | 103.102.101.100/19 |
Estou perguntando enquanto atualizamos nossos IPs públicos que nossos clientes usam em suas listas de permissões. Achei que seria muito mais fácil se eles pudessem simplesmente adicionar um domínio à sua lista de permissões, então poderíamos trocar os IPs deles nós mesmos. Da mesma forma que você pode trocar um servidor back-end que um cliente acessa; você pode simplesmente trocar o IP no registro A que eles usam.
Mesmo que você possa adicionar vários registros A com o mesmo nome, a natureza round robin significaria que apenas um único IP seria permitido cada vez que o FQDN fosse consultado. Não se correlacionaria com o IP de origem de entrada.
Conexões de saída por meio de alguns firewalls são capazes de filtrar domínios, mas não sei muito sobre a mesma filtragem em conexões de entrada.
Achei que já existia algo como essa pergunta, mas não consigo encontrá-la.
Não existe um padrão para algo assim - basicamente, você definiria seu próprio protocolo.
Uma maneira comum de fazer isso é usar o registro genérico TXT/16 com um nome de recurso bem conhecido, por exemplo
_allowlist.domain.tld TXT "192.0.2.0/24;198.51.100.0/24"
, .Uma maneira alternativa seria reaproveitar um tipo de registro não utilizado anteriormente que atenda ao seu propósito, por exemplo, APL/42 que contém uma lista de prefixos CIDR (experimental, pode ser pouco suportado).
Esta lista de tipos de registro pode ser útil.
Sim, você pode publicar intervalos e sub-redes de endereços IP em registros DNS, mas, até onde eu sei, não existe um tipo de registro de recurso DNS dedicado e estabelecido para representar intervalos de endereços IP.
Então as pessoas normalmente recorrem ao uso de registros TXT para isso.
Um exemplo comum de como isso é feito é como o SPF usa registros TXT para, entre outros, publicar os IPs e sub-redes que um proprietário de domínio espera que sejam usados para enviar seus e-mails.
Um bom exemplo é o
_spf.google.com
registro que faz referência_netblocks.google.com
e vários registros TXT adicionais.A diferença com o SPF é que todos os servidores de e-mail (que suportam SPF) entendem e implementam as mesmas regras de análise para a política que um proprietário de domínio publica no DNS para seu domínio, e tal padrão (ainda) não existe para regras de acesso de firewall.
Sua sugestão de colocar vários registros A e/ou AAAA como um registro round-robin também tem mérito (embora isso se torne um pouco complicado se você precisar escrever uma sub-rede inteira em seus endereços IP constituintes)
O problema de ambas as abordagens é que os firewalls não possuem suporte integrado para carregar corretamente os IPs que você publica no DNS e, quando o fazem, podem não atualizar adequadamente suas políticas quando você faz alterações nos registros DNS.
Muitos firewalls já aceitam um FQDN, mas só pesquisarão o IP e/ou endereços IP associados uma vez, quando a regra for carregada. (O iptables do Linux, por exemplo, carregará corretamente todos os IPs quando o FQDN for um registro round-Robin.) O firewall continuará a usar internamente o(s) endereço(s) IP descoberto(s). O firewall não fará uma nova pesquisa até que o dispositivo de firewall seja reiniciado ou a base de regras seja recarregada. A maioria dos firewalls atuais não respeita o TTL nos registros DNS e quando o FQDN é atualizado, o firewall não atualiza os IPs que eles usam dentro de um intervalo previsível
Fazer pesquisas de DNS é relativamente lento e um firewall não pode realizar uma pesquisa de DNS sempre que um pacote/conexão precisa ser verificado em relação a uma regra de firewall ativa. Lembre-se: essa conexão, esse pacote IP contém apenas dados IP numéricos , ou seja, o endereço IP de origem e destino e os números de porta. portanto, os FQDNs são armazenados como endereços IP no conjunto de regras ativo.
Eu estava no celular antes e testei um firewall Linux com
iptables
:A adição de regras com um FQDN é totalmente suportada.
O FQDN é resolvido para um endereço IP
iptables
e o IP resolvido é o que será usado na base de regras efetiva.Quando o FQDN for um registro DNS round-robin,
iptables
serão adicionadas várias regras, uma para cada um dos IPs nesse registro DNS round-robin.(até aí tudo bem, certo)
Salvar o conjunto de regras de firewall
iptables-save
NÃO reverte os endereços IP resolvidos para um FQDN.Isso implica que, após uma reinicialização, meu servidor NÃO selecionará nenhuma alteração feita no FQDN. Se
gateway.example.com
inicialmente apontar para 192.0.2.1 e 192.0.2.2 e por exemplo mudar para 192.0.2.1 e 192.0.2.5 , meu servidor simplesmente restaurará as regras com os IP's 192.0.2.1 e 192.0.2.2. O novo registro round-robin emgateway.example.com
192.0.2.5 não é adicionado e 192.0.2.2 não será removido.Crie os registros de teste
Seguido pela
iptables -A INPUT -p tcp --dport 22 --source round-robin.example.com -j ACCEPT