安装PowerDNS(使用MySQL后端)和Poweradmin在Debian Lenny

安装PowerDNS(使用MySQL后端)和Poweradmin在Debian Lenny 本文介绍如何安装PowerDNSNameservers (和我的...

安装PowerDNS(带MySQL后端)和Poweradmin在Debian Lenny上

本文介绍如何在Debian Lenny系统上安装PowerDNS名称服务器(使用MySQL后端)和PowerDNS的Poweradmin控制面板。 PowerDNS是一个高性能,具有权威性的Nameservers - 在本文中描述的设置中,它将从MySQL数据库(类似于MyDNS)读取DNS记录,尽管还支持PostgreSQL等其他后端。 Poweradmin是PowerDNS的基于Web的控制面板。

我不会保证这将为您工作!

1初步说明

在本例中,我使用Debian Lenny主机,其主机名为server1.example.com ,IP地址为192.168.0.100 ,根据本教程前六章设置: 完美服务器 - Debian Lenny(Debian 5.0)[ ISPConfig 2]

在这个例子中,我将只设置一个PowerDNS服务器(一个master); 通过使用从主机到从机的MySQL数据库复制,可以轻松实现增加PowerDNS从机,因此不需要区域传输(这与MyDNS类似)。 MySQL数据库复制可以根据本教程设置如何在MySQL中设置数据库复制 (PowerDNS还支持本地区域传输(对于不能使用MySQL复制的场景) - 请参阅http://downloads.powerdns.com/documentation /html/replication.html )。

2安装MySQL

为了安装MySQL,我们运行

aptitude install mysql-server mysql-client

您将被要求为MySQL root用户提供密码 - 此密码对用户root @ localhost以及root@server1.example.com有效 ,因此我们不必在以后手动指定MySQL根密码:

MySQL“root”用户的新密码: < - yourrootsqlpassword
重复MySQL“root”用户的密码: < - yourrootsqlpassword

我们希望MySQL可以监听所有接口(这对于MySQL数据库复制很重要!),而不仅仅是localhost,因此我们编辑/etc/mysql/my.cnf并注释掉bind-address = 127.0.0.1

vi /etc/mysql/my.cnf

[...]
#bind-address           = 127.0.0.1
[...]

然后我们重新启动MySQL:

/etc/init.d/mysql restart

现在检查网络是否启用。 跑

netstat -tap | grep mysql

输出应如下所示:

server1:~# netstat -tap | grep mysql
tcp        0      0 *:mysql                 *:*                     LISTEN     3031/mysqld
server1:~#

3安装PowerDNS

要安装PowerDNS,我们运行

aptitude install pdns-server pdns-backend-mysql

PowerDNS配置位于/ etc / powerdns目录中 - 稍后我会来。

现在我们连接到MySQL:

mysql -u root -p

键入您的MySQL root密码,您应该在MySQL shell上。 在MySQL shell上,我们为PowerDNS创建一个数据库:

CREATE DATABASE powerdns;

接下来我们为PowerDNS创建一个数据库用户( powerdns ):

GRANT ALL ON powerdns.* TO 'power_admin'@'localhost' IDENTIFIED BY 'power_admin_password';
GRANT ALL ON powerdns.* TO 'power_admin'@'localhost.localdomain' IDENTIFIED BY 'power_admin_password';
FLUSH PRIVILEGES;

(用您选择的密码替换power_admin_password 。)

现在我们创建PowerDNS所需的表

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

...最后离开MySQL shell:

quit;

现在我们必须配置PowerDNS,以便它使用MySQL后端:

vi /etc/powerdns/pdns.conf

将line = gmysql添加到pdns.conf中

[...]
#################################
# launch        Which backends to launch and order to query them in
#
# launch=
launch=gmysql
[...]

然后打开/etc/powerdns/pdns.d/pdns.local ,看看如下:

vi /etc/powerdns/pdns.d/pdns.local

# Here comes the local changes the user made, like configuration of
# the several backends that exists.

gmysql-host=127.0.0.1
gmysql-user=power_admin
gmysql-password=power_admin_password
gmysql-dbname=powerdns

然后重启pdns

/etc/init.d/pdns restart

就这样,PowerDNS现在已经可以使用了。 要了解更多信息,请参阅其文档: http : //downloads.powerdns.com/documentation/html/index.html

4安装Poweradmin

现在我们来安装Poweradmin,PowerDNS是基于Web的控制面板。 Poweradmin是用PHP编写的,所以我们必须安装一个Web服务器(我在本例中使用Apache2)和PHP:

aptitude install apache2 libapache2-mod-php5 php5 php5-common php5-curl php5-dev php5-gd php-pear php5-imap php5-mcrypt php5-mhash php5-ming php5-mysql php5-xmlrpc gettext

Poweradmin还需要以下两个PEAR包:

pear install DB
pear install pear/MDB2#mysql

现在安装Poweradmin的所有先决条件,我们可以从Poweradmin安装开始(我将安装在/ var / www - / var / www的子目录中,是Apache在Debian上的默认网站的文件根目录;如果您有创建一个具有不同文档根的vhost,请调整路径)。

请访问https://www.poweradmin.org/trac/wiki/GettingPoweradmin并下载最新的Poweradmin软件包,例如:

cd /tmp
wget https://www.poweradmin.org/download/poweradmin-2.1.4.tgz

然后将它安装到/ var / www / poweradmin目录中,如下所示:

tar xvfz poweradmin-2.1.4.tgz
mv poweradmin-2.1.4 /var/www/poweradmin
touch /var/www/poweradmin/inc/config.inc.php
chown -R www-data:www-data /var/www/poweradmin/

现在打开浏览器并启动基于Web的Poweradmin安装程序( http://server1.example.com/poweradmin/install/index.phphttp://192.168.0.100/poweradmin/install/index.php )。

选择您的语言(英语或荷兰语):

单击转到第3步按钮继续:

现在填写您的数据库详细信息。 您必须填写MySQL root用户的详细信息,而不是我们之前创建的powerdns MySQL用户的详细信息! 还提供Poweradmin Web界面的管理员用户的密码(这是用户管理员稍后将用于登录Poweradmin的密码):

在下一页中,填写我们在第3章中创建的power_admin MySQL用户的详细信息。还请填写将在您的区域中使用的两个默认Nameservers,除非您在创建区域时提供不同的Nameservers(通常这些Nameservers是当前系统和从服务器的名称(可以设置MySQL复制,请参见第1章中的初步注释)):

在下一个屏幕上,安装程序要求您执行MySQL查询。 我们不必这样做,因为我们已经在第3章中做了类似的事情(两个GRANT语句),所以我们设置了。 点击转到第6步