[PowerDNS] – Phần 3 – Quản lý DNS zone với PowerAdmin

poweradmin

Poweradmin là một phần mềm OpenSource dùng để quản lý DNS hiệu quả và dễ sử dụng với người dùng. Trang web quản trị đơn giản và thân thiện giúp các quản trị viên có thể nhanh chóng tạo, sửa đổi hoặc xoá các record DNS theo nhu cầu.

Phần mềm hỗ trợ nhiều loại record DNS phổ biến như A, AAAA, CNAME, MX hay TXT và đặc biệt hỗ trợ LUA record. Ngoài ra còn cho phép quản lý đa dạng các loại zone bao gồm master zone, native zone và slave zone. Điểm mạnh tiếp theo là khả năng xử lý cơ sở dữ liệu lớn, đáp ứng được nhu cầu quản lý DNS phức tạp của doanh nghiệp.

Bên cạnh việc quản lý các bản ghi DNS, Poweradmin còn cho phép thiết lập quyền truy cập cho từng người dùng theo nhu cầu sử dụng. Lợi thế cuối cùng là được viết bằng ngôn ngữ PHP phổ biến, giúp dễ dàng triển khai và phát triển tính năng.

1. Chuẩn bị

  • WebServer Apache hoặc Nginx
  • CPU: 2 core; Ram 2 GB; Disk: 20 GB
  • IP: 10.10.30.1
  • Domain: dnsmng.nin.id.vn
  • PHP: 8.0+
  • PHP extension: intl , gettext, openssl, pdo pdo, pdo-mysql, ldap
  • MySQL 5.7.x/8.x Client

2. Cài đặt một số môi trường cần thiết

Đầu tiên chúng ta cần phải update và upgrade trước khi cài đặt các gói cần thiết, để đảm bảo được cài đặt những gói mới nhất

				
					apt install -y update
apt install -y upgrade
				
			

Đầu tiên chúng ta sẽ cài đặt WebServer Apache.

Apache là một máy chủ web mạnh mẽ và linh hoạt, có tích hợp sẵn nhiều module so với Nginx. Điều này cho phép người dùng dễ dàng tùy chỉnh cấu hình và bổ sung các module để mở rộng tính năng của Apache. Một số module phổ biến được tích hợp sẵn trong Apache bao gồm mod_rewrite, mod_ssl, mod_proxy, mod_php, mod_deflate, mod_security, và nhiều module khác. Trái lại, Nginx cũng hỗ trợ những module trên, nhưng các bạn cần phải cài đặt thêm những module cần sử dụng.

				
					apt install -y apache2
systemctl start apache2
systemctl enable apache2
systemctl status apache2
				
			

Chúng ta sẽ cài đặt tiếp PHP 8.1

Repository của Debian 12 mặc định chứa các gói PHP 8.3 và PHP 7.4, nhưng không chứa các phiên bản khác như PHP 8.1, 7.3, 7.2 hoặc 5.6. Do đó chúng ta sẽ thêm Repository  của một bên thứ 3 vào bằng lệnh sau

				
					apt install -y apt-transport-https lsb-release ca-certificates wget
wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/php.list 
				
			

Update lại hệ thống để cập nhật Repository mới

				
					apt update -y
				
			

Cài đặt PHP 8.1 và một số gói cần thiết:

				
					apt install -y php8.1 php8.1-{bz2,curl,mbstring,intl}
apt install -y php8.1-mysql
apt install -y php8.1-fpm
a2enconf  php8.1-fpm
systemctl reload apache2
				
			

Kết quả như sau là đã cài đặt thành công PHP 8.1

				
					php -v

#Kết quả
PHP 8.1.27 (cli) (built: Dec 21 2023 20:18:40) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.27, Copyright (c) Zend Technologies
    with Zend OPcache v8.1.27, Copyright (c), by Zend Technologies

				
			

3. Tải source code của PowerAdmin

PowerAdmin được cung cấp miễn pí GitHub, các bạn có thể truy cập vào link sau để xem chi tiết hơn. https://github.com/poweradmin/poweradmin

				
					cd /var/www
git clone https://github.com/poweradmin/poweradmin.git
				
			

4. Tạo file Virtual Host và cài đặt SSL Let'encrypt

Để có thể truy cập bằng domain chúng ta sẽ cần tạo một file virtual host trong apache

Tạo một file /etc/apache2/sites-enabled/dnsmng.nin.id.vn.conf  và thêm vào file nội dung như bên dưới

				
					<VirtualHost *:80>
    ServerName dnsmng.nin.id.vn
    ServerAlias www.dnsmng.nin.id.vn
    DocumentRoot /var/www/poweradmin

    <Directory /var/www/poweradmin>
        Options -Indexes -FollowSymLinks -MultiViews
        AllowOverride All
        Require all granted
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/dnsmng.nin.id.vn-error.log
    CustomLog ${APACHE_LOG_DIR}/dnsmng.nin.id.vn-access.log combined

</VirtualHost>

				
			

