实现WEB管理的PowerDNS

环境

在这个环境之上增加一台虚拟机用作powerdns

linux、apache、php-fpm linux、mariadb linux client httpd、powerdns
192.168.43.17 192.168.43.7 192.168.43.6 192.168.43.27
apache_php-fpm mariadb client httpd_powerdns

配置数据库

创建数据库用户,授权

[mariadb]#

mysql -e "create database powerdns;grant all on powerdns.* to powerdns@'192.168.43.%' identified by 'centos';"

创建powerdns数据库中的表,参看下面文档实现
参考文档
[mariadb]#

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);

httpd_powerdns服务器配置

安装相关软件包

[httpd_powerdns]#

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 php-mysql pdns pdns-backend-mysql

配置PowerDNS使用mariadb作为后台数据存储
[httpd_powerdns]#

vim /etc/pdns/pdns.conf
launch=gmysql
gmysql-host=192.168.43.7
gmysql-port=3306
gmysql-dbname=powerdns
gmysql-user=powerdns
gmysql-password=centos

启动服务
[httpd_powerdns]#

systemctl start pdns httpd

下载poweradmin程序,并解压缩到相应目录
[httpd_powerdns]#

cd /var/www/html/
ls
	poweradmin-2.1.7.tgz
tar xvf poweradmin-2.1.7.tgz
mv poweradmin-2.1.7 poweradmin

windows浏览器访问 poweradmin

http://192.168.43.27/poweradmin
在这里插入图片描述
http://192.168.43.27/poweradmin/install
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
[mariadb]#

MariaDB [powerdns]> GRANT SELECT, INSERT, UPDATE, DELETE
    -> ON powerdns.*
    -> TO 'poweradmin'@'192.168.43.%'
    -> IDENTIFIED BY 'centos';

在这里插入图片描述
[httpd_powerdns]#

cd poweradmin/inc
vim config.inc.php
<?php

$db_host                = '192.168.43.7';
$db_user                = 'poweradmin';
$db_pass                = 'centos';
$db_name                = 'powerdns';
$db_type                = 'mysql';
$db_layer               = 'PDO';

$session_key            = 'Ce77)O5J(ZH8BhrG00T)_cn+d}^Df*SnZxYbI2QG~x3zJB';

$iface_lang             = 'en_EN';

$dns_hostmaster         = 'dnsserver';
$dns_ns1                = '192.168.43.27';
$dns_ns2                = '';

在这里插入图片描述
[httpd_powerdns]#

rm -rf /var/www/html/poweradmin/install/

浏览器访问 http://http://192.168.43.27/poweradmin/
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

client 机器访问

在这里插入图片描述

发布了61 篇原创文章 · 获赞 1 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/studywinwin/article/details/104138221