CentOS 7中安装并配置 PowerDNS

文章目录

  • 1.安装带有mysql后端的PowerDNS
    • 1.1 启用EPEL仓库,mysql服务器,启用mysql,并设置开机启动
    • 1.2安装PowerDNS
    • 1.3为PowerDNS服务配置一个MariaDB数据库
    • 1.4创建PowerDNS要使用的数据库表
    • 1.5配置PowerDNS
  • 2.安装PowerAdmin来管理PowerDNS
    • 2.1 安装PHP和Apache
  • 3.启动PowerAdmin的网页安装器了
    • 3.1选择安装语言
    • 3.2安装器需要PowerDNS数据库,我们已经创建了一个数据库,所以我们可以继续进入下一步
    • 3.3提供先前配置的数据库详情,你也需要为Poweradmin设置管理员密码
    • 3.4为Poweradmin创建一个受限用户
    • 3.5Poweradmin会要求你在数据库表中创建一个新的受限数据库用户,它会提供你需要在MariaDB控制台输入的代码
    • 3.6安装器将尝试创建配置文件到/var/www/html/poweradmin-2.1.7/inc。文件名是config.inc.php。为防止该脚本没有写权限,你可以手动复制这些内容到上述文件中
    • 3.7进入最后页面,该页面会告知你安装已经完成以及如何访问安装好的PowerAdmin
    • 3.8可以通过以下方式访问PowerAdmin:

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

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

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 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选择安装语言

CentOS 7中安装并配置 PowerDNS_第1张图片

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

CentOS 7中安装并配置 PowerDNS_第2张图片

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

CentOS 7中安装并配置 PowerDNS_第3张图片

3.4为Poweradmin创建一个受限用户

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

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

主机管理员(Hostmaster) -

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

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

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

CentOS 7中安装并配置 PowerDNS_第4张图片

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

CentOS 7中安装并配置 PowerDNS_第5张图片

[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。为防止该脚本没有写权限,你可以手动复制这些内容到上述文件中

CentOS 7中安装并配置 PowerDNS_第6张图片

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

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

CentOS 7中安装并配置 PowerDNS_第7张图片

 从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/

CentOS 7中安装并配置 PowerDNS_第8张图片

在这里插入图片描述

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

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

2019021402 :创建时间

28800 :刷新时间

7200 :重新尝试启动时间

604800: 过期时间

86400:生存时间

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

你可能感兴趣的:(工作)