博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
centos7安装PowerDNS
阅读量:6535 次
发布时间:2019-06-24

本文共 5682 字,大约阅读时间需要 18 分钟。

centos7安装PowerDNS


第一部分:安装带有MariaDB后端的PowerDNS

 

1,首先,你需要为你的系统启用EPEL仓库,只需使用:

  yuminstall epel-release -y

2,下一步是安装MariaDB服务器。运行以下命令即可达成:

  yum-y install mariadb-server mariadb

3,接下来,我们将配置并启用MariaDB,并设置开机启动:

  systemctlenable mariadb.service

  systemctlstart mariadb.service

4,现在MariaDB服务运行起来了,我们将为MariaDB设置密码进行安全加固,运行以下命令:        mysql_secure_installation      

5MariaDB配置成功后,我们可以继续去安装PowerDNS。运行以下命令即可轻易完成:

  curl -o /etc/yum.repos.d/powerdns-auth-40.repo https://repo.powerdns.com/repo-files/centos-auth-40.repo

  yum -y install pdns pdns-backend-mysql

6,PowerDNS的配置文件位于/etc/pdns/pdns,在编辑之前,我们将为PowerDNS服务配置一个MariaDB数据库。首先,我们将连接到MariaDB服务器并创建一个名为powerdns的数据库:

  mysql -u root -p

  MariaDB[(none)]> CREATE DATABASE powerdns;

7,接下来,我们将创建一个名为powerdns的数据库用户:

  MariaDB[(none)]> GRANT ALL ON powerdns.* TO 'powerdns'@'localhost' IDENTIFIED BY powerdns用户的设置密码’;

  MariaDB[(none)]> FLUSH PRIVILEGES;

8,我们继续创建PowerDNS要使用的数据库表。像堆积木一样执行以下这些:

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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
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;
quit;

        

9,最后,我们可以继续配置PowerDNS了,以MariaDB作为后台。请打开PowerDNS的配置文件:    

  vim/etc/pdns/pdns.conf

  查找类似:#launch= ;添加下面的内容:                          

1
2
3
4
5
6
launch
=
gmysql
gmysql
-
host
=
localhost
gmysql
-
port
=
3306
gmysql
-
dbname
=
powerdns
gmysql
-
user
=
powerdns
gmysql
-
password
=
powerdns用户的密码

   然后保存退出。

10,现在,我们将启动并添加PowerDNS到系统开机启动列表:

   systemctlenable pdns.service

   systemctlstart pdns.service

   到这一步,你的PowerDNS服务器已经起起并运行了。要获得更多关于PowerDNS的信息,

  你可以参考手册

 

第二部分: 安装PowerAdmin来管理PowerDNS

 

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

   yum-y install httpd php php-devel php-gd php-mcrypt php-imap php-ldap php-mysqlphp-odbc php-pear php-xml php-xmlrpc php-mbstring php-mcrypt php-mhash gettext

   安装完成后,我们将需要启动并设置Apache开机启动:

   systemctlenable httpd.service

   systemctlstart httpd.service

12、由于已经满足PowerAdmin的所有系统要求,我们可以继续下载软件包。因为Apache默认的网页目录位于/var/www/html/,我们将下载软件包到这里。

  cd/var/www/html/

  wget http://downloads.sourceforge.net/project/poweradmin/poweradmin-2.1.7.tgz

  tar xfv poweradmin-2.1.7.tgz

13、现在,我们可以启动PowerAdmin的网页安装器了,只需打开:

   http://192.168.0.102/poweradmin-2.1.7/install/ 

                               

  上面的页面会要求你为PowerAdmin选择语言,请选择你想要使用的那一个,

   然后点击“进入步骤 2”按钮。

14、安装器需要PowerDNS数据库:

        

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

  

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

  

  用户名(Username - PowerAdmin用户名。

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

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

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

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

 

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

   

18 现在打开终端并运行: 

   以下这段命令就是复制上图17步骤中的命令,进入数据库粘贴即可。                 

1
2
3
4
5
6
mysql
-
u root 
-
p
 
GRANTSELECT, INSERT, UPDATE, DELETE
ONpowerdns.
*
TO
'powermarin'
@
'localhost'
IDENTIFIEDBY 
'powermarin密码'
;

19 现在,回到浏览器中并继续下一步。安装器将尝试创建配置文件到/var/www/html/poweradmin-2.1.7/inc目录下,文件名是config.inc.php

   为防止该脚本没有写权限,你可以手动复制这些内容,手动创建上述文件中:

  

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

   

    以下三部可以省略!

    你可以通过运行以下命令来启用用于其他动态DNS提供商的URL

     cp install/htaccess.dist.htaccess

    出于该目的,你将需要在Apache的配置中启用mod_rewrite

21 现在,需要移除从PowerAdmin的根目录中移除“install”文件夹,这一点很重要。使用以下命令:

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

   在此之后,你可以通过以下方式访问PowerAdmin

   http://192.168.0.102/poweradmin-2.1.7/

   

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

   

   到这里,安装已经完成了,你可以开始管理你的DNS区域了。

        

 

     本文转自506554897 51CTO博客,原文链接:http://blog.51cto.com/506554897/1956635,如需转载请自行联系原作者

你可能感兴趣的文章
第二周
查看>>
Linux练习(write写入)
查看>>
matlab练习程序(随机游走图像)
查看>>
Linux命令行下运行java.class文件
查看>>
input文本框实现宽度自适应代码实例
查看>>
C#基本数据类型 <思维导图>
查看>>
POJ3321 Apple Tree (树状数组)
查看>>
一个程序员的自白(延迟满足)
查看>>
protocol buffers的编码原理
查看>>
行为型设计模式之命令模式(Command)
查看>>
减少死锁的几个常用方法
查看>>
HDFS 核心原理
查看>>
正确配置jstl的maven依赖,jar包冲突的问题终于解决啦
查看>>
利用KMP算法解决串的模式匹配问题(c++) -- 数据结构
查看>>
登录内网账号后,连接不上内网网址
查看>>
安装 MariaDB
查看>>
Python3学习笔记16-错误和异常
查看>>
.NET Micro Framework常见问题问答
查看>>
新版“四大金刚”可全面购买了
查看>>
不登陆数据库执行mysql命令小结
查看>>