实现WEB管理的PowerDNS

部署环境

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';
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值