GNU/Linux >> LINUX-Kenntnisse >  >> Cent OS

So installieren Sie PowerDNS und Poweradmin unter CentOS 7

PowerDNS (pdns) ist ein Open-Source-DNS-Server, der in C++ geschrieben und unter der GPL-Lizenz veröffentlicht wurde. Es ist zu einer guten Alternative für den traditionellen DNS-Server Bind geworden, der auf bessere Leistung und geringen Speicherbedarf ausgelegt ist. PowerDNS bietet zwei Produkte, den autoritativen Server und den Recursor. Der autoritative PowerDNS-Server kann über die verschiedenen Back-Ends konfiguriert werden, einschließlich der einfachen Bind-Zonendateien, RDBMS wie MySQL, PostgreSQL, SQLite3 oder LDAP.

In diesem Tutorial zeige ich Ihnen, wie Sie einen autoritativen PowerDNS-Server mit MariaDB-Datenbankserver als Backend installieren und konfigurieren und Poweradmin für eine einfache DNS-Verwaltung verwenden.

Voraussetzungen

  • CentOS 7-Server
  • Root-Rechte

Was wir tun werden:

  1. EPEL- und Remi-Repositories installieren
  2. MariaDB installieren und konfigurieren
  3. Installieren Sie PowerDNS
  4. Installieren Sie Poweradmin
  5. Poweradmin-Nachinstallation
  6. Beispielzone erstellen

Schritt 1 - EPEL- und Remi-Repositories installieren

Zunächst müssen wir Abhängigkeiten für die PowerDNS-Installation installieren. Wir werden das EPEL-Repository und das REMI für die Installation von PHP 7.2 installieren.

Installieren Sie das EPEL- und PHP Remi-Repository mit den folgenden Befehlen.

yum -y install epel-release
yum -y install http://rpms.remirepo.net/enterprise/remi-release-7.rpm

Sobald diese Repositorys zum System hinzugefügt wurden, installieren Sie das Paket „yum-utils“.

yum -y install yum-utils

Und aktivieren Sie das PHP 7.2 Remi-Repository mit dem folgenden Befehl.

yum-config-manager --enable remi-php72

Schritt 2 – MariaDB installieren und konfigurieren

Der autoritative PowerDNS-Server unterstützt ein anderes Backend, einschließlich des MySQL/MariaDB-Datenbankservers. Die Begriffe „Backend“ sind ein Datenspeicher, den der Server konsultiert und der DNS-Einträge (und einige Metadaten) enthält. Und für diesen Leitfaden verwenden wir MariaDB als Backend.

Installieren Sie MariaDB mit dem folgenden yum-Befehl.

yum -y install mariadb mariadb-server

Starten Sie nach Abschluss der Installation den MariaDB-Dienst und fügen Sie ihn der Startzeit hinzu.

systemctl start mariadb
systemctl enable mariadb

Als Nächstes konfigurieren wir das Root-Passwort für MariaDB mit dem interaktiven Tool namens „mysql_secure_installation“.

Führen Sie den folgenden Befehl aus.

mysql_secure_installation

Und Sie werden aufgefordert, das Root-Passwort des Datenbankservers zu konfigurieren. Geben Sie „Y“ ein, um das Root-Passwort einzurichten, und geben Sie ein starkes Passwort ein.

Set root password? [Y/n] Y
New password:
Re-enter new password:

Geben Sie für die anderen einfach 'Y' für yes ein.

Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y

Als Ergebnis haben Sie den MariaDB-Datenbankserver installiert und das Root-Passwort für die Authentifizierung eingerichtet.

Als Nächstes erstellen wir eine neue Datenbank und einen neuen Benutzer für die PowerDNS-Installation. Melden Sie sich mit dem Benutzer root und Ihrem Passwort bei der MySQL-Shell an.

Führen Sie den folgenden MySQL-Befehl aus.

mysql -u root -p
PASSWORD

Erstellen Sie nun eine neue Datenbank namens „powerdns“ und gewähren Sie einem neuen Benutzer namens „pdns“ mit dem Passwort „pdnspassword2018“ alle Datenbankrechte.

create database powerdns;
grant all privileges on powerdns.* to [email protected] identified by 'pdnspassword2018';
flush privileges;

Erstellen Sie danach die Tabellenstrukturen für die PowerDNS-Datenbank, indem Sie die folgenden MySQL-Abfragen unten ausführen.

use powerdns;

