Cnetos7实现WEB管理的PowerDNS
PowerDNS 是一个跨平台的开源DNS服务组件,它是高性能的域名服务器,除了支持普通的BIND配置文件,PowerDNS还可从MySQL,Oracle,PostgreSQL等的数据库读取数据。
PowerDNS安装了Poweradmin(基于php实现),能实现Web管理DNS记录,非常方便
1.安装包:基于EPEL源
yum install -y pdns pdns-backend-mysql
安装httpd和php相关包
yum -y install httpd php php-devel php-gd php-mcrypt php-imap php-ldap php-mysql php-odbc php-pear php-xml php-xmlrpc php-mbstring php-mcrypt php-mhash gettext
systemctl start httpd pdns.service
2.准备mariadb中的数据库,表和用户
CREATE DATABASE powerdns;
GRANT ALL ON powerdns.* TO 'powerdns'@'192.168.80.%' IDENTIFIED BY '123456';
3.创建powerdns数据库中的表,参看下面文档实现:https://doc.powerdns.com/md/authoritative/backend-generic-mysql/
登录数据库操作如下:
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);
4.配置PowerDNS使用mariadb作为后台数据存储 vim /etc/pdns/pdns.conf,查找到包含launch= 的行,修改并添加下面的内容
launch=gmysql
gmysql-host=192.168.80.120
gmysql-port=3306
gmysql-dbname=powerdns
gmysql-user=powerdns
gmysql-password=123456
5.下载pwoeradmin管理软件
wget http://downloads.sourceforge.net/project/poweradmin/poweradmin-2.1.7.tgz
tar xvf poweradmin-2.1.7.tgz
mv poweradmin-2.1.7 poweradmin
systemctl start httpd pdns.service
6.访问下面地址,启动PowerAdmin的网页安装向导:http://IP/poweradmin/install/
A.12步骤点一下步。
B.3步骤:提供先前配置的数据库详情. 说明:poweradmin administartor password: zzhzzjol 是页面登录账号密码。账号为admin.
username:powerdns
passwod:123456
database types:mysql
hostname:192.168.80.120
DB port: 3306
Database: powerdns
poweradmin administartor password: zzhzzjol
C.4步骤:同时为"Poweradmin项目"设置管理员密码,说明:Username:PowerAdmin Password:zzhzzjol是6步骤创建config.in.php文件配置信息,连接php.
Username:PowerAdmin
Password:zzhzzjol
Hostmaster:dnsserver #当创建SOA记录指定默认主机管理员,6步骤中的$dns_hostmaster
Primary nameserver: #主域名服务器
Secondary namesever: #辅域名服务器
D.5步骤:在数据库中创建用户并授权
GRANT SELECT, INSERT, UPDATE, DELETE ON powerdns.* TO 'poweradmin'@'192.168.80.%' IDENTIFIED BY 'zzhzzjol';
E.6步骤:创建/poweradmin/inc/config.in.php文件内容
<?php
$db_host = '192.168.80.120';
$db_user = 'poweradmin';
$db_pass = 'zzhzzjol';
$db_name = 'powerdns';
$db_type = 'mysql';
$db_layer = 'PDO';
$session_key = '^(vK5=P{SRdjnkF=mU7dr}i80Ca6kJ2VasXORa}GA4srAX';
$iface_lang = 'en_EN';
$dns_hostmaster = 'dnsserver';
$dns_ns1 = '192.168.80.110';
$dns_ns2 = '';
F.安装完毕后,删除install目录(一定要删除)
rm -rf /var/www/html/poweradmin/install/
7.登录http://powerdns服务器IP/poweradmin/ ,账号和密码:admin zzhzzjol






浙公网安备 33010602011771号