Skip to main content

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.

Leave a Reply