PowerDNSは、C++で記述された強力で高性能な信頼できるネームサーバーです。これはBINDDNSの代替であり、MariaDB、MySQL、Oracle、およびMariaDBを使用してレコードを格納します。 PowerDNSは、ほとんどのUNIXベースのオペレーティングシステムで実行され、DNSSECを使用してドメインをホストするために使用されます。解決DNSサーバーとしてPowerDNSRecursorと呼ばれる別のプログラムを使用します。 PowerDNS-Adminは、Webブラウザを介してゾーンとレコードを管理するために使用されるPowerDNS用の高度なWebインターフェイスです。
このチュートリアルでは、CentOS8にMariaDBバックエンドを使用してPowerDNSとPowerAdminをインストールする方法を示します。
前提条件
- Atlantic.Netクラウドプラットフォーム上の新しいCentOS8VPS
- サーバーで構成されているrootパスワード
ステップ1–Atlantic.Netクラウドサーバーを作成する
まず、Atlantic.Netクラウドサーバーにログインします。 2GB以上のRAMを搭載したオペレーティングシステムとしてCentOS8を選択して、新しいサーバーを作成します。 SSH経由でクラウドサーバーに接続し、ページの上部で強調表示されているクレデンシャルを使用してログインします。
CentOS 8サーバーにログインしたら、次のコマンドを実行して、ベースシステムを最新の利用可能なパッケージで更新します。
dnf update -y
ステップ2–LAMPサーバーをインストールする
まず、次のコマンドを使用してApacheおよびMariaDBサーバーをインストールします。
dnf install httpd mariadb-server -y
インストールしたら、MariaDBおよびApacheサービスを開始し、次のコマンドを使用してシステムの再起動時に開始できるようにします。
systemctl start httpd systemctl start mariadb systemctl enable httpd systemctl enable mariadb
次に、システムに最新バージョンのPHPをインストールする必要があります。デフォルトでは、最新バージョンのPHPはCentOS 8で使用できないため、システムにRemiリポジトリを追加する必要があります。次のコマンドで追加できます:
dnf install http://rpms.remirepo.net/enterprise/remi-release-8.rpm -y
次に、デフォルトのPHPモジュールを無効にし、次のコマンドでPHPRemiモジュールを有効にします。
dnf module reset php dnf module enable php:remi-7.4
次に、次のコマンドを使用してPHPおよびその他の必要なモジュールをインストールします。
dnf install 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 php-pear -y
すべてのパッケージがインストールされたら、次のステップに進むことができます。
systemctl start php-fpm systemctl enable php-fpm
ステップ3–MariaDBデータベースを構成する
次に、PowerDNS用のデータベースとユーザーを作成する必要があります。まず、次のコマンドを使用してMariaDBにログインします。
mysql
ログインしたら、次のコマンドを使用してデータベースとユーザーを作成します。
create database powerdnsdb; create user 'powerdns' identified by 'password';
次に、次のコマンドを使用して、powerdnsdbにすべての権限を付与します。
grant all privileges on powerdnsdb.* to 'powerdns'@'localhost' identified by 'password';
次に、次のコマンドを使用して特権をフラッシュします。
flush privileges;
次に、データベースをpowerdnsdbに変更し、次のコマンドを使用してテーブル構造を作成します。
use powerdnsdb; 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 name_index ON domains(name); 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);
これで、次のコマンドを使用してすべてのテーブルを一覧表示できます。
show tables;
次の出力が表示されます。
次に、次のコマンドを使用してMariaDBを終了します。
exit;
ステップ4–PowerDNSをインストールする
PowerDNSをインストールする前に、systemd-resolveサービスを無効にする必要があります。次のコマンドで無効にできます:
systemctl disable systemd-resolved systemctl stop systemd-resolved
次に、次のコマンドを使用して新しいネームサーバーエントリを追加します。
ls -lh /etc/resolv.conf echo "nameserver 8.8.8.8" | tee /etc/resolv.conf
最後に、次のコマンドを使用して、他の必要なパッケージとともにPowerDNSをインストールします。
dnf install pdns pdns-backend-mysql bind-utils -y
PowerDNSをインストールした後、BINDではなくMySQLをバックエンドとして使用するようにPowerDNSを構成する必要があります。ファイル/etc/pdns/pdns.confを編集することでそれを行うことができます:
nano /etc/pdns/pdns.conf
launch =bind行を削除し、次の行を追加します。
launch=gmysql gmysql-host=localhost gmysql-user=powerdns gmysql-password=password gmysql-dbname=powerdnsdb
ファイルを保存して閉じてから、PowerDNSサービスを開始し、起動時に開始できるようにします。
systemctl start pdns systemctl enable pdns
ステップ5–PowerAdminをインストールする
まず、次のコマンドを使用して最新バージョンのPowerAdminをダウンロードします。
wget http://downloads.sourceforge.net/project/poweradmin/poweradmin-2.1.7.tgz
ダウンロードしたら、次のコマンドを使用してダウンロードしたファイルを抽出します。
tar xvf poweradmin-2.1.7.tgz
次に、抽出したディレクトリをApacheルートディレクトリに移動します。
mv poweradmin-2.1.7 /var/www/html/poweradmin/
次に、次のコマンドを使用して、poweradminディレクトリの所有権をapacheに変更します。
chown -R apache:apache /var/www/html/poweradmin
ステップ6–PowerAdminWebインターフェイスにアクセスする
次に、Webブラウザーを開き、URL http:// your-server-ip / poweradmin/installを使用してPowerAdminWebインターフェースにアクセスします。次のページが表示されます:
希望の言語を選択し、「手順2に進みます」をクリックします。 」次のページが表示されます:
次に、[手順3に進みます]をクリックします。 」次のページが表示されます:
PowerDNSデータベースの詳細と管理者パスワードを入力し、「手順4に進みます」をクリックします。 」次のページが表示されます:
PowerDNSユーザー、パスワード、ホスト、およびネームサーバーを入力し、「手順5に進みます」をクリックします。 」次のページが表示されます:
次に、ターミナルを開き、MySQLにログインし、次のコマンドを使用して、新しいユーザーに必要なすべての権限を付与します。
GRANT SELECT, INSERT, UPDATE, DELETE ON powerdnsdb.* TO 'user1'@'localhost' IDENTIFIED BY 'password';
次に、[手順6に進みます]をクリックします。 」次のページが表示されます:
次に、以下に示すようにconfig.inc.phpという名前の新しいファイルを作成します。
nano /var/www/html/poweradmin/inc/config.inc.php
Webページからコンテンツを貼り付けます:
<?php $db_host = 'localhost'; $db_user = 'user1'; $db_pass = 'password'; $db_name = 'powerdnsdb'; $db_type = 'mysql'; $db_layer = 'PDO'; $session_key = 'MMK})04xlEHD[UpE1{^[email protected]+jlSIYilM3jRLI#NIJJac#'; $iface_lang = 'en_EN'; $dns_hostmaster = 'power.example.com'; $dns_ns1 = 'ns1.example.com'; $dns_ns2 = 'ns2.example.com';
ファイルを保存して閉じ、[手順7に進みます]をクリックします。 」インストールが完了すると、次のページが表示されます。
次に、ターミナルを開き、次のコマンドを使用してインストールディレクトリを削除します。
rm -rf /var/www/html/poweradmin/install
Poweradminをクリックします 。 Poweradminログインページが表示されます:
以前に作成した管理者のユーザー名とパスワードを入力し、移動をクリックします ボタン。次のページにPoweradminダッシュボードが表示されます。
結論
おめでとう!これで、PowerDNSとPoweradminがCentOS 8に正常にインストールされました。これで、Poweradmin Webインターフェイスを介して、新しいゾーンを簡単に作成および管理し、記録することができます。詳細については、PowerDNSの公式ドキュメントをご覧ください。今すぐAtlantic.NetからVPSホスティングでPowerDNSとPoweradminを始めましょう!