GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So richten Sie PowerDNS unter Ubuntu Linux ein

Haben Sie Mühe, einen DNS-Server zu erstellen, der Hochverfügbarkeit und Redundanz unterstützt, aber dennoch über leistungsstarke und moderne Funktionen verfügt? PowerDNS ist die beste Lösung. PowerDNS (pdns) ist eine kostenlose Open-Source-DNS-Serversoftware für Unix-ähnliche Betriebssysteme.

In diesem Artikel erfahren Sie, wie Sie PowerDNS mit der MariaDB-Datenbank auf dem Debian/Ubuntu-Linux-System installieren und konfigurieren.

Bereit für einen voll funktionsfähigen DNS-Server? Spring direkt hinein!

Voraussetzungen

Dieses Tutorial ist eine praktische Demonstration, stellen Sie sicher, dass Sie Folgendes eingerichtet haben:

  • Eine Linux-Maschine – Dieses Tutorial verwendet das neueste Debian 11 Bullseye.
  • Ein Benutzer mit Root-Rechten.

Installieren und Konfigurieren der MariaDB-Datenbank

Standardmäßig unterstützt PowerDNS viele Backends wie Datenbank-Backends (PostgreSQL und MySQL/MariaDB), Bindezonendateien und JSON-APIs. In diesem Tutorial verwenden Sie die MariaDB-Datenbank als PowerDNS-Datenbank-Backend.

1. Öffnen Sie zuerst Ihr Terminal und SSH zu Ihrem Server.

2. Führen Sie als Nächstes apt install aus Befehl unten, um grundlegende Paketabhängigkeiten zu installieren (software-properties-common dirmngr apt-transport-https ) zu Ihrem System.

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

3. Führen Sie die folgenden Befehle aus, um das MariaDB-Repository und den GPG-Schlüssel zu Ihrem System hinzuzufügen. Die MariaDB-Repository-Konfiguration wird unter /etc/apt/sources.list.d/ gespeichert Verzeichnis, während der GPG-Schlüssel unter /etc/apt/trusted.gpg. gespeichert wird Verzeichnis.

# 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. Führen Sie nun die folgenden Befehle aus, um das Repository zu aktualisieren und das Paket zu installieren (mariadb-server ).

Der MariaDB-Dienst startet nach der Installation auf Debian- und Ubuntu-Distributionen und wird automatisch beim Systemstart/Systemstart ausgeführt.

# refresh package index
sudo apt update

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

5. Führen Sie mysql_secure_installation aus Befehl unten, um Ihre MariaDB-Installation zu sichern. mysql_secure_installation

mysql_secure_installation

6. Drücken Sie auf dem Terminalbildschirm die Eingabetaste, wenn Sie aufgefordert werden, den root einzugeben Passwort für MariaDB, da die Standardinstallation von MariaDB kein Passwort enthält.

7. Geben Sie J ein an der unten gezeigten Eingabeaufforderung, um die Standardauthentifizierung auf unix_socket zu ändern .

8. Geben Sie J ein erneut an der Eingabeaufforderung unten und geben Sie ein neues starkes Passwort für den MariaDB-Server ein.

9. Geben Sie nun Y ein an der unten gezeigten Eingabeaufforderung. Die standardmäßige MariaDB-Installation enthält den standardmäßigen anonymen Benutzer auf Produktionsebene, daher müssen Sie den anonymen Benutzer entfernen.

10. Geben Sie bei der nächsten Eingabeaufforderung Y ein um die Remote-Anmeldung für den Root-Benutzer zu deaktivieren. Sie müssen MariaDB root verbieten Benutzer sich aus Sicherheitsgründen remote von anderen Servern aus anmelden.

11. Geben Sie Y ein erneut, um die Standardtestdatenbank zu löschen und alle Zugriffe und Berechtigungen zu entfernen.

12. Geben Sie zuletzt Y ein erneut, um alle Tabellenberechtigungen neu zu laden und neue Änderungen auf den MariaDB-Server anzuwenden.

