پرش به محتوا

DNS داخلی با BIND روی Rocky و AlmaLinux

سرور named را نصب کنید، فقط به شبکه‌ی داخلی اجازه‌ی پرس‌وجو بدهید، zone مستقیم و معکوس بسازید و آن را با SELinux و firewalld سازگار کنید.

Rocky Linux 10سطح: متوسطبرای: Rocky Linux 10، AlmaLinux 10، CentOS Stream 10، Rocky Linux 9، AlmaLinux 9به‌روزرسانی: ۱۷ آبان ۱۴۰۵

در این آموزش سرور ns1 با IP 192.168.10.5 برای zone داخلی corp.sahor.ir مرجع است و درخواست‌های دیگر را برای کلاینت‌های شبکه‌ی 192.168.10.0/24 resolve می‌کند.

۱. نصب

bash
sudo dnf install -y bind bind-utils

۲. تنظیمات اصلی

در /etc/named.conf بخش options را این‌طور تغییر دهید (بقیه‌ی خطوط پیش‌فرض بمانند):

acl internal { 127.0.0.1; 192.168.10.0/24; };

options {
    listen-on port 53 { 127.0.0.1; 192.168.10.5; };
    listen-on-v6 { none; };
    directory "/var/named";
    allow-query { internal; };
    recursion yes;
    allow-recursion { internal; };
    forwarders { 1.1.1.1; 9.9.9.9; };
    dnssec-validation auto;
    version "not disclosed";
    ...
};

recursion فقط برای internal باز است. سرور DNS باز روی اینترنت ابزار حمله‌ی amplification می‌شود.

zoneها را در انتهای همان فایل تعریف کنید:

zone "corp.sahor.ir" IN {
    type primary;
    file "corp.sahor.ir.zone";
    allow-update { none; };
};

zone "10.168.192.in-addr.arpa" IN {
    type primary;
    file "192.168.10.rev";
    allow-update { none; };
};

در BIND 9.16 و جدیدتر primary هم‌معنی master قدیمی است.

۳. فایل‌های zone

/var/named/corp.sahor.ir.zone:

$TTL 3600
@   IN SOA ns1.corp.sahor.ir. hostmaster.corp.sahor.ir. (
        2026110801 ; serial (YYYYMMDDnn)
        3600       ; refresh
        900        ; retry
        1209600    ; expire
        300 )      ; negative TTL
    IN NS  ns1.corp.sahor.ir.
ns1     IN A   192.168.10.5
gw      IN A   192.168.10.1
web01   IN A   192.168.10.21
portal  IN CNAME web01

/var/named/192.168.10.rev:

$TTL 3600
@   IN SOA ns1.corp.sahor.ir. hostmaster.corp.sahor.ir. ( 2026110801 3600 900 1209600 300 )
    IN NS  ns1.corp.sahor.ir.
5   IN PTR ns1.corp.sahor.ir.
1   IN PTR gw.corp.sahor.ir.
21  IN PTR web01.corp.sahor.ir.

مالکیت و برچسب SELinux را درست کنید (named فقط فایل‌هایی با نوع named_zone_t را می‌خواند):

bash
sudo chown root:named /var/named/corp.sahor.ir.zone /var/named/192.168.10.rev
sudo chmod 640 /var/named/corp.sahor.ir.zone /var/named/192.168.10.rev
sudo restorecon -v /var/named/*.zone /var/named/*.rev

۴. بررسی و راه‌اندازی

bash
sudo named-checkconf
sudo named-checkzone corp.sahor.ir /var/named/corp.sahor.ir.zone
sudo named-checkzone 10.168.192.in-addr.arpa /var/named/192.168.10.rev
sudo systemctl enable --now named
sudo firewall-cmd --permanent --add-service=dns && sudo firewall-cmd --reload

۵. آزمایش

bash
dig @192.168.10.5 portal.corp.sahor.ir +short
dig @192.168.10.5 -x 192.168.10.21 +short
dig @192.168.10.5 example.com +short

هر بار zone را ویرایش می‌کنید، serial را یکی بالا ببرید و بارگذاری مجدد کنید:

bash
sudo rndc reload corp.sahor.ir
sudo journalctl -u named -n 20 --no-pager