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

0 11

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.

Leave A Reply

Your email address will not be published.