HomeLinuxRHEL\CentOSHướng dẫn Cài đặt BIND 9 trên CentOS 7

Hướng dẫn Cài đặt BIND 9 trên CentOS 7

by Quốc Cường
509 views
Mục lục

    Giới thiệu sơ lược

    BIND (Berkeley Internet Name Domain) là một phần mềm hệ thống máy chủ tên miền cơ bản và phổ biến nhất hiện nay. BIND được sử dụng trên hầu hết các máy chủ phân giải tên miền trên toàn thế giới.

    Cài đặt BIND 9

    Hướng Dẫn Cài Đặt BIND 9 Trên CentOS 7

    Trong ví dụ này tôi sử dụng 1 con VPS với địa chỉ IP là 172.10.10.20

    yum update -y
    yum -y install bind bind-utils

    Sau khi cài đặt xong các bạn chạy lệnh kiểm tra:

    # named -v
    BIND 9.11.4-P2-RedHat-9.11.4-26.P2.el7_9.5 (Extended Support Version) <id:7107deb>

    Phân quyền cho tập tin cấu hình name.conf

    chgrp named -R /var/named
    chown -v root:named /etc/named.conf

    Chỉnh sửa cấu hình named.conf

    vi /etc/named.conf
    options {
            listen-on port 53 { 127.0.0.1; 172.10.10.20; }; # điền IP của VPS
            listen-on-v6 port 53 { ::1; };
    
            # Thư mục service làm việc
            directory       "/var/named";
            # Thư mục cache
            dump-file       "/var/named/data/cache_dump.db";
            statistics-file "/var/named/data/named_stats.txt";
            memstatistics-file "/var/named/data/named_mem_stats.txt";
            recursing-file  "/var/named/data/named.recursing";
            secroots-file   "/var/named/data/named.secroots";
            # Cho phép query DNS từ dải IP nào hoặc tất cả các dải
            allow-query     { localhost; 172.10.10.0/24;};
            # transfer range ( điều chỉnh nếu có Secondary DNS)
            # allow-transfer      { localhost; 10.0.0.0/24; };
    
            /*
             - If you are building an AUTHORITATIVE DNS server, do NOT enable recursion.
             - If you are building a RECURSIVE (caching) DNS server, you need to enable
               recursion.
             - If your recursive DNS server has a public IP address, you MUST enable access
               control to limit queries to your legitimate users. Failing to do so will
               cause your server to become part of large scale DNS amplification
               attacks. Implementing BCP38 within your network would greatly
               reduce such attack surface
            */        recursion yes;
    
    #       dnssec-enable yes;
    #       dnssec-validation yes;
            dnssec-enable no;
            dnssec-validation no;
    
            /* Path to ISC DLV key */        bindkeys-file "/etc/named.iscdlv.key";
    
            managed-keys-directory "/var/named/dynamic";
    
            pid-file "/run/named/named.pid";
            session-keyfile "/run/named/session.key";
    };
    
    logging {
            channel default_debug {
                    file "data/named.run";
                    severity dynamic;
            };
    };
    
    zone "." IN {
            type hint;
            file "named.ca";
    };
    
    include "/etc/named.rfc1912.zones";
    include "/etc/named.root.key";
    
    #Thêm bên dưới phần cấu hình Zone forward và Zone reverse, giả định là domain "systuts.net":
    
    zone "sysuts.net" IN {
    type master;
    file "systuts.fwd.zone";
    # đường dẫn tuyệt đối hoặc tương đối
    allow-update { none; };
    };
    
    zone "4.16.172.in-addr.arpa" IN {
    type master;
    file "systuts.rev.zone";
    allow-update { none; };
    };

    Tiếp theo chúng ta tiến hành tạo zone forward

    vi cat /var/named/systuts.fwd.zone
    $TTL 86400
    @       IN SOA  masterdns.systuts.net.     root.systuts.net. 
                                      2021082501    ; serial
                                            3600    ; refresh
                                            1800    ; retry
                                          604800    ; expire
                                           86400 )  ; minimum
    
    ; Name server's
    
    @           IN      NS      masterdns.systuts.net.
    
    ; Name server hostname to IP resolve.
    
    @           IN      A       172.25.10.221
    
    ; Hosts in this Domain
    
    @           IN      A       172.25.10.221
    masterdns   IN      A       172.25.10.221
    a           IN      A       172.25.10.222
    mail        IN      A       172.25.10.222
    b           IN      A       172.25.10.224
    ; mail server
    @           IN      MX 10   mail
    
    ;CNAME
    www         IN      CNAME   a
    
    ;TXT
    @           IN      TXT     "Day la ban ghi TXT"

    Tạo reverse zone (bản ghi ngược PTR)

    vi /var/named/systuts.rev.zone 
    $TTL 86400
    @       IN SOA  masterdns.systuts.net. root.systuts.net. (
                                    2021082502      ; serial
                                          3600      ; refresh
                                          1800      ; retry
                                        604800      ; expire
                                         86400 )    ; minimum
    
    ; Name server's
    
    @               IN      NS      masterdns.systuts.net.
    
    ; Name server hostname to IP resolve.
    
    masterdns       IN      A       172.25.10.221
    
    ;Hosts in Domain 
    
    221             IN      PTR   masterdns.systuts.net.
    222             IN      PTR   a.systuts.net.
    223             IN      PTR   b.systuts.net.

    Phần quyền cho reverse zone

    sudo chgrp named /var/named/systuts.fwd.zone
    sudo chgrp named /var/named/systuts.rev.zone

    Khởi động dịch vụ DNS

    systemctl start named 
    systemctl enable named

    Cấp quyền tường lửa cho phép truy cập

    firewall-cmd --add-service=dns --permanent 
    firewall-cmd --reload 

    Truy vấn bản ghi từ DNS Server

    Trước tiên chúng ta cần thay đổi nameserver, chạy lệnh:

    vi /etc/resolv.conf

    Sửa thành địa chỉ IP Server của bạn, trong ví dụ này IP Server của tôi là 172.10.10.20:

    nameserver 172.10.10.20

    Sau đó lưu lại và chạy lệnh query dns để kiểm tra, cú pháp: dig [bản ghi] [tên miền]

    [root@master ~]# dig a systuts.net
    
    ; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.el7_9.5 <<>> a systuts.local
    ;; global options: +cmd
    ;; Got answer:
    ;; WARNING: .local is reserved for Multicast DNS
    ;; You are currently testing what happens when an mDNS query is leaked to DNS
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 3805
    ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2
    
    ;; OPT PSEUDOSECTION:
    ; EDNS: version: 0, flags:; udp: 4096
    ;; QUESTION SECTION:
    ;systuts.net.                 IN      A
    
    ;; ANSWER SECTION:
    systuts.net.          86400   IN      A       172.25.10.221
    
    ;; AUTHORITY SECTION:
    systuts.net.          86400   IN      NS      masterdns.systuts.net.
    
    ;; ADDITIONAL SECTION:
    masterdns.systuts.net. 86400  IN      A       172.25.10.221
    
    ;; Query time: 0 msec
    ;; SERVER: 172.10.10.20#53(172.10.10.20)
    ;; WHEN: Wed Aug 25 17:07:24 +07 2021
    ;; MSG SIZE  rcvd: 98
    

    Tùy chọn chroot

    Mục đích là để bảo mật an toàn cho DNS Server bằng cách cài đặt gói bind-chroot nhằm cô lập các file liên quan đến service BIND 9 với file system

    yum -y install bind-chroot
    /usr/libexec/setup-named-chroot.sh /var/named/chroot on

    Tắt service named

    systemctl stop named 
    systemctl disable named

    Bật service named chroot

    systemctl start named-chroot 
    systemctl enable named-chroot 

    Verify lại các zones đã tạo

    [root@master ~]# named-checkzone systuts.net/var/named/systuts.rev.net
    zone systuts.net/IN: loaded serial 2021082502
    OK
    [root@master ~]# named-checkzone systuts.net/var/named/systuts.fwd.zone 
    zone systuts.net/IN: loaded serial 2021082501
    OK

    Chúc các bạn thành công.

    You may also like

    Leave a Comment