PowerDNS インストール · 4 min read · Oct 01, 2025
Debian Lenny に PowerDNS (MySQL バックエンド) と Poweradmin をインストールする
Debian Lenny に PowerDNS (MySQL バックエンド) と Poweradmin をインストールする
バージョン 1.0
著者: Falko Timme
Twitter でフォローしてください
この記事では、Debian Lenny システムに PowerDNS 名前サーバー (MySQL バックエンド付き) と PowerDNS 用の Poweradmin コントロールパネルをインストールする方法を示します。PowerDNS は高性能の権威サーバー専用の名前サーバーで、ここで説明するセットアップでは MySQL データベースから DNS レコードを読み取ります (MyDNS に似ています)。ただし、PostgreSQL などの他のバックエンドもサポートされています。Poweradmin は PowerDNS 用のウェブベースのコントロールパネルです。
これがあなたにとって機能するという保証はありません!
1 前提条件
この例では、ホスト名 server1.example.com と IP アドレス 192.168.0.100 を持つ Debian Lenny ホストを使用しています。このホストは、チュートリアルの最初の 6 章に従って設定されています: 完璧なサーバー - Debian Lenny (Debian 5.0) [ISPConfig 2]。
この例では、PowerDNS サーバーを 1 台 (マスター) のみ設定します。PowerDNS スレーブを追加することは、マスターからスレーブへの MySQL データベースレプリケーションを使用することで簡単に実現できるため、ゾーントランスファーは必要ありません (これも MyDNS に似ています)。MySQL データベースレプリケーションは、次のチュートリアルに従って設定できます: MySQL でのデータベースレプリケーションの設定方法 (PowerDNS は、MySQL レプリケーションを使用できないシナリオのためにネイティブゾーントランスファーもサポートしています - http://downloads.powerdns.com/documentation/html/replication.html を参照)。
2 MySQL のインストール
MySQL をインストールするために、次のコマンドを実行します。
aptitude install mysql-server mysql-clientMySQL root ユーザーのパスワードを提供するように求められます。このパスワードは、ユーザー root@localhost と [email protected] に対して有効ですので、後で手動で MySQL root パスワードを指定する必要はありません:
MySQL “root” ユーザーの新しいパスワード: <– yourrootsqlpassword
MySQL “root” ユーザーのパスワードを再入力: <– yourrootsqlpassword
MySQL がすべてのインターフェースでリッスンするようにしたいので (これは MySQL データベースレプリケーションにとって重要です!)、localhost のみではなく、/etc/mysql/my.cnf を編集し、bind-address = 127.0.0.1 の行をコメントアウトします:
vi /etc/mysql/my.cnf| [...] #bind-address = 127.0.0.1 [...] |
次に、MySQL を再起動します:
/etc/init.d/mysql restartネットワークが有効になっているか確認します。次のコマンドを実行します。
netstat -tap | grep mysql出力は次のようになります:
server1:~# netstat -tap | grep mysql
tcp 0 0 *:mysql *:* LISTEN 3031/mysqld
server1:~#3 PowerDNS のインストール
PowerDNS をインストールするために、次のコマンドを実行します。
aptitude install pdns-server pdns-backend-mysqlPowerDNS の設定は /etc/powerdns ディレクトリにあります - それについては後で説明します。
次に、MySQL に接続します:
mysql -u root -pMySQL root パスワードを入力すると、MySQL シェルに入ります。MySQL シェルで、PowerDNS 用のデータベースを作成します:
CREATE DATABASE powerdns;次に、PowerDNS 用のデータベースユーザー (powerdns) を作成します:
GRANT ALL ON powerdns.* TO 'power_admin'@'localhost' IDENTIFIED BY 'power_admin_password';
GRANT ALL ON powerdns.* TO 'power_admin'@'localhost.localdomain' IDENTIFIED BY 'power_admin_password';
FLUSH PRIVILEGES;(ここで、power_admin_password をお好みのパスワードに置き換えてください。)
次に、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)
);CREATE UNIQUE INDEX name_index ON domains(name);CREATE TABLE records (
id INT auto_increment,
domain_id INT DEFAULT NULL,
name VARCHAR(255) DEFAULT NULL,
type VARCHAR(6) DEFAULT NULL,
content VARCHAR(255) DEFAULT NULL,
ttl INT DEFAULT NULL,
prio INT DEFAULT NULL,
change_date INT DEFAULT NULL,
primary key(id)
);CREATE INDEX rec_name_index ON records(name);
CREATE INDEX nametype_index ON records(name,type);
CREATE INDEX domain_id ON records(domain_id);CREATE TABLE supermasters (
ip VARCHAR(25) NOT NULL,
nameserver VARCHAR(255) NOT NULL,
account VARCHAR(40) DEFAULT NULL
);… そして最後に MySQL シェルを終了します:
quit;次に、PowerDNS が MySQL バックエンドを使用するように設定する必要があります:
vi /etc/powerdns/pdns.confpdns.conf に launch=gmysql の行を追加します:
| [...] ################################# # launch Which backends to launch and order to query them in # # launch= launch=gmysql [...] |
次に、/etc/powerdns/pdns.d/pdns.local を開き、次のようにします:
vi /etc/powerdns/pdns.d/pdns.local| # ここには、ユーザーが行ったローカルの変更が含まれます。 # 存在するさまざまなバックエンドの設定など。 gmysql-host=127.0.0.1 gmysql-user=power_admin gmysql-password=power_admin_password gmysql-dbname=powerdns |
次に、pdns を再起動します:
/etc/init.d/pdns restartこれで、PowerDNS は使用できるようになりました。詳細については、ドキュメントを参照してください: http://downloads.powerdns.com/documentation/html/index.html
4 Poweradmin のインストール
次に、PowerDNS 用のウェブベースのコントロールパネルである Poweradmin をインストールします。Poweradmin は PHP で書かれているため、ウェブサーバー (この例では Apache2 を使用) と PHP をインストールする必要があります:
aptitude install apache2 libapache2-mod-php5 php5 php5-common php5-curl php5-dev php5-gd php-pear php5-imap php5-mcrypt php5-mhash php5-ming php5-mysql php5-xmlrpc gettextPoweradmin には、次の 2 つの PEAR パッケージも必要です:
pear install DB
pear install pear/MDB2#mysqlこれで、Poweradmin のすべての前提条件がインストールされ、Poweradmin のインストールを開始できます (私は /var/www のサブディレクトリにインストールします - /var/www は Debian の Apache のデフォルトウェブサイトのドキュメントルートです。異なるドキュメントルートで vhost を作成した場合は、パスを調整してください)。
https://www.poweradmin.org/trac/wiki/GettingPoweradmin に移動し、最新の Poweradmin パッケージをダウンロードします。例えば、次のようにします:
cd /tmp
wget https://www.poweradmin.org/download/poweradmin-2.1.4.tgz次に、/var/www/poweradmin ディレクトリにインストールします:
tar xvfz poweradmin-2.1.4.tgz
mv poweradmin-2.1.4 /var/www/poweradmin
touch /var/www/poweradmin/inc/config.inc.php
chown -R www-data:www-data /var/www/poweradmin/次に、ブラウザを開いて、ウェブベースの Poweradmin インストーラーを起動します (http://server1.example.com/poweradmin/install/index.php または http://192.168.0.100/poweradmin/install/index.php)。
言語を選択します (英語またはオランダ語):

次に、Go to step 3 ボタンをクリックして進みます:

次に、データベースの詳細を入力します。MySQL root ユーザーの詳細を入力することが重要です。先ほど作成した powerdns MySQL ユーザーではありません! また、Poweradmin ウェブインターフェースの admin ユーザーのパスワードも提供します (これは、ユーザー admin が後で Poweradmin にログインするために使用するパスワードです):

次のページでは、インストーラーが MySQL クエリを実行するように求めます。私たちはすでに第 3 章で似たようなことを行っているため (2 つの GRANT ステートメント)、問題ありません。Go to step 6 をクリックします:


インストールは完了しました…

… ただし、セキュリティ上の理由から、インストールディレクトリを削除する必要があります:
rm -fr /var/www/poweradmin/install/これで、http://server1.example.com/poweradmin または http://192.168.0.100/poweradmin にアクセスし、インストール中に作成したユーザー名 admin とパスワードでログインできます:

これが Poweradmin ウェブインターフェースの外観です:

ゾーンを作成するには、Add master zone に移動し、ドメイン名 (例: example.com) を入力します。www A レコード (“webserver”) とそのゾーンの MX レコード (“mailserver”) の IP アドレスをすでに入力できます。Create zone without applying records-template チェックボックスをオフのままにすると、Poweradmin はそのゾーンのために自動的にいくつかの NS、A (例: www) および MX レコードを作成します:

その後、List zones に移動します。新しいゾーンがそこに表示され、すでに 8 つのレコードがあります。編集アイコンをクリックして、これらの 8 つのレコードを表示します:

これらは、ゾーンを作成するときに Create zone without applying records-template チェックボックスをオフにしない限り、自動的に作成されるレコードです。これらを編集したり、レコードを追加または削除したりできます:

もちろん、すべてのレコードを手動で 1 つずつ作成することもできます - IP アドレスフィールドを空のままにし、Add master zone ページで Create zone without applying records-template チェックボックスをオンにしてください:

List zones ページでは、新しいゾーンに 1 つのレコード (SOA レコード) しかないことがわかります。編集アイコンをクリックします…

… そして Add record をクリックしてさらにレコードを追加します…

…, 例えば NS レコード…

… および A レコード (例: mydomain.com (Name フィールドは空のままにしてください!) と www.mydomain.com)…


… および MX レコード:

PTR レコードを作成するには、Add master zone ページに移動し、in-addr.arpa というゾーンを作成します (IP アドレスフィールドは空のままにし、Create zone without applying records-template チェックボックスをオンにします):

IP 1.2.3.4 から server1.example.com への PTR レコードを作成するには、List zones でレコードを作成し、Name フィールドに 4.3.2.1 (これは IP の逆順) を入力し、Content フィールドに server1.example.com を入力します:

レコードを作成したら、dig コマンドで確認できます (詳細については次を参照してください)
man dig例えば、次のようにします:
dig @localhost mx example.comserver1:~# dig @localhost mx example.com
; <> DiG 9.3.4 <> @localhost mx example.com
; (1 server found)
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 37939
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; QUESTION SECTION:
;example.com. IN MX
;; ANSWER SECTION:
example.com. 86400 IN MX 10 mail.example.com.
;; ADDITIONAL SECTION:
mail.example.com. 86400 IN A 1.2.3.4
;; Query time: 9 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Mon Jan 12 19:56:46 2009
;; MSG SIZE rcvd: 66
server1:~#5 リンク
- PowerDNS: http://www.powerdns.com/
- PowerDNS ドキュメント: http://downloads.powerdns.com/documentation/html/index.html
- Poweradmin: http://www.poweradmin.org/
- Debian: http://www.debian.org/
新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。