PowerDNS : Installation
Source : https://kb.caliko.net/books/it-technique/page/installer-powerdns-powerdns-admin-master-secondaire
Sur une machine propre (Pas d’autre service, dans la mesure du possible), on installe PowerDNS et PowerDNS-Admin dockerisé pour créer un serveur DNS. Le but ici est de le faire deux fois, sur deux serveurs différents sur deux infras différentes afin d’avoir une redondance. Le deuxième serveur n’hébergera pas l’interface de management PowerDNS-Admin.
1. Installation sur chaque serveur
On commence par mettre à jour la machine
apt update && apt upgrade -y
On installe MariaDB
apt install mariadb-server -y
On sécurise l’installation à la fin de l’installation. Il vaut mieux choisir un mot de passe pour root, qui ne sera pas celui de root système
mysql_secure_installation
On répond oui à toutes les questions pour supprimer les bases de test et les utilisateurs anonymes.
On désactive ensuite resolvd
systemctl disable systemd-resolved
systemctl stop systemd-resolved
On supprime le lien symbolique système vers le fichier de conf resolvd
rm -R /etc/resolv.conf
et on créé un nouveau fichier en dur cette fois, avec l’adresse d’un serveur DNS de notre choix
echo “nameserver 9.9.9.9” > /etc/resolv.conf
On installe PowerDNS et son backend SQL
apt install pdns-server pdns-backend-mysql -y
L’installeur nous demande si on veut que le backend SQL soit configuré automatiquement, ainsi qu’un mot de passe de connexion. Le mieux est de répondre oui et de taper “Entrée” lors de la demande de mot de passe. Il générera un mot de passe aléatoire
L’installation est à faire de la mème manière sur le serveur secondaire
2. Configuration DNS sur le serveur primaire
On commence par éditer le fichier de conf PowerDNS
nano /etc/powerdns/pdns.conf
On y modifie les valeurs suivantes pour autoriser le(s) serveur(s) secondaire(s) à faire des mises à jour de zones, ajouter une clé API, mais aussi on y indique que nous éditons le serveur primaire
Inséré le script
On redémarre PowerDNS
systemctl restart pdns
3. Configuration DNS sur le serveur secondaire
On édite le même fichier “/etc/powerdns/pdns.conf” que précédemment, mais sur le second serveur, cette fois.
Les seules modifications à faire sont les suivantes, permettant au serveur se savoir qu’il est secondaire
Inséré le script
Les étapes suivantes permettent d’activer le mode supermasters afin de recevoir les mises à jour de zones du master principal (Dans notre cas, le serveur primaire)
Pour ça, il faut se connecter au SGBD MySQL
mysql -p -u root
On y entre la commande SQL suivante
INSERT INTO pdns.supermasters VALUE (‘193.212.73.14’, ‘ns2.domaine.fr’, ‘admin’);
- 193.212.73.14 : adresse IP du serveur Maitre
- ns2.domaine.fr : nom de domaine du serveur réplicateur
- admin : fonction
On quitte et on redémarre PowerDNS
systemctl restart pdns
4. Installation de PowerDNS-Admin sur le serveur principal
Retour sur le serveur principal, on installe les prérequis pour Docker
- Paramétrer dans “apt” du repository de Docker
# Add Docker's official GPG key: sudo apt-get update sudo apt-get install ca-certificates curl sudo install -m 0755 -d /etc/apt/keyrings sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc sudo chmod a+r /etc/apt/keyrings/docker.asc # Add the repository to Apt sources: echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \ $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt-get update
Remplacer $VERSION_CODENAME par la version de Debian correspondant 12=bookworm
- Installer les packages Docker
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Une fois terminé, on lance un container Docker pour l’interface de config de PowerDNS
docker run —net=host -d -v pda-data:/data ngoduykhanh/powerdns-admin:latest
Rien de fou dans cette étape, il nous suffit maintenant de nous connecter à l’interface web de PowerDNS-Admin à l’adresse du serveur : http://ns1.domaine.fr
On commence par créer un compte admin en cliquant sur “Create an account”
