GNU/Linux >> Tutoriels Linux >  >> Linux

Comment configurer PowerDNS sur Ubuntu Linux

Vous avez du mal à créer un serveur DNS qui prend en charge la haute disponibilité et la redondance, mais avec des fonctionnalités puissantes et modernes ? PowerDNS est la meilleure solution. PowerDNS (pdns) est un logiciel de serveur DNS gratuit et open source pour les systèmes d'exploitation de type Unix.

Dans cet article, vous apprendrez comment installer et configurer PowerDNS avec la base de données MariaDB sur le système Linux Debian/Ubuntu.

Prêt à avoir un serveur DNS entièrement fonctionnel ? Lancez-vous !

Prérequis

Ce didacticiel est une démonstration pratique. Assurez-vous d'avoir les éléments suivants en place :

  • Une machine Linux :ce didacticiel utilise la dernière version de Debian 11 Bullseye.
  • Un utilisateur avec des privilèges root.

Installation et configuration de la base de données MariaDB

Par défaut, PowerDNS prend en charge de nombreux backends tels que les backends de base de données (PostgreSQL et MySQL/MariaDB), les fichiers de zone de liaison et les API JSON. Dans ce didacticiel, vous utiliserez la base de données MariaDB comme backend de base de données PowerDNS.

1. Tout d'abord, ouvrez votre terminal et SSH sur votre serveur.

2. Ensuite, exécutez le apt install commande ci-dessous pour installer les dépendances de base du package (software-properties-common dirmngr apt-transport-https ) à votre système.

sudo apt install software-properties-common dirmngr apt-transport-https -y

3. Exécutez les commandes ci-dessous pour ajouter le référentiel MariaDB et la clé GPG à votre système. La configuration du référentiel MariaDB est enregistrée dans le /etc/apt/sources.list.d/ répertoire, tandis que la clé GPG est enregistrée dans le répertoire /etc/apt/trusted.gpg. annuaire.

# Add MariaDB repository for Debian system
sudo add-apt-repository 'deb [arch=amd64,i386,arm64,ppc64el] https://mirror.23m.com/mariadb/repo/10.6/debian bullseye main'

# Add GPG key for MariaDB repository
wget -qO- https://mariadb.org/mariadb_release_signing_key.asc | gpg --dearmor > /etc/apt/trusted.gpg.d/mariadb_release_signing_key.gpg

4. Maintenant, exécutez les commandes suivantes pour actualiser le référentiel et installer le package (mariadb-server ).

Le service MariaDB démarre après l'installation sur les distributions Debian et Ubuntu et s'exécutera automatiquement au démarrage/démarrage du système.

# refresh package index
sudo apt update

# install MariaDB database
sudo apt install mariadb-server -y

5. Exécutez le mysql_secure_installation commande ci-dessous pour sécuriser votre installation MariaDB. mysql_secure_installation

mysql_secure_installation

6. Appuyez sur Entrée sur l'écran du terminal lorsque vous êtes invité à saisir le root mot de passe pour MariaDB car l'installation par défaut de MariaDB est livrée sans mot de passe.

7. Saisissez O à l'invite ci-dessous pour changer l'authentification par défaut en unix_socket .

8. Saisissez O à nouveau à l'invite ci-dessous et tapez un nouveau mot de passe fort pour le serveur MariaDB.

9. Entrez maintenant Y à l'invite ci-dessous. L'installation par défaut de MariaDB est livrée avec l'utilisateur anonyme par défaut au niveau de la production, vous devez donc supprimer l'utilisateur anonyme.

10. À l'invite suivante, saisissez Y pour désactiver la connexion à distance pour l'utilisateur root. Vous devez interdire MariaDB root utilisateur de se connecter à distance à partir d'autres serveurs pour des raisons de sécurité.

11. Tapez Y à nouveau pour supprimer la base de données de test par défaut et supprimer tous les accès et autorisations.

12. Enfin, tapez Y à nouveau pour recharger tous les privilèges des tables et appliquer les nouvelles modifications au serveur MariaDB.

Une fois que toute la configuration de MariaDB est terminée, vous recevrez un message de confirmation comme la capture d'écran ci-dessous.

Installation de PowerDNS sur Debian/Ubuntu Linux

