设为首页 - 加入收藏 - 网站地图 SecYe安全 Www.SecYe.Com - 国内网络信息安全IT技术门户网
当前位置:首页 > 网站运营 > 建站心得 > 正文

自建PowerDNS免费DNS服务器-PowerDNS和MariaDB安装配置教程

时间:2017-03-13 12:03 来源:本站整理 作者:SecYe安全 阅读:

一、安装前准备:MariaDB数据库安装与配置

1、PowerDNS官网:

  • 1、官方网站:https://www.powerdns.com/

2、PowerDNS可以与MariaDB,MySQL,Oracle,PostgreSQL等整合,这里我们选择轻量级的数据库MariaDB来安装。VPS主机要求最少是512MB内存,本文以Ubuntu 14.04 64bit作为操作演示。

3、安装MariaDB,执行以下命令:

1
2
3
4
5
6
7
apt-get update && apt-get upgrade -y
 
apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xcbcb082a1bb943db #导入MariaDB存储库的密钥
 
add-apt-repository 'deb http://ftp.kaist.ac.kr/mariadb/repo/5.5/ubuntu trusty main'  #添加MariaDB APT存储库
 
apt-get -y install libaio1 libdbd-mysql-perl libdbi-perl libmariadbclient18 libmysqlclient18 libnet-daemon-perl libplrpc-perl mariadb-client-5.5 mariadb-client-core-5.5 mariadb-common mysql-common mariadb-server mariadb-server-5.5 mariadb-server-core-5.5  #安装MariaDB软件包和依赖关系

4、在安装过程中,系统将提示您为MariaDB root用户设置密码。

5、回车后,再次确认你的密码。

6、安装好了MariaDB,执行以下命令对MariaDB进行相关的配置:

1
mysql_secure_installation

7、系统将提示您使用MariaDB安装期间创建的MariaDB root用户密码进行身份验证,然后会提示你是否修改Root密码,直接选择否。

8、接下来建议禁用匿名用户;建议root不用于管理远程数据库服务器;如果你想试验MariaDB,你可以保留测试数据库。否则直接删除它。全部按ENTER回车。

9、操作命令如下:

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
root@freehao123:~# mysql_secure_installation
 
/usr/bin/mysql_secure_installation: 379: /usr/bin/mysql_secure_installation: find_mysql_client: not found
 
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
 
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!
 
In order to log into MariaDB to secure it, we'll need the current
 
password for the root user.  If you've just installed MariaDB, and
 
you haven't set the root password yet, the password will be blank,
 
so you should just press enter here.
 
Enter current password for root (enter for none):
 
OK, successfully used password, moving on...
 
Setting the root password ensures that nobody can log into the MariaDB
 
root user without the proper authorisation.
 
You already have a root password set, so you can safely answer 'n'.
 
Change the root password? [Y/n] n
 
 ... skipping.
 
By default, a MariaDB installation has an anonymous user, allowing anyone
 
to log into MariaDB without having to have a user account created for
 
them.  This is intended only for testing, and to make the installation
 
go a bit smoother.  You should remove them before moving into a
 
production environment.
 
Remove anonymous users? [Y/n]
 
 ... Success!
 
Normally, root should only be allowed to connect from 'localhost'.  This
 
ensures that someone cannot guess at the root password from the network.
 
Disallow root login remotely? [Y/n]
 
 ... Success!
 
By default, MariaDB comes with a database named 'test' that anyone can
 
access.  This is also intended only for testing, and should be removed
 
before moving into a production environment.
 
Remove test database and access to it? [Y/n]
 
 - Dropping test database...
 
 ... Success!
 
 - Removing privileges on test database...
 
 ... Success!
 
Reloading the privilege tables will ensure that all changes made so far
 
will take effect immediately.
 
Reload privilege tables now? [Y/n]
 
 ... Success!
 
Cleaning up...
 
All done!  If you've completed all of the above steps, your MariaDB
 
installation should now be secure.
 
Thanks for using MariaDB!

10、把InnoDB日志文件大小增加到64MB,有助调试数据库问题。(可选)命令如下:

1
2
3
4
5
service mysql stop  #停止MariaDB服务
 
rm -f /var/lib/mysql/ib_logfile*  #删除任何现有的日志文件
 
nano /etc/mysql/my.cnf #打开配置文件

