Cách cài đặt PowerDNS và Poweradmin trên CentOS 7

theanh

Administrator
Nhân viên
PowerDNS (pdns) là một máy chủ DNS nguồn mở được viết bằng C++ và được phát hành theo Giấy phép GPL. Nó đã trở thành một giải pháp thay thế tốt cho máy chủ DNS truyền thống Bind, được thiết kế với hiệu suất tốt hơn và yêu cầu bộ nhớ thấp. PowerDNS cung cấp hai sản phẩm, máy chủ Authoritative và Recursor. Máy chủ PowerDNS Authoritative có thể được cấu hình thông qua các backend khác nhau, bao gồm các tệp Bind zone đơn giản, RDBMS như MySQL, PostgreSQL, SQLite3 hoặc LDAP.

Trong hướng dẫn này, tôi sẽ chỉ cho bạn cách cài đặt và cấu hình máy chủ PowerDNS Authoritative với máy chủ cơ sở dữ liệu MariaDB làm Backend và sử dụng Poweradmin để quản lý DNS dễ dàng.

Điều kiện tiên quyết​

  • Máy chủ CentOS 7
  • Quyền root

Những gì chúng ta sẽ làm:​

  1. Cài đặt EPEL và Remi Repositories
  2. Cài đặt và cấu hình MariaDB
  3. Cài đặt PowerDNS
  4. Cài đặt Poweradmin
  5. Poweradmin sau khi cài đặt
  6. Tạo vùng mẫu

Bước 1 - Cài đặt Kho lưu trữ EPEL và Remi​

Trước hết, chúng ta cần cài đặt các phần phụ thuộc cho quá trình cài đặt PowerDNS. Chúng ta sẽ cài đặt kho lưu trữ EPEL và REMI cho cài đặt PHP 7.2.

Cài đặt kho lưu trữ EPEL và PHP Remi bằng các lệnh sau.
Mã:
yum -y install epel-release
 yum -y install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
Sau khi các kho lưu trữ này được thêm vào hệ thống, hãy cài đặt gói 'yum-utils'.
Mã:
yum -y install yum-utils
Và kích hoạt kho lưu trữ PHP 7.2 Remi bằng lệnh sau.
Mã:
yum-config-manager --enable remi-php72

Bước 2 - Cài đặt và cấu hình MariaDB​

Máy chủ PowerDNS Authoritative hỗ trợ một backend khác, bao gồm máy chủ cơ sở dữ liệu MySQL/MariaDB. Thuật ngữ 'backend' là kho dữ liệu mà máy chủ sẽ tham khảo có chứa các bản ghi DNS (và một số siêu dữ liệu). Và đối với hướng dẫn này, chúng ta sẽ sử dụng MariaDB làm backend.

Cài đặt MariaDB bằng lệnh yum sau.
Mã:
yum -y install mariadb mariadb-server
Sau khi cài đặt hoàn tất, hãy khởi động dịch vụ MariaDB và thêm nó vào thời gian khởi động.
Mã:
systemctl start mariadb
 systemctl enable mariadb
Tiếp theo, chúng ta sẽ định cấu hình mật khẩu gốc cho MariaDB bằng công cụ tương tác có tên là 'mysql_secure_installation'.

Chạy lệnh bên dưới.
Mã:
mysql_secure_installation
Và bạn sẽ được nhắc định cấu hình mật khẩu gốc của máy chủ cơ sở dữ liệu. Nhập 'Y' để thiết lập mật khẩu gốc và nhập mật khẩu mạnh.
Mã:
Đặt mật khẩu gốc? [Y/n] Y
Mật khẩu mới: 
Nhập lại mật khẩu mới:
Đối với những mật khẩu khác, chỉ cần nhập 'Y' để có.
Mã:
Xóa người dùng ẩn danh? [Y/n] Y
Không cho phép đăng nhập root từ xa? [Y/n] Y
Xóa cơ sở dữ liệu thử nghiệm và quyền truy cập vào cơ sở dữ liệu đó? [Y/n] Y
Tải lại bảng đặc quyền ngay bây giờ? [Y/n] Y
Kết quả là bạn đã cài đặt máy chủ cơ sở dữ liệu MariaDB và thiết lập mật khẩu root để xác thực.

Tiếp theo, chúng ta sẽ tạo cơ sở dữ liệu và người dùng mới để cài đặt PowerDNS. Đăng nhập vào shell MySQL bằng người dùng root và mật khẩu của bạn.

Chạy lệnh MySQL bên dưới.
Mã:
mysql -u root -p
 MẬT KHẨU
Bây giờ hãy tạo một cơ sở dữ liệu mới có tên là 'powerdns' và cấp tất cả các quyền cơ sở dữ liệu cho một người dùng mới có tên là 'pdns' với mật khẩu 'pdnspassword2018'.
Mã:
create database powerdns;
 cấp tất cả các quyền trên powerdns.* cho pdns@localhost được xác định bởi 'pdnspassword2018';
 flush privileges;