Lorsque vous avez terminé l'installation de MariaDB pour le backend de la base de données PowerDNS, vous êtes prêt à installer les packages PowerDNS. Vous allez ajouter le référentiel PowerDNS officiel et la clé GPG et installer les packages de serveur PowerDNS.

Pour installer les derniers packages PowerDNS à partir du référentiel officiel :

1. Exécutez les commandes ci-dessous pour ajouter le référentiel PowerDNS et la clé GPG à votre système.

# Download PowerDNS GPG Key
wget -qO- https://repo.powerdns.com/FD380FBB-pub.asc | gpg --dearmor > /etc/apt/trusted.gpg.d/pdns.gpg

# Adding the PowerDNS Repository for Debian 11 Bullseye System
echo "deb [arch=amd64] http://repo.powerdns.com/debian bullseye-auth-45 main" | sudo tee /etc/apt/sources.list.d/pdns.list

# Adding the PowerDNS Repository for Ubuntu 20.04 System
echo "deb [arch=amd64] http://repo.powerdns.com/ubuntu focal-auth-45 main" | sudo tee /etc/apt/sources.list.d/pdns.list

2. Ensuite, créez un nouveau fichier de configuration nommé /etc/apt/preferences.d/pdns avec votre éditeur préféré, puis remplissez le fichier avec la configuration suivante.

Avec la configuration ci-dessous, tous les packages commençant par le nom pdns- s'installera automatiquement à partir du référentiel PowerDNS (repo.powerdns.com ) au lieu du dépôt Debian/Ubuntu.

# all packages with first name pdns- will be installed from the repo.powerdns.com repository
Package: pdns-*
Pin: origin repo.powerdns.com
Pin-Priority: 600

3. Exécutez les commandes suivantes pour mettre à jour et actualiser les référentiels, puis installez le PowerDNS (pdns-server ) et moteur PowerDNS MariaDB/MySQL (pdns-backend-mysql ).

Après l'installation, le service PowerDNS (pdns.service ) stats et est automatiquement activé.

# refresh package index after adding new repository
sudo apt update

# install PowerDNS and PowerDNS MySQL/MariaDB backend
sudo apt install pdns-server pdns-backend-mysql -y

4. Enfin, exécutez le systemctl commande ci-dessous pour vérifier le status du service PowerDNS (pdns.service ).

sudo systemctl status pdns.service

