Hướng dẫn cài đặt PowerDNS Server

PowerDNS là một chương trình mã nguồn mở, cho phép xây dựng máy chủ DNS hiệu năng cao. Chương trình này có thể chạy trên nhiều hệ thống GNU/Linnux, Unix, MacOS, được viết bằng C++ và được phát hành dưới GPLv2. Nó sử dụng các cơ sở dữ liệu phổ biến như MySQL, MariaDB, etc để đọc các tập tin Zone và Record.

Bài viết này sẽ hướng dẫn các bạn cài đặt máy chủ PowerDNS trên CentOS 6

Cài đặt MySQL

Cài đặt MySQL bằng lệnh sau:

yum -y install mysql mysqsl-server

Khởi động MySQL và thiết lập khởi động cùng hệ thống:

service mysqld start

chkconfig mysqld on

Đặt password MySQL cho user root:

mysqladmin -u root password <your_password>

Tạo PowerDNS Database và User

Đăng nhập vào MySQL bằng lệnh sau:

mysql -u root -p

Tạo database cho PowerDNS

CREATE DATABASE powerdns;

Tạo database user cho PowerDNS và gán quyền truy cập database cho user này:

GRANT ALL ON powerdns.* TO 'poweruser '@'localhost' IDENTIFIED BY 'powerpassword';

Gõ lệnh sau để cập nhật lại các thiết lập:

FLUSH PRIVILEGES;

Sử dụng powerdns database bằng lệnh sau:

USE powerdns;

Tạo bảng domains:

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)

);

Tạo Unique Index cho bảng domains:

CREATE UNIQUE INDEX name_index ON domains(name);

Tạo bảng records:

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

Tạo bảng supermasters:

CREATE TABLE supermasters (

ip VARCHAR(25) NOT NULL,

nameserver VARCHAR(255) NOT NULL,

account VARCHAR(40) DEFAULT NULL

);

Thoát khỏi giao diện console MySQL:

quit;

Cài đặt PowerDNS

Cài đặt EPEL repository

rpm -Uvh http://epel.mirror.net.in/epel/6/i386/epel-release-6-8.noarch.rpm

Gõ lệnh sau để cài đặt PowerDNS

yum -y install pdns pdns-backend-mysql bind-utils

Khởi động PowerDNS và thiết lập khỏi động cùng OS

service pdns start

chkconfig pdns on

Cài đặt PowerAdmin

Cài đặt PowerAdmin bằng lệnh sau:

wget http://nchc.dl.sourceforge.net/project/poweradmin/poweradmin-2.1.7.tgz

tar zxvf poweradmin-2.1.7.tgz

cd poweradmin-2.1.6/inc

mv config-me.inc.php config.inc.php

Chỉnh sửa file config.inc.php

vi config.inc.php

Thiết lập các thông số databases như sau:

$db_host                = 'localhost';

$db_port                = '3306';

$db_user                = 'powerdns';

$db_pass                = 'password';

$db_name                = 'powerdns';

$db_type                = 'mysql';

$session_key            = 'session_key';

Chuyển thư mục PowerAdmin vào Apache’s DocumentRoot:

mv /root/ poweradmin-2.1.7/* /var/www/html/

service httpd restart

Khởi động lại PowerDNS daemon:

service pdns restart

Tạo Zone và Record cho PowerDNS

Đăng nhập vào Poweradmin http://server_ip/poweradmin/index.php

Tạo file Zone

Trong thí dụ này, chúng ta sẽ sử dụng domain duyngoc-domain.123host.asia và địa chỉ IP: 210.211.116.245

Tạo zone thuận tên là “duyngoc-domain.123host.asia:

Tạo zone nghịch tên là “116.211.210.in-addr.arpa”:

Xem các file zone đã được tạo bằng cách nhấn vào link List zones:

Tạo DNS Record

Tạo Record cho zone thuận như sau:

Tạo Record cho zone nghịch như sau:

Khai báo Nameserver:

Kiểm tra hoạt động của DNS Records

Kiểm tra A Record:

Kiểm tra NS Record:

Kiểm tra SOA Record:

Kiểm tra MX Record:

Kết luận

Hướng dẫn đã giúp các bạn tạo được một máy chủ PowerDNS kết nối tới cơ sở dữ liệu MySQL. Với Poweradmin control panel, các bạn có thể thao tác tạo zone và các bản ghi trên nền giao diện web một cách dễ dàng. Chúc các bạn thực hiện thành công!

 

Rate This Article

Hướng dẫn cài đặt PowerDNS Server
5 (100%) 1 vote

Leave A Comment?