Il y a quelques mois, nous avons dû fournir un serveur DNS (Domain Name System) stable et fiable pour un nouveau projet.
Le projet portait sur un auto-déploiement à l’aide de conteneurs, où chaque nouvel environnement générerait une URL unique et aléatoire.
Après de nombreuses recherches sur les solutions possibles, nous avons décidé d’essayer PowerDNS (PDNS).
➙ PowerDNS :
offre des performances de résolution de domaine très élevées
offre de meilleures caractéristiques de sécurité
fournit de nombreuses statistiques sur son fonctionnement, ce qui est utile pour déterminer l’évolutivité d’une installation et détecter les problèmes
son code source est raisonnablement petit, ce qui rend l’audit facile
Présentation de PowerDNS
PowerDNS (ici son site officiel) est pris en charge dans toutes les principales distributions de Linux. Il est disponible sous licence GPL et tient ses dépôts à jour. |
Nous avons également trouvé une documentation soignée et bien organisée sur le site officiel et des tonnes de modes d’emploi sur le web de la part de personnes qui aiment et utilisent vraiment le produit. |
Après avoir lu quelques pages et appris quelques commandes de base, PDNS a été installé, mis en service et notre voyage a commencé. |
PowerDNS conserve ses enregistrements dans une base de données SQL. C’était nouveau pour nous, et le fait de ne plus avoir à utiliser de fichiers pour conserver les enregistrements était un bon changement.
Nous avons choisi MariaDB comme outil puissant, et comme il y a des tonnes de paramètres appropriés pour installer le DNS, nous avons pu configurer notre base de données sans problème.
Une configuration facile
La deuxième chose qui nous a intéressés est l’ensemble des fonctionnalités du PDNS dans son fichier de configuration.
Ce fichier, pdns.conf, contient de nombreuses options que vous pouvez activer ou désactiver en ajoutant ou en supprimant le signe #. C’était vraiment étonnant car cela nous a donné la chance d’intégrer ce nouveau service dans notre infrastructure actuelle avec seulement les valeurs que nous voulons.
Connexion
PowerDNS fait un travail extraordinaire en matière d’interface. Vous pouvez surveiller votre serveur et voir comment la machine se comporte en utilisant les fichiers de journalisation et un simple serveur web intégré.
En utilisant un navigateur, vous pouvez voir différents types de statistiques de la machine, comme :
- l’utilisation du CPU
- les requêtes DNS reçues
C’est très utile. Par exemple, nous avons pu détecter quelques PC « pas très sains » qui envoyaient des requêtes DNS à notre serveur à la recherche de sites liés à un trafic malveillant.
Après avoir consulté les journaux, nous avons pu voir d’où venait le trafic et effectuer une opération propre sur ces PC.
Installer et configurer PowerDNS sur Ubuntu 20.04
Exécuter la mise à jour du système
Pour commencer, mettez à jour votre système et mettez également à niveau vos systèmes.
apt upgrade
Installer la base de données relationnelle PowerDNS
Le serveur PowerDNS, qui fait autorité, prend en charge différents backends allant des backends de bases de données tels que MySQL, PostgreSQL, Oracle et les fichiers de zone BIND aux co-processus et API JSON.
Comme nous allons installer et configurer facilement PowerDNS sur Ubuntu 20.04 en tant que serveur, nous utiliserons l’une des bases de données relationnelles, et dans cette configuration, nous utiliserons MariaDB.
Installer MariaDB 10.5 sur Ubuntu 20.04
Pour installer la dernière version stable de MariaDB, vous devez installer les dépôts de MariaDB.
apt install software-properties-common
sudo apt-key adv --fetch-keys 'https://mariadb.org/mariadb_release_signing_key.asc'
Ensuite, rendez-vous sur le site des dépôts MariaDB et choisissez vos miroirs d’installation. Dans cette installation, nous utilisons les miroirs ukfast.co.uk.
add-apt-repository 'deb [arch=amd64,arm64,ppc64el] http://mirrors.ukfast.co.uk/sites/mariadb/repo/10.5/ubuntu focal main'
Mettez à jour le cache des paquets système et installez MariaDB 10.5 sur Ubuntu 20.04 ;
apt update
apt install mariadb-server
Une fois l’installation terminée, exécutez le script de sécurité MySQL initial et testez les bases de données.
mysql_secure_installation
Installer et configurer facilement PowerDNS sur Ubuntu 20.04
2 astuces pour améliorer votre anonymat en ligne
1/ Pensez à l'utilisation d'un VPN : une application VPN va changer votre adresse IP pour simuler celle de n'importe quel pays. Vous pourrez donc accéder à n'importe quel contenu, même celui qui est géo-restreint. Ce logiciel chiffre aussi votre trafic internet pour éliminer les malwares et les risques de piratage. 2/ Pensez à utiliser un gestionnaire de mots de passe : Il va enregistrer vos mots de passe (compliqués) pour les insérer automatiquement pour vous, et il peut vous générer des mots de passe compliqués aléatoires (versions déclinables pour téléphones et ordinateurs). L'offre NordVPN cumule les 2 avantagesAvant de pouvoir installer PowerDNS sur Ubuntu 20.04, vous devez désactiver systemd-resolved.
systemctl disable --now systemd-resolved
Supprimez le fichier resolv.conf par défaut et créez-en un nouveau avec les détails de votre serveur DNS personnalisé pour vous permettre d’effectuer l’installation.
rm -rf /etc/resolv.conf
echo "nameserver 8.8.8.8" > /etc/resolv.conf
Une fois que cela est fait, installez PowerDNS sur Ubuntu 20.04. PowerDNS est fourni par le paquet pdns-server.
apt install pdns-server
apt install pdns-backend-mysql
Créer une base de données PowerDNS sur Ubuntu 20.04
Maintenant que PowerDNS et ses paquets MySQL sont installés, connectez-vous à MariaDB et créez une base de données pour le serveur de noms PowerDNS.
mysql -u root
Veillez à utiliser les noms de base de données et les noms d’utilisateur de la base de données que vous préférez. Les noms utilisés ici ne sont pas standards.
create database kifarunixdemopdns;
Créez un utilisateur de la base de données PowerDNS et accordez tous les privilèges sur la base de données PowerDNS. Remplacez le mot de passe en conséquence.
grant all on kifarunixdemopdns.* to pdnsadmin@localhost identified by 'PdnSPassW0rd';
Rechargez les tables de privilèges et quittez la base de données.
flush privileges;
quit
Visitor Rating: 4 Stars