Quátrình "dịch" tên miền thành địa chỉ IP để cho trình duyệt hiểu và truy cập được vàowebsite là công việc của một DNS server.. Nơi màmọi người sử dụng để search trên trình duyệt để truy
Trang 1HỌC VIỆN KỸ THUẬT QUÂN SỰ KHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁOXÂY DỰNG, QUẢN TRỊ VÀ BẢO TRÌ HỆ THỐNG
THIẾT KẾ DNS SERVER DÙNG BIND TRÊN UBUNTU CHO
MỘT DOANH NGHIỆP
Người hướng dẫn: GV Trần Nam Khánh
Học viên thực hiện: Trịnh Khắc Tuấn – Lớp ANHTTT
Đinh Thị Ngọc Hòa – Lớp ANHTTT
Lê Thị Thủy Ngân – Lớp ANHTTT
Hà Nội, tháng 11 năm 2022
Trang 2MỤC LỤC
LỜI MỞ ĐẦU 3
CHƯƠNG I: TỔNG QUAN VỀ DNS SERVER VÀ BIND 4
I DNS SERVER 4
1 Tìm hiểu về DNS Server 4
2 Phân loại DNS Server 6
3 Cách sử dụng và nguyên lý hoạt động của DNS 6
4 NSLookup - Công cụ chuẩn đoán DNS Server 9
II BIND 12
CHƯƠNG II: CÁCH CẤU HÌNH BIND9 LÀM MÁY CHỦ DNS MẠNG RIÊNG TRÊN UBUNTU 20.04 14
I MÔ HÌNH HỆ THỐNG 14
II CÁC BƯỚC THỰC HIỆN 14
KẾT LUẬN 27
TÀI LIỆU THAM KHẢO 27
Trang 3LỜI MỞ ĐẦU
Ngày nay, với sự phát triển của khoa học kỹ thuật, máy tính trở nên phổ biếnvới mọi người, nó mang lại cho con người khả năng to lớn và làm được nhữngcông việc phi thường: tính toán nhanh, chính xác các phép toán phức tạp, điềukhiển tự động và làm việc theo sự lập trình của con người Sự phát triển của máytính cũng như công nghệ thông tin sẽ mang lại những thành tựu to lớn cho sự pháttriển kinh tế của đất nước Sức mạnh của máy tính được tăng lên nhiều lần khi cácmáy tính được kết nối thành một mạng máy tính Với mạng máy tính toàn cầuchúng ta có thể dễ dàng tiếp cận với thế giới bên ngoài, tiếp cận với những thànhtựu khoa học tiên tiến nhất trên thế giới
Việc ứng dụng công nghệ thông tin trong sản xuất và phát triển kinh tế làmục tiêu hàng đầu của đất nước Vậy đặt ra vấn đề cái gì giúp con người có thểtruy cập tới các trang web dễ dàng để tìm hiểu trao đổi thông tin từ khắp mọi nơinhư vậy? Đó là hệ thống tên miền (Domain Name System) Khi bạn nhập tên miềntrong web browser, yêu cầu này được gửi đến máy chủ DNS sơ cấp định nghĩatrong cấu hình của web browser Máy chủ DNS chuyển tên thành địa chỉ IP và trảđịa chỉ IP cho hệ thống, dể giúp người sử dụng truy cập tới các web thông qua tênmiền nhanh hơn
Bên cạnh đó, BIND cho đến nay là phần mềm DNS được sử dụng rộng rãinhất trên Internet, cung cấp một nền tảng mạnh mẽ và ổn định trên đó các tổ chức
có thể xây dựng các hệ thống máy tính phân tán với kiến thức rằng các hệ thống đótuân thủ đầy đủ các tiêu chuẩn DNS được công bố
Để hiểu sâu hơn về cách thức thiết kế, sử dụng DSN với Bind, chúng em lựa
chọn đề tài “Thiết kế DNS Server dùng Bind trên Ubuntu cho một doanh nghiệp”
Trang 4CHƯƠNG I: TỔNG QUAN VỀ DNS SERVER VÀ BIND
Khi mở một trình duyệt Web và nhập tên website, trình duyệt sẽ đến thẳngwebsite mà không cần phải thông qua việc nhập địa chỉ IP của trang web Quátrình "dịch" tên miền thành địa chỉ IP để cho trình duyệt hiểu và truy cập được vàowebsite là công việc của một DNS server Các DNS trợ giúp qua lại với nhau đểdịch địa chỉ "IP" thành "tên" và ngược lại Người sử dụng chỉ cần nhớ "tên", khôngcần phải nhớ địa chỉ IP (địa chỉ IP là những con số rất khó nhớ)
1.2 Chức năng
Về chức năng, DNS có thể được hiểu như một “người phiên dịch” và
“truyền đạt thông tin” DNS sẽ làm công việc dịch tên miền thành một địa chỉ IPgồm 4 nhóm số khác nhau Ví dụ như www.ubuntu.com thành 323.64.844.799hoặc ngược lại dịch một địa chỉ IP thành tên miền
Trang 5Khi “dịch” như thế, trình duyệt sẽ hiểu và đăng nhập vào được Và khingười dùng đăng nhập vào một website, thay vì phải nhớ và nhập một dãy số địachỉ IP của hosting, thì chỉ cần nhập tên website là trình duyệt tự động nhận diện.
Mỗi máy tính trên Internet đều có một địa chỉ IP duy nhất Địa chỉ IP nàyđược dùng để thiết lập kết nối giữa server và máy khách để khởi đầu một kết nối.Bất kỳ khi nào, bạn truy cập vào một website tùy ý hoặc gửi một email, thì DNSđóng vai trò rất quan trọng trong trường hợp này
Trong vô vàn trang web trên thế giới, sẽ không có ai có thể nhớ hết từng dãy
số địa chỉ IP trong mỗi lần đăng nhập Do đó, khái niệm tên miền được đưa ra, từ
đó mỗi trang web sẽ được xác định với tên duy nhất
Tuy nhiên, địa chỉ IP vẫn được sử dụng như một nền tảng kết nối bởi cácthiết bị mạng Đó là nơi DNS làm việc phân giải tên domain thành địa chỉ IP đểcác thiết bị mạng giao tiếp với nhau Đồng thời, bạn cũng có thể tải một websitebằng cách nhập trực tiếp địa chỉ IP thay vì nhập tên domain của website đó
1.3 Phân loại domain name server
Domain hay tên miền là địa chỉ trang web hoạt động trên Internet Nơi màmọi người sử dụng để search trên trình duyệt để truy cập vào một website bất kỳ.Domain được thể hiện bằng các ký tự hoặc chữ số trong bảng chữ cái thay cho địa
chỉ IP của máy chủ.
- Tên miền riêng (Primary Name Server): Mỗi một máy chủ tên miền có
một tên miền riêng Tên miền riêng này được đăng ký trên Internet
- Tên miền dự phòng – tên miền thứ hai (Secondary name server): đây là
một DNS Server được sử dụng để thay thế cho Primary name server DNSServer bằng cách sao lưu lại tất cả những bản ghi dữ liệu trên Primaryname Server và nếu Primary Name Server bị gián đoạn thì nó sẽ đảmnhận việc phân giải và ánh xạ tên miền và địa chỉ IP
Caching Name Server: Đây là một Server đảm nhiệm việc lưu trữ tất cảnhững tên miền, địa chỉ IP đã được phân giải và ánh xạ thành công Nó được sửdụng trong những trường hợp sau:
- 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 các DNS Server
Trang 6- Giảm lưu lượng tham gia vào mạng và giảm độ trễ trên mạng (rất quantrọng)
2 Phân loại DNS Server
DNS server có hai loại chính, bao gồm:
- Root Name Server
- Local Name Server
Sự khác biệt giữa hai loại DNS server là gì?
2.1 Root name servers
Root Name Server hay còn gọi là Name Server là một dịch vụ phân giải tênmiền gốc và quản lý tất cả các tên miền cao cấp nhất (TLD) như com, net, org…sau đó sẽ phân cấp ra thành các bậc thấp hơn Khi có một yêu cầu phiên dịch têndomain thành địa chỉ IP, DNS Root Server sẽ căn cứ vào TLD của tên domaintrong truy vấn của người dùng để chuyển hướng đến đúng địa chỉ cần truy vấn.Trên thế giới hiện có khoảng 13 DNS Root Server, được vận hành bởi các tổchức như Verisign, Cogent, Đại học Maryland và U.S Army Research Lab
2.2 Local name servers
Local Name Server là một máy chủ định danh chỉ lưu trữ thông tin cho các máykhách cục bộ khi nó đã được truy xuất từ máy chủ tên miền lưu trữ (authority) chocác tên miền bậc thấp hơn
Local server có thể tăng tốc hiệu quả các truy vấn cho mạng cục bộ bằng cáchcung cấp các tên miền được tìm thấy bởi các truy vấn trước đó Loại này thườngđược duy trì bởi các doanh nghiệp, nhà cung cấp dịch vụ mạng (ISPs)
3 Cách sử dụng và nguyên lý hoạt động của DNS
3.1 Cách sử dụng
Khi truy cập vào một tên miền nào đó, trình duyệt sẽ “nhờ” các DNS serverbiên dịch tên miền đó thành địa chỉ IP Tuy nhiên, tốc độ biên dịch của các DNSnhanh hay chậm sẽ tùy thuộc vào loại DNS mà bạn lựa chọn sử dụng Trongtrường hợp không chỉ định DNS server cụ thể thì sẽ sử dụng DNS server mặc địnhcủa nhà cung cấp dịch vụ mạng, hoặc bạn có thể đăng ký sử dụng DNS khác (miễn
Trang 7phí hoặc trả phí) bằng cách nhập thông số vào network connections Để dùng DNSkhác, bạn cần phải thay đổi chúng trong máy tính của mình.
Các bước thay đổi DNS server đơn giản trên Windows 10:
Bước 1: Truy cập Start – Setting – chọn Network & Internet – sau đó chọn
“Change adapter options”
Bước 2: Click vào Ethernet – chọn Internet Protocol Version 4 hoặc Version6
Bước 3: Chọn “Use the following DNS server addresses” điền đầy đủ thông
số DNS server mong muốn vào hai ô “Preferred DNS server” và “Alternate DNSserver”
Trang 8Chú ý: Hacker có thể thông qua DNS để đánh cắp thông tin cá nhân của bạn.Vậy nên, hãy kiểm tra rõ tên truy cập của các Website, tránh truy cập vào cácwebsite giả mạo, các phần mềm không rõ nguồn gốc.
3.2 Nguyên lý hoạt động
Tất cả mọi thứ được kết nối với internet – website, tablet, laptop, điện thoại
di động, Google Home,… đều có một địa chỉ IP riêng với một dãy các con số hoặc
cả số và chữ phức tạp, khó nhớ
Nhờ DNS, bạn không cần phải ghi nhớ những con số vừa dài vừa khó này.Mỗi khi nhập tên miền, DNS Server sẽ định vị trang web và chuyển tên đó thànhđịa chỉ IP tương ứng Vì vậy khi bạn gõ www.google.com vào trình duyệt web, bạnchỉ phải nhớ URL này thay vì con số 172.217.161.142
Giả sử bạn muốn truy cập vào trang có địa chỉ hoatuanngan.vn:
Ngay sau khi bạn nhập tên miền hoatuanngan.vn vào trình duyệt, trình duyệt
và máy tính sẽ kiểm tra xem có địa chỉ IP liên quan đến miền trong bộ nhớ của chúng hay không
Trường hợp máy chủ tên miền cục bộ có cơ sở dữ liệu chuyển đổi tên miền này sang địa chỉ IP tương ứng, nó sẽ nhanh chóng gửi trả lại IP của tên miền trên
Trang 9Trường hợp tên miền này không có trong bộ nhớ cục bộ của máy tính (bộ nhớ cache) nó sẽ mở rộng tìm kiếm lên các máy chủ ở mức Root cho đến khi tìm thấy máy chủ tên miền quản lý các tên miền có đuôi vn (trong ví dụ này).
Tiếp đó, máy chủ tên miền cục bộ gửi yêu cầu đến máy chủ quản lý tên miềnViệt Nam (.vn) tìm tên miền hoatuanngan.vn
Sau khi máy chủ DNS tìm thấy tên miền hoatuanngan.vn, máy chủ sẽ trả về tên miền và địa chỉ IP tương ứng Tiếp theo, địa chỉ IP của tên miền này sẽ được gửi trả lại cho máy chủ tên miền cục bộ
Cuối cùng, thông tin này sẽ được máy chủ tên miền cục bộ chuyển đến máy của người truy vấn Người truy vấn sử dụng địa chỉ IP này để kết nối đến server có địa chỉ hoatuanngan.vn
4 NSLookup - Công cụ chuẩn đoán DNS Server
Giao thức DNS đã có đến hàng chục năm và vẫn đang thể hiện là một giao thức ổn định và tin cậy Tuy vậy, DNS đôi khi vẫn có một số các vấn đề sự cố xảy
ra Các vấn đề này có thể bắt nguồn từ sự mất kết nối, một bản ghi DNS lỗi hoặc một số các vấn đề khác Khi một máy chủ DNS không thực hiện theo cách mà nó
đã được mong đợi thì nhiều người dùng lệnh PING để kiểm tra
PING là một công cụ tuyệt vời cho việc chuẩn đoán lỗi DNS, tuy nhiên đôi khi lệnh PING không thể cho bạn đầy đủ thông tin về vấn đề đang mắc phải Khi bạn cần nhiều thông tin về vấn đề DNS hơn so với những gì mà lệnh PING cung cấp thì hãy sử dụng lệnh NSLOOKUP NSLOOKUP là một tiện ích chuẩn đoán DNS có sẵn trong Windows và UNIX
4.1 Giới thiệu chung về NSLookup
Đầu tiên cần hiểu về NSLOOKUP là khi sử dụng lệnh NSLOOKUP, nó thừanhận rằng bạn đang truy vấn một miền cục bộ trên mạng riêng của mình Bạn có thể truy vấn một miền bên ngoài, nhưng NSLOOKUP sẽ cố gắng tìm kiếm cho miền bên trong trước tiên Ví dụ, nếu brienposey.com là một miền bên ngoài và thực hiện NSLOOKUP đối với brienposey.com, thì NSLOOKUP sẽ trả về các thông tin như được thể hiện trong hình sau:
Trang 10Nếu nhìn vào hình trên, bạn sẽ thấy được rằng có một thông báo lỗi miền non-existent cho các địa chỉ IP 147.100.100.34 và 147.100.100.5 Có một số địa chỉ của các máy chủ DNS bên trong Điều này có nghĩa rằng máy chủ DNS đã cố gắng truy vấn một máy chủ DNS bên ngoài để giải quyết địa chỉ IP được kết hợp với miền brienposey.com.
Một trong những miền cục bộ trên mạng riêng trong ví dụ này là
production.com Nếu thực hiện một lệnh NSLOOKUP đối với miền này thì sẽ có các kết quả như sau:
Trang 11Nếu để ý phần trên của màn hình này thì bạn sẽ thấy được rằng nó có cùng các thông báo lỗi miền non-existent như khi truy vấn một miền bên ngoài Đầu tiên, điều này gây ra một chút hoang mang Lý do tại sao lại có kết quả vậy sẽ đượcgiải thích trong phần sau Từ đây bạn có thể nhập vào các lệnh NSLOOKUP khác nữa Khi thực hiện như vậy, bạn có thể sử dụng lệnh EXIT để trả về cửa sổ lệnh.
4.2 Tiện ích NS Lookup
Giờ chúng ta sẽ đi sâu vào cách sử dụng lệnh NSLOOKUP để xem địa chỉ
IP hoặc các địa chỉ có liên quan với miền Như những gì chúng tôi đã đề cập ở trên, bạn có thể thực hiện việc này với tiện ích NSLOOKUP Khi tiện ích
NSLOOKUP được mở, bạn cần khai báo NSLOOKUP máy chủ DNS nào muốn truy vấn Để thực hiện điều đó, bạn hãy nhập vào lệnh SERVER, sau đó là địa chỉ
IP của máy chủ DNS Bạn cũng có thể nhập vào tên miền có tư cách đầy đủ của máy chủ (thừa nhận rằng nó có thể được giải quyết) với tư cách là một sự lựa chọn địa chỉ IP của máy chủ Để thực hiện như vậy, bạn chỉ đánh vào đó tên miền mà bạn muốn truy vấn Ví dụ, nếu nhìn vào hình C, bạn có thể thấy nơi chúng tôi đã chỉ định một máy chủ DNS riêng và sau đó truy vấn miền bên trong và bên ngoài
Lúc này, hãy quay trở lại doanh nghiệp đê tra cứu bản ghi MX của miền Để thực hiện như vậy, bạn cần đưa ra một lệnh yêu cầu NSLOOKUP truy vấn dựa trêncác bản ghi MX Lệnh mà bạn phải sử dụng là:
- SET QUERY = MX
Trang 12Việc đưa ra lệnh này tự bản thân nó sẽ không cho bạn bất kỳ thông tin gì về bản ghi MX của miền, bạn phải truy vấn miền bằng cách nhập vào tên miền
NSLOOKUP hiện trả về rất nhiều thông tin liên quan đến bản ghi MX của miền
Như những gì đã nêu ra trong bài, NSLOOKUP có thể cung cấp cho bạn một
số các thông tin chuẩn đoán máy chủ DNS Mặc dù vậy, NSLOOKUP không chỉ hạn chế trong việc cung cấp các kiểu thông tin mà chúng tôi giới thiệu mà nó có một giao diện phong phú với một tập lớn lệnh
II BIND
BIND là phần mềm nguồn mở thực hiện các giao thức Hệ thống tên miền (DNS) cho Internet, cung cấp khả năng thực hiện chuyển đổi tên thành ip
Trang 13Tên BIND là viết tắt của tên Berkeley Internet Name Domain, vì phần mềm
có nguồn gốc từ đầu những năm 1980 tại Đại học California tại Berkeley Nó là một triển khai tham chiếu của các giao thức DNS, nhưng nó cũng là phần mềm cấpsản xuất, phù hợp để sử dụng trong các ứng dụng có khối lượng lớn và độ tin cậy cao
BIND cho đến nay là phần mềm DNS được sử dụng rộng rãi nhất trên
Internet, cung cấp một nền tảng mạnh mẽ và ổn định trên đó các tổ chức có thể xâydựng các hệ thống máy tính phân tán với kiến thức rằng các hệ thống đó tuân thủ đầy đủ các tiêu chuẩn DNS được công bố
Đăng nhập vào máy chủ CentOS 7 của bạn bằng thông tin đăng nhập sudo hoặc root, thiết lập FQDN và thiết lập mạng cơ bản để đảm bảo rằng bạn được kết nối với Internet
Trang 14CHƯƠNG II: CÁCH CẤU HÌNH BIND9 LÀM MÁY CHỦ DNS MẠNG
RIÊNG TRÊN UBUNTU 20.04
Để thực hiện cần đảm bảo tạo từng máy chủ trong cùng kết nối mạng riêng, bao gồm:
- 2 máy chủ ns1, ns2 là 2 máy ảo ubuntu phiên bản 20.04
- 1 máy khách client là máy ảo ubuntu phiên bản 20.04
- Tất cả các máy chủ này đều được bật mạng riêng và nằm trên mạng con 192.168.175.0/24 (Có thể điều chỉnh điều này cho các máy chủ)
- Tất cả các máy chủ được kết nối với một dự án chạy trên htn.com
ns1 DNS Server chính ns1.htn.com 192.168.175.138ns2 DNS Server phụ ns2.htn.con 192.168.175.139client Máy khách hoa.htn.com 192.168.175.134
II CÁC BƯỚC THỰC HIỆN
B1: Cài đặt BIND trên máy chủ DNS
Trên cả hai máy chủ DNS, ns1 và ns2 thực hiện:
Chạy lệnh cập nhật:
Trang 15sudo apt update
Chạy lệnh cài đặt Bind9:
sudo apt install bind9 bind9utils bind9-doc
B2: Cấu hình máy chủ DNS chính
Trang 16File cấu hình của DNS được đặt tại thư mục /etc/bind với địa chỉ chính xác
là /etc/bind/named.conf
- Tiến hành chỉnh sửa file named.conf.options:
sudo gedit /etc/bind/named.conf.options
Trên khối options, tạo một ACL (danh sách kiểm soát truy cập) mới là trusted để xác định danh sách các máy khách được phép truy vấn DNS query và thêm các địa chỉ IP của các máy chủ Bên dưới directory, thêm các dòng cấu hình với địa chỉ IP riêng ns1
Tiến hành lưu và đóng file lại
- Tiếp tục edit file named.conf.local:
sudo gedit /etc/bind/named.conf.local