Il y a quelques mois, je vous proposais de mettre en place un serveur DNS
sur un raspberry pi avec BIND. Mais
voilà, bind ne possède pas d’api et de plugin terraform. J’aurais pu
gérer Bind le faire avec Ansible, mais c’est ça ne serait pas très stable.
Je vais utiliser donc PowerDns qui possède aussi pas mal de plugins et
surtout une interface d’administration. Voyons comment installer tout ça sur
un raspberry pi, mais vous pouvez le transposer sur d’autres distributions.
Commençons par enlever le service systemd-resolved pour paramétrer à la main le
dns principale :
Vous pouvez mettre à la place de 8.8.8.8 l’adresse ip du serveur de dns de votre
box.
Installons tous les packages :
Configurons mysql et injectons le schéma de la base powerdns. Le mot de passe
est password par défaut, changez le sans oublier de le noter dans
votre gestionnaire de mot de passe.
Éditons la conf pdns pour y indiquer que nous utilisons mysql comme backend :
Vers la ligne 250 ajouter ces lignes, en changeant par vos informations :
Rechercher les lignes api et api-key et entrez-y ceci (changer le secret) :
Relançons pdns :
Voilà powerdns est en place, reste à installer le frontend powerdns-admin.
Powerdns-Admin le frontend de powerdns
Installons maintenant powerdns-Admin :
Modifier les variables : SALT, SECRET_KEY SQLA_DB_* avec vos valeurs
Lançons le build (attention, c’est long !) :
Passons à la configuration de nginx :
On vérifie que nginx fonctionne et on redémarre nginx :
Maintenant créons les services et socket pdns :
Il ne reste plus qu’à vous connecter à avec l’adresse ip de votre raspberry pi
depuis votre navigateur et créer le compte admin avec un mot de passe.
Créer un domaine, moi j’ai pris ‘robert.local’ comme nom de domaine, et
ajoutez-y votre raspberry avec comme nom ‘pdnsadmin’. Modifier votre conf nginx
en conséquence et relancer le :
Ensuite sur votre box ajouter l’adresse ip de votre raspberry dans la conf DHCP.
Perso je le mets en premier.