Sobald die gesamte MariaDB-Konfiguration abgeschlossen ist, erhalten Sie eine Bestätigungsnachricht wie im folgenden Screenshot.

Installieren von PowerDNS unter Debian/Ubuntu Linux

Nachdem Sie die MariaDB-Installation für das PowerDNS-Datenbank-Backend abgeschlossen haben, können Sie PowerDNS-Pakete installieren. Sie fügen das offizielle PowerDNS-Repository und den GPG-Schlüssel hinzu und installieren PowerDNS-Serverpakete.

So installieren Sie die neuesten PowerDNS-Pakete aus dem offiziellen Repository:

1. Führen Sie die folgenden Befehle aus, um das PowerDNS-Repository und den GPG-Schlüssel zu Ihrem System hinzuzufügen.

# 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. Als nächstes erstellen Sie eine neue Konfigurationsdatei mit dem Namen /etc/apt/preferences.d/pdns mit Ihrem bevorzugten Editor und füllen Sie die Datei dann mit der folgenden Konfiguration.

Mit der folgenden Konfiguration werden alle Pakete, die mit dem Namen pdns- beginnen wird automatisch aus dem PowerDNS-Repository (repo.powerdns.com ) anstelle des Debian/Ubuntu-Repositorys.

# 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. Führen Sie die folgenden Befehle aus, um Repositories zu aktualisieren und zu aktualisieren, und installieren Sie dann die PowerDNS-Datei (pdns-server ) und PowerDNS MariaDB/MySQL-Backend (pdns-backend-mysql ).

Nach der Installation wird der PowerDNS-Dienst (pdns.service )-Statistiken und wird automatisch aktiviert.

# 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. Führen Sie zuletzt systemctl aus Befehl unten, um status zu überprüfen des PowerDNS-Dienstes (pdns.service ).

sudo systemctl status pdns.service

Wie Sie unten sehen, ist der PowerDNS-Dienst aktiv (wird ausgeführt) auf dem Standard-TCP-Port 53 und wird als PowerDNS Authoritative Server gestartet .

Datenbank erstellen und Datenbankschema für PowerDNS importieren

Nach der Installation von PowerDNS richten Sie MariaDB als Datenbank-Backend für PowerDNS ein. Dazu erstellen Sie eine neue Datenbank und einen neuen Benutzer und importieren dann das PowerDNS-Datenbankschema.

1. Führen Sie den folgenden Befehl aus, um sich als Benutzer root bei der MySQL-Shell anzumelden . Geben Sie Ihr MariaDB-Root-Passwort ein, wenn Sie dazu aufgefordert werden.

mysql -u root -p

Nachdem Sie sich bei der MySQL-Shell angemeldet haben, erhalten Sie die Willkommensnachricht wie im folgenden Screenshot.

2. Führen Sie als Nächstes die folgenden Abfragen aus, um eine neue Datenbank zu erstellen (pdns ) mit einem Admin-Benutzernamen, der als pdnsadmin festgelegt ist .

# 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. Führen Sie den folgenden Befehl aus, um das PowerDNS-Datenbankschema in pdns zu importieren Datenbank. Achten Sie darauf, das richtige Passwort für pdnsadmin einzugeben Benutzer.

Die Standardinstallation des PowerDNS MySQL-Backends enthält das Datenbankschema, das unter /usr/share/pdns-backend-mysql/schema/ verfügbar ist Verzeichnis.

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

4. Führen Sie nun den folgenden mysqlshow aus Befehl, um das Datenbankschema von pdns zu überprüfen Datenbank. Dieser Befehl zeigt Ihnen alle verfügbaren Tabellen auf dem pdns Datenbank.

# Check list of tables on the pdns database
mysqlshow pdns

Unten sehen Sie die auf den pdns verfügbaren Tabellen Datenbank.

PowerDNS mit MariaDB-Backend einrichten