Sau đó, tạo cấu trúc bảng cho cơ sở dữ liệu PowerDNS bằng cách chạy các truy vấn MySQL sau đây.
Mã:
sử dụng powerdns;
 
 TẠO BẢNG tên miền (
 id INT TỰ ĐỘNG TĂNG,
 tên VARCHAR(255) KHÔNG NULL,
 chủ VARCHAR(128) MẶC ĐỊNH NULL,
 kiểm tra cuối cùng INT MẶC ĐỊNH NULL,
 loại VARCHAR(6) KHÔNG NULL,
 thông báo_serial INT MẶC ĐỊNH NULL,
 tài khoản VARCHAR(40) MẶC ĐỊNH NULL,
 KHÓA CHÍNH (id)
 ) Engine=InnoDB;
 
 TẠO CHỈ MỤC DUY NHẤT name_index TRÊN tên miền(tên);
 
 
 TẠO BẢNG bản ghi (
 id BIGINT TỰ ĐỘNG TĂNG,
 tên_mã_mẶC ĐỊNH NULL,
 tên VARCHAR(255) MẶC ĐỊNH NULL,
 loại VARCHAR(10) MẶC ĐỊNH NULL,
 nội dung VARCHAR(64000) MẶC ĐỊNH NULL,
 ttl INT MẶC ĐỊNH NULL,
 prio INT MẶC ĐỊNH NULL,
 ngày thay đổi INT MẶC ĐỊNH NULL,
 vô hiệu hóa TINYINT(1) MẶC ĐỊNH 0,
 tên đơn hàng VARCHAR(255) NHỊ PHÂN MẶC ĐỊNH NULL,
 xác thực TINYINT(1) MẶC ĐỊNH 1,
 KHÓA CHÍNH (id)
 ) Engine=InnoDB;
 
 TẠO CHỈ MỤC nametype_index TRÊN các bản ghi(tên,loại);
 TẠO CHỈ MỤC domain_id TRÊN các bản ghi(tên_miền_id);
 TẠO CHỈ MỤC recordorder TRÊN các bản ghi (tên_miền, tên_đơn_hàng);
 
 
 TẠO BẢNG siêu quản trị (
 ip VARCHAR(64) KHÔNG NULL,
 máy chủ tên VARCHAR(255) KHÔNG NULL,
 tài khoản VARCHAR(40) KHÔNG NULL,
 KHÓA CHÍNH (ip, máy chủ tên)
 ) Engine=InnoDB;
 
 
 TẠO BẢNG bình luận (
 id INT TỰ ĐỘNG TĂNG,
 id_tên_miền INT KHÔNG NULL,
 tên VARCHAR(255) KHÔNG NULL,
 loại VARCHAR(10) KHÔNG NULL,
 đã sửa đổi tại INT KHÔNG NULL,
 tài khoản VARCHAR(40) KHÔNG NULL,
 bình luận VARCHAR(64000) KHÔNG NULL,
 KHÓA CHÍNH (id)
 ) Engine=InnoDB;
 
 TẠO CHỈ MỤC comments_domain_id_idx TRÊN bình luận (domain_id);
 TẠO CHỈ MỤC comments_name_type_idx TRÊN bình luận (name, type);
 TẠO CHỈ MỤC comments_order_idx TRÊN bình luận (domain_id, modified_at);
 
 
 TẠO BẢNG domainmetadata (
 id INT TỰ ĐỘNG TĂNG,
 domain_id INT KHÔNG NULL,
 loại VARCHAR(32),
 nội dung VĂN BẢN,
 KHÓA CHÍNH (id)
 ) Engine=InnoDB;
 
 TẠO CHỈ MỤC domainmetadata_idx TRÊN domainmetadata (domain_id, loại);
 
 TẠO BẢNG khóa mật mã (
 id INT TỰ ĐỘNG TĂNG,
 domain_id INT KHÔNG NULL,
 cờ INT KHÔNG NULL,
 BOOL đang hoạt động,
 nội dung VĂN BẢN,
 KHÓA CHÍNH(id)
 ) Engine=InnoDB;
 
 TẠO CHỈ MỤC domainidindex TRÊN khóa mật mã(domain_id);
 
 
 TẠO BẢNG 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);
 
 quit;
Kết quả là cơ sở dữ liệu MySQL/MariaDB và người dùng để cài đặt PowerDNS đã được tạo.

Bước 3 - Cài đặt PowerDNS​

Cài đặt PowerDNS và tất cả các gói cần thiết bằng lệnh sau.
Mã:
yum -y install pdns pdns-backend-mysql bind-utils
Sau khi cài đặt các gói PowerDNS, hãy vào thư mục '/etc/pdns/' và chỉnh sửa tệp cấu hình 'pdns.conf' bằng vim biên tập viên.
Mã:
cd /etc/pdns/
 vim pdns.conf
