实现WEB管理的PowerDNS
- 部署环境
- 129配置
- 安装pdns pdns-backend-mysql服务
- 修改pdns.conf,查找到包含launch= 的行,修改并添加下面的内容
- 注意
- 启动服务
- 安装依赖的包和模块
- 重新启动httpd服务
- 在http路径下下载poweradmin文件
- 解压缩文件并修改文件名
- 访问192.168.160.129进行安装,第一步选英语
- 第二步没什么修改项,直接第三步
- 配置之前填写的数据库信息
- 创建一个受限用户,填写用户名密码,以及SOA记录主机管理员以及主辅DNS服务器地址
- 在140服务器上执行命令,给之前的poweradmin账号增加权限
- 在/var/www/html/poweradmin/inc路径下创建config.inc.php文件,把下面的内容贴进去即可
- 安装完毕后,删除install目录
- 输入http://192.168.160.129/poweradmin即可登入
- 140配置
部署环境
192.168.160.129
配置httpd,php,discuz
192.168.160.140
配置mariadb
129配置
安装pdns pdns-backend-mysql服务
yum install -y pdns pdns-backend-mysql
修改pdns.conf,查找到包含launch= 的行,修改并添加下面的内容
vim /etc/pdns/pdns.conf
launch=gmysql
gmysql-host=192.168.160.140
gmysql-port=3306
gmysql-dbname=powerdns
gmysql-user=powerdns
gmysql-password=centos
注意
dnsmasq服务可能会占用53端口,导致服务启动失败
启动服务
systemctl start pdns
systemctl enable pdns
安装依赖的包和模块
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
重新启动httpd服务
systemctl restart httpd
在http路径下下载poweradmin文件
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
访问192.168.160.129进行安装,第一步选英语
第二步没什么修改项,直接第三步
配置之前填写的数据库信息
创建一个受限用户,填写用户名密码,以及SOA记录主机管理员以及主辅DNS服务器地址
在140服务器上执行命令,给之前的poweradmin账号增加权限
在/var/www/html/poweradmin/inc路径下创建config.inc.php文件,把下面的内容贴进去即可
安装完毕后,删除install目录
rm -rf /var/www/html/poweradmin/install/
输入http://192.168.160.129/poweradmin即可登入
140配置
创建数据库powerdns
CREATE DATABASE powerdns;
创建用户powerdns,并对数据库进行授权
GRANT ALL ON powerdns.* TO 'powerdns'@'192.168.160.%' IDENTIFIED BY 'centos';
按照官方文档,创建数据库中的表
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);
执行命令让poweradmin可以有增删改权限在powerdns数据库中
GRANT SELECT, INSERT, UPDATE, DELETE
ON powerdns.*
TO 'poweradmin'@'192.168.160.%'
IDENTIFIED BY 'centos';