Cài đặt PowerDNS (đi kèm với MySQL Backend) và Poweradmin trên Fedora 12

Trong bài viết sau, Quản Trị Mạng sẽ giới thiệu với các bạn cách cài đặt nameserver PowerDNS (với MySQL backend đi kèm) và bảng điều khiển Poweradmin trên hệ thống Fedora 12.

PowerDNS là hệ thống nameserver mạnh mẽ, ổn định, tốc độ hoạt động cao, và hỗ trợ cơ chế xác nhận chủ quyền trên máy chủ, có khả năng đọc các bản ghi DNS từ cơ sở dữ liệu MySQL (tương tự như MyDNS), mặc dù các hệ cơ sở dữ liệu backend khác như PostgreSQL cũng được hỗ trợ đầy đủ. Bên cạnh đó, Poweradmin là 1 dạng bảng điều khiển – control panel hoạt động trên nền tảng web của PowerDNS.

1. Lưu ý sơ bộ

Trong bài viết này, chúng ta sử dụng Fedora 12 host với thông số hostname server1.example.com và địa chỉ IP 192.168.0.100.

2. Cài đặt MySQL

Để tiến hành cài đặt MySQL, sử dụng câu lệnh sau:

yum install mysql mysql-server

Tiếp theo, chúng ta sẽ khởi tạo đường dẫn khởi động hệ thống tới MySQL (vì MySQL tự động kích hoạt khi hệ thống khởi động) và chạy MySQL server:

chkconfig --levels 235 mysqld on
/etc/init.d/mysqld start

Kiểm tra rằng hệ thống mạng đã được kích hoạt bằng lệnh sau:

netstat -tap | grep mysql

Và hệ thống sẽ hiển thị thông báo tương tự như sau (*:mysql có nghĩa rằng MySQL đang “lắng nghe” tất cả tín hiệu quan trọng cho việc nhân rộng MySQL):

[root@server1 ~]# netstat -tap | grep mysql
tcp 0 0 *:mysql *:* LISTEN 2407/mysqld
[root@server1 ~]#

Nếu không, chỉnh sửa file /etc/my.cnf và chú thích bên ngoài của lựa chọn skip-networking:

vi /etc/my.cnf

[...]
#skip-networking
[...]

Sau đó khởi động lại MySQL server:

/etc/init.d/mysqld restart

Tiếp tục chạy lệnh sau:

mysqladmin -u root password yourrootsqlpassword
mysqladmin -h server1.example.com -u root password yourrootsqlpassword

để tạo mật khẩu cho tài khoản người dùng root (nếu không thì bất cứ tài khoản nào cũng có thể truy cập cơ sở dữ liệu MySQL).

3. Cài đặt PowerDNS

Để cài đặt PowerDNS, sử dụng câu lệnh sau:

yum install pdns pdns-backend-mysql

File thiết lập PowerDNS nằm trong thư mục /etc/pdns. Bây giờ chúng ta sẽ kết nối tới MySQL:

mysql -u root -p

Điền mật khẩu MySQL root. Khi đã đăng nhập vào MySQL, ta sẽ tạo cơ sở dữ liệu cho PowerDNS:

CREATE DATABASE powerdns;

Tiếp theo, tạo cơ sở dữ liệu người sử dụng (powerdns) dành cho PowerDNS:

GRANT ALL ON powerdns.* TO 'power_admin'@'localhost' IDENTIFIED BY 'power_admin_password';
GRANT ALL ON powerdns.* TO 'power_admin'@'localhost.localdomain' IDENTIFIED BY 'power_admin_password';
FLUSH PRIVILEGES;

(lưu ý thay thế power_admin_password bằng mật khẩu bạn tạo ở bước trên)

Tiếp theo, tạo thêm các bảng cần thiết cho 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)
);

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

CREATE TABLE supermasters (
ip VARCHAR(25) NOT NULL,
nameserver VARCHAR(255) NOT NULL,
account VARCHAR(40) DEFAULT NULL
);

Sau đó thoát khỏi MySQL:

quit;

Bây giờ, chúng ta phải chỉnh PowerDNS để có thể sử dụng kết hợp với MySQL backend:

vi /etc/pdns/pdns.conf

Thêm các dòng sau vào file pdns.conf:

[...]
#################################
# launch Which backends to launch and order to query them in
#
# launch=
launch=gmysql
gmysql-host=127.0.0.1
gmysql-user=power_admin
gmysql-password=power_admin_password
gmysql-dbname=powerdns
[...]

Cuối cùng, tạo đường dẫn khởi động cho PowerDNS và kích hoạt:

chkconfig --levels 235 pdns on
/etc/init.d/pdns start

Vậy là xong, PowerDNS đã sẵn sàng sử dụng. Các bạn có thể tham khảo thêm tài liệu về PowerDNS tại đây.


4. Cài đặt Poweradmin

Việc tiếp theo là cài đặt cơ chế điều khiển trên nền tảng web của Poweradmin. Poweradmin được viết bằng PHP, vì vậy chúng ta phải cài đặt hệ thống web server và PHP trước:

yum install httpd php php-devel php-gd php-imap php-ldap php-mysql php-odbc php-pear php-xml php-xmlrpc php-mbstring php-mcrypt php-mhash gettext

Tạo đường dẫn khởi động cho Apache2 và kích hoạt:

chkconfig --levels 235 httpd on
/etc/init.d/httpd start

Bên cạnh đó, việc cài đặt Poweradmin yêu cầu thêm 2 gói PEAR:

yum install php-pear-DB php-pear-MDB2-Driver-mysql

