CentOS 7中安装并配置 PowerDNS

1.安装带有mysql后端的PowerDNS

1.1 启用EPEL仓库,mysql服务器,启用mysql,并设置开机启动

[root@localhost ~]# yum install -y wget
[root@localhost ~]# wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
[root@localhost ~]# rpm -ivh mysql-community-release-el7-5.noarch.rpm
[root@localhost ~]# wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
[root@localhost ~]# rpm -ivh epel-release-latest-7.noarch.rpm
[root@localhost ~]# yum install mysql mysql-devel mysql-server -y
[root@test-new ~]# systemctl enable mysql
[root@test-new ~]# service mysqld start

1.2安装PowerDNS

[root@test-new ~]# yum -y install pdns pdns-backend-mysql

1.3为PowerDNS服务配置一个MariaDB数据库

[root@test-new ~]# mysql

mysql>  CREATE DATABASE powerdns;
Query OK, 1 row affected (0.04 sec)

mysql> GRANT ALL ON powerdns.* TO 'powerdns'@'localhost' IDENTIFIED BY 'wscl1996.';
Query OK, 0 rows affected (0.30 sec)

mysql> GRANT ALL ON powerdns.* TO 'powerdns'@'centos7.localdomain' IDENTIFIED BY 'wscl1996.';
Query OK, 0 rows affected (0.00 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.03 sec)

1.4创建PowerDNS要使用的数据库表

创建用于PowerDNS的表domains

mysql> USE powerdns;
Database changed
mysql> 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)
    -> );
Query OK, 0 rows affected (0.08 sec)


创建用于PowerDNS的表 records

mysql> CREATE UNIQUE INDEX name_index ON domains(name);
Query OK, 0 rows affected (0.13 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> 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;
Query OK, 0 rows affected (0.01 sec)

mysql> CREATE INDEX nametype_index ON records(name,type);
Query OK, 0 rows affected (0.01 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> CREATE INDEX domain_id ON records(domain_id);
Query OK, 0 rows affected (0.01 sec)
Records: 0  Duplicates: 0  Warnings: 0


创建表supermasters

mysql>  CREATE TABLE supermasters (
    -> ip VARCHAR(25) NOT NULL,
    -> nameserver VARCHAR(255) NOT NULL,
    -> account VARCHAR(40) DEFAULT NULL
    -> );
Query OK, 0 rows affected (0.02 sec)

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

flush privileges;

mysql> exit

1.5配置PowerDNS

[root@test-new ~]# vim /etc/pdns/pdns.conf
# launch        Which backends to launch and order to query them in
#
# launch=bind

launch=gmysql
gmysql-host=localhost
gmysql-user=powerdns
gmysql-password=user-pass
gmysql-dbname=powerdns
[root@test-new ~]# systemctl enable pdns.service
[root@test-new ~]# systemctl start pdns.service

2.安装PowerAdmin来管理PowerDNS

2.1 安装PHP和Apache

[root@test-new ~]# yum install httpd php php-devel php-gd php-imap php-ldap php-mysql php-odbc php-pear php-xml php-xmlrpc php-mbstring php-mcrypt php-mhash gettext
[root@test-new yum.repos.d]# yum -y install php-pear-DB php-pear-MDB2-Driver-mysql
[root@test-new yum.repos.d]# systemctl enable httpd.service
[root@test-new yum.repos.d]# systemctl start httpd.service
[root@test-new yum.repos.d]# cd /var/www/html/
[root@test-new html]# wget http://downloads.sourceforge.net/project/poweradmin/poweradmin-2.1.7.tgz
[root@test-new html]# tar xf poweradmin-2.1.7.tgz

3.启动PowerAdmin的网页安装器了

http://ip/poweradmin-2.1.7/install/

3.1选择安装语言

在这里插入图片描述

3.2安装器需要PowerDNS数据库,我们已经创建了一个数据库,所以我们可以继续进入下一步

在这里插入图片描述

3.3提供先前配置的数据库详情,你也需要为Poweradmin设置管理员密码

在这里插入图片描述

3.4为Poweradmin创建一个受限用户

用户名(Username) - PowerAdmin用户名。

密码(Password) – 上述用户的密码。

主机管理员(Hostmaster) -

当创建SOA记录而你没有指定主机管理员时,该值会被用作默认值。

主域名服务器 - 该值在创建新的DNS区域时会被用于作为主域名服务器。

辅域名服务器 – 该值在创建新的DNS区域时会被用于作为辅域名服务器

在这里插入图片描述

3.5Poweradmin会要求你在数据库表中创建一个新的受限数据库用户,它会提供你需要在MariaDB控制台输入的代码

在这里插入图片描述

[root@test-new html]# mysql

mysql> GRANT SELECT, INSERT, UPDATE, DELETE
    -> ON powerdns.*
    -> TO 'kongbai'@'localhost'
    -> IDENTIFIED BY 'kb1996';
Query OK, 0 rows affected (0.00 sec)

3.6安装器将尝试创建配置文件到/var/www/html/poweradmin-2.1.7/inc。文件名是config.inc.php。为防止该脚本没有写权限,你可以手动复制这些内容到上述文件中

在这里插入图片描述

[root@test-new html]# vim /var/www/html/poweradmin-2.1.7/inc/config.inc.php 

<?php

$db_host                = 'localhost';
$db_user                = 'kongbai';
$db_pass                = 'kb1996';
$db_name                = 'powerdns';
$db_type                = 'mysql';
$db_layer               = 'PDO';

$session_key            = '-zrk@Ck%3Cp+Q5HU60fn7%{_FDuYSWqi}v0542wHBW%OtO';

$iface_lang             = 'en_EN';

$dns_hostmaster         = 'kongbai.example.net';
$dns_ns1                = 'ns1.example.net”';
$dns_ns2                = 'ns2.example.net';

3.7进入最后页面,该页面会告知你安装已经完成以及如何访问安装好的PowerAdmin

在这里插入图片描述

 从PowerAdmin的根目录中移除“install”文件夹
[root@test-new html]# rm -rf /var/www/html/poweradmin-2.1.7/install/

3.8可以通过以下方式访问PowerAdmin:

http://ip/poweradmin-2.1.7/

在这里插入图片描述

在这里插入图片描述

ns1.example.net”:域名服务器,该值在创建新的DNS区域时会被用于作为主域名服务器

kongbai.example.net :主机管理员(Hostmaster),当创建SOA记录而你没有指定主机管理员时,该值会被用作默认值

2019021402 :创建时间

28800 :刷新时间

7200 :重新尝试启动时间

604800: 过期时间

86400:生存时间

soa:SOA记录设置一些数据版本和更新以及过期时间的信息

猜你喜欢

转载自blog.csdn.net/Empty_city_dreams/article/details/87912970