Giáo trình Hệ điều hành Linux nâng cao
Trang 1DOMAIN NAME SYSTEM
Trang 2Nội dung
1 DNS LÀ GÌ?
2 CƠ CHẾ PHÂN GIẢI
3 CHỨNG NHẬN TÊN MIỀN
4 PHÂN LOẠI DOMAIN NAME SERVER
5 DELEGATION VÀ HOSTING DOMAIN
Trang 31 DNS LÀ GÌ?
Ban đầu do quy mô mạng ARPAnet còn nhỏ chỉ vài trăm máy, nên chỉ có một tập tin đơn HOSTS.TXT lưu thông tin về ánh xạ tên máy thành địa chỉ IP
Tuy nhiên khi quy mô mạng lớn hơn, việc sử dụng file HOSTS.TXT có các nhược đi m như sau:ểm như sau:
Lưu lượng mạng và máy chủ duy trì file HOSTS.TXT bị quá tải do hiệu ứng “cổ chai”
Xung đột tên: Không thể có 2 máy tính có cùng tên trong file HOSTS.TXT
Không đảm bảo sự toàn vẹn: việc duy trì 1 file trên mạng lớn rất khó khăn
Lưu ý: Trên máy Linux tập tin có tên là hosts nằm trong /etc
Trang 4Do đó, đã ra đời dịch vụ DNS (Domain Name Service) nhằm khắc phục các nhược điểm trên.
- DNS là 1 CSDL phân tán.
- DNS hoạt động theo mô hình Client-Server:
+ Server (Name Server): gọi là máy chủ phục vụ tên
+ Client (Resolver): gọi là trình phân giải tên
- DNS được thi hành như một giao thức tầng Application trong mô hình TCP/IP.
- DNS phân bổ theo cơ chế phân cấp tương tự như sự phân cấp của hệ thống tập tin Unix/Linux.
Hình vẽ mơ tả tên domain trong CSDL DNS so sánh với đường dẫn tuyệt đối của thư
mục trong hệ thống file UNIX (trang 9).
DNS LÀ GÌ? (tt)
Trang 5 CSDL của DNS là một cây đảo ngược.
Mỗi nút trên cây cũng lại là gốc của 1 cây con Chiều sâu của cây tối đa là 127 cấp Tên trên mỗi nút tối đa 63 ký tự
Mỗi cây con là một phân vùng con trong toàn bộ CSDL DNS gọi là Domain
Mỗi Domain có thể phân chia thành các phân vùng con nhỏ hơn gọi là các miền con Subdomian.
(Hình trang 10)
DNS LÀ GÌ? (tt)
Trang 6Địa chỉ tên miền (domain name) tổng quát:
host.subdomain.domain
+ host: tên máy.
+ subdomain: tên miền phụ.
+ domain (top-level-domain): tên miền chính.
Một số top-level-domain thông dụng:
.com : Các tổ chức, công ty thương mại.
.org : Các tổ chức phi lợi nhuận.
.net : Các trung tâm hỗ trợ về mạng.
.edu : Các tổ chức giáo dụng.
.gov : Các tổ chức thuộc chính phủ.
.
Ngoài ra mỗi nước có một top-level-domain riêng gồm 2 ký tự
VD: vn :Việt Nam, us :Mỹ, ca :Canada, kr : Hàn Quốc,
DNS LÀ GÌ? (tt)
Trang 7Cách phân bổ dữ liệu quản lý domain name:
Những root name server (.) quản lý những top-level domain trên Internet Tên máy và địa chỉ IP của những name server này được công bố cho mọi người biết.
DNS LÀ GÌ? (tt)
Trang 8Sự khác nhau giữa Zone và Domain:
(hình trang 17)
+ Zone: bao gồm một domain hay nhiều subdomain + Domain: gồm nhiều subdomain và zone.
DNS LÀ GÌ? (tt)
Trang 9 Phân giải tên thành IP.
Vai trò của Root name server: là máy chủ quản lý các name server ở mức top-level domain
Khi có truy vấn về một tên miền nào đó thì root name server phải cung cấp tên và địa chỉ IP của name server quản lý top-level domain mà tên miền này thuộc vào.
Hình vẽ dưới mô tả quá trình phân giải girigiri.gbrmpa.gov.au trên mạng
Internet hình trang 13
2 CƠ CHẾ PHÂN GIẢI.
Trang 10Có hai loại truy vấn:
+ Truy vấn đệ quy (recursive query) + Truy vấn tương tác
CƠ CHẾ PHÂN GIẢI (tt).
Trang 11 Phân giải IP thành tên.
Ánh xạ địa chỉ vào tên được dùng để diễn dịch các file log cho dễ đọc hơn Nó còn dùng trong 1 số trường hợp chứng thực trên hệ thống UNIX.
Để có thể phân giải tên máy của mộtù địa chỉ IP, trong không gian tên miền người ta bổ sung thêm một nhánh tên miền mà được lập chỉ mục theo địa chỉ IP Phần không gian này có tên là miền in- addr.arpa
Mỗi nút trong miền in-addr.arpa có nhãn là chỉ số thập phân của địa chỉ IP.
(Hình trang 15)
CƠ CHẾ PHÂN GIẢI (tt).
Trang 123 CHỨNG NHẬN TÊN MIỀN.
Fully Qualified Domain Name (FQDN):
Một tên miền đầy đủ của 1 nút chính là chuỗi tuần tự các tên gọi của nút hiện tại đi ngược lên nút gốc, mỗi tên gọi cách ra bởi dấu chấm Tên tuyệt đối cũng được xem là
tên miền đầy đủ đã được chứng nhận (fully
qualified domain name) FQDN
Trang 134 PHÂN LOẠI DOMAIN NAME SERVER
1 Primary Name Server: Mỗi miền phải có một Primary Name
Server Người quản trị DNS sẽ tổ chức những tập tin CSDL trên Primary Name Server Server nà có nhiệm vụ phân giải tất cá các máy trong miền hay zone.
2 Secondary Name Server: Secondary (hay slave) Name Server
được sử dụng để backup cho Primary Name Server Có thể có một hay nhiều Secondary Name Server Theo một chu kỳ, Secondary sẽ copy những file CSDL từ Primary Name Server
3 Caching Name Server: Caching Name Server không có bất kỳ
file CSDL nào Nó được sử dụng để phân giải tên máy trên những mạng ở xa thông qua những Name Server khác
Làm tăng tốc độ phân giải bằng cách sử dụng cache.
Giảm bớt gánh nặng phân giải tên máy cho name server.
Giảm việc lưu thông trên những mạng lớn.
Trang 145 DELEGATION VÀ HOSTING DOMAIN.
+ Sự uỷ quyền (Delegation domain):
• Thông thường miền cha cung cấp các domain cho miền con dưới hình thức uỷ quyền cho miền con tự quản lý và tổ chức CSDL cho miền con.
+ Hosting domain:
Miền cha tạo hosting domain cho miền con Miền cha tự tổ chức và quản lý CSDL cho miền con.
Trang 156 RESOURCE RECORD.
1 SOA (Start of Authority)
Trong mỗi zone file phải có một và chỉ một record SOA (start of authority) Record SOA chỉ ra rằng máy chủ name server là nơi cung cấp thông tin tin cậy từ dữ liệu có trong zone.
Trang 16a) serial number: Khi một slave name server kết nối với master server để lấy dữ liệu, trước tiên nó sẽ kiểm tra số serial, nếu số serial của master lớn hơn tức là dữ liệu đã hết hạn
sử dụng và nó sẽ load lại dữ liệu mới vì vậy khi ta cập nhật
dữ liệu trên name server ta nên tăng số serial Thông thường ta định dạng theo thời gian như sau:
YYYYMMDDNN
Ví dụ: 2004122901
b) refresh number: Khoảng Thời gian (giây) mà slave biết phải kiểm tra lại dữ liệu có còn sử dụng được không
Ví dụ: 10800 ; Refresh sau 3 giờ
c) retry number: Nếu slave không thể kết nối với master name server sau một khoảng thời gian refresh thì nó sẽ cố gắng kết nối lại sau retry giây Giá trị này nhỏ hơn giá trị refresh
Ví dụ: 3600 ; Retry sau 1 giờ
RESOURCE RECORD (tt).
Trang 17d) experi number: Nếu slave không thể kết nối với master server sau khoảng thời gian expire (giây) này, thì slave sẽ không trả lời cho vùng dữ liệu đó khi được truy vấn, vì nó cho rằng dữ liệu này đã quá củ Giá trị này phải lớn hơn giá trị refresh và retry
Ví dụ: 604800 ; Expire sau 1 tuần.
e) time-to-live number: Time To Live, giá trị này được dùng cho tất cả các resource record trong file cơ sở
dữ liệu Giá trị này cho phép những server khác cache lại dữ liệu trong 1 khoảng thời gian xác đ ị nh TTL
Ví dụ : 86400 ; TTL là 1 ngày
Trang 18RESOURCE RECORD (tt).
2 NS (Name Server)
Record tiếp theo cần có trong zone là NS (name server) record Mỗi name server cho zone sẽ có một NS record
Trang 194 CNAME (Canonical Name )
Record CNAME (canonical name) tạo tên bí danh alias trỏ vào một tên canonical Tên canonical là tên host trong record A hoặc lại trỏ vào 1 tên canonical khác
Trang 217 HOẠT ĐỘNG CỦA NAME
SERVER TRONG LINUX.
Chương trình server của DNS name server là một chương trình Daemon (named)
Trong quá trình khởi động named đọc các tập tin dữ liệu rồi chờ các yêu cầu phân giải qua cổng xác định trong tập tin /etc/services Named dùng giao thức TCP.
Một truy vấn client-to-server : port nguồn >1023, port đích 53.
Một trả lời server-to-client : port nguồn 53, port đích > 1023.
Một truy vấn và trả lời server-to-server : với giao thức UDP port nguồn và đích đều là 53, với TCP truy vấn của server sẽ sử dụng port > 1023.
Trang 239 CÁC TẬP TIN CSDL CHO ZONE.
Tập tin CSDL phân giải thuận :
Trang 2510 CẤU HÌNH.
Các bước cấu hình Name Server:
1 Đăng ký một domain name (/etc/resolv.conf)
2 Tạo một danh sách những tên và địa chỉ IP tương ứng
3 Tạo tập tin /etc/named.conf, tuỳ theo loại Name server cần cấu hình
4 Tạo những tập tin cơ sở dữ liệu cho zone (/var/named)
+ Tập tin CSDL phân giải thuận
+ Tập tin CSDL phân giải ngược
5 Khởi động lại named
#/etc/init.d/named restart
6 Cấu hình DNS Client để kiểm tra những Name Server đã cấu hình bằng công cụ nslookup Đặt cấu hình trong tập tin: /etc/resolv.conf
Trang 26CẤU HÌNH (tt).
Tập tin cấu hình /etc/named.conf
Options : Định nghĩa những cấu hình toàn cục cho Bind
options {
directory “thư_mục_chứa_csdl"; mặc định là thư mục /var/named
forwarders {Địa_chỉ IP_name_server;};
Type: + master : server có bản copy chính csdl.
+ slave : lưu bản sao csdl từ master.
+ stub : tương tự như slave chỉ cho phép record NS từ Master + hint : zone chỉ ra những root name server.
Trang 27CẤU HÌNH (tt).
CẤU HÌNH PRIMARY NAME SERVER:
Tạo tập tin /etc/named.conf
Trang 28file " zone.nghich ";
};
Trang 29CẤU HÌNH (tt).
CẤU HÌNH SECONDARY NAME SERVER:
Chức năng của Secondary Name Server là backup dữ liệu từ Primary Name Server
Không cần tạo các tập tin CSDL
Chỉ khai báo 2 zone trong tập tin cấu hình như sau:
zone “tên_miền" {
type slave;
masters {Đ/c IP của Primary Name server;};
file “tên_file_CSDL thuận";
};
• Khởi động lại named
Lưu ý : một máy tính có thể vừa làm chức năng Primary và Secondary
Name Server, nếu cùng đường mạng thì chỉ khai báo zone thuận.
Trang 30CẤU HÌNH (tt).
Tạo tập tin /etc/named.conf
zone “domain name" {
zone “11.168.192.in-addr.arpa" {
type slave;
masters {192.168.11.1;}; file "named2.rev";
};
Trang 31Nội dung tập tin này :
nameserver <địa chỉ IP của Name-Server>
domain <tên miền>
Ví dụ :
nameserver 172.29.50.1domain net01.com
Trang 32CẤU HÌNH (tt).
CẤU HÌNH HOSTING DOMAIN:
Miền cha tạo hosting domain cho miền con Miền cha tự tổ chức và quản lý CSDL cho miền con
ho c m t mi n khác ặc 1 IN PTR server.t3h.com ột miền khác ền khác
Các bước cấu hình tương tự như cấu hình Primary Name Server.
1 Tạo tập tin /etc/named.conf
+ Khai báo các zone của miền cần hosting.
2 Tạo 2 tập tin CSDL cho zone đó.
+ Tập tin phân giải thuận.
+ Tập tin phân giải ngược.
3 Kh i ng l i named ởi động lại named đột miền khác ại named
Trang 33Subnet2 Subnet1
Mạng chính
Hosting
172.29.10.0/24
192.168.11.0/24 203.162.98.0/24
Trang 34CẤU HÌNH (tt).
CẤU HÌNH DELEGATION DOMAIN:
Thông thường miền cha cung cấp các domain cho miền con dưới hình thức uỷ quyền cho miền con tự quản lý và tổ chức CSDL cho miền con
Thực hiện các bước sau đây :
+ Mở file phân giải thuận của miền cha và mô tả như sau:
[miền_con] IN NS [tên_máy]
[tên_máy] IN A [địa_chỉ_IP]
+ Mở file phân giải ngược của miền cha mô tả như sau:
[Đ/c Host_ID] IN PTR [tên_máy]
+ Mở file /etc/named.conf thêm tuỳ chọn:
forwarders {Đ/c_IP_Name_ Server_cuả_miền_cha};
Trang 35CẤU HÌNH (tt).
Ví dụ : Trên Name Server quản lý miền
Trang 36Subnet2 Subnet1
Mạng chính
Delegation
172.29.10.0/24
192.168.11.0/24 203.162.98.0/24
Trang 3711 BẢO MẬT DNS SERVER.
1 Notify :
Giữa DNS Slave và Master có cơ chế tự động cập nhật khi
có sự thay đổi dữ liệu trong zone file, dựa trên thông số refresh (thời gian làm tươi)
Tuy nhiên có thể mô tả tham số “notify” để khi máy Master thay đổi dữ liệu zone,có thể thông báo ngay cho các slave biết để cập nhật theo
Có hai khai báo notify cho một zone:
notify yes/no; //thông báo cho các name server liệt kê
bởi các record NS của zone này
also-notify {danh sách các Slave name server cần
thông báo đến để cập nhật};
allow-update {danh sách IP update tự động lên name
server;};
Trang 39BẢO MẬT DNS SERVER(tt).
2 Allow-transfer :
Thông thường DNS cho phép copy các zone file giữa Master và Slave Name server Do DNS có thể chứa các thông tin nhạy cảm, nên chỉ cho phép một số máy có thể copy được zone file từ máy master
Cú pháp của allow-transfer như sau:
allow-transfer {danh sách địa chỉ IP cho phép copy dữ liệu;};
Trang 40Cú pháp của allow-query như sau:
allow-query {danh sách địa chỉ IP cho phép truy cập dữ liệu;};
Trang 41BẢO MẬT DNS SERVER(tt).
4 Chạy DNS Server với quyền của user thường :
BIND phiên bản 8.1.2 có chức năng cho phép thay đổi username và group khi chạy name server Điều này cho phép chạy Name server với cơ chế gọi là “least privilege”: quyền tối thiểu đủ để làm việc, không dư thừa Khi đó hacker có tấn công chiếm được quyền điều khiển tiến trình named thì chúng cũng không có quyền root, tác hại khi đó
Trang 42BẢO MẬT DNS SERVER(tt).
Chú ý : nếu dùng tính năng này thì quyền trên các zone file, pid file được thiết lập lại cụ thể là user named phải có quyền đọc, ghi trên zone file.
Trang 4312 KIỂM TRA CẤU HÌNH.