Back to articles
Technology Insight

Xây dựng Hệ thống DNS Mã hóa Cho Doanh nghiệp: Cấu hình CoreDNS và Unbound trên VPS chống rò rỉ dữ liệu ISP

May 26, 2026

1. Đặt vấn đề: Tại sao DNS truyền thống là "gót chân Achilles" của bảo mật doanh nghiệp?

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. Dù các tổ chức đã đầu tư mạnh mẽ vào hệ thống tường lửa (Firewall), mạng riêng ảo (VPN) hay các giải pháp mã hóa dữ liệu cao cấp, một lỗ hổng nghiêm trọng thường bị bỏ qua: hệ thống phân giải tên miền (DNS) truyền thống.

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) qua cổng UDP/53. Điều này có nghĩa là các nhà cung cấp dịch vụ Internet (ISP) hoặc bất kỳ kẻ tấn công nào nằm trên đường truyền đều có thể dễ dàng đánh chặn, theo dõi và thu thập toàn bộ lịch sử duyệt web của doanh nghiệp. Nguy hiểm hơn, doanh nghiệp có thể đối mặt với nguy cơ tấn công giả mạo DNS (DNS Spoofing) hoặc đầu độc bộ nhớ đệm (DNS Cache Poisoning), dẫn người dùng đến các website lừa đảo nhằm đánh cắp thông tin tài chính và tài sản trí tuệ.

Để giải quyết triệt để bài toán này, việc tự vận hành một hệ thống DNS mã hóa riêng biệt trên máy chủ ảo (VPS) 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 để tạo nên một lá chắn bảo mật DNS toàn diện cho doanh nghiệp.

2. Giải pháp kiến trúc: Sự kết hợp hoàn hảo giữa CoreDNS và Unbound

Mô hình lý tưởng được các chuyên gia bảo mật khuyến nghị là cấu hình chuỗi phân giải (DNS Chaining) kết hợp ưu điểm của cả hai phần mềm mã nguồn mở hàng đầu hiện nay:

  • CoreDNS (Frontend): Đóng vai trò là cổng tiếp nhận truy vấn từ các thiết bị khách (Client). Với kiến trúc dựa trên các plugin linh hoạt, CoreDNS chịu trách nhiệm tiếp nhận và xử lý các giao thức mã hóa hiện đại như DNS over HTTPS (DoH) hoặc DNS over TLS (DoT), sau đó chuyển tiếp truy vấn an toàn vào hệ thống nội bộ.
  • Unbound (Backend): Đóng vai trò là bộ phân giải đệ quy (Recursive Resolver) và quản lý bộ nhớ đệm (Caching). Unbound sẽ nhận yêu cầu từ CoreDNS, thực hiện xác thực bảo mật thông qua DNSSEC, tự động truy vấn trực tiếp từ các Root Servers để tìm ra kết quả chính xác nhất mà không phụ thuộc vào bất kỳ máy chủ DNS trung gian nào của ISP.

Kiến trúc này đảm bảo rằng toàn bộ lưu lượng DNS từ doanh nghiệp ra ngoài Internet đều được mã hóa hoàn toàn, ngăn chặn tuyệt đối khả năng nghe lén và rò rỉ dữ liệu từ phía ISP.

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

Bước 1: Chuẩn bị môi trường hệ thống

Trước khi bắt đầu, bạn cần chuẩn bị một máy chủ VPS chạy hệ điều hành Linux (khuyến nghị Ubuntu Server 22.04 LTS hoặc mới hơn) có địa chỉ IP tĩnh công khai. Hãy đảm bảo các cổng sau đã được mở trên Firewall:

  • Cổng 853 (cho DoT) và cổng 443 (nếu sử dụng DoH).
  • Cổng 53 (chỉ mở cho các dải IP nội bộ hoặc IP VPN của doanh nghiệp nếu cần phân giải truyền thống).

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

Đầu tiên, chúng ta tiến hành cài đặt Unbound từ kho lưu trữ chính thức của hệ thống:

sudo apt update
sudo apt install unbound -y

Tiếp theo, tạo tệp cấu hình tối ưu cho Unbound tại đường dẫn /etc/unbound/unbound.conf.d/enterprise-dns.conf với các tham số bảo mật chuyên sâu:

server:
    interface: 127.0.0.1
    port: 5353
    access-control: 127.0.0.0/8 allow
    
    # Tối ưu hóa hiệu năng và bảo mật
    do-ip4: yes
    do-udp: yes
    do-tcp: yes
    
    # Chống rò rỉ và tăng cường bảo mật
    hide-identity: yes
    hide-version: yes
    harden-glue: yes
    harden-dnssec-stripped: yes
    use-caps-for-id: yes
    edns-buffer-size: 1232
    prefetch: yes
    num-threads: 2
    
    # Kích hoạt xác thực DNSSEC
    auto-trust-anchor-file: "/var/lib/unbound/root.key"
