DNS sempre funzionante

Premessa : Ogni volta che visitiamo un sito, il browser risolve il nome a dominio, ad esempio “miodominio.it” ,
in un IP come 1.2.3.4  . Tramite IP il browser potrà fare richiesta al server che ospita il dominio e
quindi scambiare contenuti. In genere queste richieste DNS vengono fatte al server del proprio ISP
o a server pubblici come Google DNS, OpenDNS… che fino ad ora non hanno ancora censurato
nessun dominio, forse eccetto per quelli dannosi che portano a malware.

C’era una volta BIND, probabilmente il piu’ noto software di gestione DNS al mondo, purtroppo segnato da un lungo elenco d’innumerevoli bug e con la gestione dei parametri del server DNS tramite file di testo, che può risultare scomodo e lento, quindi fortunatamente hanno messo al mondo “PowerDNS”.

PowerDNS è un server DNS scritto in C++ sotto licenza GPL. È un prodotto della società olandese PowerDNS.COM BV, con numerosi contributi da parte della comunità Open Source.

I principali punti di forza di PowerDNS sono:

  • Backend per svariati database quali ad esempio MySQL e PostgreSQL
  • Facilità di configurazione
  • Sicurezza
  • Versatilità

Prima di procedere con l’installazione è doveroso illustrare le parti che compongono questo software:

  1. pdns-server: il server DNS vero e proprio
  2. pdns-backend-*: il backend dove sono memorizzati i dati ad esempiopdns-backend-mysql utilizzerà MySQL per memorizzare i record DNS
  3. pdns-recursor: un server necessario se si devono risolvere altri domini Internet oltre a quelli gestiti dal server

Installiamo!

Come sempre facile e veloce:

sudo apt-get install pdns-server pdns-backend-mysql pdns-recursor mysql-server mysql-clients

** Durante l’installazione vi verra’ chiesto se avete gia creato il DB di riferimento oppure se volete crearlo seduta stante, a voi gestire la cosa come meglio credete ed in base al vostro livello di conoscenza in ambito database. Per coloro che fossero a digiuno sull’argomento ecco quello che andrebbe fatto :

Entriamo in MySQL Shell tramite root
# mysql -u root -p
– Creiamo il database:
>>  mysql> create database powerdns;
>>  mysql> exit;
– Creiamo un utente associato al database creato, per sicurezza, mai usare l’accesso root per
collegare software al database.
>>  mysql> GRANT ALL ON powerdns.* TO ‘powerdns’@’localhost’ IDENTIFIED BY ‘la-password’;
mysql> FLUSH PRIVILEGES;
mysql> exit;
– Importiamo le tabelle che vengono fornite da PowerDNS sul database creato:
>>  # mysql -h localhost -u nome-utente -p powerdns < /usr/share/doc/pdns-backend-mysql/mysql.sql
Adesso configuriamo alcune impostazioni del database di pdns:
# nano /etc/powerdns/pdns.d/pdns.local
gmysql-host=localhost
gmysql-port=3306
gmysql-dbname=powerdns
gmysql-user=powerdns
gmysql-password=mypassword
#gmysql-socket=

Riavviamo il server di PowerDNS
# /etc/init.d/pdns restart

PowerDNS puo avviarsi anche in Monitor Mode:
# /etc/init.d/pdns monitor

Ora vediamo se un dominio a caso (d6f5v4.it) si risolve nel nostro server locale:
# host http://www.d6f5v4.it 127.0.0.1
In teoria non dovrebbe risultare alcun record A poichè non è presente nel server locale. Non
abbiamo aggiungo nessun record nel database.. Facciamolo!
# mysql -h localhost -u username -p powerdns
mysql> INSERT INTO domains (name, type) values (‘d6f5v4.it’,’NATIVE’);

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo di WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione /  Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione /  Modifica )

Connessione a %s...

Questo sito utilizza Akismet per ridurre lo spam. Scopri come vengono elaborati i dati derivati dai commenti.