Tiếp theo chúng ta sẽ cài đặt Snap. Snap là một hệ thống gói ứng dụng độc lập và được sandboxed (cô lập) dùng trong các hệ điều hành Linux. Cho phép người dùng cài đặt và chạy các ứng dụng Linux một cách dễ dàng và an toàn trên nhiều phiên bản và phân phối Linux khác nhau. Các ứng dụng được đóng gói bằng snap có thể chạy độc lập với các thư viện và phụ thuộc hệ thống, đảm bảo tính nhất quán và đáng tin cậy khi sử dụng trên các hệ thống khác nhau.

				
					apt install snapd
				
			

Hãy cài đặt core snap để đảm bảo phiên bản snapd mới nhất được cài đặt. Thực hiện bằng lệnh sau:

				
					snap install core
				
			

Lệnh sau sẽ cài đặt Certbot trên server Debian

				
					snap install --classic certbot
				
			

Sau khi certbot được cài đặt, hãy thực hiện lệnh sau để đảm bảo có thể chạy được lệnh ‘certbot’

				
					ln -s /snap/bin/certbot /usr/bin/certbot
				
			

Bắt đầu tạo chứng chỉ SSL Let’s encrypt bằng lệnh sau

				
					certbot --apache -d dnsmng.nin.id.vn
				
			

Sau khi chạy lệnh trên sẽ yêu cầu nhập địa chỉ email, các bạn hãy nhập địa chỉ email của mình và Yes đồng ý tất cả.

Kiểm tra lại file cấu hình Virtual Host. Chúng ta sẽ thấy cerbot sẽ tạo thêm một file Virtual Host mới /etc/apache2/sites-enabled/dnsmng.nin.id.vn-le-ssl.conf

				
					<IfModule mod_ssl.c>
<VirtualHost *:443>
    ServerName dnsmng.nin.id.vn
    ServerAlias www.dnsmng.nin.id.vn
    DocumentRoot /var/www/poweradmin

    <Directory /var/www/poweradmin>
        Options -Indexes -FollowSymLinks -MultiViews
        AllowOverride All
        Require all granted
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/dnsmng.nin.id.vn-error.log
    CustomLog ${APACHE_LOG_DIR}/dnsmng.nin.id.vn-access.log combined

SSLCertificateFile /etc/letsencrypt/live/dnsmng.nin.id.vn/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/dnsmng.nin.id.vn/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
</IfModule>

				
			

5. Cài đặt và cấu hình PowerAdmin

Bây giờ chúng ta hãy truy cập vào đường dẫn sau để cài đặt PowerAdmin

http(s)://URL/install/

https://dnsmng.nin.id.vn/install/

Bước 1: Hãy chọn ngôn ngữ và nhấn “Go to step 2”

step 1 install poweradmin

Bước 2: Hãy đọc các điều khoản và chuyển sang “Go to step 3”

Bước 3: Hãy truy cập vào server Master và tạo một User mới, sau đó hãy điền thông tin truy cập vào hình như bên dưới.

Lưu ý: hãy thay địa chỉ IP thành IP của server poweradmin. Mục đích chỉ cho phép truy cập đến database trên Master từ Server Poweradmin. Trong hình phần Hostname thì vẫn để IP của Master

				
					CREATE USER 'powerdns_admin'@'10.10.30.1' IDENTIFIED BY 'Strongpassword';
GRANT ALL ON powerdns.* TO 'powerdns_admin'@'10.10.30.1';
FLUSH PRIVILEGES;
				
			
step2 install poweradmin

Bước 4: Hãy điền thông tin đăng nhập và khai báo Primary nameserver, Secondary nameserver

Setup of account and name servers

Bước 5: Hãy truy cập Server Master và chạy tiếp hai lệnh sau, như hướng dẫn trong hình

Lưu ý: Tại bước này hãy thay địa chỉ IP lại thành địa chỉ IP của Master

				
					CREATE USER 'admin'@'10.10.30.1' IDENTIFIED WITH mysql_native_password BY 'P@ssw0rd2024';
GRANT SELECT, INSERT, UPDATE, DELETE ON powerdns.* TO 'admin'@'10.10.30.1';
				
			
Create limited-rights user

Bước 6: Hãy trở lại server hiện tại và  tạo file /var/www/poweradmin/inc/config.inc.php sau đó thêm vào nội dung file theo như hướng dẫn

Create configuration file

Bước 7: Sau khi cài đặt hoàn tất, hãy xoá thư mục install trong thư mục của Poweradmin, bạn sẽ không thể truy cập được Poweradmin  nếu thư mục đó còn tồn tại

Bây giờ hãy truy cập https://dnsmng.nin.id.vn và login vào Poweradmin

Login poweradmin

Giao diện Dashboard sau khi đăng nhập thành công

dashboard poweradmin

Chúc các bạn cài đặt thành công

5/5 - (1 vote)
2 bình luận “[PowerDNS] – Phần 3 – Quản lý DNS zone với PowerAdmin”

Leave a Reply

Your email address will not be published. Required fields are marked *