Cài đặt DNS Server trên Ubuntu 22.04: Internal Network và External Network

bởi | LPI, Ubuntu

Home » LPI » Ubuntu » Cài đặt DNS Server trên Ubuntu 22.04: Internal Network và External Network

Chuẩn bị bài lab

Bài lab này kết hợp 2 bài lab: Cài đặt DNS Server trên Ubuntu 22.04: Internal NetworkCài đặt DNS Server trên Ubuntu 22.04: External Network. Để cài name server cho dải mạng nội bộ: 172.16.200.0/24. Tên miền là [dinhducthanh.local]. Và dải mạng WAN: 192.168.64.0/29. Tên miền là [dinhducthanh.com].

– Cấu hình 2 card mạng cho server

root@localhost:~# cat /etc/netplan/01-netcfg.yaml
network:
  ethernets:
    ens33:
      dhcp4: false
      addresses: [192.168.64.3/29]
      routes:
        - to: default
          via: 192.168.64.2
          metric: 100
      nameservers:
        addresses: [192.168.64.3,8.8.8.8]
      dhcp6: false
  version: 2

network:
  ethernets:
    ens37:
      dhcp4: false
      addresses: [172.16.200.2/24]
      nameservers:
         addresses: [172.16.200.2]
      dhcp6: false
  version: 2

– Đổi hostname, time zone

root@localhost:~# hostnamectl set-hostname dns.dinhducthanh.com
root@localhost:~# timedatectl set-timezone Asia/Ho_Chi_Minh
root@localhost:~# reboot
root@dns:~# hostname
dns.dinhducthanh.com

Cài đặt và cấu hình BIND

Install BIND

root@dns:~# apt -y install bind9 bind9utils

Cấu hình BIND

– Cấu hình named.conf khai báo Internal Network và External Network

root@dns:~# vi /etc/bind/named.conf
include "/etc/bind/named.conf.options";
include "/etc/bind/named.conf.local";
# comment out
#include "/etc/bind/named.conf.default-zones";
# thêm
include "/etc/bind/named.conf.internal-zones";
include "/etc/bind/named.conf.external-zones";

Cấu hình named.conf khai báo Internal Network và External Network
– Cấu hình named.conf.options

root@dns:~# vi /etc/bind/named.conf.options
# add: nhập ACL cho local network
acl internal-network {
        172.16.200.0/24;
};

options {
        directory "/var/cache/bind";

.....
.....

        # add local network được đặt trên phần [acl] phía trên
        # network range bạn cho phép nhận truy vấn từ máy chủ
        allow-query { localhost; internal-network; };
        # network range bạn cho phép chuyển các zone files cho clients
        # add secondary DNS servers nếu có
        allow-transfer { localhost; };
        # add phạm vi truy vấn bạn cho phép truy vấn
        allow-recursion { localhost; internal-network; };

        //=======================================================================
        // If BIND logs error messages about the root key being expired,
        // you will need to update your keys.  See https://www.isc.org/bind-keys
        //=======================================================================

        dnssec-validation auto;

        # nếu không lắng nghe IPV6, đổi [any] thành [none]
        listen-on-v6 { any; };
};

Cấu hình named.conf.options
– Tạo file Internal Network

root@dns:~# vi /etc/bind/named.conf.internal-zones
view "internal" {
        # set internal network zones
        match-clients {
                localhost;
                internal-network;
        };
        zone "dinhducthanh.local" {
                type master;
                file "/etc/bind/dinhducthanh.local.lan";
                allow-update { none; };
        };
        zone "200.16.172.in-addr.arpa" {
                type master;
                file "/etc/bind/200.16.172.db";
                allow-update { none; };
        };
        include "/etc/bind/named.conf.default-zones";
};

Tạo file Internal Network
– Tạo file External Network

root@dns:~# vi /etc/bind/named.conf.external-zones
view "external" {
        # khớp tất cả ngoại trừ các mục tiêu được xác định trên [match-clients] trên phần internal
        match-clients { any; };
        # allow mọi truy vấn
        allow-query { any; };
        # allow recursive queries
        recursion yes;
        zone "dinhducthanh.com" {
                type master;
                file "/etc/bind/dinhducthanh.com.wan";
                allow-update { none; };
        };
        zone "0.64.168.192.in-addr.arpa" {
                type master;
                file "/etc/bind/0.64.168.192.db";
                allow-update { none; };
        };
};