Comme vous le voyez ci-dessous, le service PowerDNS est actif (en cours d'exécution) sur le port TCP par défaut 53 et est démarré en tant que serveur PowerDNS faisant autorité .

Création d'une base de données et d'un schéma de base de données d'importation pour PowerDNS

Après avoir installé PowerDNS, vous configurerez MariaDB en tant que backend de base de données pour PowerDNS. Pour ce faire, vous allez créer une nouvelle base de données et un nouvel utilisateur, puis importer le schéma de base de données PowerDNS.

1. Exécutez la commande suivante pour vous connecter au shell MySQL en tant qu'utilisateur root . Entrez votre mot de passe root MariaDB lorsque vous y êtes invité.

mysql -u root -p

Après vous être connecté au shell MySQL, vous recevrez le message de bienvenue comme la capture d'écran ci-dessous.

2. Ensuite, exécutez les requêtes suivantes pour créer une nouvelle base de données (pdns ) avec un nom d'utilisateur d'administrateur défini sur pdnsadmin .

# creating database named pdns
create database pdns;

# create user pdnsadmin and grant privileges to the database pdns
grant all on pdns.* to [email protected] identified by 'StrongPdnsPasswd';

# reload database privileges to apply new changes
flush privileges;

# exit from the MySQL shell
exit

3. Exécutez la commande suivante pour importer le schéma de base de données PowerDNS dans le pdns base de données. Assurez-vous de saisir le bon mot de passe pour le pdnsadmin utilisateur.

L'installation par défaut du backend PowerDNS MySQL inclut le schéma de la base de données, qui est disponible au /usr/share/pdns-backend-mysql/schema/ annuaire.

# import the schema.mysql.sql to the pdns database
mysql -u pdnsadmin -p pdns < /usr/share/pdns-backend-mysql/schema/schema.mysql.sql

4. Maintenant, exécutez le mysqlshow ci-dessous commande pour vérifier le schéma de la base de données du pdns base de données. Cette commande vous montre toutes les tables disponibles sur le pdns base de données.

# Check list of tables on the pdns database
mysqlshow pdns

Ci-dessous, vous pouvez voir les tableaux disponibles sur les pdns base de données.

Configuration de PowerDNS avec MariaDB Backend

Vous avez configuré MariaDB et configuré votre base de données. Mais comment savoir si PowerDNS fonctionne ? Vous allez créer une nouvelle configuration backend MariaDB pour PowerDNS. Le service PowerDNS utilise cette configuration pour se connecter à la base de données MySQL et stocker toutes les données DNS sur la base de données.

1. Exécutez la commande suivante pour stop le service PowerDNS (pdns.service ) avant de créer la configuration backend PowerDNS.

sudo systemctl stop pdns.service

2. Ensuite, créez un fichier nommé myself.conf dans le /etc/powerdns/pdns.d/ répertoire avec votre éditeur de texte et remplissez le fichier avec la configuration suivante.

Modifiez le nom d'utilisateur et le mot de passe de la base de données avec vos informations et enregistrez les modifications.

Toutes les configurations supplémentaires pour PowerDNS doivent être enregistrées dans le /etc/powerdns/pdns.d répertoire.

# Define the gmysql backend
launch+=gmysql

# Details MariaDB database for PowerDNS
gmysql-host=127.0.0.1
gmysql-port=3306
gmysql-dbname=pdns
gmysql-user=pdnsadmin
gmysql-password=StrongPdnsPasswd
gmysql-dnssec=yes
# gmysql-socket=

3. Exécutez les commandes suivantes pour modifier l'autorisation et la propriété du mysql.conf dossier. À ce stade, la configuration du backend MySQL pour PowerDNS est créée.

# change the ownership to user and group pdns
sudo chown pdns:pdns /etc/powerdns/pdns.d/mysql.conf

# change permission of the file
sudo chmod 640 /etc/powerdns/pdns.d/mysql.conf

4. Maintenant, exécutez les commandes suivantes pour démarrer le service PowerDNS (pdns.service ), et vérifiez le service status .

# start PowerDNS service
sudo systemctl start pdns.service

# verify status of the PowerDNS service
sudo systemctl status pdns.service

Si votre configuration PowerDNS est correcte, vous recevrez la sortie suivante indiquant que l'état du service PowerDNS est active (running) .

5. Enfin, exécutez la commande ci-dessous pour vérifier le syslog dossier. Cette commande vous permet de vous assurer que le module backend MySQL est chargé sur le serveur PowerDNS.

grep -rin pdns_server /var/log/syslog

Création de zones DNS sur PowerDNS

PowerDNS fournit un utilitaire de ligne de commande appelé pdnsutil pour la gestion des Zones et du DNSSEC. Le pdnsutil La commande peut être exécutée à distance pour apporter des modifications à la base de données principale de PowerDNS.

Dans cette démo, vous allez créer une nouvelle zone DNS pour le example.io domaine.

1. Exécutez le pdnsutil commande ci-dessous pour créer une nouvelle zone DNS (create-zone ) nommé example.io .

pdnsutil create-zone example.io

2. Ensuite, exécutez les commandes suivantes pour créer un nouveau serveur de noms et attribuer le serveur de noms à l'adresse IP du serveur PowerDNS.

# define ns1 A record to IP address 172.16.5.10
pdnsutil add-record example.io ns1 A 172.16.5.10

# define nameserver for example.io to the ns1.example.io
pdnsutil add-record example.io @ NS ns1.example.io

3. Exécutez la commande ci-dessous pour ajouter le nouvel enregistrement A pour le example.io domaine. Ce domaine utilisera l'adresse IP 172.16.5.20 .

pdnsutil add-record example.io @ A 172.16.5.20

4. Exécutez les commandes suivantes pour ajouter de nouveaux sous-domaines pour vos applications.

# add subdomain www
pdnsutil add-record example.io www A 172.16.5.20

# add subdomain storage with the target server 172.16.5.50
pdnsutil add-record example.io storage A 172.16.5.50

5. Maintenant, exécutez la commande ci-dessous pour ajouter un enregistrement MX. L'enregistrement MX gère la livraison des e-mails pour le domaine principal (example.io ).

pdnsutil add-record example.io @ MX "10 example.io"

6. Exécutez les commandes ci-dessous pour définir nano comme éditeur par défaut et ouvrez le example.io dossier.

# setup default editor on the system temporary
export EDITOR=nano

# edit DNS zone example.io manually
pdnsutil edit-zone example.io

Modifier l'enregistrement SOA par défaut dans example.io fichier avec la configuration ci-dessous. Après cela, enregistrez les modifications et quittez l'éditeur.

example.io      3600    IN      SOA     ns1.example.io admin.example.io 0 10800 3600 604800 3600

7. Tapez a et appuyez sur Entrée pour confirmer l'application des nouvelles modifications, comme indiqué ci-dessous.

8. Maintenant, exécutez la commande suivante pour afficher tous les enregistrements DNS disponibles sur le example.io zone.

pdnsutil list-zone example.io

Vous pouvez confirmer ci-dessous que l'enregistrement SOA que vous avez modifié (étape six) se reflète dans la liste des enregistrements DNS.

9. Enfin, exécutez la commande ci-dessous pour vérifier la configuration des zones PowerDNS.

pdnsutil check-all-zones

Ci-dessous, vous pouvez voir qu'il y a sept enregistrements sur example.io zone sans erreur ni avertissement.

Vérification de la propagation DNS

Vous avez créé avec succès la zone DNS pour example.io domaine, et c'est super! Maintenant, vous allez vérifier la propagation DNS du example.io domaine à l'aide de l'outil Domain Information Groper (DIG). Le dig La commande est l'outil de recherche DNS qui vous permet de vérifier la propagation DNS et de dépanner votre serveur DNS.

1. Exécutez la commande suivante pour install le dnsutils package sur votre système.

Le dig la commande fait partie du dnsutils paquet.

sudo apt install dnsutils -y

2. Ensuite, exécutez le dig commande ci-dessous pour vérifier l'enregistrement A pour example.io domaine. Dans cet exemple, l'adresse IP du serveur PowerDNS est 172.16.5.10 .

dig example.io @172.16.5.10

Dans le ANSWER SECTION , vous verrez une sortie similaire à celle ci-dessous.

3. De plus, exécutez les commandes suivantes pour vérifier un autre sous-domaine, tel que www.example.io et storage.example.io .

# check subdomain www.example.io
dig www.example.io @172.16.5.10

# check subdomain storage.example.io
dig storage.example.io @172.16.5.10

Ci-dessous, le www.example.io le sous-domaine est résolu sur le même serveur que le example.io domaine.

Le storage.example.io le sous-domaine est résolu sur un autre serveur avec une adresse IP de 172.16.5.50 , comme indiqué ci-dessous.

4. Enfin, exécutez le dig commande ci-dessous pour vérifier l'enregistrement MX pour example.io domaine.

Vous pouvez également vérifier d'autres enregistrements DNS, tels que TXT , MX , SOA , et ainsi de suite.

dig MX example.io @172.16.5.10

Conclusion

Tout au long de ce didacticiel, vous avez appris à configurer le backend de base de données PowerDNS et MariaDB dans Debian/Ubuntu Linux. Vous avez également réalisé que PowerDNS vous permet de créer et de gérer des serveurs DNS avec de petites ressources, contrairement aux autres applications de serveur DNS. De plus, vous avez appris à vérifier la configuration et la propagation DNS avec le dig commande.

Comment faire passer PowerDNS au niveau supérieur ? Peut-être en ajoutant le PowerDNS recursor pour activer le cache DNS et configurer dnsdist comme équilibreur de charge DNS ? Maintenant, devenez fou et commencez à créer des serveurs DNS distribués et à haute disponibilité.


Linux
  1. Comment installer MariaDB 10.4 sur Ubuntu 18.04

  2. Comment installer Java sur Ubuntu Linux

  3. Comment installer usb-creator sur Ubuntu Linux

  4. Comment installer MariaDB sur Ubuntu 22.04

  5. Comment installer des fichiers .deb sur Ubuntu Linux

Comment installer MariaDB sur Ubuntu

Comment installer Java 14 sur Linux, Ubuntu, CentOS

Comment installer Rust sur Ubuntu Linux

Comment installer ClamAV sur Ubuntu Linux

Comment installer Webmin sur Ubuntu Linux

Comment installer iTunes dans Ubuntu Linux