Sie haben MariaDB konfiguriert und Ihre Datenbank eingerichtet. Aber woher wissen Sie, ob PowerDNS funktioniert? Sie erstellen eine neue MariaDB-Backend-Konfiguration für PowerDNS. Der PowerDNS-Dienst verwendet diese Konfiguration, um eine Verbindung zur MySQL-Datenbank herzustellen und alle DNS-Daten in der Datenbank zu speichern.

1. Führen Sie den folgenden Befehl zu stop aus der PowerDNS-Dienst (pdns.service ), bevor Sie die PowerDNS-Backend-Konfiguration erstellen.

sudo systemctl stop pdns.service

2. Als nächstes erstellen Sie eine Datei mit dem Namen myself.conf in /etc/powerdns/pdns.d/ Verzeichnis mit Ihrem Texteditor und füllen Sie die Datei mit der folgenden Konfiguration.

Ändern Sie den Benutzernamen und das Passwort der Datenbank mit Ihren Informationen und speichern Sie die Änderungen.

Alle zusätzlichen Konfigurationen für PowerDNS müssen im /etc/powerdns/pdns.d gespeichert werden Verzeichnis.

# 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. Führen Sie die folgenden Befehle aus, um die Berechtigung und den Besitz von mysql.conf zu ändern Datei. An diesem Punkt wird die MySQL-Backend-Konfiguration für PowerDNS erstellt.

# 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. Führen Sie nun die folgenden Befehle aus, um den PowerDNS-Dienst zu starten (pdns.service ) und überprüfen Sie den Dienst status .

# start PowerDNS service
sudo systemctl start pdns.service

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

Wenn Ihre PowerDNS-Konfiguration korrekt ist, erhalten Sie die folgende Ausgabe, die zeigt, dass der PowerDNS-Dienststatus active (running) ist .

5. Führen Sie schließlich den folgenden Befehl aus, um den syslog zu überprüfen Datei. Mit diesem Befehl können Sie sicherstellen, dass das MySQL-Backend-Modul auf den PowerDNS-Server geladen wird.

grep -rin pdns_server /var/log/syslog

DNS-Zonen auf PowerDNS erstellen

PowerDNS bietet ein Befehlszeilenprogramm namens pdnsutil zur Verwaltung von Zonen und DNSSEC. Der pdnsutil Der Befehl kann remote ausgeführt werden, um Änderungen an der PowerDNS-Backend-Datenbank vorzunehmen.

In dieser Demo erstellen Sie eine neue DNS-Zone für example.io Domäne.

1. Führen Sie pdnsutil aus Befehl unten, um eine neue DNS-Zone zu erstellen (create-zone ) mit dem Namen example.io .

pdnsutil create-zone example.io

2. Führen Sie als Nächstes die folgenden Befehle aus, um einen neuen Nameserver zu erstellen und den Nameserver der IP-Adresse des PowerDNS-Servers zuzuweisen.

# 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. Führen Sie den folgenden Befehl aus, um den neuen A-Eintrag für example.io hinzuzufügen Domain. Diese Domain verwendet die IP-Adresse 172.16.5.20 .

pdnsutil add-record example.io @ A 172.16.5.20

4. Führen Sie die folgenden Befehle aus, um neue Unterdomänen für Ihre Anwendungen hinzuzufügen.

# 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. Führen Sie nun den folgenden Befehl aus, um einen MX-Eintrag hinzuzufügen. Der MX-Eintrag übernimmt die E-Mail-Zustellung für die Hauptdomäne (example.io ).

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

6. Führen Sie die folgenden Befehle aus, um nano festzulegen als Standardeditor und öffnen Sie example.io Datei.

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

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

Ändern Sie den standardmäßigen SOA-Eintrag in example.io Datei mit der folgenden Konfiguration. Speichern Sie danach die Änderungen und verlassen Sie den Editor.

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

7. Geben Sie a ein und drücken Sie die Eingabetaste, um die Anwendung der neuen Änderungen zu bestätigen, wie unten gezeigt.

