Centos7.4下部署PowerDNS的操作记录

之前已经介绍了DNS环境的部署过程,这里说下PowerDNS的使用及部署,PowerDNS 是一个跨平台的开源DNS服务组件,它是高性能的域名服务器,除了支持普通的BIND配置文件,PowerDNS还可以从MySQL,Oracle,PostgreSQL等的数据库读取数据。PowerDNS安装了Poweradmin,能实现Web管理DNS记录,非常的方便。

一、部署以MariaDB作为后端数据的PowerDNS系统

1)关闭防火墙和selinux

[[email protected] ~]# cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core) 

[[email protected] ~]# setenforce 0
[[email protected] ~]# getenforce
[[email protected] ~]# cat /etc/sysconfig/selinux |grep "SELINUX=disabled"
SELINUX=disabled

[[email protected] ~]# systemctl stop firewalld
[[email protected] ~]# systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[[email protected] ~]# firewall-cmd --state
not running

2)启用EPEL仓库

[[email protected] ~]# yum install -y epel-release yum-plugin-priorities

3)安装并配置MariaDB服务器

[[email protected] ~]# yum install -y mariadb-server mariadb
[[email protected] ~]# systemctl enable mariadb.service
[[email protected] ~]# systemctl start mariadb.service
[[email protected] ~]# lsof -i:3306

设置密码
[[email protected] ~]# mysql_secure_installation
首先是设置密码,会提示先输入密码

Enter current password for root (enter for none):<–初次运行直接回车

设置密码

Set root password? [Y/n] <– 是否设置root用户密码,输入y并回车或直接回车
New password: <– 设置root用户的密码(比如123456)
Re-enter new password: <– 再输入一次你设置的密码

其他配置
Remove anonymous users? [Y/n] <– 是否删除匿名用户,回车
Disallow root login remotely? [Y/n] <–是否禁止root远程登录,回车,
Remove test database and access to it? [Y/n] <– 是否删除test数据库,回车
Reload privilege tables now? [Y/n] <– 是否重新加载权限表,回车

使用密码登录MariaDB,查看字符集
[[email protected] ~]# mysql -p123456
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 11
Server version: 5.5.56-MariaDB MariaDB Server

Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.

Type ‘help;‘ or ‘\h‘ for help. Type ‘\c‘ to clear the current input statement.

MariaDB [(none)]> show variables like "%character%";show variables like "%collation%";
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | latin1                     |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | latin1                     |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)

+----------------------+-------------------+
| Variable_name        | Value             |
+----------------------+-------------------+
| collation_connection | utf8_general_ci   |
| collation_database   | latin1_swedish_ci |
| collation_server     | latin1_swedish_ci |
+----------------------+-------------------+

接下来配置MariaDB的字符集,设置成utf8:
-> 首先是配置文件/etc/my.cnf,在[mysqld]标签下添加
init_connect=‘SET collation_connection = utf8_unicode_ci‘
init_connect=‘SET NAMES utf8‘
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake

-> 接着配置文件/etc/my.cnf.d/client.cnf,在[client]中添加
default-character-set=utf8

-> 然后配置文件/etc/my.cnf.d/mysql-clients.cnf,在[mysql]中添加
default-character-set=utf8

最后是重启MariaDB,并登陆MariaDB查看字符集
[[email protected] ~]# systemctl restart mariadb.service

再次登录MariaDB,查看字符集,发现已是utf8了
[[email protected] ~]# mysql -p123456
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 2
Server version: 5.5.56-MariaDB MariaDB Server

Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.

Type ‘help;‘ or ‘\h‘ for help. Type ‘\c‘ to clear the current input statement.

MariaDB [(none)]> show variables like "%character%";show variables like "%collation%";
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | utf8                       |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | utf8                       |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)

+----------------------+-----------------+
| Variable_name        | Value           |
+----------------------+-----------------+
| collation_connection | utf8_unicode_ci |
| collation_database   | utf8_unicode_ci |
| collation_server     | utf8_unicode_ci |
+----------------------+-----------------+

4)接着继续安装PowerDNS

[[email protected] yum.repos.d]# yum install -y pdns pdns-backend-mysql