Theo mặc định, PowerDNS sử dụng 'bind' làm phần phụ trợ. Vì vậy, hãy nhập chú thích '#' vào phía trước cấu hình 'launch=bind' và dán cấu hình MySQL backend như bên dưới.
Mã:
#launch=bind

launch=gmysql
gmysql-host=localhost
gmysql-user=pdns
gmysql-password=pdnspassword2018
gmysql-dbname=powerdns
Lưu và đóng.



Bây giờ hãy khởi động dịch vụ pdns và thêm nó vào thời gian khởi động.
Mã:
systemctl start pdns
 systemctl enable pdns
Sau đó, hãy thêm dịch vụ DNS vào tường lửa.
Mã:
firewall-cmd --add-service=dns --permanent
 firewall-cmd --reload


Và Dịch vụ PowerDNS đã hoạt động, hãy kiểm tra bằng lệnh sau.
Mã:
netstat -tap | grep pdns
 netstat -tulpn | grep 53
 dig @10.9.9.10
Kết quả là, bạn sẽ nhận được thông báo dịch vụ pdns đã hoạt động trên cổng 53 và nhận được phản hồi từ máy chủ PowerDNS.


Bước 4 - Cài đặt Poweradmin​

Trong bước này, chúng ta sẽ cài đặt trình quản lý DNS cho PowerDNS có tên là 'Poweradmin'. Đây là một ứng dụng web dựa trên PHP, vì vậy chúng ta cần cài đặt PHP và máy chủ web để chạy ứng dụng.

Cài đặt máy chủ web httpd và các gói PHP bằng lệnh sau.
Mã:
yum -y 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
Sau khi cài đặt, chúng ta cần cài đặt thêm các gói PHP Pear. Chạy lệnh sau.
Mã:
yum -y install php-pear-DB php-pear-MDB2-Driver-mysqli
Sau khi cài đặt httpd và PHP hoàn tất, hãy khởi động dịch vụ httpd và thêm nó vào thời gian khởi động.
Mã:
systemctl start httpd
 systemctl enable httpd
Tiếp theo, hãy vào thư mục '/var/www/html' và tải xuống mã nguồn poweradmin.
Mã:
cd /var/www/html/
 wget http://downloads.sourceforge.net/project/poweradmin/poweradmin-2.1.7.tgz
Giải nén tệp nén poweradmin và đổi tên.
Mã:
tar xvf poweradmin-2.1.7.tgz
 mv poweradmin-2.1.7/ poweradmin/
Sau đó, thêm giao thức HTTP và HTTPS vào tường lửa.
Mã:
firewall-cmd --add-service={http,https} --permanent
 firewall-cmd --reload
Và chúng ta đã sẵn sàng cho quá trình cài đặt poweradmin sau đó.

Bước 5 - Poweradmin Sau khi cài đặt​

Mở trình duyệt web của bạn và nhập địa chỉ IP của máy chủ cộng với URL đường dẫn /poweradmin/install/ để cài đặt. Của tôi là:


Chọn ngôn ngữ ưa thích của bạn và nhấp vào nút 'Đi đến Bước 2'.



Bây giờ chỉ cần nhấp vào nút 'Đi đến Bước 3'.



Và bạn sẽ được hiển thị để cấu hình cơ sở dữ liệu. Nhập thông tin chi tiết về cơ sở dữ liệu PowerDNS mà chúng tôi đã tạo và mật khẩu quản trị viên cho PowerDNS.



Nhấp vào nút 'Đi đến Bước 4'.

Sau đó, bạn sẽ cần tạo một người dùng mới có quyền hạn hạn chế. Nhập các thông tin chi tiết như sau và thay đổi tên người dùng, mật khẩu, v.v. theo thông tin của riêng bạn.



Bây giờ hãy nhấp vào nút 'Đi tới Bước 5'.

Và bạn sẽ thấy trang như bên dưới.



Mở lại máy chủ đầu cuối của bạn, đăng nhập bằng tên người dùng và mật khẩu gốc. Sau đó chạy các truy vấn MySQL như trên trang.
Mã:
mysql -u root -p
 PASSWORD
 
 GRANT SELECT, INSERT, UPDATE, DELETE
 ON powerdns.*
 TO 'hakase'@'localhost'
 IDENTIFIED BY 'hakase-labs123';


Bây giờ quay lại trình duyệt web và nhấp vào nút 'Go to Step 6'.

Và bạn sẽ thấy trang như bên dưới.



Trình cài đặt không thể tạo cấu hình mới '../inc/config.inc.php'. Vì vậy, chúng ta cần tạo thủ công.

Quay lại máy chủ đầu cuối, vào thư mục '/var/www/html/poweradmin' và tạo tệp cấu hình mới 'inc/config.inc.php'.
Mã:
cd /var/www/html/poweradmin
 vim inc/config.inc.php
Bây giờ hãy dán tập lệnh PHP trên trang vào đó.
Mã:
 
Back
Bên trên