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
– Đổ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; }; };
– 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; }; };
+ 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
– 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.
– Restart BIND to apply changes.
root@dns:~# systemctl restart named
– Kiểm tra port 53
root@dns:~# netstat -ltunp | grep 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
– 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 >