PowerDNS的配置文件位于/etc/pdns/pdns.conf
[[email protected] ~]# ll /etc/pdns/pdns.conf
-rw-------. 1 root root 14007 Feb  2 00:33 /etc/pdns/pdns.conf

5)为PowerDNS服务配置一个MariaDB数据库。

[[email protected] ~]# mysql -p123456
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 3
Server version: 5.5.56-MariaDB MariaDB Server

Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.

Type ‘help;‘ or ‘\h‘ for help. Type ‘\c‘ to clear the current input statement.

MariaDB [(none)]> CREATE DATABASE powerdns;
MariaDB [(none)]> GRANT ALL ON powerdns.* TO ‘powerdns‘@‘localhost‘ IDENTIFIED BY ‘powerdns‘;
MariaDB [(none)]> FLUSH PRIVILEGES;

继续创建PowerDNS要使用的数据库表。像堆积木一样执行以下这些sql语句(即复制下面的语句直接粘贴到MariaDB中一起执行)
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);

flush privileges;

执行完之后,检查下:
MariaDB [powerdns]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| powerdns           |
+--------------------+
4 rows in set (0.00 sec)

MariaDB [powerdns]> use powerdns;
Database changed
MariaDB [powerdns]> show tables;
+--------------------+
| Tables_in_powerdns |
+--------------------+
| comments           |
| cryptokeys         |
| domainmetadata     |
| domains            |
| records            |
| supermasters       |
| tsigkeys           |
+--------------------+

检查下使用powerdns是否正常登录
[[email protected] ~]# mysql -upowerdns -hlocalhost -ppowerdns;
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 5
Server version: 5.5.56-MariaDB MariaDB Server

Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.

Type ‘help;‘ or ‘\h‘ for help. Type ‘\c‘ to clear the current input statement.

MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| powerdns           |
+--------------------+
2 rows in set (0.00 sec)

MariaDB [(none)]> use powerdns;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
MariaDB [powerdns]> show tables;
+--------------------+
| Tables_in_powerdns |
+--------------------+
| comments           |
| cryptokeys         |
| domainmetadata     |
| domains            |
| records            |
| supermasters       |
| tsigkeys           |
+--------------------+
7 rows in set (0.00 sec)

MariaDB [powerdns]>

6)继续配置PowerDNS,以MariaDB作为后台。

[[email protected] ~]# cp /etc/pdns/pdns.conf /etc/pdns/pdns.conf.bak
[[email protected] ~]# vim /etc/pdns/pdns.conf
#查找类似:#launch= ;添加下面的内容:
launch=gmysql
gmysql-host=localhost
gmysql-port=3306
gmysql-dbname=powerdns
gmysql-user=powerdns
gmysql-password=powerdns

将启动并添加PowerDNS到系统开机启动列表:
[[email protected] ~]# systemctl enable pdns.service
[[email protected] ~]# systemctl start pdns.service
[[email protected] ~]# systemctl status pdns.service

[[email protected] ~]# ps -ef|grep pdns
pdns     20036     1  0 16:54 ?        00:00:00 /usr/sbin/pdns_server --daemon
root     20056 18838  0 16:56 pts/1    00:00:00 grep --color=auto pdns
[[email protected] ~]# lsof -i:53
COMMAND     PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
pdns_serv 20036 pdns    5u  IPv4  41118      0t0  UDP *:domain
pdns_serv 20036 pdns    6u  IPv4  41119      0t0  TCP *:domain (LISTEN)

到这一步,PowerDNS服务器已经起起并运行了

二、安装PowerAdmin来管理PowerDNS

7)PowerAdmin,一个界面友好的PowerDNS服务器的 Web 管理器。由于它是用PHP写的,我们将需要安装PHP和一台网络服务器(Apache):

[[email protected] html]# 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

安装完成后,需要启动并设置Apache开机启动:
[[email protected] ~]# systemctl enable httpd.service
[[email protected] ~]# systemctl start httpd.service
[[email protected] ~]# systemctl status httpd.service
[[email protected] ~]# lsof -i:80

