DNS Recursivo profissional baseado em Unbound com Prometheus para monitoramento.
Autor: Renylson Marques
Email: [email protected]
Telefone: (87) 98846-3681
- Unbound v1.22.0: DNS recursivo de alta performance
- DNSSEC: Validação segura de respostas DNS
- IPv4 + IPv6: Suporte completo
- Prometheus: Monitoramento e coleta de métricas
- 16 Threads: Otimizado para milhões de requisições por segundo
- 512MB Cache: Mensagens + RRSET
- Debian 13+
- Root access
- Conexão com internet
Você precisará está com usuário "root" e instalar o git e clonar no projeto para realizar a instalação.
su -apt update & apt upgrade -y
apt install git -ycd /root
git clone https://github.com/renylson/Resolvix-DNS-Server.git
cd /root/resolvix
sudo bash install.shAgora só seguir com instalação conforme desejar.
Opções padrão automáticas:
- Continuar:
s(sim) - Modo IP:
2(Público) - Versão IP:
2(IPv4 + IPv6) - Blocos IP: vazio (IPs privados padrão)
- Prometheus:
s(sim) - Confirmação final:
s(sim)
- Prometheus UI: http://seu-ip:9090
- Métricas Unbound: http://seu-ip:9100/metrics
- Uso de IP Local: Aceita consultas de qualquer origem
- Uso de IP Público: Restringe a IPs privados e público conforme lista de blocos liberados.
127.0.0.110.0.0.0/8172.16.0.0/12192.168.0.0/16100.64.0.0/10::1::ffff:0:0/96
Durante a instalação, você pode adicionar blocos customizados tantos IPv4 como IPv6 seperados por espaço.
Exemplos:
203.0.113.0/24 203.0.114.0/24 2001:db8::/32
Após instalado e você seja modificar os blocos liberados você pode seguir o procedimentos abaixo:
Editar /etc/unbound/unbound.conf para adicionar/modificar:
# IPv4
access-control: 203.0.113.0/24 allow
access-control: 203.0.114.0/24 allow
# IPv6
access-control: 2001:db8::/32 allow
access-control: 2001:db9::/32 allow
Depois reiniciar:
systemctl restart unbound# Reiniciar
systemctl restart unbound
# Parar
systemctl stop unbound
# Logs em tempo real
journalctl -u unbound -f
# Verificar configuração
unbound-checkconf
# Recarregar sem reiniciar
unbound-control reload# Reiniciar
systemctl restart prometheus
# Parar
systemctl stop prometheus
# Logs
journalctl -u prometheus -f# Reiniciar
systemctl restart unbound-exporter
# Logs
journalctl -u unbound-exporter -f
# Testar métricas
curl http://127.0.0.1:9100/metrics# Verificar se Unbound está ativo
systemctl is-active unbound
# Ver logs
journalctl -u unbound --no-pager -n 20
# Testar localmente
dig @127.0.0.1 google.com# Encontrar processo
sudo lsof -i :53
# Se systemd-resolved estiver usando:
sudo systemctl stop systemd-resolved
sudo systemctl mask systemd-resolved# Verificar exportador
curl http://127.0.0.1:9100/health
# Ver métricas
curl http://127.0.0.1:9100/metrics
# Logs do Prometheus
journalctl -u prometheus -f/etc/unbound/ # Configuração Unbound
/etc/prometheus/ # Configuração Prometheus
/opt/resolvix/ # Scripts Resolvix
├── unbound_exporter.py # Exportador Prometheus
└── ...
/opt/prometheus/ # Binários Prometheus
/var/lib/prometheus/ # Dados Prometheus
/var/lib/unbound/ # Cache Unbound
# Backup Unbound
cp /etc/unbound/unbound.conf /etc/unbound/unbound.conf.backup.$(date +%Y%m%d)
# Backup Prometheus
tar czf prometheus_backup.tar.gz /etc/prometheus /var/lib/prometheus# Restaurar Unbound
cp /etc/unbound/unbound.conf.backup.YYYYMMDD /etc/unbound/unbound.conf
systemctl restart unbound
# Restaurar Prometheus
tar xzf prometheus_backup.tar.gz -C /
systemctl restart prometheus- Unbound:
journalctl -u unbound - Prometheus:
journalctl -u prometheus - Exportador:
journalctl -u unbound-exporter
Para mais informações e documentação oficial:
Este projeto está licenciado sob a Apache License 2.0 — consulte o arquivo LICENSE para detalhes.
Contribuições são bem-vindas! Para manter a qualidade do código, todas as alterações devem ser enviadas via Pull Request — eu (autor/mantenedor) revisarei e aprovarei as PRs antes do merge para o main.
Ao enviar uma PR, você concorda em licenciar suas contribuições sob a mesma licença do projeto (Apache 2.0). Se preferir um processo formal de contribuição, podemos habilitar um CLA; caso contrário, podemos usar o DCO (Signed-off-by) para commits.
