GNU/Linux >> Linux の 問題 >  >> Cent OS

CentOS7にPowerDNSとPoweradminをインストールする方法

PowerDNS(pdns)は、C ++で記述され、GPLライセンスの下でリリースされたオープンソースのDNSサーバーです。これは、パフォーマンスが向上し、メモリ要件が低くなるように設計された、従来のDNSサーバーバインドの優れた代替手段になりました。 PowerDNSは、AuthoritativeServerとRecursorの2つの製品を提供します。 PowerDNS Authoritativeサーバーは、プレーンなバインドゾーンファイル、MySQL、PostgreSQL、SQLite3、LDAPなどのRDBMSなど、さまざまなバックエンドを介して構成できます。

このチュートリアルでは、MariaDBデータベースサーバーをバックエンドとして使用し、Poweradminを使用してDNS管理を容易にするPowerDNSAuthoritativeサーバーをインストールして構成する方法を説明します。

前提条件
  • CentOS7サーバー
  • root権限

私たちが行うこと:

  1. EPELおよびRemiリポジトリをインストールする
  2. MariaDBのインストールと構成
  3. PowerDNSをインストールする
  4. Poweradminをインストールする
  5. Poweradminのインストール後
  6. サンプルゾーンの作成
ステップ1-EPELとRemiリポジトリをインストールします

まず、PowerDNSインストールの依存関係をインストールする必要があります。 EPELリポジトリとREMIforPHP7.2をインストールします。

次のコマンドを使用して、EPELおよびPHPRemiリポジトリをインストールします。

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

これらのリポジトリがシステムに追加されたら、「yum-utils」パッケージをインストールします。

yum -y install yum-utils

そして、次のコマンドを使用してPHP7.2Remiリポジトリを有効にします。

yum-config-manager --enable remi-php72
ステップ2-MariaDBをインストールして構成する

PowerDNS Authoritativeサーバーは、MySQL/MariaDBデータベースサーバーを含む別のバックエンドをサポートしています。 「バックエンド」という用語は、サーバーが参照するデータストアであり、DNSレコード(および一部のメタデータ)が含まれています。このガイドでは、MariaDBをバックエンドとして使用します。

次のyumコマンドを使用してMariaDBをインストールします。

yum -y install mariadb mariadb-server

インストールが完了したら、MariaDBサービスを開始し、起動ブート時間に追加します。

systemctl start mariadb
systemctl enable mariadb

次に、「mysql_secure_installation」と呼ばれるインタラクティブツールを使用して、MariaDBのルートパスワードを構成します。

以下のコマンドを実行します。

mysql_secure_installation

また、データベースサーバーのrootパスワードを設定するように求められます。 「Y」と入力してルートパスワードを設定し、強力なパスワードを入力します。

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

その他の場合は、「Y」を「yes」と入力するだけです。

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

その結果、MariaDBデータベースサーバーがインストールされ、認証用のルートパスワードが設定されました。

次に、PowerDNSインストール用の新しいデータベースとユーザーを作成します。ユーザーrootとパスワードを使用してMySQLシェルにログインします。

以下のMySQLコマンドを実行します。

mysql -u root -p
PASSWORD

次に、「powerdns」という名前の新しいデータベースを作成し、パスワード「pdnspassword2018」を使用して「pdns」という名前の新しいユーザーにすべてのデータベース権限を付与します。

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

その後、以下のMySQLクエリを実行して、PowerDNSデータベースのテーブル構造を作成します。

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;

その結果、MySQL/MariaDBデータベースとPowerDNSインストール用のユーザーが作成されました。

ステップ3-PowerDNSをインストールする

次のコマンドを使用して、PowerDNSと必要なすべてのパッケージをインストールします。

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

PowerDNSパッケージをインストールした後、「/ etc / pdns /」ディレクトリに移動し、vimエディターを使用して構成ファイル「pdns.conf」を編集します。

cd /etc/pdns/
vim pdns.conf

デフォルトでは、PowerDNSはバックエンドとして「bind」を使用しています。したがって、「launch =bind」構成の前にコメント「#」と入力し、MySQLバックエンド構成を以下のように貼り付けます。

#launch=bind

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

保存して閉じます。

次に、pdnsサービスを開始し、起動ブート時間に追加します。

systemctl start pdns
systemctl enable pdns

その後、DNSサービスをファイアウォールに追加します。

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

また、PowerDNSサービスが稼働している場合は、次のコマンドを使用して確認してください。

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

その結果、pdnsサービスがポート53で稼働し、PowerDNSサーバーから応答を取得します。

ステップ4-Poweradminをインストールします

このステップでは、「Poweradmin」と呼ばれるPowerDNSのDNS管理をインストールします。これはPHPをベースにしたWebアプリケーションであるため、アプリケーションを実行するにはPHPとWebサーバーをインストールする必要があります。