由于已经满足PowerAdmin的所有系统要求,可以继续下载软件包,放到Apache默认的网页目录位于/var/www/html/
[[email protected] ~]# cd /var/www/html/
[[email protected] html]#  wget http://downloads.sourceforge.net/project/poweradmin/poweradmin-2.1.7.tgz
[[email protected] html]# tar -zvxf poweradmin-2.1.7.tgz
[[email protected] html]# ls
poweradmin-2.1.7  poweradmin-2.1.7.tgz

接着启动PowerAdmin的网页安装器了,只需打开(192.168.10.239为本机ip):
http://192.168.10.239/poweradmin-2.1.7/install/

下面的页面会要求你为PowerAdmin选择语言,请选择你想要使用的那一个,然后点击"进入步骤 2"按钮。

安装器需要PowerDNS数据库:

因为上面已经创建了一个数据库,所以可以继续进入下一步。接着会被要求提供先前配置的数据库详情,同时也需要为Poweradmin设置管理员密码:

输入这些信息后,进入步骤 4。你将创建为Poweradmin创建一个受限用户。这里你需要输入的字段是:

用户名(Username):PowerAdmin用户名。
密码(Password):上述用户的密码。
主机管理员(Hostmaster):当创建SOA记录而你没有指定主机管理员时,该值会被用作默认值(可以不写)。这里我写的是部署机的主机名
主域名服务器:该值在创建新的DNS区域时会被用于作为主域名服务器。
辅域名服务器:该值在创建新的DNS区域时会被用于作为辅域名服务器。

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

现在打开终端并运行(以下这段命令就是复制上图步骤中的命令,进入数据库粘贴即可。)

MariaDB [(none)]> GRANT SELECT,INSERT,UPDATE,DELETE ON powerdns.* TO ‘poweradmin‘@‘localhost‘ IDENTIFIED BY ‘poweradmin‘;
MariaDB [(none)]> flush privileges;

测试使用上面权限登录数据库
[[email protected] inc]# mysql -upoweradmin -hlocalhost -ppoweradmin
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 17
Server version: 5.5.56-MariaDB MariaDB Server

Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.

Type ‘help;‘ or ‘\h‘ for help. Type ‘\c‘ to clear the current input statement.

MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| powerdns           |
+--------------------+
2 rows in set (0.00 sec)

MariaDB [(none)]>

现在,回到浏览器中并继续下一步

安装器将尝试创建配置文件到/var/www/html/poweradmin-2.1.7/inc目录下,文件名是config.inc.php。

[[email protected] ~]# cd /var/www/html/poweradmin-2.1.7/inc
[[email protected] inc]# vim config.inc.php
[[email protected] inc]# cat config.inc.php
<?php

$db_host    = ‘localhost‘;
$db_user    = ‘poweradmin‘;
$db_pass    = ‘poweradmin‘;
$db_name    = ‘powerdns‘;
$db_type    = ‘mysql‘;
$db_layer   = ‘PDO‘;

$session_key    = ‘6swx#944CycA9F2GkOAM7c&z6vU=ay[oGFnZZF{TC1te}7‘;

$iface_lang   = ‘en_EN‘;

$dns_hostmaster   = ‘PowerDNS-server‘;
$dns_ns1    = ‘172.16.51.151‘;
$dns_ns2    = ‘172.16.51.152‘;

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

然后,需要移除从PowerAdmin的根目录中移除"install"文件夹,这一点很重要。使用以下命令:

[[email protected] ~]# ll /var/www/html/poweradmin-2.1.7/install/
[[email protected] ~]# rm -rf /var/www/html/poweradmin-2.1.7/install/

在此之后,你可以通过以下方式访问PowerAdmin,访问地址http://192.168.10.239/poweradmin-2.1.7/

如下图,使用admin/[email protected]的用户名和密码(上面设置的密码)进行登录

在登录后,你应该会看到PowerAdmin的主页:

原文地址:https://www.cnblogs.com/kevingrace/p/8718250.html

时间: 2024-08-29 04:17:23

Centos7.4下部署PowerDNS的操作记录的相关文章

Centos7.6下部署PowerDNS

