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的信息,
你可以参考手册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步骤中的命令,进入数据库粘贴即可。
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区域了。