11、然后按CTRL + W搜索文件。在搜索字段中输入InnoDB,按ENTER键跳转到InnoDB部分。输入:innodb_log_file_size = 64M。

12、按CTRL + X,按Y保存文件,然后按ENTER确认,最后再次启动MariaDB服务。命令如下:

1
2
3
innodb_log_file_size = 64M
 
service mysql start

二、在MariaDB中创建PowerDNS数据库

1、本文直接使用MySQL shell来创建管理MariaDB,如果你觉得麻烦的话,你也可以直接安装一个PHPMyAdmin,然后就可以在浏览器中创建数据库了。

2、MySQL shell将创建数据库名为powerdns,用户名为powerdns_user,你需要根据你自己的需要来替换,执行以下命令:

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
mysql -u root -p #使用MariaDB root用户进行身份验证
 
CREATE DATABASE powerdns; #创建数据库
 
GRANT ALL ON powerdns.* TO 'powerdns_user'@'localhost' IDENTIFIED BY 'freehao123pass'; #创建一个名为“powerdns_user”的新用户并授予对数据库的访问权限,注意替换freehao123pass为你自己的密码
 
FLUSH PRIVILEGES; #刷新权限以更新用户设置
 
USE powerdns; #进入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 INT auto_increment,
 
domain_id INT DEFAULT NULL,
 
name VARCHAR(255) DEFAULT NULL,
 
type VARCHAR(6) DEFAULT NULL,
 
content VARCHAR(255) DEFAULT NULL,
 
ttl INT DEFAULT NULL,
 
prio INT DEFAULT NULL,
 
change_date INT DEFAULT NULL,
 
primary key(id)
 
); #创建记录表
 
CREATE INDEX rec_name_index ON records(name);
 
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
 
); #创建supermasters表
 
quit; #退出

三、PowerDNS安装与配置方法

1、安装PowerDNS,执行以下命令:

1
2
3
apt-get install -y pdns-server pdns-backend-mysql
 
#apt-get -f purge -y mysql-client

2、执行命令后,会询问是否自动配置MysqL,选择:否,稍后我们会手动配置MysqL。