CREATE TABLE domains (
  id                    INT AUTO_INCREMENT,
  name                  VARCHAR(255) NOT NULL,
  master                VARCHAR(128) DEFAULT NULL,
  last_check            INT DEFAULT NULL,
  type                  VARCHAR(6) NOT NULL,
  notified_serial       INT DEFAULT NULL,
  account               VARCHAR(40) DEFAULT NULL,
  PRIMARY KEY (id)
) Engine=InnoDB;

CREATE UNIQUE INDEX name_index ON domains(name);


CREATE TABLE records (
  id                    BIGINT AUTO_INCREMENT,
  domain_id             INT DEFAULT NULL,
  name                  VARCHAR(255) DEFAULT NULL,
  type                  VARCHAR(10) DEFAULT NULL,
  content               VARCHAR(64000) DEFAULT NULL,
  ttl                   INT DEFAULT NULL,
  prio                  INT DEFAULT NULL,
  change_date           INT DEFAULT NULL,
  disabled              TINYINT(1) DEFAULT 0,
  ordername             VARCHAR(255) BINARY DEFAULT NULL,
  auth                  TINYINT(1) DEFAULT 1,
  PRIMARY KEY (id)
) Engine=InnoDB;

CREATE INDEX nametype_index ON records(name,type);
CREATE INDEX domain_id ON records(domain_id);
CREATE INDEX recordorder ON records (domain_id, ordername);


CREATE TABLE supermasters (
  ip                    VARCHAR(64) NOT NULL,
  nameserver            VARCHAR(255) NOT NULL,
  account               VARCHAR(40) NOT NULL,
  PRIMARY KEY (ip, nameserver)
) Engine=InnoDB;


CREATE TABLE comments (
  id                    INT AUTO_INCREMENT,
  domain_id             INT NOT NULL,
  name                  VARCHAR(255) NOT NULL,
  type                  VARCHAR(10) NOT NULL,
  modified_at           INT NOT NULL,
  account               VARCHAR(40) NOT NULL,
  comment               VARCHAR(64000) NOT NULL,
  PRIMARY KEY (id)
) Engine=InnoDB;

CREATE INDEX comments_domain_id_idx ON comments (domain_id);
CREATE INDEX comments_name_type_idx ON comments (name, type);
CREATE INDEX comments_order_idx ON comments (domain_id, modified_at);


CREATE TABLE domainmetadata (
  id                    INT AUTO_INCREMENT,
  domain_id             INT NOT NULL,
  kind                  VARCHAR(32),
  content               TEXT,
  PRIMARY KEY (id)
) Engine=InnoDB;

CREATE INDEX domainmetadata_idx ON domainmetadata (domain_id, kind);


CREATE TABLE cryptokeys (
  id                    INT AUTO_INCREMENT,
  domain_id             INT NOT NULL,
  flags                 INT NOT NULL,
  active                BOOL,
  content               TEXT,
  PRIMARY KEY(id)
) Engine=InnoDB;

CREATE INDEX domainidindex ON cryptokeys(domain_id);


CREATE TABLE tsigkeys (
  id                    INT AUTO_INCREMENT,
  name                  VARCHAR(255),
  algorithm             VARCHAR(50),
  secret                VARCHAR(255),
  PRIMARY KEY (id)
) Engine=InnoDB;

CREATE UNIQUE INDEX namealgoindex ON tsigkeys(name, algorithm);

quit;

Als Ergebnis wurden die MySQL/MariaDB-Datenbank und ein Benutzer für die PowerDNS-Installation erstellt.

Schritt 3 – PowerDNS installieren

Installieren Sie PowerDNS und alle erforderlichen Pakete mit dem folgenden Befehl.

yum -y install pdns pdns-backend-mysql bind-utils

Gehen Sie nach der Installation der PowerDNS-Pakete in das Verzeichnis „/etc/pdns/“ und bearbeiten Sie die Konfigurationsdatei „pdns.conf“ mit dem vim-Editor.

cd /etc/pdns/
vim pdns.conf

Standardmäßig verwendet PowerDNS „bind“ als Backend. Geben Sie also den Kommentar „#“ vor der „launch=bind“-Konfiguration ein und fügen Sie die MySQL-Backend-Konfiguration wie unten ein.

#launch=bind

launch=gmysql
gmysql-host=localhost
gmysql-user=pdns
gmysql-password=pdnspassword2018
gmysql-dbname=powerdns

Speichern und schließen.

