实现 PowerDNS 应用部署
- PowerDNS官网:https://www.powerdns.com/
- PowerDNS文档:https://doc.powerdns.com/
- Poweradmin官网:http://www.poweradmin.org/
CentOS 7 利用RPM包部署PowerDNS
- 安装基本包
[root@Centos7 ~]# yum -y install pdns pdns-backend-mysql mariadb-server
[root@Centos7 ~]# systemctl start mariadb
- 准备mariadb中的数据库,表和用户
MariaDB [(none)]> CREATE DATABASE powerdns;
Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]> GRANT ALL ON powerdns.* TO 'powerdns'@'localhost' IDENTIFIED BY 'centos';
Query OK, 0 rows affected (0.00 sec)
[root@Centos7 ~]# rpm -ql pdns-backend-mysql
/usr/lib64/pdns/libgmysqlbackend.so
/usr/share/doc/pdns-backend-mysql-4.1.11
/usr/share/doc/pdns-backend-mysql-4.1.11/3.4.0_to_4.1.0_schema.mysql.sql
/usr/share/doc/pdns-backend-mysql-4.1.11/dnssec-3.x_to_3.4.0_schema.mysql.sql
/usr/share/doc/pdns-backend-mysql-4.1.11/nodnssec-3.x_to_3.4.0_schema.mysql.sql
/usr/share/doc/pdns-backend-mysql-4.1.11/schema.mysql.sql
/ 用powerdns自带的schema.mysql.sql 脚本生成数据库 表
[root@Centos7 ~]# mysql powerdns < /usr/share/doc/pdns-backend-mysql-4.1.11/schema.mysql.sql
MariaDB [(none)]> USE powerdns
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
MariaDB [powerdns]> SHOW TABLES;
+--------------------+
| Tables_in_powerdns |
+--------------------+
| comments |
| cryptokeys |
| domainmetadata |
| domains |
| records |
| supermasters |
| tsigkeys |
+--------------------+
7 rows in set (0.00 sec)
- 修改pdns配置文件
[root@centos7 ~]#vim /etc/pdns/pdns.conf,查找到包含launch= 的行,修改并添加下面的内容
launch=gmysql
gmysql-host=localhost
gmysql-port=3306
gmysql-dbname=powerdns
gmysql-user=powerdns
gmysql-password=centos
setgid=pdns
setuid=pdns
[root@Centos7 ~]# systemctl start pdns
[root@Centos7 ~]# ss -ntlp
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 50 *:3306 *:* users:(("mysqld",pid=2193,fd=14))
LISTEN 0 128 *:53 *:* users:(("pdns_server",pid=2402,fd=7))
- 安装httpd以及php相关包
/ 安装httpd和php相关包
[root@centos7 ~]#yum -y install httpd php php-devel php-gd php-mcrypt php-imap
php-ldap php-mysqlnd php-odbc php-pear php-xml php-xmlrpc php-mbstring php-mhash
gettext
[root@Centos7 ~]# systemctl start httpd
/ 下载poweradmin包
[root@Centos7 ~]# wget http://downloads.sourceforge.net/project/poweradmin/poweradmin-2.1.7.tgz
[root@Centos7 ~]# tar xf poweradmin-2.1.7.tgz -C /var/www/html
[root@Centos7 ~]# cd /var/www/html/
[root@Centos7 html]# mv poweradmin-2.1.7 poweradmin
为Poweradmin创建一个受限用户
说明:
Username:PowerAdmin用户名
Password:上述用户的密码
Hostmaster:当创建SOA记录指定默认主机管理员
Primary nameserver:主域名服务器
Secondary namesever:辅域名服务器
- 按照上面页面说明,在数据库中创建用户并授权
MariaDB [(none)]>GRANT SELECT, INSERT, UPDATE, DELETE ON powerdns.* TO
'admin'@'localhost‘ IDENTIFIED BY 'admin';
-
按上面面页面说明,创建config.in.php文件内容
vim /var/www/html/poweradmin/inc/config.inc.php
-
安装完毕后删除安装目录
rm -rf /var/www/html/poweradmin/install/
-
登录http://powerdns服务器IP/poweradmin/
username:admin
password:magedu 参看第step 3`
- 创建DNS
- 测试效果
/ 安装dig工具包
[root@Centos7 ~]# yum -y install bind-utils
[root@Centos7 ~]# dig www.testserver @172.20.54.2
; <<>> DiG 9.11.4-P2-RedHat-9.11.4-9.P2.el7 <<>> www.testserver @172.20.54.2
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 46422
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; WARNING: recursion requested but not available
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1680
;; QUESTION SECTION:
;www.testserver. IN A
;; ANSWER SECTION:
www.testserver. 86400 IN A 8.8.8.8
;; Query time: 3 msec
;; SERVER: 172.20.54.2#53(172.20.54.2)
;; WHEN: Sun Dec 15 11:39:12 CST 2019
;; MSG SIZE rcvd: 59
8.8.8.8
;; Query time: 3 msec
;; SERVER: 172.20.54.2#53(172.20.54.2)
;; WHEN: Sun Dec 15 11:39:12 CST 2019
;; MSG SIZE rcvd: 59