PowerDNS
实现WEB管理的PowerDNS

安装包:有基于EPEL源的包, 要先开启

yum install -y mariadb-server pdns pdns-backend-mysql 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-mhash gettext
yum install -y pdns pdns-backend-mysql

准备mariadb中的数据库,表和用户

使用提前准备的数据库文件导入

[root@dns ~]#systemctl start httpd mariadb        #开启httpd mariadb 服务
[root@dns ~]#systemctl enable  httpd pdns mariadb #设置为开机启动
[root@dns data]#mysql < /data/pdns.sql 
  • 数据库文件pdns.sql内容如下:
    CREATE DATABASE powerdns;
    GRANT ALL ON powerdns.* TO 'powerdns'@'localhost' IDENTIFIED BY 'magedu';
    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);

    配置PowerDNS使用mariadb作为后台数据存储

    vim /etc/pdns/pdns.conf,查找到包含launch= 的行,修改并添加下面的内容
    launch=gmysql
    gmysql-host=localhost
    gmysql-port=3306
    gmysql-dbname=powerdns
    gmysql-user=powerdns
    gmysql-password=magedu
    [root@CentOS7-Mini ~]#systemctl start pdns

安装powerdnsadmin

[root@dns ~]#tar xf poweradmin-2.1.7.tgz -C /var/www/html/
[root@dns ~]#cd /var/www/html/
[root@dns html]#mv poweradmin-2.1.7/ poweradmin

##从浏览器登录
http://192.168.37.110/poweradmin/

如图点击install安装
powerdns_第1张图片

默认语言选项,下一步
powerdns_第2张图片

默认选项,下一步
powerdns_第3张图片

输入相关信息, 数据库用户名, 密码, 主机地址, 端口, 数据库, poweradmin密码(新设置)
powerdns_第4张图片
设置一个受限用户, 密码, 域名, 服务器地址(实验时本机为DNS服务器,如有两个就填两个)
powerdns_第5张图片
将下面的数据库命令复制到数据库中执行,添加管理员用户, 执行成功后下一步
powerdns_第6张图片
复制下面的PHP代码到网站目录中/inc/目录下创建config.inc.php文件, 完成后下一步
powerdns_第7张图片
删除install/目录后完成安装
powerdns_第8张图片
powerdns_第9张图片