3、接下来就是创建MariaDB配置文件,写入刚刚我们创建好的MysqL数据库、用户名和密码了。代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
rm /etc/powerdns/pdns.d/*
 
nano /etc/powerdns/pdns.d/pdns.local.gmysql.conf
 
#注意替换上面你创建的数据库、用户名和密码
 
# MySQL Configuration file
 
launch=gmysql
 
gmysql-host=localhost
 
gmysql-dbname=powerdns
 
gmysql-user=powerdns_user
 
gmysql-password=freehao123pass

4、操作如下图:

5、执行命令:service pdns restart,重启PowerDNS。

6、执行:netstat -tap | grep pdns,看看PowerDNS是否成功运行,dig @127.0.0.1 看看有没有输出。

7、如果有如下内容输出的话,就表示一切正常了。

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
root@freehao123:~# dig @127.0.0.1
; <<>> DiG 9.9.5-3ubuntu0.13-Ubuntu <<>> @127.0.0.1
 
; (1 server found)
 
;; global options: +cmd
 
;; Got answer:
 
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 46482
 
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1
 
;; WARNING: recursion requested but not available
 
;; OPT PSEUDOSECTION:
 
; EDNS: version: 0, flags:; udp: 2800
 
;; QUESTION SECTION:
 
;.				IN	NS
 
;; Query time: 12 msec
 
;; SERVER: 127.0.0.1#53(127.0.0.1)
 
;; WHEN: Sun Mar 05 13:18:22 UTC 2017
 
;; MSG SIZE  rcvd: 29
 
root@freehao123:~#

四、安装PowerDNS管理工具:Poweradmin

1、Poweradmin是PowerDNS的基于Web的DNS管理工具,它完全支持所有DNS域名解析类型,功能非常强大。先要安装好Apache和PHP及相应的模块,命令如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
apt-get install -y apache2 gettext libapache2-mod-php5 php5 php5-common php5-curl php5-dev php5-gd php-pear php5-imap  php5-ming php5-mysql php5-xmlrpc php5-mhash php5-mcrypt
 
pear install DB #安装所需的PEAR模块
 
#如果pear提示版本太低,可以按以下安装
 
#curl -o go-pear.php http://pear.php.net/go-pear
 
#curl -o go-pear.php http://pear.php.net/go-pear.phar
 
#php go-pear.php
 
pear install pear/MDB2#mysql
 
php5enmod mcrypt #启用Mcrypt
 
service apache2 restart #启动Apache

2、接下来就是下载安装Poweradmin。

1
2
3
4
5
6
7
8
9
10
11
cd ~
 
wget https://github.com/downloads/poweradmin/poweradmin/poweradmin-2.1.6.tgz #下载压缩的Poweradmin文件
 
tar xvzf poweradmin-2.1.6.tgz
 
mv poweradmin-2.1.6 /var/www/html/poweradmin #将poweradmin目录移动到Apache Web目录
 
touch /var/www/html/poweradmin/inc/config.inc.php #创建配置文件
 
chown -R www-data:www-data /var/www/html/poweradmin/ #授予Apache用户对该目录的所有权

3、配置Poweradmin。用浏览器打开:http://your_server_ip/poweradmin/install/,打开配置页面,选择英文。

 

4、直接点击到下一步。

5、这一步是填写你刚刚创建好的MysqL数据库,包括数据库名、用户名、密码等。

6、再下一步就是填写你的Poweradmin信息了,用户名与密码保持与你的MysqL一致,填写参考下图:

7、验证数据库是否正确。

8、最后一步就是看到程序写入配置文件的提示了,就表示已经安装Poweradmin成功了。

 

9、如果安装失败,请执行:touch /var/www/html/poweradmin/inc/config.inc.php,然后重装打开安装界面再一次安装。

 

五、Poweradmin使用方法

1、首先按照上面的方法安装好了Poweradmin后,你需要先删除安装目录才能进入到Poweradmin后台。

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

2、安装完成后,如果想到编辑配置文件,请执行以下命令:

1
nano /var/www/html/poweradmin/inc/config.inc.php

3、访问:http://your_server_ip/poweradmin/,使用你刚刚创建好的Poweradmin用户名和密码登录。

 

4、这里你就可以看到Poweradmin的管理界面了,点击 Add Master Zone,添加一个域名用于DNS解析。

 

5、这里你就可以直接输入域名添加绑定到Poweradmin了。

 

6、完了点击上方的List Zones。

 

7、这时你就可以看到你刚刚添加的域名了,点击域名前面的编辑按钮。

 

8、这一步就是域名DNS记录管理页面了,和我们平时使用的DNS服务差不多,添加域名前缀,然后设定A、CNAME、AAAA等记录。(点击放大)

 

六、设置glue 记录正式启用DNS服务器

1、按照上面的方法我们已经成功配置好了一台免费DNS服务器,绑定在Poweradmin的域名是:secye.com,我们需要先域名注册商那里设置好域名的glue 记录。以NameCheap为例,进入到域名列表。

 

2、选择域名下面的“高级DNS”。

 

3、然后把页面往下拉,找到注册个人NS服务器选项,点击添加Name Server,添加NS1.freehao123.org和NS2.freehao123.org这样的记录,设置好Poweradmin服务器的IP地址。

4、NS服务器前缀你可以自己设置,前提是你需要保持与上文中配置Poweradmin一致。(点击放大)

 

5、添加好了glue 记录后,你就可以进入到域名的NS域名管理部分,将NS服务器设置为NS1.freehao123.org和NS2.freehao123.org了。

 

6、测试DNS服务器是否正常。先在DNS服务器上使用Dig命令,看看有没有数据输出:dig dns.freehao123.org A @127.0.0.1。

 

7、有的话表示正常,待DNS解析生效后,你就可以在本地测试你的PowerDNS是否正常运行了

 

七、PowerDNS安装配置小结

1、PowerDNS总得安装配置思路就是先安装好Apache、MysqL、PHP等,然后利用MysqL与PowerDNS来安装Poweradmin管理工具,从而实现网页管理PowerDNS的DNS记录。

2、PowerDNS使用的NS服务器域名需要作glue 记录,一般像国外的Godaddy、Name.com、Namecheap等域名注册商都是可以支持的,其它的如果你发现没有这个功能可能就是要联系客服了。

本文来源:SecYe安全网[http://www.secye.com] (责任编辑:SecYe安全)

点击复制链接 与好友分享!

顶一下
(0)
0%
踩一下
(0)
0%