次のコマンドを使用して、httpdWebサーバーとPHPパッケージをインストールします。

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

インストール後、追加のPHPPearパッケージをインストールする必要があります。次のコマンドを実行します。

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

httpdとPHPのインストールが完了したら、httpdサービスを開始し、起動ブート時間に追加します。

systemctl start httpd
systemctl enable httpd

次に、「/ var / www / html」ディレクトリに移動し、poweradminソースコードをダウンロードします。

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

poweradmin圧縮ファイルを抽出し、名前を変更します。

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

その後、HTTPおよびHTTPSプロトコルをファイアウォールに追加します。

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

そして、poweradminのインストール後の準備が整いました。

ステップ5-Poweradminのインストール後

ウェブブラウザを開き、サーバーのIPアドレスとインストール用の/ poweradmin /install/パスのURLを入力します。私のは:

http://10.9.9.10/poweradmin/install/

ご希望の言語を選択し、[ステップ2に進む]ボタンをクリックしてください。

次に、[ステップ3に進む]ボタンをクリックするだけです。

そして、データベース構成のために表示されます。作成したPowerDNSデータベースの詳細とPowerDNSの管理者パスワードを入力します。

[手順4に進む]ボタンをクリックします。

その後、新しいユーザーを作成する必要があり、権利が制限されます。次のように詳細を入力し、ユーザーやパスワードなどを自分で変更します。

次に、[手順5に進む]ボタンをクリックします。

そして、以下のようなページが表示されます。

ターミナルサーバーを再度開き、rootユーザーとパスワードでログインします。次に、ページのようにMySQLクエリを実行します。

mysql -u root -p
PASSWORD

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

次に、Webブラウザに戻り、[手順6に進む]ボタンをクリックします。

そして、以下のようなページが表示されます。

インストーラーは新しい構成'../inc/config.inc.php'を作成できませんでした。したがって、手動で作成する必要があります。

ターミナルサーバーに戻り、「/ var / www / html / poweradmin」ディレクトリに移動して、新しい構成ファイル「inc/config.inc.php」を作成します。

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

次に、ページ上のPHPスクリプトをそのページに貼り付けます。

<?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';

保存して閉じてから、ブラウザに戻ってボタンをクリックします。

これでインストールは完了です。

オプション:

他のダイナミックプロバイダーが使用するURLをサポートする場合は、htaccessファイルをコピーしてください。

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

その後、「インストール」ディレクトリを削除する必要があります。

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

再度Webブラウザーに戻り、以下のURLを使用してPoweradminダッシュボードにログインします。

http://10.9.9.10/poweradmin/

デフォルトのユーザー「admin」とパスワードでログインし、「Go」ボタンをクリックします。

その結果、Poweradminダッシュボードが表示され、インストールが完了します。

ステップ6-サンプルゾーンとDNSレコードを作成する

この段階で、「emma.io」というドメインの新しいDNSゾーンを作成して、PowerDNSとPoweradminのインストールをテストします。

Poweradminダッシュボードで、[マスターゾーンの追加]メニューをクリックします。

ドメイン名「emaa.io」でゾーン名を設定し、「ゾーンの追加」ボタンをクリックします。

[ゾーンの一覧表示]メニューをクリックして、使用可能なすべてのゾーンを取得します。そして、ゾーン「emma.io」の「編集」ボタンをクリックします。

[ゾーンの一覧表示]メニューをクリックして、使用可能なすべてのゾーンを取得します。そして、ゾーン「emma.io」の「編集」ボタンをクリックします。

次に、[レコードの追加]ボタンをクリックすると、「emma.io」という名前のドメインのDNSゾーンとDNSレコードが正常に追加されます。

次に、「dig」DNSユーティリティコマンドを使用してドメイン「emma.io」をテストします。

ドメイン「emma.io」のネームサーバーまたはnsレコードを確認してください。

dig NS emma.io @10.9.9.10

ドメイン「emma.io」のDNSレコードを確認してください。

dig A emma.io @10.9.9.10

また、ドメイン「emma.io」にはDNSサーバー「ns1.hakase-labs.io」のネームサーバーがあり、そのドメイン名の「A」は上部のサーバーIPアドレスの構成と一致していることが表示されます。 '10.9.9.11'。

最後に、CentOS7でのPowerDNSとPoweradminのインストールと構成が正常に完了しました。


Cent OS
  1. CentOS7にNginxをインストールして構成する方法

  2. CentOSにNode.jsとNPMをインストールする方法

  3. CentOS7VPSにPowerDNSとPoweradminをインストールします

  1. CentOS7および8にdigをインストールする方法

  2. CentOS7にNode.jsとNPMをインストールする方法

  3. CentOS7にRをインストールする方法

  1. CentOS7にRedisをインストールして設定する方法

  2. CentOS7にGitLabをインストールして構成する方法

  3. CentOS7にRedmineをインストールして設定する方法