8. Führen Sie nun den folgenden Befehl aus, um alle verfügbaren DNS-Einträge auf example.io anzuzeigen Zone.

pdnsutil list-zone example.io

Sie können unten bestätigen, dass der von Ihnen geänderte SOA-Eintrag (Schritt 6) in der DNS-Eintragsliste wiedergegeben wird.

9. Führen Sie zuletzt den folgenden Befehl aus, um die Konfiguration der PowerDNS-Zonen zu überprüfen.

pdnsutil check-all-zones

Unten sehen Sie, dass es sieben Einträge auf example.io gibt Zone ohne Fehler und Warnungen.

Überprüfen der DNS-Weitergabe

Sie haben die DNS-Zone für example.io erfolgreich erstellt Domain, und das ist großartig! Jetzt überprüfen Sie die DNS-Weitergabe von example.io Domain mit dem Tool Domain Information Groper (DIG). Der dig Befehl ist das DNS-Lookup-Tool, mit dem Sie die DNS-Weitergabe überprüfen und Fehler auf Ihrem DNS-Server beheben können.

1. Führen Sie den folgenden Befehl zu install aus der dnsutils Paket auf Ihrem System.

Der dig Befehl ist Teil des dnsutils Paket.

sudo apt install dnsutils -y

2. Führen Sie als Nächstes dig aus Befehl unten, um den A-Record für example.io zu prüfen Domain. In diesem Beispiel lautet die IP-Adresse des PowerDNS-Servers 172.16.5.10 .

dig example.io @172.16.5.10

Im ANSWER SECTION , sehen Sie eine ähnliche Ausgabe wie unten.

3. Führen Sie außerdem die folgenden Befehle aus, um eine andere Unterdomäne zu überprüfen, z. B. www.example.io und 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

Darunter der www.example.io Subdomain wird auf denselben Server wie example.io aufgelöst Domain.

Der storage.example.io Subdomain wird auf einen anderen Server mit der IP-Adresse 172.16.5.50 aufgelöst , Wie nachfolgend dargestellt.

4. Führen Sie zuletzt dig aus Befehl unten, um den MX-Eintrag für example.io zu prüfen Domain.

Sie können auch andere DNS-Einträge überprüfen, z. B. TXT , MX , SOA , und so weiter.

dig MX example.io @172.16.5.10

Schlussfolgerung

In diesem Tutorial haben Sie gelernt, wie Sie das PowerDNS- und MariaDB-Datenbank-Backend in Debian/Ubuntu Linux einrichten. Sie haben auch erkannt, dass Sie mit PowerDNS im Gegensatz zu anderen DNS-Serveranwendungen DNS-Server mit geringen Ressourcen erstellen und verwalten können. Außerdem haben Sie gelernt, die DNS-Konfiguration und -Propagation mit dig zu überprüfen Befehl.

Wie bringt man PowerDNS auf die nächste Stufe? Vielleicht durch Hinzufügen des PowerDNS recursor um den DNS-Cache zu aktivieren und dnsdist einzurichten als DNS-Load-Balancer? Jetzt werden Sie verrückt und fangen Sie an, hochverfügbare und verteilte DNS-Server zu erstellen.


Linux
  1. So installieren Sie MariaDB 10.4 auf Ubuntu 18.04

  2. So installieren Sie Java unter Ubuntu Linux

  3. So installieren Sie usb-creator unter Ubuntu Linux

  4. So installieren Sie MariaDB unter Ubuntu 22.04

  5. So installieren Sie .deb-Dateien unter Ubuntu Linux

So installieren Sie MariaDB auf Ubuntu

So installieren Sie Java 14 unter Linux, Ubuntu, CentOS

So installieren Sie Rust unter Ubuntu Linux

So installieren Sie ClamAV unter Ubuntu Linux

So installieren Sie Webmin unter Ubuntu Linux

So installieren Sie iTunes unter Ubuntu Linux