DNS Resolver rápido e privado.
- 📋 Sobre o Projeto
- 📚 Introdução ao DNS
⚠️ Ataques ao DNS- 💡 Funcionalidades
- 📦 Pré-requisitos
- 🔧 Configurando o Projeto
- 👤 Autor
- ⚖️ Licença
Este projeto tem dois objetivos principais: fornecer uma implementação prática de um DNS Resolver completamente funcional, rápido e privado, além de servir como um recurso educacional sobre o funcionamento do DNS e as ameaças relacionadas.
O projeto segue as especificações das seguintes RFCs:
- RFC 1035, que define a implementação básica de um resolver DNS.
- RFC 3425, que trata da descontinuação de consultas inversas pelo DNS.
- RFC 3596, que adiciona suporte para registros DNS relacionados ao IPv6 (registro
AAAA
). - RFC 7766, que especifica o uso de DNS sobre TCP para consultas maiores.
Embora este projeto não implemente diretamente o protocolo DNS over HTTPS (DoH), como definido na RFC 8484, ele repassa consultas DNS para o servidor da Cloudflare, que utiliza DoH para melhorar a segurança e privacidade das resoluções DNS.
Essas RFCs formam a base teórica necessária para o desenvolvimento prático deste projeto.
Caution
É desencorajado o uso dessa solução em ambientes que necessitam de alta disponibilidade e robustez.
✅️: Funcionando corretamente.
❌️: Não implementado.
-
❌️ EDNS
-
✅️ Consultas UDP
-
✅️ Resolução de Consultas UDP usando DoH (Cloudflare)
-
❌️ Resolução de Consultas UDP usando TCP
-
❌️ Consultas TCP
-
⚠️ Consulta Recursiva -
Tipos de Consultas
- ✅️ A
- ✅️ NS
- ✅️ CNAME
- ✅️ MX
- ✅️ AAAA
- ✅️ SOA
- ✅️ PTR
- ❌️ HTTPS
-
Blacklist para sites de:
- ❌️ Jogos de Azar
- ❌️ Pornôgrafia
- ❌️ Redes sociais
- ❌️ Rastreadores
- ❌️ Anúncios
- ❌️ Fake news
- ❌️ Malwares
-
❌️ Renovação de Cache em segundo plano
-
Configurações
- Caches
- ❌️ Cache por arquivo
- ❌️ Cache usando Redis
- ❌️ Cache em memória
⚠️ Sem cache
- Servidores
- ✅️ UDP (IPv4)
- ✅️ UDP (IPv6)
- ❌️ TCP (IPv4)
- ❌️ TCP (IPv6)
- NameServers
- ❌️ Lista de Nameservers personalizada
- ❌️ Nameserver aleatório
- Resolvers
- ✅️ Cloudflare DoH Resolver
- ✅️ Cloudflare DNS Resolver
- ✅️ Google DNS Resolver
⚠️ UDP DNS Resolver- ❌️ TCP DNS Resolver
- BlackList
- ❌️ Lista de Nomes proibidos
- Caches
Antes de começar, verifique se você possui as seguintes ferramentas instaladas:
- JDK 21 ou superior
- Gerenciador de dependências Maven
- Um editor de código recomendado: IntelliJ IDEA (ou outro de sua preferência)
Configure e execute o projeto:
- Manualmente
- Usando Docker (Recomendado)
Siga os passos abaixo para configurar e executar o projeto:
Siga os passos abaixo para configurar um container docker e começar a usar o projeto:
Feito por cybermumuca. Se você tiver alguma dúvida ou sugestão, sinta-se à vontade para entrar em contato!
Este projeto está licenciado sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.