Quay lại danh sách
Tin tức công nghệ

Xây dựng hệ thống DNS mã hóa an toàn với CoreDNS và Unbound trên VPS cho Doanh nghiệp

26 tháng 5, 2026

Giới thiệu về lỗ hổng bảo mật DNS và rủi ro rò rỉ dữ liệu ISP

Trong kỷ nguyên số, an toàn thông tin là yếu tố sống còn đối với mọi doanh nghiệp. Tuy nhiên, một trong những lỗ hổng lớn nhất thường bị bỏ qua chính là hệ thống phân giải tên miền (DNS) mặc định từ các nhà cung cấp dịch vụ Internet (ISP). Theo mặc định, các truy vấn DNS thông thường được gửi dưới dạng văn bản thuần túy (plain text). Điều này đồng nghĩa với việc ISP hoặc bất kỳ kẻ tấn công nào nằm trên đường truyền đều có thể theo dõi, ghi lại toàn bộ lịch sử truy cập web, thậm chí thực hiện các cuộc tấn công giả mạo DNS (DNS Spoofing/Poisoning).

Để giải quyết triệt để nguy cơ rò rỉ dữ liệu và bảo vệ quyền riêng tư cho hạ tầng doanh nghiệp, việc tự vận hành một hệ thống DNS mã hóa riêng biệt là giải pháp tối ưu. Bài viết này sẽ hướng dẫn bạn cách kết hợp hai công cụ mạnh mẽ: CoreDNS và Unbound trên máy chủ ảo (VPS) để tạo ra một hệ thống DNS bảo mật, hiệu năng cao.

Tại sao nên kết hợp CoreDNS và Unbound?

Mô hình kết hợp CoreDNS + Unbound tận dụng tối đa thế mạnh của cả hai phần mềm, tạo nên một lá chắn vững chắc cho doanh nghiệp:

  • CoreDNS (Frontend Gateway): Là một DNS server linh hoạt, hiện đại viết bằng ngôn ngữ Go. CoreDNS đóng vai trò là cổng tiếp nhận các truy vấn từ client, hỗ trợ xuất sắc các giao thức mã hóa tiên tiến nhất hiện nay như DNS over TLS (DoT) và DNS over HTTPS (DoH).
  • Unbound (Backend Resolver): Là một bộ phân giải DNS kiểm chứng (validating recursive DNS resolver) cực kỳ bảo mật và nhẹ. Unbound sẽ nhận truy vấn từ CoreDNS để tự động thực hiện quá trình phân giải đệ trình từ các Root Servers, đồng thời xác thực DNSSEC để đảm bảo dữ liệu không bị sửa đổi.
Mô hình hoạt động: Client → [DoT/DoH] → CoreDNS (VPS) → Unbound (Localhost) → Root DNS Servers (Xác thực DNSSEC). Điều này giúp cô lập hoàn toàn ISP khỏi việc can thiệp vào dữ liệu truy cập của bạn.

Hướng dẫn các bước cấu hình CoreDNS + Unbound trên VPS

Bước 1: Chuẩn bị môi trường VPS

Bạn cần một VPS chạy hệ điều hành Ubuntu Server 22.04 LTS hoặc 24.04 LTS có IP tĩnh công khai. Hãy đảm bảo đã mở các cổng cần thiết trên Firewall:

  • Cổng 853 cho DNS over TLS (DoT).
  • Cổng 443 nếu bạn muốn cấu hình thêm DNS over HTTPS (DoH).
  • Đã cấu hình chứng chỉ SSL/TLS hợp lệ (ví dụ từ Let's Encrypt) cho tên miền của bạn (ví dụ: dns.company.com).

Bước 2: Cài đặt và cấu hình Unbound

Trước tiên, chúng ta sẽ cài đặt Unbound để làm nhiệm vụ phân giải đệ quy tại local. Chạy lệnh sau để cài đặt:sudo apt update && sudo apt install unbound -y

Sau khi cài đặt, tiến hành chỉnh sửa file cấu hình /etc/unbound/unbound.conf với các tham số tối ưu bảo mật sau:

server:
    interface: 127.0.0.1
    port: 5353
    access-control: 127.0.0.0/8 allow
    chroot: ""
    
    # Bảo mật và DNSSEC
    auto-trust-anchor-file: "/var/lib/unbound/root.key"
    harden-glue: yes
    harden-dnssec-stripped: yes
    use-caps-for-id: no
    
    # Tối ưu hiệu năng
    num-threads: 2
    msg-cache-size: 64m
    rrset-cache-size: 128m
    infra-cache-numhosts: 10000

Cấu hình trên ép Unbound chỉ lắng nghe tại giao diện local (127.0.0.1) trên cổng 5353, kích hoạt tính năng xác thực DNSSEC chống giả mạo thông tin DNS.

Bước 3: Cài đặt và cấu hình CoreDNS làm Gateway mã hóa

Tải phiên bản CoreDNS mới nhất từ GitHub chính thức và giải nén vào thư mục /usr/local/bin/. Sau đó, tạo file cấu hình mang tên Corefile tại thư mục /etc/coredns/Corefile:

tls://. {
    tls /etc/letsencrypt/live/[dns.company.com/fullchain.pem](https://dns.company.com/fullchain.pem) /etc/letsencrypt/live/[dns.company.com/privkey.pem](https://dns.company.com/privkey.pem)
    
    # Chuyển tiếp truy vấn an toàn đến Unbound local
    forward . 127.0.0.1:5353 {
        max_fails 3
    }
    
    # Ghi nhận nhật ký và tối ưu hóa bộ nhớ đệm
    log
    errors
    cache 3600
}

Trong cấu hình này, CoreDNS sẽ lắng nghe các kết nối DNS over TLS (DoT) từ bên ngoài hệ thống thông qua cổng tiêu chuẩn 853, sử dụng chứng chỉ mã hóa SSL của doanh nghiệp, sau đó chuyển tiếp (forward) truy vấn một cách an toàn tới Unbound ở cổng 5353 để xử lý.

Kiểm tra và đánh giá hiệu năng hệ thống

Sau khi khởi động cả hai dịch vụ, doanh nghiệp có thể tiến hành kiểm tra hệ thống từ máy trạm (Client) bằng công cụ kdig hoặc dig để đảm bảo dữ liệu đã được mã hóa chính xác:

kdig @dns.company.com +tls google.com

Nếu hệ thống trả về kết quả chính xác cùng trạng thái kết nối TLS thành công, bạn đã hoàn tất thiết lập. Để kiểm tra khả năng chống rò rỉ dữ liệu và xác thực DNSSEC, hãy truy cập các trang web như DNSLeakTest hoặc AmIWithDNSSEC. Kết quả hiển thị sẽ là IP của chính VPS doanh nghiệp thay vì IP của các ISP thông thường, chứng minh dữ liệu hoàn toàn được bảo mật.

Lời kết và khuyến nghị triển khai cho doanh nghiệp

Việc triển khai mô hình CoreDNS + Unbound trên VPS không chỉ giúp bảo vệ thông tin mật, chặn đứng nguy cơ giám sát từ các bên thứ ba, mà còn mang lại khả năng làm chủ hoàn toàn hạ tầng số cho doanh nghiệp. Để hệ thống vận hành ổn định, doanh nghiệp nên cấu hình CoreDNS thành một dịch vụ hệ thống (systemd service) tự khởi động cùng OS, đồng thời thiết lập cơ chế tự động gia hạn chứng chỉ SSL Let's Encrypt định kỳ.

Xây dựng hệ thống DNS mã hóa an toàn với CoreDNS và Unbound trên VPS cho Doanh nghiệp | DPTCloud