Tạo file External Network
– nếu bạn không sử dụng IPv6 đồng thời chặn nhật ký liên quan đến IPv6, có thể thay đổi. set BIND chỉ sử dụng IPv4

root@dns:~# vi /etc/default/named
# add
OPTIONS="-u bind -4"

2 Cấu hình Zone Files

– Sau khi Cấu hình BIND xong. Bước tiếp theo cần cấu hình Zone Files.
– Tạo các file forward zone mà server phân giải IP address từ Domain name. Lưu ý không copy phần comment [#] vào cấu hình của file.

root@dns:~# vi /etc/bind/dinhducthanh.com.wan
$TTL 86400
@   IN  SOA     dns.dinhducthanh.com. root.dinhducthanh.com. (
        # Sử dụng serial number bất kỳ
        # recommended : [YYYYMMDDnn] (update date + number)
        2024051101  ;Serial
        3600        ;Refresh
        1800        ;Retry
        604800      ;Expire
        86400       ;Minimum TTL
)
        # xác định Name Server
        IN  NS      dns.dinhducthanh.com.
        # Xác định IP của Name Server
        IN  A       192.168.64.3
        # Xác định Mail Exchanger Server
        IN  MX 10   mail.dinhducthanh.com.

# Xác định từng IP address của từng hostname
dns     IN  A       192.168.64.3
www     IN  A       192.168.64.4
mail     IN  A       192.168.64.4

Cài đặt DNS Server trên Ubuntu 22.04: External Network- Tạo forward zone

root@dns:~# vi /etc/bind/dinhducthanh.local.lan
$TTL 86400
@   IN  SOA     dns.dinhducthanh.local. root.dinhducthanh.local. (
        # Sử dụng serial number bất kỳ
        # recommended : [YYYYMMDDnn] (update date + number)
        2024050901  ;Serial
        3600        ;Refresh
        1800        ;Retry
        604800      ;Expire
        86400       ;Minimum TTL
)
        # xác định Name Server
        IN  NS      dns.dinhducthanh.local.
        # Xác định IP của Name Server
        IN  A       172.16.200.2
        # Xác định Mail Exchanger Server
        IN  MX 10   dlp.srv.world.

# Xác định từng IP address của từng hostname
dns     IN  A       172.16.200.2
www     IN  A       172.16.200.3
mail     IN  A       172.16.200.2

Cài đặt DNS Server trên Ubuntu 22.04: Internal Network forward zone
– Tạo các file reverse zone mà server phân giải Domain name từ IP address. Lưu ý không copy phần comment [#] vào cấu hình của file.

root@dns:~# vi /etc/bind/0.64.168.192.db
$TTL 86400
@   IN  SOA     dns.dinhducthanh.com. root.dinhducthanh.com. (
        2024051101  ;Serial
        3600        ;Refresh
        1800        ;Retry
        604800      ;Expire
        86400       ;Minimum TTL
)
        # Xác định Name Server
        IN  NS      dns.dinhducthanh.com.

# Xác định từng hostname của từng IP address
3      IN  PTR     dns.dinhducthanh.com.
4      IN  PTR     www.dinhducthanh.com.
4      IN  PTR     mail.dinhducthanh.com.

Cài đặt DNS Server trên Ubuntu 22.04: External Network- Tạo reverse zone

root@dns:~# vi /etc/bind/200.16.172.db
$TTL 86400
@   IN  SOA     dns.dinhducthanh.local. root.dinhducthanh.local. (
        2024050901  ;Serial
        3600        ;Refresh
        1800        ;Retry
        604800      ;Expire
        86400       ;Minimum TTL
)
        # Xác định Name Server
        IN  NS      dns.dinhducthanh.local.

# Xác định từng hostname của từng IP address
2      IN  PTR     dns.dinhducthanh.local.
3      IN  PTR     www.dinhducthanh.local.
2      IN  PTR     mail.dinhducthanh.local.


– Restart BIND to apply changes.

root@dns:~# systemctl restart named

– Kiểm tra port 53

root@dns:~# netstat -ltunp | grep 53

Tham khảo thêm

Cài đặt ban đầu Ubuntu 22.04: Network Settings

Cài đặt ban đầu Ubuntu 22.04: Enable root user