La vecchia guida su BIND partiva da una Debian 7 e da un TLD interno. Oggi i DNS di Ninux Basilicata sono un’infrastruttura completa, automatizzata con Ansible e pubblicata come progetto open source: ansible-dns. Ecco come è fatta.
L’architettura in breve
- Primario nascosto: una VM Debian 13 con BIND 9.20 che contiene le zone ma non è esposta a Internet. Nessuno la interroga direttamente, quindi è molto più difficile da attaccare.
- Secondari pubblici: ns1 e ns2.ninux-nnxx.it, due VPS che rispondono alle query dal mondo. L’architettura supporta fino a cinque secondari.
- Tunnel WireGuard tra il primario e i secondari: i trasferimenti di zona (AXFR/IXFR) e le notifiche viaggiano solo lì dentro, autenticati con chiavi TSIG.
DNSSEC
Le zone sono firmate con DNSSEC in modalità inline signing, con algoritmo Ed25519 e rotazione automatica delle chiavi (dnssec-policy di BIND). Chi interroga i nostri domini con un resolver che valida DNSSEC ha la garanzia che le risposte non sono state alterate.
DDNS per i router
Ogni router Ninux registra da solo il proprio nome nella zona dinamica dyn.ninux-nnxx.it tramite nsupdate, con una chiave TSIG dedicata. Il meccanismo arriva ai nodi come template OpenWISP, in due varianti:
- indirizzo di management (LAN del nodo): il nome del router punta al suo IP interno, raggiungibile in tutta la rete Ninux grazie a Babel. Comodo per entrare in LuCI chiamando il nodo per nome, per esempio
matera.dyn.ninux-nnxx.it; - indirizzo pubblico WAN: per raggiungere un router da Internet, anche se è dietro NAT.
L’aggiornamento cancella e riscrive il record in un’unica transazione, quindi è sicuro ripeterlo più volte.
Certificati automatici
Sul primario gira acme.sh, che ottiene da Let’s Encrypt i certificati wildcard con la sfida DNS-01: per dimostrare di possedere il dominio basta scrivere un record nella zona, cosa che il nostro DNS sa fare da solo. I certificati rinnovati vengono poi copiati in automatico sui server che li usano.
Sicurezza e monitoraggio
- Firewall nftables con policy di blocco predefinita, hardening del sistema operativo con fail2ban e auditd.
- Monitoraggio con Prometheus, Alertmanager e Grafana, che raccolgono i dati attraverso il tunnel WireGuard.
- Test automatici e lint a ogni modifica (CI su GitHub).
Zone gestite
- ninux-nnxx.it
- dyn.ninux-nnxx.it (zona dinamica dei router)
- nnxx.ninux.org
- basilicata.ninux.org
Ti piacerebbe vedere tutto questo dal vivo, sul tuo router? Ninux Basilicata è aperta a tutti, non servono competenze né abbonamenti. Scopri come entrare in quattro passi.