DNS服务作为生产环境的中必备的两个服务之一,是必须要部署的.在centos的base仓库中带有的bind可以做到简单的DNS服务的实现.但是PowerDns提供了一个非常通俗易懂的web界面,即使是没有部署过的小白用户也能够轻易上手.PowerDNS 是一个跨平台的开源DNS服务组件,它是高性能的域名服务器,除了支持普通的BIND配置文件,PowerDNS还可以从MySQL,Oracle,PostgreSQL等的数据库读取数据等. 部署环境准备 关闭selinux和防火墙 [[email pr

CentOS7.4下部署hadoop3.1.1

CentOS7.4下部署hadoop3.1.1 契机 由于工作原因要部署hadoop的集群,习惯使用最新的稳定版本2018年的时候由于时间紧破部署了2.7.2版本,最新由于又要部署有研究了一下3.x的部署.这次 研究通了,在这里记录一下,防止以往. 本次部署的是一个可用的集群,不是高可用的,因为高可用的hadoop还要部署zookeeper和ha,搞可用的hadoop以后有需要再研究. 准备工作 规划 软件 软件 版本 位数 说明 Jdk Jdk1.8 64位 稳定版本 Centos Cento

CentOS 6下gcc升级的操作记录(由默认的4.4.7升级到6.4.0版本)

机房一台centos6.9机器部署了jenkins发布系统,开发人员在用node编译js,发现依赖的gcc版本低了,故需要将gcc升级到高版本(至少5.0版本以上),这里选择升级到6.4.0版本,下面是升级的操作记录: 1)查看系统版本 [[email protected] ~]# cat /etc/redhat-release CentOS release 6.9 (Final) 2)查看默认的gcc版本 [[email protected] ~]# gcc --version gcc (GC

linux下监控用户的操作记录

想知道用户登陆系统后都操作了什么,怎么办? 别急,linux下有一个script工具,专门记录终端会话中所有输入输出结果,并存放到指定文件中. 先看看怎么录制吧! 1.创建日志存放目录 # mkdir /opt/operation_log # chmod 777 -R /opt/operation_log 2.设置用户登陆后自动录制 # vi /etc/profile   #末尾追加一下内容 if [ $UID -ge 500 ]; then    exec script -t 2>/opt/o

Centos7.4 版本环境下安装Mysql5.7操作记录

Centos7.x版本下针对Mysql的安装和使用多少跟之前的Centos6之前版本有所不同的,废话就不多赘述了,下面介绍下在centos7.x环境里安装mysql5.7的几种方法: 一.yum方式安装 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 5

Centos7系统下修改主机名操作笔记

习惯了在Centos6系统下修改主机名的操作,但是Centos7下修改主机名的操作却大不相同!操作笔记如下: 在CentOS中,有三种定义的主机名:静态的(static),瞬态的(transient),和灵活的(pretty): * "静态"主机名也称为内核主机名,是系统在启动时从/etc/hostname自动初始化的主机名. * "瞬态"主机名是在系统运行时临时分配的主机名,例如,通过DHCP或mDNS服务器分配.静态主机名和瞬态主机名都遵从作为互联网域名同样的字

linux下sendmail邮件系统安装操作记录

电子邮件系统的组成: 1)邮件用户代理(Mail User Agent , MUA),MUA是一个邮件系统的客户端程序,它提供了阅读,发送和接受电子邮件的用户接口. 最常用的 MUA 有: linux 中的 mail , elm , pine 等. Windows 的 outlook , foxmail 等  2)邮件代理器( Mail Transfer Agent , MTA ) MTA 负责邮件的存储和转发( store and forward ). MTA 监视用户代理的请求,根据电子邮件

Centos7.2下部署Java开发环境

1.安装JDK 如果以前安装过JDK,想要重新安装可执行如下命令进行卸载,这里安装的是JDK1.8: 先查询: rpm -qa|grep jdk 然后再通过下面命令进行卸载 rpm -e --nodeps java-1.7.0-openjdk-headless-1.7.0.111-2.6.7.2.el7_2.x86_64(注意这里nodeps后面的那串名称是通过上面命令查询出来的,查出几个卸载几个) 安装JDK,有2种途径下载: ①:可以直接到官网下载http://www.oracle.com/

CentOS7.0下部署Postfix Sasl Dovecot Openwebmail服务(唐杰)

http://note.youdao.com/noteshare?id=3249001a4c4fd024545581f0284e82c5