PowerDNS を久しぶりにインストール(2019/06)
内部のネットワーク用にDNSが必要になったのでDNSサーバーとしてお手軽に設定ができるPowerDNSを設定してみたら、以前とかなり変わっていたのでメモ。
以前までと違う点:
再帰問い合わせ機能の喪失
超大きな変更点です。
設定ファイル(/etc/pdns/pdns.conf)に項目があると、エラーが出て起動すらしてくれません。
この再帰問い合わせ機能は何かを説明すると、ドメインの設定をDNSサーバーにするのですが、全てのドメインの設定はしません、設定されたドメイン以外のドメインの問い合わせが来たら指定したサーバーを見て返答するという機能のことです。
つまり、現在のPowerDNS(4.1以降)は完全に切り離されたプライベートネットワーク用と考える必要があります。
しかし、さすがにそれはおかしいと思って考えてみると、PowerDNSには以下の2種類があります。
・PowerDNS Authoritative Nameserver
・PowerDNS Recursor
で、今までの会話で出てきているのは最初の「Authoritative Nameserver」のほうです。
元々再帰問い合わせ用のサーバとして「Recursor」が存在しているのでこちらをフロントに持ってきたら解決です。
ということで、PowerDNSの設定編(笑)
いつもの通り CentOS 7 (1810)での設定です
1.MariaDBをインストール
2.PowerAdminをインストール
3.PowerDNS Authoritative Nameserverをインストール
4.PowerDNS Recursorをインストール(工事中)
1.MariaDBをインストール
1-1.EPELの設定
# yum -y install epel-release
1-2.MariaDBのリポジトリ追加
※参照:https://mariadb.com/kb/en/library/mariadb-package-repository-setup-and-usage/
# curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash
# yum -y update
1-3.MariaDBのインストール
# yum -y install MariaDB-server
1-4.サービスの開始・登録
# systemctl start mariadb
# systemctl enable mariadb
1-5.データベースを初期化する
パスワードのリセット、リモートログイン設定、不要ユーザやテーブルの削除など
# mysql_secure_installation
1-6.ポートの開放
# firewall-cmd --permanent --add-service=mysql
# firewall-cmd --reload
以前までと違う点:
再帰問い合わせ機能の喪失
超大きな変更点です。
設定ファイル(/etc/pdns/pdns.conf)に項目があると、エラーが出て起動すらしてくれません。
この再帰問い合わせ機能は何かを説明すると、ドメインの設定をDNSサーバーにするのですが、全てのドメインの設定はしません、設定されたドメイン以外のドメインの問い合わせが来たら指定したサーバーを見て返答するという機能のことです。
つまり、現在のPowerDNS(4.1以降)は完全に切り離されたプライベートネットワーク用と考える必要があります。
しかし、さすがにそれはおかしいと思って考えてみると、PowerDNSには以下の2種類があります。
・PowerDNS Authoritative Nameserver
・PowerDNS Recursor
で、今までの会話で出てきているのは最初の「Authoritative Nameserver」のほうです。
元々再帰問い合わせ用のサーバとして「Recursor」が存在しているのでこちらをフロントに持ってきたら解決です。
ということで、PowerDNSの設定編(笑)
いつもの通り CentOS 7 (1810)での設定です
1.MariaDBをインストール
2.PowerAdminをインストール
3.PowerDNS Authoritative Nameserverをインストール
4.PowerDNS Recursorをインストール(工事中)
1.MariaDBをインストール
1-1.EPELの設定
# yum -y install epel-release
1-2.MariaDBのリポジトリ追加
※参照:https://mariadb.com/kb/en/library/mariadb-package-repository-setup-and-usage/
# curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash
# yum -y update
1-3.MariaDBのインストール
# yum -y install MariaDB-server
1-4.サービスの開始・登録
# systemctl start mariadb
# systemctl enable mariadb
※自動起動設定する前に systemctl status mariadb を確認することをお勧めします
パスワードのリセット、リモートログイン設定、不要ユーザやテーブルの削除など
# mysql_secure_installation
1-6.ポートの開放
# firewall-cmd --permanent --add-service=mysql
# firewall-cmd --reload
1-7.phpMyAdminの設定(Remi リポジトリの追加)
※mysql クライアントを入れて手動で管理する場合は不要です
# yum -y install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
1-8.phpMyAdminの設定(PHPの追加)
※mysql クライアントを入れて手動で管理する場合は不要です
# yum -y install php73-php-mysqlnd php73-php-pecl-mcrypt php73 php73-php php73-php-mbstring
1-9.phpMyAdminの設定(httpdの追加)
※mysql クライアントを入れて手動で管理する場合は不要です
# yum -y install httpd
1-10.phpMyAdminの設定(httpdの追加)
※mysql クライアントを入れて手動で管理する場合は不要です
・ウェルカムページ削除
# rm -f /etc/httpd/conf.d/welcome.conf
・httpdの設定
# vi /etc/httpd/conf/httpd.conf
・150行目付近:変更
AllowOverride None
↓
AllowOverride All
・160行目付近:ディレクトリ名のみでアクセスできるファイル名を追記
DirectoryIndex index.html
↓
DirectoryIndex index.html index.cgi index.php
・最終行に追記
KeepAlive On
・httpdサービスの開始・登録
# systemctl start httpd
# systemctl enable httpd
・firewalldの設定
# firewall-cmd --add-service=http --permanent
# firewall-cmd --reload
1-10.phpMyAdminの設定(phpMyAdminのインストール)
※mysql クライアントを入れて手動で管理する場合は不要です
※mysql クライアントを入れて手動で管理する場合は不要です
# yum -y install phpMyAdmin
・20, 35行目付近にアクセス許可追記
# vi /etc/httpd/conf.d/phpMyAdmin.conf
Require ip 127.0.0.1
↓
equire ip 127.0.0.1 192.168.1.0/8
・httpdの再起動
# systemctl restart httpd
・phpMyAdmin設定(ブラウザでアクセス)
http://192.168.1.3/phpmyadmin
※rootでログインする
・PowerDNSユーザの追加
⇒同時に専用のDBを作成することでセキュリティを保つこと
⇒照合順序とかも適当に良いように変更しておくと後が楽かもしれません
1-11.Database設定
# curl -O https://raw.githubusercontent.com/PowerDNS/pdns/rel/auth-4.1.x/modules/gmysqlbackend/schema.mysql.sql
※mysql クライアントを入れて手動で管理する場合は下記を実行
# mysql -u pdns -p pdns < schema.mysql.sql
※mysql クライアントを入れない場合はphpMyAdminで中身を実行
2.PowerAdminをインストール
2-1.unzipをインストール
# yum -y install unzip
2-2.最新をダウンロード
# curl -o pdns-master.zip https://codeload.github.com/poweradmin/poweradmin/zip/master
2-3.解凍
# unzip pdns-master.zip
2-4.移動
# mv poweradmin-master /var/www/html/poweradmin
2-5.httpd権限設定
chown -R apache:apache /var/www/html/poweradmin
2-6.PowerAdmin用DB設定
# mysql -u pdns -p pdns < /var/www/html/poweradmin/sql/poweradmin-mysql-db-structure.sql
2-7.SELinux設定
# restorecon -R /var/www/html/poweradmin
2-8.webから設定
http://192.168.1.3/poweradmin/install
最後は設定ファイルの生成と削除を求められます
たぶん権限が足りなくて作れって言われるけど、元ネタあるので下記コマンドを実行後に設定してあげると安心です
# cp /var/www/html/poweradmin/inc/config-me.inc.php /var/www/html/poweradmin/inc/config.inc.php
最後の削除部分
# rm -rf /var/www/html/powerdmin/install
3.PowerDNS Authoritative Nameserverをインストール
3-1.EPELの設定
# yum -y install epel-release
# yum -y update
4.PowerDNS Recursorをインストール(工事中)
力尽きたので後で思い出したら追記予定(笑)
3-1.EPELの設定
# yum -y install epel-release
# yum -y update
3-2.PowerDNSのインストール
# yum -y install pdns-backend-mysql
3-3.PowerDNSの初期設定
参考サイト:https://doc.powerdns.com/authoritative/guides/basic-database.html
# vi /etc/pdns/pdns.conf
launch=bind
↓
launch=gmysql
#以下を最後に追加
gmysql-host=127.0.0.1
gmysql-user=root
gmysql-dbname=pdns
gmysql-password=mysecretpassword
3-4.接続確認
# /usr/sbin/pdns_server --daemon=no --guardian=no --loglevel=9
3-5.PowerDNSサービスの開始・登録
# systemctl start pdns
# systemctl enable pdns
4.PowerDNS Recursorをインストール(工事中)
力尽きたので後で思い出したら追記予定(笑)
コメント