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

bởi | LPI, Ubuntu

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

Khái niệm

– Domain Name System (DNS): phân giải tên miền thành địa chỉ IP và ngược lại- DNS sử dụng UDP/53 va TCP/53
+ UDP/53: port dùng để phục vụ các client để phân giải tên miền
+ TCP/53: port dùng để thực DNS zone transfer file giữa các DNS Server
– Các record cơ bản của DNS Server
+ Record A: phân giải tên miền sang IPv4
+ Record AAAA: phân giải tên miền sang IPv6
+ Record PTR: phân giải IP sang tên miền
+ Record NS: xác định DNS Server ở trong domain
+ Record MX: xác định Mail Server ở trong domain
+ Record CNAME: định nghĩa “bí danh” ứng với tên miền
+ Record SOA (Start of Authority): máy chủ có trách nhiệm với tên miền.

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

Dải mạng External Network là: 192.168.64.0/29. Tên miền là [dinhducthanh.com]. Bài lab này ví dụ việc cài đặt DNS trên môi trường internet, nhằm cung cấp dịch vụ DNS server cho khách hàng.

Muốn cấu hình Name Server cho dải mạng nội bộ tham khảo bài viết: Cài đặt DNS Server trên Ubuntu 22.04: Internal Network

Chuẩn bị

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

root@localhost:~# vi /etc/netplan/01-netcfg.yaml

Cài đặt DNS Server trên Ubuntu 22.04: External Network - Chuẩn bị
– Đổ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

Install BIND

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

Cấu hình BIND cho External Network

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

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

– Cấu hình named.conf.options

root@dns:~# vi /etc/bind/named.conf.options
options {
        directory "/var/cache/bind";

.....
.....

        # add : nhận truy vấn từ all hosts
        allow-query { any; };
        # 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 : allow recursion
        recursion yes;

        //=======================================================================
        // 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ài đặt DNS Server trên Ubuntu 22.04: External Network
– Tạo file External Network

root@dns:~# vi /etc/bind/named.conf.external-zones
# tạo mới
# add zones cho network và domain name của bạn
zone "dinhducthanh.com" IN {
        type master;
        file "/etc/bind/dinhducthanh.com.wan";
        allow-update { none; };
};
zone "0.64.168.192.in-addr.arpa" IN {
        type master;
        file "/etc/bind/0.64.168.192.db";
        allow-update { none; };
};

Cài đặt DNS Server trên Ubuntu 22.04: External Network - Tạo file External Network
+ Về cách viết phần [*.*.*.*.in-addr.arpa], hãy viết ngược lại địa chỉ mạng của bạn như sau:
# Dải mạng 192.168.64.0/29
# địa chỉ mạng -> 192.168.64.0
# phạm vi mạng -> 192.168.64.0 – 192.168.64.7
# cách viết -> 0.64.168.192.in-addr.arpa

– 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"

Cấu hình Zone Files

– Sau khi Cấu hình BIND cho External Network 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
– 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
– Restart BIND to apply changes.

root@dns:~# systemctl restart named

– Kiểm tra port 53

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

Cài đặt DNS Server trên Ubuntu 22.04: External Network - grep port 53

Kiểm tra

Kiểm tra truy vấn DNS trên server và client

Kiểm tra trên DNS server

– Thay đổi cài đặt DNS để kiểm tra truy vấn DNS.

root@dns:~# vi /etc/netplan/01-netcfg.yaml
# Thay đổi địa chỉ namserver
    nameservers:
        addresses: [192.168.64.3]
root@dns:~# netplan apply

– Kiểm tra truy vấn Name and Address. Nếu [ANSWER SECTION] như kết quả là OK.

root@dns:~# dig dns.dinhducthanh.com.
....
;; ANSWER SECTION:
dns.dinhducthanh.com.   0       IN      A       192.168.64.3
....
root@dns:~# dig -x 192.168.64.3
....
;; ANSWER SECTION:
3.64.168.192.in-addr.arpa. 0    IN      PTR     dns.dinhducthanh.com.
3.64.168.192.in-addr.arpa. 0    IN      PTR     dns.
3.64.168.192.in-addr.arpa. 0    IN      PTR     dns.local.
....

3 Kiểm tra truy vấn DNS trên client

– Máy window cài đặt mạng như sau
Cài đặt DNS Server trên Ubuntu 22.04: External Network - Set windows client
– Sử dụng CMD để truy vấn DNS. Do lab sử dụng IP private nên phần truy vấn PTR ở trên windows client không chính xác.

C:\Users\client>nslookup
Default Server:  UnKnown
Address:  192.168.64.3

> dns.dinhducthanh.com
Server:  UnKnown
Address:  192.168.64.3

Name:    dns.dinhducthanh.com
Address:  192.168.64.3

> dinhducthanh.com
Server:  UnKnown
Address:  192.168.64.3

Name:    dinhducthanh.com
Address:  192.168.64.3

> www.dinhducthanh.com
Server:  UnKnown
Address:  192.168.64.3

Name:    www.dinhducthanh.com
Address:  192.168.64.4

> set type=NS
> dinhducthanh.com
Server:  UnKnown
Address:  192.168.64.3

dinhducthanh.com        nameserver = dns.dinhducthanh.com
dns.dinhducthanh.com    internet address = 192.168.64.3
> set type=MX
> dinhducthanh.com
Server:  UnKnown
Address:  192.168.64.3

dinhducthanh.com        MX preference = 10, mail exchanger = mail.dinhducthanh.com
mail.dinhducthanh.com   internet address = 192.168.64.4
> set type=PTR
> 192.168.64.3
Server:  UnKnown
Address:  192.168.64.3

*** UnKnown can't find 3.64.168.192.in-addr.arpa.: Non-existent domain
> 8.8.8.8
Server:  UnKnown
Address:  192.168.64.3

Non-authoritative answer:
8.8.8.8.in-addr.arpa    name = dns.google
>

Tham khảo thêm

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

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

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