Starten Sie nun den pdns-Dienst und fügen Sie ihn der Startzeit hinzu.

systemctl start pdns
systemctl enable pdns

Fügen Sie danach den DNS-Dienst zur Firewall hinzu.

firewall-cmd --add-service=dns --permanent
firewall-cmd --reload

Und der PowerDNS-Dienst ist betriebsbereit, überprüfen Sie dies mit dem folgenden Befehl.

netstat -tap | grep pdns
netstat -tulpn | grep 53
dig @10.9.9.10

Als Ergebnis erhalten Sie, dass der pdns-Dienst auf Port 53 ausgeführt wird, und Sie erhalten die Antwort vom PowerDNS-Server.

Schritt 4 – Poweradmin installieren

In diesem Schritt installieren wir die DNS-Verwaltung für PowerDNS namens „Poweradmin“. Es ist eine auf PHP basierende Webanwendung, daher müssen wir PHP und einen Webserver installieren, um die Anwendung auszuführen.

Installieren Sie einen httpd-Webserver und PHP-Pakete mit dem folgenden Befehl.

yum -y install httpd php php-devel php-gd php-imap php-ldap php-mysql php-odbc php-pear php-xml php-xmlrpc php-mbstring php-mcrypt php-mhash gettext

Nach der Installation müssen wir zusätzliche PHP Pear-Pakete installieren. Führen Sie den folgenden Befehl aus.

yum -y install php-pear-DB php-pear-MDB2-Driver-mysqli

Sobald die httpd- und PHP-Installation abgeschlossen ist, starten Sie den httpd-Dienst und fügen Sie ihn der Startzeit hinzu.

systemctl start httpd
systemctl enable httpd

Gehen Sie als Nächstes in das Verzeichnis „/var/www/html“ und laden Sie den poweradmin-Quellcode herunter.

cd /var/www/html/
wget http://downloads.sourceforge.net/project/poweradmin/poweradmin-2.1.7.tgz

Extrahieren Sie die komprimierte poweradmin-Datei und benennen Sie sie um.

tar xvf poweradmin-2.1.7.tgz
mv poweradmin-2.1.7/ poweradmin/

Fügen Sie danach die HTTP- und HTTPS-Protokolle zur Firewall hinzu.

firewall-cmd --add-service={http,https} --permanent
firewall-cmd --reload

Und wir sind bereit für die Poweradmin-Nachinstallation.

Schritt 5 - Poweradmin-Nachinstallation

Öffnen Sie Ihren Webbrowser und geben Sie die Server-IP-Adresse sowie die /poweradmin/install/-Pfad-URL für die Installation ein. Meine ist:

http://10.9.9.10/poweradmin/install/

Wählen Sie Ihre bevorzugte Sprache und klicken Sie auf die Schaltfläche „Gehe zu Schritt 2“.

Klicken Sie jetzt einfach auf die Schaltfläche „Gehe zu Schritt 3“.

Und Sie werden für die Datenbankkonfiguration angezeigt. Geben Sie die von uns erstellten PowerDNS-Datenbankdetails und das Administratorkennwort für PowerDNS ein.

Klicken Sie auf die Schaltfläche „Gehe zu Schritt 4“.

Danach müssen Sie einen neuen Benutzer mit eingeschränkten Rechten erstellen. Geben Sie die Details wie folgt ein und ändern Sie den Benutzer, das Passwort usw. mit Ihren eigenen.

Klicken Sie nun auf die Schaltfläche „Gehe zu Schritt 5“.

Und Ihnen wird die folgende Seite angezeigt.

Öffnen Sie erneut Ihren Terminalserver, melden Sie sich mit dem Root-Benutzer und dem Passwort an. Führen Sie dann die MySQL-Abfragen wie auf der Seite aus.

mysql -u root -p
PASSWORD

GRANT SELECT, INSERT, UPDATE, DELETE
ON powerdns.*
TO 'hakase'@'localhost'
IDENTIFIED BY 'hakase-labs123';

Kehren Sie nun zum Webbrowser zurück und klicken Sie auf die Schaltfläche „Go to Step 6“.

Und Ihnen wird die folgende Seite angezeigt.

Das Installationsprogramm konnte keine neue Konfiguration „../inc/config.inc.php“ erstellen. Also müssen wir es manuell erstellen.

Gehen Sie zurück zum Terminalserver, gehen Sie in das Verzeichnis ‚/var/www/html/poweradmin‘ und erstellen Sie eine neue Konfigurationsdatei ‚inc/config.inc.php‘.