Lưu ý: Chúng ta cấu hình Unbound lắng nghe trên giao diện Localhost (127.0.0.1) tại cổng phi tiêu chuẩn 5353 để tránh xung đột và đảm bảo chỉ có CoreDNS mới có quyền truy cập trực tiếp vào nó.

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

sudo systemctl restart unbound
sudo systemctl enable unbound

Bước 3: Cài đặt và cấu hình CoreDNS (Frontend Gateway)

Tải xuống 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 hệ thống:

wget [https://github.com/coredns/coredns/releases/download/v1.11.1/coredns_1.11.1_linux_amd64.tgz](https://github.com/coredns/coredns/releases/download/v1.11.1/coredns_1.11.1_linux_amd64.tgz)
tar -xzvf coredns_1.11.1_linux_amd64.tgz
sudo mv coredns /usr/local/bin/

Tạo tệp cấu hình chính Corefile tại /etc/coredns/Corefile. Cấu hình này thiết lập CoreDNS tiếp nhận kết nối bảo mật qua giao thức DoT (DNS over TLS) bằng chứng chỉ SSL/TLS doanh nghiệp, sau đó chuyển tiếp (forward) truy vấn đến Unbound:

tls://. {
    tls /etc/letsencrypt/live/[dns.yourdomain.com/fullchain.pem](https://dns.yourdomain.com/fullchain.pem) /etc/letsencrypt/live/[dns.yourdomain.com/privkey.pem](https://dns.yourdomain.com/privkey.pem)
    
    # Chuyển tiếp truy vấn đến Unbound mã hóa nội bộ
    forward . 127.0.0.1:5353 {
        policy random
    }
    
    # Kích hoạt bộ nhớ đệm và ghi nhật ký giảm thiểu
    cache 3600
    log
    errors
}

Để hệ thống hoạt động ổn định, hãy thiết lập CoreDNS chạy như một dịch vụ hệ thống (systemd service) thông qua tệp cấu hình /etc/systemd/system/coredns.service, sau đó kích hoạt dịch vụ bằng lệnh sudo systemctl enable --now coredns.

4. Kiểm tra, đánh giá hiệu năng và khả năng chống rò rỉ dữ liệu

Sau khi hoàn tất cấu hình, doanh nghiệp cần tiến hành kiểm thử nghiêm ngặt để đảm bảo hệ thống vận hành đúng kỳ vọng. Sử dụng công cụ kdig hoặc drill để kiểm tra tính năng mã hóa TLS:

kdig @ +tls google.com

Nếu kết quả trả về mã phản hồi NOERROR cùng với thông tin chứng chỉ TLS hợp lệ, hệ thống đã hoạt động chính xác. Để kiểm tra toàn diện khả năng chống rò rỉ dữ liệu, hãy truy cập vào các trang web chuyên dụng như DNSLeakTest.com từ thiết bị khách đã cấu hình DNS mới. Hệ thống được coi là an toàn tuyệt đối khi danh sách kết quả chỉ hiển thị duy nhất địa chỉ IP của máy chủ VPS doanh nghiệp, hoàn toàn không xuất hiện bất kỳ máy chủ nào của ISP địa phương.

5. Kết luận và Khuyến nghị vận hành doanh nghiệp

Việc triển khai mô hình CoreDNS + Unbound trên VPS không chỉ là giải pháp kỹ thuật, mà là một chiến lược bảo mật thiết yếu giúp bảo vệ tài sản số của doanh nghiệp. Hệ thống này giúp loại bỏ hoàn toàn nguy cơ bị ISP thu thập hành vi duyệt web, ngăn chặn các cuộc tấn công định hướng luồng dữ liệu độc hại, đồng thời mang lại quyền kiểm soát tuyệt đối hạ tầng Internet cho tổ chức.

Để hệ thống vận hành ổn định lâu dài, doanh nghiệp cần lưu ý định kỳ cập nhật phiên bản mới cho cả CoreDNS và Unbound nhằm vá các lỗ hổng bảo mật phát sinh, thiết lập cơ chế tự động gia hạn chứng chỉ SSL/TLS (như Let's Encrypt), và cấu hình các quy tắc tường lửa nghiêm ngặt để hạn chế tối đa các cuộc tấn công từ chối dịch vụ (DDoS) nhắm vào hạ tầng DNS của mình.

Xây dựng Hệ thống DNS Mã hóa Cho Doanh nghiệp: Cấu hình CoreDNS và Unbound trên VPS chống rò rỉ dữ liệu ISP | DPTCloud