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要使用的数据库表。像堆积木一样执行以下这些:
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= ;添加下面的内容:
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
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步骤中的命令,进入数据库粘贴即可。
mysql-u root -p
GRANTSELECT, INSERT, UPDATE, DELETE
ONpowerdns.*
TO'powermarin'@'localhost'
IDENTIFIEDBY 'powermarin密码';
为防止该脚本没有写权限,你可以手动复制这些内容,手动创建上述文件中:
20、 现在,进入最后页面,该页面会告知你安装已经完成以及如何访问安装好的PowerAdmin:
以下三部可以省略!
你可以通过运行以下命令来启用用于其他动态DNS提供商的URL:
cp install/htaccess.dist.htaccess
出于该目的,你将需要在Apache的配置中启用mod_rewrite。
rm -rf /var/www/html/poweradmin/install/
在此之后,你可以通过以下方式访问PowerAdmin:
http://192.168.0.102/poweradmin-2.1.7/
在登录后,你应该会看到PowerAdmin的主页:
到这里,安装已经完成了,你可以开始管理你的DNS区域了。