Các phiên bản của Hệ điều hành Linux được xác định bởi hệ thống số dạng X.YY.ZZ.. Điều này giúp cho hệ thống có thể chạy ổn định và tránh phải những sai sót dẫn đến đổ vỡ hệ thống trong
Trang 1ĐỒ ÁN TỐT NGHIỆP
Tên đề tài:
QUẢN LÝ XÁC THỰC TẬP TRUNG VỚI DỊCH VỤ LDAP LINUX
Tp Hồ Chí Minh, Ngày 19 Tháng 10 Năm 2011
Trang 2MỤC LỤC
LỜI CẢM ƠN 4
MỤC TIÊU ĐỀ TÀI 5
CHƯƠNG I: GIỚI THIỆU TỔNG QUAN 6
I Lịch sử phát triển của Linux: 6
II Ưu điểm & khuyết điểm của Linux: 7
CHƯƠNG II: CÀI ĐẶT HỆ ĐIỀU HÀNH LINUX (CENTOS) 11
I Yêu cầu phần cứng: 11
II Đĩa cứng và phân vùng đĩa trong Linux: 11
III Quản lý ổ đĩa và partition trong Linux: 11
IV Các bước cài đặt hệ điều hành Linux: 13
CHƯƠNG III: GIỚI THIỆU CÁC DỊCH VỤ LIÊN QUAN 23
I Dịch vụ DNS (Domain Name System): 23
II Dịch vụ FTP (File Transfer Protocol): 36
III Dịch vụ Web: 44
IV Dịch vụ Squid Proxy: 53
V Dịch vụ Mail Server: 59
VI Dịch vụ Samba: 66
CHƯƠNG IV: CƠ SỞ LÝ THUYẾT LDAP 73
I Giới thiệu về LDAP: 73
II Phương thức hoạt động của LDAP: 74
III Các mô hình LDAP: 78
IV Sử dụng LDAP: 93
CHƯƠNG V: TRIỂN KHAI HỆ THỐNG 95
I Phân tích hiện trạng hệ thống: 95
II Cài đặt và cấu hình Open LDAP Replication Multi Master: 96
Trang 3III Xây dựng Primary Domain Controller (Openldap with Samba): 100
CHƯƠNG VI: ĐÁNH GIÁ VÀ HƯỚNG PHÁT TRIỂN 151
I Kết quả thực hiện đề tài: 151
II Tài liệu tham khảo: 151
III Các website: 151
Trang 4LỜI CẢM ƠN
Để có thể hoàn tất được bài đồ án này, trước tiên phải kể đến công sức của thầy TRẦN VĂN TÀI Nhóm chúng em kính gửi lời cảm ơn đến thầy đã tận tình hướng dẫn và giúp đỡ trong thời gian thực hiện đồ án này
Nhóm chúng em xin chân thành cảm ơn các thầy cô khoa Công Nghệ Thông Tin Trường Cao Đẳng Nghề iSPACE đã truyền đạt những kiến thức, những kinh nghiệm quý báu cho chúng em trong quá trình học tập tại trường
Xin chân thành cảm ơn đến các bạn đã giúp đỡ tài liệu cũng như trao đổi học thuật mới có thể thực hiện đồ án này
Tp.Hồ Chí Minh, ngày 19 tháng 10 năm 2011
Học viên thực hiện
Dương Quốc Tuấn
Trần Huỳnh An Duy Trần Đoàn Kiến
Trang 5
MỤC TIÊU ĐỀ TÀI
Xây dựng hệ thống mạng chứng thực tập trung với OpenLDAP
Xây dựng hệ thống chứng thực tập trung cho các dịch vụ: mail, ftp, samba, web Xây dựng hệ thống quản lí tập trung trên HDH Linux thay thế cho hệ thống MS Active Directory
Trang 6CHƯƠNG I: GIỚI THIỆU TỔNG QUAN
I Lịch sử phát triển của Linux:
Linux là một HDH dạng UNIX (Unix-like Operating System) chạy trên máy PC với bộ điều khiển trung tâm (CPU) Intel 80386 trở lên, hay các bộ vi xử lý trung tâm tương thích AMD, Cyrix Linux ngày nay còn có thể chạy trên các máy Macintosh hoặc SUN Sparc
Linux được viết lại toàn bộ từ con số không, tức là không sử dụng một dòng lệnh nào của Unix
để tránh vấn đề bản quyền của Unix Tuy nhiên hoạt động của Linux hoàn toàn dựa trên nguyên tắc của hệ điều hành Unix Vì vậy nếu một người nắm được Linux, thì sẽ nắm được UNIX Giữa các hệ thống Unix sự khác nhau cũng không kém gì giữa Unix và Linux
Năm 1991 Linus Torvalds, sinh viên của đại học tổng hợp Helsinki, Phần lan, bắt đầu xem xét Minix, một phiên bản của Unix làm ra với mục đích nghiên cứu cách tạo ra một hệ điều hành Unix chạy trên máy PC với bộ vi xử lý Intel 80386
Ngày 25/8/1991, Linus cho ra version 0.01 và thông báo trên comp.os.minix của Internet về dự định của mình về Linux
Tháng 01/1992, Linus cho ra version 0.12 với shell và C compiler Linus không cần Minix nữa
để recompile HDH của mình Linus đặt tên HDH của mình là Linux
Năm 1994, phiên bản chính thức 1.0 được phát hành
Quá trình phát triển của Linux được tăng tốc bởi sự giúp đỡ của chương trình GNU (GNU‟s Not Unix), đó là chương trình phát triển các Unix có khả năng chạy trên nhiều platform Phiên bản mới nhất của Linux kernel là 2.6.25, có khả năng điều khiển các máy đa bộ vi xử lý ( hiện tại Linux hỗ trợ máy tính có tối đa 16 CPUs) Linux kernel 2.6.25 cũng đồng thời nâng cấp hệ thống file Ext4 (phiên bản cũ là Ext3), giúp hỗ trợ dung lượng block lớn hơn - từ 4K lên 64K và rất nhiều các tính năng khác (có thể download tại (http://www.kernel.org)
Các phiên bản của Hệ điều hành Linux được xác định bởi hệ thống số dạng X.YY.ZZ Nếu YY
là số chẵn phiên bản ổn định, YY là số lẻ phiên bản thử nghiệm
Trang 7II Ưu điểm & khuyết điểm của Linux:
1 Ưu điểm:
1.1 Kinh tế:
Đó là một đặc điểm không thể bỏ qua của Linux Tuy nhiên đối với Linux đó vẫn chưa
là tất cả Hệ điều hành này còn rất nhiều ưu điểm khác mà không một hệ điều hành nào
có Chính những đặc điểm này mới là nguyên nhân khiến cho Linux ngày càng trở nên phổ biến không chỉ ở Việt Nam mà cả ở trên thế giới
1.2 Linh hoạt, uyển chuyển:
Linux là một Hệ điều hành mã nguồn mở nên chúng ta có thể tùy ý sửa chữa theo như mình thích (tất nhiên là trong khả năng kiến thức của mỗi người) Chúng ta có thể chỉnh sửa Linux và các ứng dụng trên đó sao cho phù hợp với mình nhất Mặt khác do Linux được một cộng đồng rất lớn những người làm phần mềm cùng phát triển trên các môi trường, hoàn cảnh khác nhau nên tìm một phiên bản phù hợp với yêu cầu của mỗi người sẽ không phải là một vấn đề quá khó khăn
Tính linh hoạt của Linux còn được thể hiện ở chỗ nó tương thích được với rất nhiều môi trường Hiện tại, ngoài Linux dành cho server, PC…nhân Linux (Linux kernel) còn được nhúng vào các thiết bị điều khiển như máy tính palm, robot… Phạm vi ứng dụng của Linux được xem là rất rộng rãi
1.3 Độ an toàn cao:
Trước hết, trong Linux có một cơ cấu phân quyền hết sức rõ ràng Chỉ có "root" (người dùng tối cao) mới có quyền cài đặt và thay đổi hệ thống Ngoài ra Linux cũng có cơ chế để một người dùng bình thường có thể tạm thời chuyển sang quyền "root" để thực hiện một số thao tác Điều này giúp cho hệ thống có thể chạy ổn định và tránh phải những sai sót dẫn đến đổ vỡ hệ thống (trong những phiên bản Windows gần đây, cơ chế phân quyền này cũng đã bước đầu được áp dụng, nhưng so với Linux thì vẫn kém chặt chẽ hơn)
Ngoài ra chính tính chất "mở" cũng tạo nên sự an toàn của Linux Nếu như một lỗ hổng nào đó trên Linux được phát hiện thì nó sẽ được cả cộng đồng mã nguồn mở cùng sửa
Trang 8và thường thì chỉ sau 24h sẽ có thể cho ra bản sửa lỗi Mặt khác đối với những Hệ điều hành mã nguồn đóng như Windows, chúng ta không thể biết được người ta viết gì, và viết ra sao mà chỉ biết được chúng chạy như thế nào Vì vậy nếu như Windows có chứa những đoạn mã cho phép tạo những "back door" để xâm nhập vào hệ thống của chúng
ta thì chúng ta cũng không thể biết được Đối với người dùng bình thường như chúng ta vấn đề này có vẻ như không quan trọng nhưng đối với một hệ thống tầm cỡ như hệ thống quốc phòng thì vấn đề như thế này lại mang tính sống còn Các nhân viên an ninh không được phép để lộ một kẽ hở nào, dù là nhỏ nhất vì nó liên quan đến an ninh của cả một quốc gia Và một lần nữa các phần mềm mã nguồn mở nói chung và Linux nói riêng lại là sự lựa chọn số 1 Trong Linux mọi thứ đều công khai, người quản trị có thể tìm hiểu tới mọi ngõ ngách của hệ điều hành Điều đó cũng có nghĩa là độ an toàn được nâng cao
1.4 Thích hợp cho quản trị mạng:
Được thiết kế ngay từ đầu cho chế độ đa người dùng, Linux được xem là một hệ điều hành mạng rất giá trị Nếu như Windows tỏ ra là một Hệ điều hành thích hợp với máy tính Desktop thì Linux lại là hệ điều hành thống trị đối với các Server Đó là do Linux
có rất nhiều ưu điểm thỏa mãn đòi hỏi của một hệ điều hành mạng: tính bảo mật cao, chạy ổn định, các cơ chế chia sẻ tài nguyên tốt… Giao thức TCP/IP mà chúng ta vẫn thấy ngày nay chính là một giao thức truyền tin của Linux (sau này mới được đưa vào Windows)
1.5 Chạy thống nhất trên các hệ thống phần cứng:
Dù cho có rất nhiều phiên bản Linux được các nhà phân phối khác nhau ban hành nhưng nhìn chung đều chạy khá ổn định trên mọi thiết bị phần cứng, từ Intel 486 đến những máy Core 2 Duo, từ những máy có dung lượng RAM chỉ 4MB đến những máy
có cấu hình cực mạnh (tất nhiên là tốc độ sẽ khác nhau nhưng về nguyên tắc vẫn có thể chạy được) Nguyên nhân là Linux được rất nhiều lập trình viên ở nhiều môi trường khác nhau cùng phát triển (không như Windows chỉ do Microsoft phát triển) và chúng
ta sẽ bắt gặp nhiều người có "cùng cảnh ngộ" như mình và dễ dàng tìm được các driver tương ứng với thiết bị của mình Tính chất này hoàn toàn trái ngược với Windows
Trang 9Mỗi khi có một phiên bản Windows mới ra đời thì bao giờ kèm theo đó cũng là một cơn khát về phần cứng vì Hệ điều hành mới thường không hỗ trợ các thiết bị quá cũ
2 Khuyết điểm:
Dù cho hiện nay Linux đang có tốc độ phát triển nhanh hơn hẳn Windows nhưng khách quan mà nói so với Windows, Linux vẫn chưa thể đến với người sử dụng cuối Đó là do Linux vẫn còn có những nhược điểm cố hữu:
2.1 Đòi hỏi người dùng phải thành thạo:
Trước kia việc sử dụng và cấu hình Linux được xem là một công việc chỉ dành cho những kĩ thuật viên CNTT Hầu như mọi công việc đều thực hiện trên các dòng lệnh và phải cấu hình nhờ sửa trực tiếp các file Mặc dù trong những phiên bản gần đây, các Hệ điều hành Linux đã có những cải tiến đáng kể, nhưng so với Windows tính thân thiện của Linux vẫn còn là một vấn đề lớn Đây là một trong những nguyên nhân chủ yếu khiến Linux mặc dù có rất nhiều đặc tính kỹ thuật tốt nhưng vẫn chưa đến được với người dùng cuối
2.2 Tính tiêu chuẩn hóa:
Linux được phát hành miễn phí nên bất cứ ai cũng có thể tự mình đóng gói, phân phối theo những cách riêng Hiện tại có khá nhiều bản Linux phát triển từ một nhân ban đầu cùng tồn tại như: RedHat, SuSE, Knoppix… Người dùng phải tự so sánh xem bản nào
là phù hợp với mình Điều này có thể gây khó khăn cho người dùng, nhất là những người còn có kiến thức về tin học hạn chế
2.3 Số lượng các ứng dụng chất lượng cao trên Linux còn hạn chế:
Mặc dù Windows có sản phẩm nào thì Linux cũng gần như có phần mềm tương tự, (VD: OpenOffice trên Linux tương tự như MSOffice, hay GIMP tương tự như Photoshopv v ) Tuy nhiên chất lượng những sản phẩm này là chưa thể so sánh được với các sản phẩm viết cho Windows
Trang 102.4 Phần cứng:
Một số nhà sản xuất phần cứng không có driver hỗ trợ Linux: Do hiện nay Linux chưa phổ biến bằng Windows nên nhiều nhà sản xuất không hỗ trợ các driver chạy trên Linux Tuy nhiên chúng ta vẫn có thể tìm thấy các driver này trên internet do cộng đồng mã nguồn mở viết
Trên cơ sở nhìn nhận một cách khách quan các ưu, nhược điểm của Hệ điều hành Linux cũng như xem xét xu hướng phát triển tin học ở nước ta có thể thấy: Đối với người dùng thông thường việc chuyển từ Windows sang Linux trong ngày một ngày hai là chưa thể Tuy nhiên đối với những người làm tin học, đặc biệt là đối với sinh viên, việc tìm hiểu và nghiên cứu Linux và phần mềm mã nguồn mở là một điều kiện rất tốt để nâng cao hiểu biết của mình Linux dẫu sao vẫn là một hệ điều hành rất có giá trị: chi phí thấp, linh hoạt, ổn đinh, và bảo mật cao
Trang 11CHƯƠNG II: CÀI ĐẶT HỆ ĐIỀU HÀNH LINUX (CENTOS)
I Yêu cầu phần cứng:
Linux không đòi hỏi máy có cấu hình mạnh Tuy nhiên nếu phần cứng có cấu hình thấp quá thì
có thể không chạy được Xwindow hay các ứng dụng có sẳn Cấu hình tối thiểu nên dùng:
CPU: Pentium 3 trở lên
RAM: 64 MB trở lên cho text mode, 192 MB cho mode Graphics
Đĩa cứng: Dung lượng đĩa phụ thuộc vào loại cài đặt:
Custom Instalation (minimum): 520MB
Server (minimum): 870 MB
Personal Desktop: 1.9 GB
Custom Instalation (everything): 5.3 GB
2M cho cardd màn hình nếu muốn sử dụng mode cho đồ họa
II Đĩa cứng và phân vùng đĩa trong Linux:
Đĩa cứng được phân ra nhiều vùng khác nhau gọi là Partion Mỗi partion sử dụng một hệ thống tập tin và dữ liệu lưu trữ dữ liệu Mỗi đĩa chúng ta chỉ chia được tối đa 4 partion chính (primary) Giới hạn như vậy là do Master Boot Record của đĩa chỉ ghi tối đa 4 chỉ mục tới 4 partion
Để tạo nhiều partion lưu trữ dữ liệu (hơn 4) người ta dùng partion mở rộng (extended pariton) Thực ra partion mở rộng cũng là primary partition nhưng cho phép tạo ra các partition con được gọi là logical partition trong nó
III Quản lý ổ đĩa và partition trong Linux:
Linux sử dụng cơ chế truy xuất ổ đĩa thông qua tập tin Mỗi ổ đĩa được gán với một tập tin trong thư mục /dev/ Ký hiệu ổ đĩa fd cho ổ mềm, hd cho ổ cứng, sd dành cho ổ SCSI Ký tự a,
b, c … gắn thêm vào để xác định các ổ đĩa khác nhau cùng loại
Trang 12Ký tự mô tả ổ đĩa Các thiết bị lưu trữ (Physical block devices)
hda Primary Master
hdb Primary Slave
hdc Secondary Master
hdd Secondary Slave
sda First SCSI disk
sdb Second SCSI dish
Bảng ký tự mô tả ổ đĩa
Ví dụ: Ổ cứng thứ nhất hda, ổ cứng thứ 2 hdb … xác định các parttion trong ổ đĩa người ta dùng các số đi kèm Theo qui định partition chính và mở rộng được gán số 1 - 4 Các logical partition được gán các giá trị từ 5 trở đi
Hình 1: Partition trong Linux
Như hình vẽ trên là các partition của ổ cứng thứ nhất hda: có 2 partition chính ký hiệu là hda1
và hda2, một partition mở rộng là hda3 Trong partition mở rộng hda3 có 2 partition logic có
ký hiệu là hda6 và hda5
Trong Linux bắt buộc phải có tối thiểu 2 partition sau:
Partition chính chứa thư mục gốc (/) và hạt nhân (gọi là Linux Native partition)
Partition swap được dùng làm không gian hoán đổi dữ liệu khi vùng nhớ chính được sử dụng hết Kích thước của phần swap sử dụng tùy thuộc hệ thống mình sử dụng nhiều hay ít ứng dụng Thông thường thì kích thước vùng swap bằng kích thước bộ nhớ chính
Trang 13IV Các bước cài đặt hệ điều hành Linux:
1 Chọn phương thức cài đặt:
CD-ROM: Có thể khởi động từ CD-ROM hoặc khởi động bằng đĩa mềm boot
Đĩa cứng: Cần sử dụng đĩa mềm boot (dùng lệnh dd hoặc mkbootdisk để tạo đĩa mềm boot)
NFS image: Sử dụng đĩa khởi động mạng Kết nối tới NFS server
FTP: Sử dụng đĩa khởi động mạng Cài trực tiếp qua kết nối FTP
HTTP: Sử dụng đĩa khởi động mạng Cài trực tiếp qua kết nối HTTP
2 Chọn chế độ cài đặt:
Khi chương trình cài đặt khởi động sẽ hiển thị màn hình:
Hình 2: Chọn chế độ cài đặt
Chúng ta có thể chọn các chế độ:
Linux text: Chương trình cài đặt hệ điều hành dưới chế độ text (text mode)
[ENTER]: Chương trình cài đặt hệ điều hành dưới chế độ đồ họa (Graphical mode)
Trang 143 Chọn ngôn ngữ hiển thị trong quá trình cài đặt:
Mặc định trong bước này hệ thống sẽ chọn English làm ngôn ngữ chính hiển thị trong quá trình cài đặt Thông thường trong bước này ta sẽ chấp nhận phương thức chọn mặc định của hệ thống, tiếp tục chọn Next để sang trang kế tiếp
Hình 3: Chọn ngôn ngữ sử dụng
4 Cấu hình bàn phím:
Chọn loại bàn phím thích hợp Next
Hình 4: Chọn kiểu bàn phím
Trang 15Create custom layout: Chia partition theo tùy chọn của người dùng (manually)
Tùy theo từng yêu cầu mà chúng ta chọn các cách chia partition cho phù hợp, sau đó chọn Next
Hình 5: Chia partition
6 Cài đặt chương trình Boot Loader:
Boot Loader là chương trình cho phép chúng ta chọn các hệ điều hành để khởi động qua menu Khi chúng ta chọn, thì chúng xác định các tập tin cần thiết để khởi động hệ điều hành và giao quyền điều khiển lại cho hệ điều hành Boot Loader có thể được cài vào Master Boot record hoặc vào sector đầu tiên của partition
Trang 16Linux cho phép chúng ta sử dựng chương trình Boot Loader là GRUB hoặc LILO Cả hai Boot Loader đều có thể hổ trợ quản lý nhiều hệ điều hành trên một hệ thống:
Chúng ta chọn cài Boot Loader vào Master Boot Record (MBR) khi chưa có chương trình Boot Loader nào (ví dụ như của Windows) được cài, hoặc chúng ta chắc chắn chương trình Boot Loader của mình có thể khởi động được các hệ điều hành khác trong máy Khi cài lên MBR thì các chương trình Boot Loader trước đó sẽ bị thay thế bằng Boot Loader mới
Chúng ta không cài chương trình Boot Loader, khi đó cần phải sử dụng đĩa mềm boot
Trang 17IP Address: Chỉ định địa chỉ IP cho máy
Prefix (Netmask): Chỉ định netmask cho máy
Active on boot: Card mạng được kích hoạt khi hệ điều hành khởi động
Hostname: Nếu chúng ta có tên dns đầy đủ thì khai báo tên đầy đủ Trong trường hợp không kết nối vào mạng chúng ta cũng đặt tên cho máy thông qua mục chọn
manually Nếu không tên nào được điền vào thì giá trị mặc nhiên sử dụng là localhost Miscellaneous Settings: Để chỉ định địa chỉ Gateway và Primary DNS, và một số thông số khác Các trường không có giá trị thì trường đó không được sử dụng trong
hệ thống
Hình 7: Cấu hình mạng
8 Cấu hình khu vực địa lý:
Các vị trí chia theo châu lục Ở Việt Nam là Asia/Ho_Chi_Minh, ta có thể chọn mục này một cách dễ dàng thông qua việc định vị chuột tại đúng vị trí trên bảng đồ Next
Trang 18Hình 8: Cấu hình khu vực địa lý
9 Đặt mật khẩu cho người quản trị:
Trên Linux người quản trị thường được gọi là người root Mật khẩu của user root bắt buộc
có chiều dài tối thiểu của password là 6 ký tự Chúng ta nên đặt password gồm có ký tự, số
và các ký tự đặc biệt để bảo đảm an toàn Lưu ý password phân biệt chữ hoa và thường Next
Hình 9: Đặt mật khẩu cho người quản trị
Trang 1910 Chọn loại cài đặt:
Một số cài đặt thông dụng:
Desktop: Cài đặt hệ điều hành phục vụ cho công việc của một mày trạm
Server: Cài đặt hệ điều hành phục vụ cho máy chủ
Customize now: Có thể tích hợp các tùy chọn trên một cách tùy ý
Hình 10: Chọn loại cài đặt
Trang 2011 Tiến hành cài đặt hệ điều hành:
Sau khi thiết lập các thông số, chương trình sẽ tiến hành cài đặt hệ điều hành
Hình 11: Quá trình cài đặt hệ điều hành
Sau khi quá trình cài đặt hoàn tất, hệ thống yêu cầu reboot
Hình 12: Cài đặt hoàn tất
Trang 2112 Sử dụng hệ điều hành:
Sau khi hoàn tất quá trình cài đặt, để sự dụng hệ điều hành chúng ta phải thiết lập một vài thông số:
Cấu hình Firewall: Trong linux có tích hợp firewall để bảo vệ hệ thống chống lại một
số truy xuất bất hợp pháp từ bên ngoài Ta có thể chọn Enable hoặc Disable Forward
Hình 13: Cấu hình firewall
Tùy chỉnh ngày, giờ hệ thống:
Hình 14: Cài đặt ngày giờ hệ thống
Trang 22Tạo user đăng nhập:
Hình 15: Tạo user
Hoàn tất, đăng nhập và sử dụng:
Hình 16: Giao diện Desktop
Trang 23CHƯƠNG III: GIỚI THIỆU CÁC DỊCH VỤ LIÊN QUAN
I.Dịch vụ DNS (Domain Name System):
Ban đầu do quy mô mạng ARPAnet (tiền than của mạng Internet) còn nhỏ (chỉ vài trăm máy), nên chỉ có một tập tin đơn HOSTS.TXT lưu thong tin về ánh xạ tên máy tính thành địa chỉ IP Trong đó tên máy chỉ là một chuỗi văn bản không phân cấp (flat name) Tập tin này được duy trì tại một máy chủ và các máy chủ khác lưu giữ bản sao của nó Tuy nhiên khi quy mô mạng lớn hơn, việc sử dụng tập tin HOSTS.TXT có các nhược điểm sau:
Lưu lượng mạng và máy chủ duy trì tập tin HOSTS.TXT bị quá tải do hiệu ứng “cổ chai”
Xung đột tên vì không thể có hai máy tính cùng tên trong tập tin HOSTS.TXT Tuy nhiên do tên máy không phân cấp và không có gì bảo đảm để ngăn chặn việc tạo hai tên trùng nhau vì không có cơ chế ủy quyền quản lý tập tin nên có nguy cơ bị xung đột tên
Không đảm bảo sự toàn vẹn: việc duy trì một tập tin trên mạng lớn rất khó khăn Ví
dụ như khi tập tin HOSTS.TXT vừa cập nhật chưa kịp chuyển đến máy chủ ở xa thì
đã có sự thay đổi địa chỉ trên mạng
Tóm lại việc dùng tập tin HOSTS.TXT không phù hợp cho mạng lớn vì thiếu cơ chế phân tán và mở rộng Do đó, dịch vụ DNS ra đời nhằm khắc phục các nhược điểm này Người thiết kế cấu trúc của dịch vụ DNS là Paul Mockapetris – USC‟s Information Sciences Institute, và các khuyến nghị RFC của DNS RFC 882 và 883, sau đó được bổ sung của RFC 1034, 1035
Trang 24Dịch vụ DNS hoạt động theo mô hình Client-Server: Phần Server gọi là máy chủ phục vụ tên hay còn gọi là Nameserver, còn phần Client là chương trình yêu cầu phân giải tên hay còn gọi là Resolver Nameserver chứa các thông tin CSDL của DNS, còn Resolver đơn giản chỉ là các hàm thư viện dùng để tạo các truy vấn (query) và gửi chúng qua đến Nameserver
DNS là một CSDL phân tán Điều này cho phép người quản trị cục bộ quản lý phần dữ liệu nội bộ thuộc phạm vi của họ, đồng thời dữ liệu này cũng dễ dàng truy cập được trên toàn
bộ hệ thống mạng theo mô hình Client-Server Hiệu suất sử dụng dịch vụ được tăng cường thông qua cơ chế nhân bản (replication) và lưu tạm (caching) Một hostname trong domain
là sự kết hợp giữa những từ phân cách nhau bởi dấu “.” Ví dụ: hostname là server.thanhlong.com, trong đó server là tên máy và thanhlong.com là tên vùng Domain name 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 17a: Cơ chế phân cấp DNS
Trang 25Cơ sở dữ liệu (CSDL) của DNS là một cây đảo ngược Mỗi nút trên cây cũng là gốc của 1 cây con Mỗi cây con là một phân vùng con trong toàn bộ CSDL DNS gọi là 1 miền (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 (subdomain)
Mỗi domain có 1 tên (domain name) Tên domain chỉ ra vị trí của nó trong CSDL DNS Trong DNS tên miền là chuỗi tuần tự các tên nhãn tại nút đó đi ngược lên nút gốc của cây
và phân cách nhau bởi dấu chấm Tên nhãn bên phải trong mỗi domain name được gọi là top-level domain
Hình 17b: Cơ chế phân cấp DNS
.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ục
.gov Các tổ chức thuộc chính phủ mil Các tổ chức quân sự
.int Các tổ chức được thành lập bởi các hiệp ước quốc tế
Trang 26Vì sự quá tải của những domain name đã tồn tại, do đó đã làm phát sinh những top-level domain mới
.arts Những tổ chức liên quan đến nghệ thuật và kiến trúc nom Những địa chỉ cá nhân và gia đình
.rec Những tổ chức có tính chất giải trí, thể thao firm Những tổ chức kinh doanh, thương mại info Những dịch vụ liên quan đến thông tin Bên cạnh đó, mỗi nước cũng có một top-level domain Ví dụ top-level domain của Việt Nam là vn, Mỹ là us, … Mỗi quốc gia khác nhau có cơ chế tổ chức phân cấp domain khác nhau
2 Cách phân bổ dữ liệu quản lý domain name:
Những root nameserver (.) quản lý những top-level domain trên internet Tên máy và địa chỉ IP của những nameserver này được công bố cho mọi người biết, chúng được liệt kê trong bảng sau:
a.root-servers.net 198.41.0.4 b.root-servers.net 128.9.0.107 c.root-servers.net 192.33.4.12 d.root-servers.net 128.8.10.90 e.root-servers.net 192.203.230.10 f.root-servers.net 192.5.5.241 g.root-servers.net 192.112.36.4 h.root-servers.net 128.63.2.53 i.root-servers.net 192.36.148.17 j.root-servers.net 192.58.128.30 k.root-servers.net 193.0.14.129 l.root-servers.net 198.32.64.12 m.root-servers.net 202.12.27.33
Trang 27Thông thường một tổ chức được đăng ký một hay nhiều domain name Sau đó, mỗi tổ chức
sẽ cài đặt một hay nhiều nameserver và duy trì cơ sở dữ liệu cho tất cả những máy tính trong domain Những nameserver của tổ chức được đăng ký trên internet Một trong những nameserver này được biết như là Primary Server Nhiều Secondary Name Server được dung để làm backup cho Primary Name Server Trong trường hợp Primary bị lỗi, Secondary được sử dụng để phân giải tên miền Primary Name Server có thể tạo ra những subdomain và ủy quyền những subdomain này cho những nameserver khác
3 Phân giải thuận:
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
Có hai loại truy vấn:
Truy vấn đệ quy: bắt buộc phải trả về kết quả tìm được hoặc thông báo lỗi nếu như truy vấn này không phân giải được
Truy vấn tương tác: trả lời cho resolver thông tin tốt nhất mà nó có được vào thời điểm lúc đó
Mỗi nút trong miền in-addr.arpa có tên nhãn là chỉ số thập phân của địa chỉ IP
5 Sự khác nhau giữa Zone và Domain:
Zone: bao gồm một domain hay nhiều subdomain
Domain : bao gồm nhiều subdomain và zone
Trang 28Hình 18: Zone và Domain
6 Chứng nhận tên miền:
FULL QUALIFIED DOMAIN NAME (FQDN):
Một tên miền đầy đủ của một 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 gốc, mỗi tên gọi cách nhau bởi dấu chấm
Tên tuyệt đối (là tên có xuất hiện dấu chấm sau cùng) cũng được xem là tên miền đầu
đủ đã được chứng nhận
7 Phân loại Domain Name Server:
MASTER NAME SERVER:
Mỗi miền phải có một Master Name Server Người quản trị DNS sẽ tổ chức những tập tin CSDL trên Master Name Server Server này có nhiệm vụ phân giải tất cả các máy trong miền hay zone
SLAVE NAME SERVER:
Có nhiệm vụ sao lưu những dữ liệu trên Master Name Server Có thể có một hay nhiều Slave Name Server
Trang 29CACHING NAME SERVER:
Không có bất kỳ tập tin CSDL nào Nó có chức nă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
8 Sự ủy 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 ủy quyền cho miền con tự quản lý và tổ chức CLDS cho miền con
Hình 19: Delegation Domain
9 Resource record:
Record SOA (Start of Authority):
Trong mỗi tập tin CSDL phải có một và chỉ một record SOA
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
Cú pháp:
[tên-miền] IN SOA [tên-server-dns] [địa chỉ email] (
Trang 30Ví dụ: 10800 ; Refresh sau 3 giờ
retry number: Nếu Slave Server không thể kết nối với Master 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ờ experi number: Nếu Slave Server không thể kết nối với Master Server sau khoảng thời gian expire (giây) này, thì Slave Server sẽ không trả lời mọi truy vấn về zone này nữa, 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
time-to-live number: giá trị này đƣợc dùng cho tất cả các record trong tập tin 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 31Record NS (Name Server):
Mỗi name server cho zone sẽ có một NS record
Record CNAME (Canonical Name):
Tạo tên bí danh trỏ vào một tên canonical
Cú pháp:
[tên máy alias] IN CNAME [tên máy gốc]
Ví dụ: www.thanhlong.com IN CNAME mail-svr.thanhlong.com
Record MX (Mail Exchanger):
DNS dùng record MX trong việc chuyển mail trên mạng Internet
Cú pháp:
[tên-domain] IN MX [độ ưu tiên] [tên mail server]
Trang 3210 Giới thiệu phần mềm BIND:
Hầu hết các phiên bản của Linux sử dụng phần mềm Bind là DNS server
Một số package của BIND:
bind-9.3.6-4.P1.el5: là package chính của DNS Server, cung cấp file cấu hình dịch
vụ, file script để cài đặt hệ thống DNS
bind-libs-9.3.6-4.P1.el5: cung cấp các thƣ viện trợ giúp cho DNS Server
bind-utils-9.3.6-4.P1.el5: cung cấp các tiện ích tích hợp cho DNS Server
bind-chroot-9.3.6-4.P1.el5: là package cung cấp một số tính năng bảo mật mới để giới hạn truy xuất file cấu hình của dịch vụ DNS
Một số tập tin cấu hình:
/etc/named.conf /var/named/
/var/named/zone_file Khai báo zone file, chỉ định tùy chọn cấu hình
named.conf Khai báo zone thuận và zone nghịch
named.ca Chứa các root name server
Trang 33named.empty Chỉ định CSDL cho zone 0.in-addr.arpa
named.localhost CSDL của zone thuận localhost
named.loopback CSDL của zone nghịch
Các bước cấu hình DNS
Khai báo zone trong tập tin /etc/named.conf
Khai báo resource record cho zone thuận và zone nghịch
Hiệu chỉnh các tùy chọn cho dịch vụ DNS trong tập tin /etc/named.conf
Cấu hình DNS Client
Kiểm tra hoạt động
Khai báo zone trong tập tin /etc/named.conf:
Zone: Định nghĩa một zone để quản lý CSDL cho miền hay miền con Thông thường khi cấu hình, ta khai báo hai zone: zone thuận và zone nghịch
type: chỉ ra loại name server
master: chỉ ra địa chỉ IP của master name server
file: chỉ định tập tin mô tả các resource record
Ví dụ: Để cấu hình cho zone thuận thanhlong.com và zone nghịch addr.arpa, ta khai báo như sau:
Trang 34Cấu hình zone file:
Tạo tập tin CSDL phân giải tên máy tính thành địa chỉ IP Tạo tập tin CSDL phân giải địa chỉ IP thành tên máy tính Tập tin CSDL phân giải thuận
Trang 35Hình 20: File cấu hình zone thuận
Tập tin CSDL phân giải nghịch
Hình 21: File cấu hình zone nghịch
Nội dung tập tin /etc/resolv.conf
nameserver [địa chỉ IP của Name-Server]
search [tên miền]
Trang 36Ví dụ : nameserver 172.31.0.3 search thanhlong.com Kiểm tra hoạt động:
Các công cụ giúp kiểm tra cấu hình DNS là lệnh nslookup, lệnh host, lệnh named-checkconf, lệnh named-checkzone
Lệnh named-checkconf named.conf kiểm tra lỗi trên tập tin cấu hình zone
Lệnh named-checkzone –d “zonename” zonefile.zone để kiểm tra lỗi trong tập tin phân giải thuận
Lệnh named-checkzone –d “reversezonename” zonefile.rev kiểm tra lỗi trên file phân giải nghịch
2 Mô hình hoạt động:
FTP có 02 chế độ hoạt động đó là: Active FTP (chế độ chủ động) và Passive FTP (chế độ thụ động)
Active FTP:
Trang 37Ở chế độ chủ động (active), máy khách FTP (FTP Client) dùng một cổng ngẫu nhiên không dành riêng (cổng N > 1024) kết nối vào cổng 21 của FTP Server Sau đó, máy khách lắng nghe trên cổng N + 1 và gởi lệnh PORT N + 1 đến FTP Server Tiếp theo từ cổng dữ liệu của mình, FTP Server sẽ kết nối ngược lại vào cổng dữ liệu của Client đã khai báo trước đó (tức là N + 1)
Ở khía cạnh Firewall, để FTP Server hổ trợ chế độ active các kênh truyền sau phải mở: Cổng 21 phải được mở cho bất cứ nguồn gửi nào (để Client khởi tạo kết nối)
FTP Server‟s port 21 to ports > 1024 (Server trả lời về cổng điều khiển của Client) Cho kết nối từ cổng 20 của FTP Server đến các cổng > 1024 (Server khởi tạo kết nối vào cổng dữ liệu của Client)
Nhận kết nối hướng đến cổng 20 của FTP Server từ các cổng > 1024 (Client gửi xác nhận ACKs đến cổng data của Server)
Hình 22: Sơ đồ kết nối active FTP
Bước 1: Client khởi tạo kết nối vào cổng 21 của Server và gửi lệnh PORT 1027 Bước 2: Server gửi xác nhận ACK về cổng lệnh của Client
Bước 3: Server khởi tạo kết nối từ cổng 20 của mình đến cổng dữ liệu mà Client đã khai báo trước đó
Bước 4: Client gửi phản hồi cho Server
Trang 38Passive FTP:
Để giải quyết vấn đề là Server phải tạo kết nối đến Client, một phương thức kết nối FTP khác đã được phát triển Phương thức này gọi là FTP thụ động (passive) hoặc PASV (là lệnh mà client gửi cho Server để báo cho biết là nó đang ở chế độ passive)
Ở chế độ thụ động, FTP client tạo kết nối đến Server, tránh vấn đề Firewall lọc kết nối đến cổng của máy bên trong từ Server Khi kết nối FTP được mở, Client sẽ mở 02 cổng không dành riêng N, N + 1 (N > 1024) Cổng thứ nhất dùng để liên lạc với cổng 21 của Server, nhưng thay vì gửi lệnh PORT và sau đó là server kết nối ngược về client, thì lệnh PASV được phát ra Kết quả là server sẽ mở 01 cổng không dành riêng bất kỳ P (P
> 1024) và gửi lệnh PORT P ngược về cho client Sau đó client sẽ khởi tạo kết nối từ cổng N + 1 vào cổng P trên server để truyền dữ liệu
Từ quan điểm Firewall trên server FTP, để hổ trợ FTP chế độ passive, các kênh truyền sau phải được mở:
Cổng FTP 21 của server nhận kết nối từ bất kỳ nguồn nào (cho client khởi tạo kết nối)
Cho phép trả lời từ cổng 21 FTP server đến cổng bất kỳ trên 1024 (Server trả lời cho cổng Control của Client)
Nhận kết nối trên cổng FTP server > 1024 từ bất cứ nguồn nào (Client tạo kết nối
để truyền dữ liệu đến cổng ngẫu nhiên mà server đã chỉ ra)
Cho phép trả lời từ cổng FTP server > 1024 đến các cổng > 1024 (Server gửi xác nhận ACKs đến cổng dữ liệu của Client)
Trang 39Hình 23: Sơ đồ kết nối passive FTP
Bước 1: Client kết nối vào cổng lệnh của Server và phát lệnh PASV
Bước 2: Server trả lời bằng lệnh PORT 2024, cho Client biết cổng 2024 đang mở để nhận kết nối dữ liệu
Bước 3: Client tạo kết nối truyền dữ liệu từ cổng dữ liệu của nó đến cổng dữ liệu
2024 của server
Bước 4: Server trả lời xác nhận ACK về cho cổng dữ liệu của Client
Trong khi FTP ở chế độ thụ động giải quyết được vấn đề phía Client thì nó lại gây ra nhiều vấn đề khác ở phía Server Thứ nhất là cho phép máy ở xa kết nối vào cổng bất
kỳ > 1024 của Server Điều này khá nguy hiểm trừ khi FTP cho phép mô tả dãy các cổng >= 1024 mà FTP server sẽ dùng
Vấn đề thứ hai là một số FTP client lại không hổ trợ chế độ thụ động Khi đó cần phải
có thêm trình FTP client Hầu hết các trình duyệt Web chỉ hổ trợ FTP thụ động khi truy cập FTP server theo đường dẫn URL ftp://
Trang 404 Một số tập lệnh của FTP Client:
server
(đây là kiểu truyền mặc định)
(đây là kiểu truyền mặc định)
FTP server
máy cục bộ
download file