پرش به محتوا

DNS بازگشتی و کش سریع با Unbound

یک resolver محلی با اعتبارسنجی DNSSEC برای شبکه‌ی سازمان راه بیندازید، رکوردهای داخلی تعریف کنید و دسترسی را به شبکه‌ی خودتان محدود کنید.

Debian 13سطح: متوسطبرای: Debian 13، Debian 12به‌روزرسانی: ۱۶ آبان ۱۴۰۵

Unbound یک DNS بازگشتی سبک و امن است. برخلاف BIND که برای میزبانی zone مناسب‌تر است، Unbound برای «پاسخ دادن به درخواست‌های کاربران و کش کردن» بهینه شده است.

۱. نصب

bash
sudo apt update
sudo apt install -y unbound

۲. پیکربندی

bash
sudo nano /etc/unbound/unbound.conf.d/corp.conf
yaml
server:
    interface: 0.0.0.0
    access-control: 127.0.0.0/8 allow
    access-control: 192.168.10.0/24 allow
    access-control: 0.0.0.0/0 refuse

    hide-identity: yes
    hide-version: yes
    qname-minimisation: yes
    prefetch: yes
    cache-min-ttl: 60

    # رکوردهای داخلی
    local-zone: "corp.lan." static
    local-data: "dc01.corp.lan.  IN A 192.168.10.10"
    local-data: "files.corp.lan. IN A 192.168.10.20"
    local-data-ptr: "192.168.10.10 dc01.corp.lan"

اگر می‌خواهید درخواست‌ها به یک DNS بالادستی مشخص فرستاده شوند (به‌جای پرس‌وجو از سرورهای ریشه):

yaml
forward-zone:
    name: "."
    forward-addr: 1.1.1.1
    forward-addr: 9.9.9.9

۳. بررسی و اجرا

bash
sudo unbound-checkconf
sudo systemctl restart unbound

فایروال: پورت 53 (UDP و TCP) را فقط برای شبکه‌ی داخلی باز کنید.

۴. آزمایش

bash
dig @127.0.0.1 dc01.corp.lan +short
dig @127.0.0.1 debian.org +dnssec | grep -E 'flags:.* ad'

پرچم ad یعنی پاسخ با DNSSEC اعتبارسنجی شده است.

۵. آمار

bash
sudo unbound-control stats_noreset | grep -E 'total.num.queries|cachehits'