cd /var/www/html/poweradmin
vim inc/config.inc.php

Fügen Sie nun das PHP-Skript auf der Seite hinein.

<?php

$db_host                = 'localhost';
$db_user                = 'hakase';
$db_pass                = 'hakase-labs123';
$db_name                = 'powerdns';
$db_type                = 'mysql';
$db_layer               = 'PDO';

$session_key            = '[email protected]=uetwJeD2#uApgO)2Ekj+S#oN1Khhoj';

$iface_lang             = 'en_EN';

$dns_hostmaster         = 'server.hakase-labs.io';
$dns_ns1                = 'ns1.hakase-labs.io';
$dns_ns2                = 'ns2.hakase-labs.io';

Speichern und schließen, dann zurück zum Browser und auf die Schaltfläche klicken.

Und die Installation ist abgeschlossen.

Optional:

Wenn Sie die von anderen dynamischen Anbietern verwendeten URLs unterstützen möchten, kopieren Sie die htaccess-Datei.

cd /var/www/html/poweradmin
cp install/htaccess.dist .htaccess

Danach MÜSSEN Sie das 'install'-Verzeichnis entfernen.

rm -rf /var/www/html/poweradmin/install

Kehren Sie wieder zu Ihrem Webbrowser zurück und melden Sie sich mit der unten angegebenen URL beim Poweradmin-Dashboard an.

http://10.9.9.10/poweradmin/

Melden Sie sich mit dem Standardbenutzer „admin“ und dem Passwort an und klicken Sie auf die Schaltfläche „Los“.

Als Ergebnis wird Ihnen das Poweradmin-Dashboard angezeigt und die Installation ist abgeschlossen.

Schritt 6 – Musterzone und DNS-Einträge erstellen

In dieser Phase testen wir die PowerDNS- und Poweradmin-Installation, indem wir eine neue DNS-Zone für eine Domain namens „emma.io“ erstellen.

Klicken Sie im Poweradmin-Dashboard auf das Menü „Masterzone hinzufügen“.

Legen Sie den Zonennamen mit dem Domänennamen „emaa.io“ fest und klicken Sie auf die Schaltfläche „Zone hinzufügen“.

Klicken Sie auf das Menü „Zonen auflisten“, um alle verfügbaren Zonen anzuzeigen. Und klicken Sie auf die Schaltfläche „Bearbeiten“ für die Zone „emma.io“.

Klicken Sie auf das Menü „Zonen auflisten“, um alle verfügbaren Zonen anzuzeigen. Und klicken Sie auf die Schaltfläche „Bearbeiten“ für die Zone „emma.io“.

Klicken Sie nun auf die Schaltfläche „Eintrag hinzufügen“ und wir fügen erfolgreich die DNS-Zone und den DNS-Eintrag für die Domain mit dem Namen „emma.io“ hinzu.

Als Nächstes testen wir die Domain „emma.io“ mit einem „dig“-Befehl des DNS-Dienstprogramms.

Überprüfen Sie den Nameserver oder ns-Eintrag der Domain „emma.io“.

dig NS emma.io @10.9.9.10

Überprüfen Sie den A-DNS-Eintrag der Domain „emma.io“.

dig A emma.io @10.9.9.10

Und Ihnen wird angezeigt, dass die Domain „emma.io“ einen Nameserver von unserem DNS-Server „ns1.hakase-labs.io“ hat, und das „A“ dieses Domainnamens stimmt mit unserer Konfiguration oben mit der Server-IP-Adresse überein '10.9.9.11'.

Schließlich wurde die Installation und Konfiguration von PowerDNS und Poweradmin auf CentOS 7 erfolgreich abgeschlossen.


Cent OS
  1. So installieren und konfigurieren Sie Nginx unter CentOS 7

  2. So installieren Sie dig unter CentOS 7 und 8

  3. So installieren Sie Node.js und NPM unter CentOS 7

  4. So installieren Sie Node.js und NPM unter CentOS

  5. Installieren Sie PowerDNS und Poweradmin auf einem CentOS 7 VPS

So installieren und konfigurieren Sie Samba unter CentOS 8

So installieren und verwenden Sie Terraform unter CentOS 8

So installieren Sie Poweradmin unter CentOS 6

So installieren Sie PowerDNS unter CentOS 6

So installieren Sie PowerDNS unter CentOS 7

So installieren Sie PowerDNS und PowerAdmin unter CentOS 8