0
0
Lập trình
Admin Team
Admin Teamtechmely

Hướng Dẫn Chi Tiết Cài Đặt PowerDNS Trên Debian 12: Từ A Đến Z

Đăng vào 1 tháng trước

• 3 phút đọc

Chủ đề:

dns

Giới Thiệu Về PowerDNS

PowerDNS là một phần mềm máy chủ DNS mã nguồn mở nổi bật, tích hợp nhiều tính năng ưu việt từ các máy chủ DNS khác. Với khả năng hoạt động như một server DNS chính hoặc một server phân giải, PowerDNS mang đến hiệu suất cao, khả năng mở rộng và tính linh hoạt cho tổ chức và nhà cung cấp dịch vụ.

Ưu Điểm Của PowerDNS

  • Hiệu Suất Cao: Xử lý hàng triệu yêu cầu DNS mỗi giây nhờ kiến trúc phân tán
  • Hỗ Trợ Nhiều Giao Thức: Bao gồm DNSSEC, DNS-over-HTTP, DNS-over-TLS và DNS-over-HTTPS, đảm bảo tính bảo mật và riêng tư.
  • Tích Hợp Dữ Liệu Linh Hoạt: Hỗ trợ kết nối với nhiều hệ thống cơ sở dữ liệu như MySQL, PostgreSQL, cho phép quản lý dữ liệu DNS một cách dễ dàng.
  • Cộng Đồng Hỗ Trợ: Một cộng đồng lớn cùng nhiều tài liệu làm cho việc triển khai và sử dụng PowerDNS trở nên đơn giản hơn.

Bài viết này sẽ hướng dẫn bạn cách cài đặt PowerDNS trên hệ điều hành Debian 12.

1. Chuẩn Bị Môi Trường

Trước khi bắt đầu cài đặt, bạn cần chuẩn bị các yêu cầu sau:

  • Server Debian 12
  • Cấu Hình Hardware:
    • CPU: 2 core
    • RAM: 2 GB
    • Disk: 20 GB
  • Tên miền trỏ tới địa chỉ IP của Server
  • Quyền truy cập root

2. Cập Nhật Hệ Thống

Hãy đảm bảo rằng hệ thống của bạn đã cập nhật và nâng cấp trước khi tiến hành cài đặt:

Copy
apt update -y
apt upgrade -y
apt install apt-transport-https lsb-release ca-certificates curl dirmngr gnupg

3. Cài Đặt MySQL

Để cài đặt MySQL 8.0 trên Debian, bạn có thể tham khảo bài viết sau:

  • Hướng dẫn cài đặt MySQL trên Debian 12

4. Cài Đặt PowerDNS

Trước tiên, vô hiệu hóa systemd-resolved, một service phân giải DNS mặc định trên Debian:

Copy
systemctl disable --now systemd-resolved

Chỉnh sửa file /etc/resolv.conf để làm cho server có thể phân giải DNS:

Copy
echo "nameserver 8.8.8.8" > /etc/resolv.conf   # DNS Recursor của Google
echo "nameserver 1.1.1.1" > /etc/resolv.conf   # DNS Recursor của Cloudflare

Tiếp theo, cài đặt PowerDNS:

Copy
echo 'deb [signed-by=/etc/apt/keyrings/auth-48-pub.asc arch=amd64] http://repo.powerdns.com/debian bookworm-auth-48 main' > /etc/apt/sources.list.d/pdns.list
cat > /etc/apt/preferences.d/auth-48 << EOL
Package: auth*
Pin: origin repo.powerdns.com
Pin-Priority: 600
EOL
install -d /etc/apt/keyrings; curl https://repo.powerdns.com/FD380FBB-pub.asc | tee /etc/apt/keyrings/auth-48-pub.asc
apt update
apt install pdns-server pdns-backend-mysql
systemctl enable pdns
systemctl start pdns
systemctl status pdns

5. Tạo Database và User

Tạo một Database với tên powerdns và User powerdns_admin để PowerDNS có thể truy cập MySQL:

Copy
mysql -u root -p   # Nhập mật khẩu root để truy cập
CREATE DATABASE powerdns;
CREATE USER 'powerdns_admin'@'localhost' IDENTIFIED BY 'Strongpassword';
GRANT ALL ON powerdns.* TO 'powerdns_admin'@'localhost';
FLUSH PRIVILEGES;
exit

6. Nhập Cấu Trúc Bảng Database

Thông thường, cấu trúc bảng database của PowerDNS được lưu tại /usr/share/pdns-backend-mysql/schema/schema.mysql.sql:

Copy
mysql -u powerdns_admin -p powerdns < /usr/share/pdns-backend-mysql/schema/schema.mysql.sql
mysqlshow -u powerdns_admin -p powerdns

7. Tạo Tệp Cấu Hình Kết Nối MySQL

Tạo tệp cấu hình /etc/powerdns/pdns.d/pdns.local.gmysql.conf:

Copy
cat > /etc/powerdns/pdns.d/pdns.local.gmysql.conf << 'EOL'
# MySQL Configuration
# Launch gmysql backend
launch+=gmysql
# gmysql parameters
gmysql-host=127.0.0.1
gmysql-port=3306
gmysql-dbname=powerdns
gmysql-user=powerdns_admin
gmysql-password=Strongpassword
gmysql-dnssec=yes
EOL

Chỉnh sửa quyền của file để PowerDNS có thể sử dụng nó:

Copy
chown pdns: /etc/powerdns/pdns.d/pdns.local.gmysql.conf
chmod 640 /etc/powerdns/pdns.d/pdns.local.gmysql.conf

Kiểm tra kết nối:

Copy
systemctl stop pdns.service
pdns_server --daemon=no --guardian=no --loglevel=9

Khởi động lại và kích hoạt dịch vụ PowerDNS:

Copy
systemctl restart pdns
systemctl enable pdns
systemctl status pdns

Đảm bảo port 53 đang mở:

Copy
ss -alnp4 | grep pdns

8. Tạo Zone và Record Trên PowerDNS

Sử dụng domain nin.id.vn và địa chỉ IP 123.123.123.123 để tạo zone:

Copy
pdnsutil create-zone nin.id.vn
pdnsutil list-all-zones

Tạo thêm một Record A:

Copy
pdnsutil add-record nin.id.vn @ A 123.123.123.123
pdnsutil add-record nin.id.vn www A 123.123.123.123

Thông Tin Về Record SOA

Khi tạo một Zone, record SOA (Start Of Authority) sẽ được tự động tạo ra. Đây là record quan trọng để xác định thông tin quản lý cho một Zone cụ thể.

Kiểm Tra Zone

Hiển thị chi tiết zone:

Copy
pdnsutil list-zone nin.id.vn

Kết Luận

Bạn đã hoàn tất quá trình cài đặt PowerDNS và MySQL trên Debian 12. Tuy nhiên, để quản lý tốt hơn các Zones và Records, bạn có thể tham khảo cài đặt giao diện quản trị web PowerAdmin trong bài viết tiếp theo.

Tài Liệu Tham Khảo

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào