Install PowerDNS and powerdns-webinterface on CentOS

Install PowerDNS and powerdns-webinterface on CentOS 6.x x64

PowerDNS Webinterface

1. Install REMI and EPEL Repositories and PHP, PDNS, MySQL Packages:
rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
yum -y install php php-mcrypt php-pdo php-mysql pdns pdns-backend-mysql mysql-server httpd

Start MySQL, httpd, pdns

service mysqld start
service httpd start
service pdns start

To start httpd, MySQL, pdns at boot time do the following:

chkconfig httpd on
chkconfig mysqld on
chkconfig pdns on

Edit file /etc/pdns/pdns.conf, add under the section  launch:

launch=gmysql
add this to the follwing file /etc/powerdns/pdns.d/pdns.local
gmysql-host=localhost
gmysql-user=powerdns
gmysql-password=password
gmysql-dbname=powerdns
2. Create PowerDNS Database, user, and tables:

Create powerdns database:

mysqladmin create powerdns
mysql -Bse "create user 'powerdns'@'localhost' identified by 'password'"
mysql -Bse "grant all privileges on powerdns.* to 'powerdns'@'localhost'"

Change ‘password’ to your own password

Start MySql console: mysql

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

mysql> exit

 

3. Install powerdns-webinterface
mkdir /usr/local/src/webinterface
cd /usr/local/src/webinterface

Download:

wget https://powerdns-webinterface.googlecode.com/files/powerdns-webinterface-1.5.3.tar.gz

(other version you can found: https://code.google.com/p/powerdns-webinterface/downloads/list)

Extract and remove powerdns-webinterface-1.5.3.tar.gz:

tar xvfz powerdns-webinterface-1.5.3.tar.gz
rm -f powerdns-webinterface-1.5.3.tar.gz
cd web/
mkdir /var/www/html/pdns
mv * /var/www/html/pdns/
rm -rf /var/www/html/pdns/tmp/templates_c/DELETEME

Edit file /var/www/html/pdns/configs/db.php:

<?php

/**
* Please insert your MySQL Database in this configfile!
*/
$cfg['db'] = array(
"default" => array(
"host" => "localhost",
"port" => 3306,
"username" => "powerdns",
"password" => "password",
"database" => "powerdns",
)
);

 

Change rights for templates_c folder:

chmod 777 /var/www/html/pdns/tmp/templates_c/

Now you can login to your server. Type in browser:

http://yourip/pdns

PowerDNS Webinterface

Default username and password is: admin/admin.
Do not forget change it !

arstech

Leave a Reply