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
5,MariaDB配置成功后,我们可以继续去安装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的信息,
你可以参考手册http://downloads.powerdns.com/documentation/html/index.html。
第二部分: 安装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,如需转载请自行联系原作者