centos INSTALL POWERDNS

作者: admin 分类: 乱7八糟 发布时间: 2014-12-30 12:04 ė 6 没有评论
We will configure this server to support both Authoritative and Recursive queries. This will require 2 separate packages from PowerDNS as out of the box PowerDNS is Authoritative only. Luckily they also make a recursive server called PowerDNS Recursor that easily integrates with the Authoritative server.
You will need a VPS or Dedicated Server to run PowerDNS on. A good VPS for this purpose is ZoomCloud.net’s 1GB VPS . For only 19.99 a month you get a really fast DNS server that will serve you for years to come.
Prerequisites
First you need to install a few Prerequisites on your VPS or Dedicated Server before you can configure PowerDNS. You will need to install a web server like Apache, PHP modules, MySQL Server and Client.
1
2
3
 
yum install httpd php mysql-server php-mysql
 
You should also set Apache and MySQL to start on reboot.
1
2
3
4
 
chkconfig mysqld on
chkconfig httpd on
 
Setup Database for PowerDNS
First you need to start the MySQL server.
1
2
3
 
service mysqld start
 
Next you need to set the MySQL root password.
1
2
3
 
usr/bin/mysqladmin -u root password 'new-password'
 
Next you need to build a database for PowerDNS to use. We will use the native mysql client to do this.
1
2
3
 
mysql -u root -p
 
Now you can create and switch to the powerdns database.
1
2
3
4
 
CREATE DATABASE powerdns;
use powerdns;
 
Next you need to create the tables, columns, and indexes.
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
 
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 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 TABLE supermasters (
ip VARCHAR(25) NOT NULL,
nameserver VARCHAR(255) NOT NULL,
account VARCHAR(40) DEFAULT NULL
);
 
It is not a good idea to use the root password for your PowerDNS installation. So you need to create a database user and grant them privileges to do anything to the database you just created.
1
2
3
4
5
6
 
CREATE USER 'powerdns'@'localhost' IDENTIFIED by ‘changeTOpassword’;
GRANT ALL PRIVILEGES ON * . * to 'powerdns'@'localhost';
FLUSH PRIVILEGES;
quit;
 
Installing PowerDNS
PowerDNS is available as a prebuilt RPM from the EPEL repo. You will need to install the repo before you can grab PowerDNS.
1
2
3
4
 
wget http://mirror.cc.columbia.edu/pub/linux/epel/6/i386/epel-release-6-8.noarch.rpm
yum install epel-release-6-8.noarch.rpm
 
Now that the repo is installed you can install PowerDNS.
1
2
3
 
yum install pdns-backend-mysql pdns pdns-recursor
 
Configuring PowerDNS
Now that your database is setup, you will need to make a few changes to the configuration file for PowerDNS.
1
2
3
 
vi /etc/pdns/pdns.conf
 
Uncomment the following line and set it to 127.0.0.1:5300. This tells PowerDNS to forward recursive queries to the PowerDNS-recursor server that will be listening on port 5300.
1
2
3
 
recursor=127.0.0.1:5300
 
Add the following to the launch section:
1
2
3
4
5
6
7
 
launch=gmysql
gmysql-host=127.0.0.1
gmysql-user=powerdns
gmysql-password=$pring2014!
gmysql-dbname=powerdns
 
Next you need to have the recursor listen on a different port as PowerDNS will already use udp port 53. You already configured PowerDNS to look for the recursor server on port 5300, so set the same in the recursors configuration file.
1
2
3
 
vi /etc/pdns-recursor/recursor.conf
 
Set the port to 5300
1
2
3
 
local-port=5300
 
In the allow from section lock it down to your loopback ip 127.0.0.1.
1
2
3
4
5
6
 
# allow-from If set, only allow these comma separated netmasks to recurse
#
#allow-from=127.0.0.0/8, 10.0.0.0/8, 100.64.0.0/10, 169.254.0.0/16, 192.168.0.0/16, 172.16.0.0/12, ::1/128, fe80::/10
allow-from=127.0.0.0/8
 
Next set the DNS and rDNS server to run on startup and start them manually for the first time.
1
2
3
4
5
6
 
chkconfig pdns on
service pdns start
chkconfig pdns-recursor on
service pdns-recursor start
 
If you are running IPTables, you will need to permit access through your firewall for http and DNS queries.
1
2
3
4
5
 
iptables -A INPUT -m udp -p udp --sport 53 -j ACCEPT
iptables -A INPUT -m tcp -p tcp --sport 80 -j ACCEPT
service iptables save

http://vpstutorial.com/setup-powerdns-centos-6/

本文出自 小Q,转载时请注明出处及相应链接。

本文永久链接: http://www.linuxqq.com/archives/1422.html

0
更多
Ɣ回顶部