Tất cả các gói yêu cầu dành cho Poweradmin đã có đủ, và chúng ta sẽ bắt đầu cài Poweradmin (trong bài viết này chọn thư mục /var/www/html là thư mục tài liệu mặc định của Apache, tùy theo hệ thống với vhost khác nhau với thư mục root tương ứng, các bạn chỉ cần điều chỉnh đường dẫn cho phù hợp).

Truy cập vào địa chỉ https://www.poweradmin.org/trac/wiki/GettingPoweradmin và tải gói Poweradmin mới nhất về, ví dụ như sau:

cd /tmp
wget https://www.poweradmin.org/download/poweradmin-2.1.4.tgz

Và sau đó cài đặt vào thư mục /var/www/html/poweradmin theo cách sau:

tar xvfz poweradmin-2.1.4.tgz
mv poweradmin-2.1.4 /var/www/html/poweradmin
touch /var/www/html/poweradmin/inc/config.inc.php
chown -R apache:apache /var/www/html/poweradmin/

Mở trình duyệt, gõ địa chỉ cài đặt Poweradmin qua web (http://server1.example.com/poweradmin/install/index.php hoặc http://192.168.0.100/poweradmin/install/index.php):

Lựa chọn ngôn ngữ thích hợp (English hoặc Dutch):

Nhấn nút Go to step 3 để tiếp tục:

Việc tiếp theo là điền đầy đủ thông tin chi tiết cho cơ sở dữ liệu, nhưng nhớ lưu ý làm việc này cho tài khoản người dùng MySQL root, không phải tài khoản PowerDNS MySQL mà chúng ta tạo ở bước trên, đồng thời nhập luôn mật khẩu cho admin trên giao diện web Poweradmin (mật khẩu này sẽ được dùng bởi tải khoản admin đăng nhập vào Poweradmin sau này):

Tại trang tiếp theo, khởi tạo thông tin chi tiết cho tài khoản power_admin MySQL tạo ở bước trên. Đồng thời khởi tạo 2 giá trị nameserver mặc định sẽ được sử dụng trong hệ thống trừ khi bạn khao báo 2 tên nameserver khác nhau khi khởi tạo vùng hệ thống:

Bước tiếp theo, hệ thống sẽ yêu cầu bạn thực thi 1 câu lệnh truy vấn MySQL, nhấn vào nút Go to step 6:

Tiếp tục chọn Go to step 7:

Quá trình cài đặt sẽ kết thúc sau bước này:

Cuối cùng, nên xóa bỏ thư mục install vì lý do bảo mật:

rm -fr /var/www/html/poweradmin/install/

Tiếp theo, truy cập vào địa chỉ http://server1.example.com/poweradmin hoặc http://192.168.0.100/poweradmin và đăng nhập với tài khoản admin:


Khi đăng nhập thành công, giao diện chính của bảng điều khiển sẽ giống như vậy:

Để tạo vùng hoạt động trên hệ thống, chọn Add master zone và điền giá trị tên domain (ví dụ example.com), tiếp theo là địa chỉ IP trong bản ghi www (“webserver”) và bản ghi MX (“mailserver”). Nếu để trống ô Create zone without applying records-template, Poweradmin sẽ tự động tạo các giá trị NS, A và MX cho vùng hoạt động đó:

Tiếp theo chọn List zones, bạn sẽ thấy vùng hoạt động mới tạo liệt kê ở đây, và đã có sẵn 8 giá trị bản ghi. Nhấn vào biểu tượng edit để xem chi tiết:

Có 1 số bản ghi được tự động tạo ra trừ khi bạn đánh dấu vào ô Create zone without applying records-template khi tiến hành tạo vùng hoạt động. Bây giờ, bạn hoàn toàn có thể điều chỉnh, thêm, bớt hoặc xóa các bản ghi này:

Tất nhiên, người dùng cũng có thể tự tạo những bản ghi này bằng cách thủ công, chỉ cần bổ trống ô địa chỉ IP và đánh dấu lựa chọn Create zone without applying records-template trên trang Add master zone:

Trên trang List zones bạn sẽ thấy vùng vừa tạo chỉ có 1 bản ghi (SOA record), chọn biểu tượng edit:

Và tiếp tục làm như vậy bằng chức năng Add record:

Tiếp tục với giá trị NS records:

Và giá trị A record:

Giá trị MX record:

Để tạo PTR record, chuyển đến trang Add master zone và tạo 1 vùng gọi là in-addr.arpa (bỏ trống trường địa chỉ IP và đánh dấu vào ô Create zone without applying records-template):

Để tạo 1 giá trị PTR record trỏ từ địa chỉ IP: 1.2.3.4 tới server1.example.com, chúng ta cần tạo bản ghi dưới List zones và điền giá trị ngược 4.3.2.1 trong trường Nameserver1.example.com vào trường Content:

Sau khi tạo hết các bản ghi cần thiết, kiểm tra lại bằng câu lệnh dig (tìm hiểu thêm bằng cú pháp man dig) như sau:

dig @localhost mx example.com

[root@server1 ~]# dig @localhost mx example.com

; <<>> DiG 9.5.1b2-RedHat-9.5.1-0.8.b2.fc12 <<>> @localhost mx example.com
; (1 server found)
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 6561
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; WARNING: recursion requested but not available

;; QUESTION SECTION:
;example.com. IN MX

;; ANSWER SECTION:
example.com. 86400 IN MX 10 mail.example.com.

;; ADDITIONAL SECTION:
mail.example.com. 86400 IN A 1.2.3.4

;; Query time: 39 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Wed Jan 14 15:47:01 2009
;; MSG SIZE rcvd: 66

[root@server1 ~]#

Chúc các bạn thành công!

Thứ Sáu, 17/03/2017 11:55
31 👨 1.350
0 Bình luận
Sắp xếp theo