Luận văn Thạc sĩ
Hà Nội Năm 2003
Đại học quốc gia hà nội
Khoa Công nghệ Hoàng Đắc Đạt
Luận văn Thạc Sĩ
Hoàng Đắc Đạt
Trang 3
Lời cám ơn
Tôi muốn gửi lời cám ơn chân thành tới tất cả những ngời đã
hỗ trợ và giúp đỡ tôi trong quá trình hoàn thành quyển luận văn
này.
Tôi muốn gửi lời cám ơn đặc biệt tới PGS. TS. Vũ Duy
Lợi, ngời đã gợi ý cho tôi hớng nghiên cứu của đề tài, ngời
đã đa ra những nhận xét quý giá và trực tiếp hớng dẫn tôi
trong quá trình nghiên cứu.
Tôi xin cám ơn toàn thể đồng nghiệp tại Trung tâm Công nghệ
Thông tin - Học Viện Công nghệ Bu chính Viễn thông, đơn
vị mà tôi đang công tác, đã có những giúp đỡ cho tôi trong quá
trình công tác và học tập
Cuối cùng, tôi xin gửi những lời cám ơn chân thành nhất tới cha
mẹ, anh em và bè bạn của tôi, những ngời đã có nhiều động
viên, khuyến khích với tôi trong cuộc sống cũng nh trong học
tập.Hà nội 12 -2003
Hoàng Đắc Đạt Đại học Quốc gia Hà Nội
khoa Công nghệ
2.7. Hệ thống đảm bảo an toàn dữ liệu 57
Chơng 3. Triển khai thử nghiệm 59
1. Yêu cầu tổ chức hệ thống và ứng dụng 59
2. Thiết kế và thực hiện 60
2.1. Kiến trúc hệ thống 60
2.2. Mô hình Mạng và phần cứng 61
Đại học Quốc gia Hà Nội
khoa Công nghệ
Luận văn Thạc Sĩ
Hoàng Đắc Đạt
Trang 5
2.3. Mô hình phần mềm 68
3. Đánh giá kết quả 71
Kết luận 73
Tài liệu tham khảo 76
§¹i häc Quèc gia Hµ Néi
khoa C«ng nghÖ
LuËn v¨n Th¹c SÜ
Hoµng §¾c §¹t
Trang 6
thuËt ng÷ vµ tõ viÕt t¾t
ISP Internet Service Provider
ICP Internet Content Provider
BIND Barkeley Internet Name Domain
DNS Domain Name System
FTP File Transfer Protocol
GNU GNU’s Not Unix
Hình 4. Mô hình hệ thống cung cấp dịch vụ Web 16
Hình 5. Mô hình hệ thống dịch vụ Email 17
Hình 6. Kiến trúc SNMP 20
Hình 7. Kiến trúc tổng thể của hệ thống 31
Hình 8. Cấu trúc phần mềm 34
Hình 9. Sơ đồ biểu diễn DNS Server 35
Hình 10. Sơ đồ hoạt động của DNS Server 37
Hình 11. Mô hình hoạt động của DNS 38
Hình 12. Cơ chế truy vấn NS 40
Hình 13. Sơ đồ kết nối hệ thống Email 42
Hình 14. Sơ đồ quá trình xử lý th 42
Hình 15. Sơ đồ biểu diễn hoạt động của ProFTP 45
Hình 16. Sơ đồ biểu diễn hoạt động của Apache WebServer 48
Hình 17. Lợc đồ cấu trúc dữ liệu của LDAP 50
Hình 18. Sơ đồ đồng bộ dữ liệu của LDAP Server 51
Hình 19. Sơ đồ mô tả quá trình xác thực của Cistron Radius 53
Hình 20. Mô hình Cistron Radius trong ISPBox 53
Hình 21. Mô hình kết nối hệ thống triển khai tại VNPT 60
Hình 22. Mô hình phân lớp mạng 63
Hình 23. Sơ đồ phân chia cổng và VLAN trên Switch 66
Đại học Quốc gia Hà Nội
khoa Công nghệ
Luận văn Thạc Sĩ
Hoàng Đắc Đạt
Trang 8
Danh sách các Bảng
Bảng 1. Mô tả khả năng đáp ứng đối với cấu hình phần cứng 13
những sản phẩm phần mềm mã nguồn mở để tuỳ biến và xây dựng một giải pháp mạng
cho riêng mình. Giải pháp mạng dùng riêng mà đề tài đề cập tới liên quan tới việc tổ
chức cấu hình phần cứng, thiết kế hệ thống mạng, phát triển các dịch vụ nền tảng cho
hệ thống,
Đối tợng mà sản phẩm của đề tài nhắm tới chính là các cơ quan, các doanh nghiệp,
các tổ chức hay thậm chí các nhà cung cấp dịch vụ Internet có nhu cầu thiết lập hệ
thống mạng dùng riêng của mình. Tuỳ theo hoàn cảnh đặc thù riêng của từng đơn vị mà
giải pháp mạng dùng riêng này sẽ có những tuỳ biến hợp lý để phù hợp với hoàn cảnh
thực tế.
Quá trình nghiên cứu đề tài hoàn toàn dựa trên việc tiếp cận, nắm bắt các gói phần mềm
mã nguồn mở (sản phẩm tri thức của rất nhiều tổ chức, cá nhân gộp lại); chắt lọc và tuỳ
biến những chức năng cần thiết cho giải pháp và lập trình những đoạn mã nguồn cho
các chức năng mới. Việc phát triển thêm các đoạn mã nguồn vào sản phẩm mã nguồn
mở đảm bảo tuân theo chuẩn GNU đã đề ra. Từ các gói phần mềm cụ thể đó, đề tài sẽ
Đại học Quốc gia Hà Nội
khoa Công nghệ
Luận văn Thạc Sĩ
Hoàng Đắc Đạt
Trang 10
đề xuất mô hình kết nối giữa các gói phần mềm để tạo ra một giải pháp hoàn chỉnh
cung cấp các dịch vụ cho hệ thống.
Dựa trên kết quả đạt đợc của đề tài, sản phẩm mà đề tài nghiên cứu sẽ đợc triển khai
tại một đơn vị cụ thể.
Báo cáo của đề tài đợc tập trung vào các vấn đề chính sau:
Chơng một, đề tài sẽ trình bày về nhu cầu sử dụng dịch vụ trong các hệ
thống mạng dùng riêng và trình bày tổng quan về phần mềm mã nguồn mở.
Chơng hai, đề tài sẽ nghiên cứu chi tiết về kiến trúc tổng thể của hệ thống,
các thành phần có mặt trong hệ thống và cơ chế giao tiếp giữa các thành phần
đó với nhau.
các lớp quản lý và ứng dụng bên trên. Đại học Quốc gia Hà Nội
khoa Công nghệ
Luận văn Thạc Sĩ
Hoàng Đắc Đạt
Trang 12
Hình 1. Kiến trúc tổng thể của một hệ thống mạng dịch vụ
1.2. Yêu cầu về hệ thống phần cứng
Thiết bị phần cứng cho mạng cung cấp dịch vụ cần đáp ứng yêu cầu về độ tin cậy và ổn
định trong hoạt động. Các máy chủ chế tạo theo chuẩn công nghiệp với cấu hình đủ
mạnh (Pentium III, 256MB-2GB RAM, hỗ trợ RAID) là hoàn toàn đáp ứng đợc các
yêu cầu về phần cứng khi tổ chức một mạng với số ngời sử dụng nhỏ hơn 10.000
ngời trong điều kiện ở Việt Nam.
Để đáp ứng yêu cầu cung cấp dịch vụ mạng có chất lợng cao, chúng ta có thể tham
khảo một số cấu hình sau:
Số ngời truy cập đồng thời 1-100 100 - 500 500-1000
Web server
Dung lợng RAM 512 MB 2 GB 4 GB
Dung lợng đĩa cứng 9 GB 9 GB 18 GB
Email server
Quản lý Truy nhập, Hosting và An ninh Hệ thống
Hạ tần
g
cơ sở, thiết bị
p
hần cứn
g
Đại học Quốc gia Hà Nội
khoa Công nghệ
Luận văn Thạc Sĩ
Hoàng Đắc Đạt
Trang 13
Số ngời truy cập đồng thời 1-100 100 - 500 500-1000
Dung lợng RAM 64 MB 64 MB 128 MB
Dung lợng đĩa cứng 9 GB 9 GB 9 GB
Bảng 1. Mô tả khả năng đáp ứng đối với cấu hình phần cứng
Để lựa chọn cấu hình thiết bị phù hợp với quy mô hoạt động của một hệ thống mạng,
chúng ta cần phải khảo sát các nhu cầu của hệ thống, số lợng ngời dùng, các yếu tố
khách quan, cơ sở hạ tầng (về mặt vật lý) của hệ thống. Từ đó chúng ta sẽ đa ra đợc
những cấu hình hợp lý, đảm bảo đáp ứng đợc về mặt kỹ thuật cũng nh tiết kiệm trong
chi phí đầu t.
1.3. Các yêu cầu về dịch vụ và ứng dụng nền tảng
Để một hệ thống mạng hoạt động hiệu quả, các dịch vụ và ứng dụng nền tảng trên đó
phải đảm bảo cung cấp tới khách hàng đầy đủ các tiện ích tiện lợi, dễ sử dụng. Mô hình
tổng quát về mặt dịch vụ của một hệ thống mạng đợc thể hiện nh sau:
Đại học Quốc gia Hà Nội
khoa Công nghệ
Luận văn Thạc Sĩ
Proxy
(Squid, T.Rex, )
Firewall
Hình 2. Kiến trúc hệ thống mạng máy tính dùng riêng
Các thành phần dịch vụ mà hệ thống cung cấp bao gồm:
Web/ Web Hosting
Th điện tử
News
Truyền file (FTP)
Proxy/Web caching
Tên miền (DNS)
DHCP
Xác thực ngời dùng quay số từ xa (RADIUS)
Thông tin th mục (LDAP)
Đại học Quốc gia Hà Nội
khoa Công nghệ
Luận văn Thạc Sĩ
Hoàng Đắc Đạt
Trang 15
Việc lựa chọn một phần mềm thích hợp trong hệ thống cần phải căn cứ vào các tiêu
chuẩn về:
Các tính năng của phần mềm
Năng lực hoạt động
Khả năng mở rộng
Đơn giản trong tích hợp hệ thống
Dễ dàng khi thực hiện cải tiến và sửa đổi
Các khối chức năng chính của hệ thống cung cấp dịch vụ sẽ bao gồm:
Hệ thống cung cấp các dịch vụ nền tảng bao gồm: web (web hosting và web
Dịch vụ WEB
DHC
P
LDA
P
DN
S
DNS re
q
ues
t
User information re
q
uest
IP address re
q
uest
Dịch vụ Email
Kiểm soát truy nhập
Dịch vụ hệ thống
Đại học Quốc gia Hà Nội
khoa Công nghệ
Luận văn Thạc Sĩ
Hoàng Đắc Đạt
Trang 16
1.3.1. Các dịch vụ Nền tảng (WEB, EMAIL, FTP)
Dịch vụ WEB:
Nh đã trình bày trong mô hình các khối chức năng, hệ thống cung cấp dịch vụ Web sẽ
P
WEB
Đ
ồ
n
g
bộ
h
óa
ánh xạ th mục/ Xác thực ngời dùng
Đại học Quốc gia Hà Nội
khoa Công nghệ
Luận văn Thạc Sĩ
Hoàng Đắc Đạt
Trang 17
Chuyển email: Phần lớn email đợc chuyển trên mạng sử dụng giao thức
SMTP (Simple Mail Transfer Protocol), bên cạnh giao thức này còn có nhiều
giao thức truyền email khác
Lu trữ và quản lý email: Ngời sử dụng dịch vụ email và các mail client
thờng dùng các giao thức POP/IMAP để truy nhập tới hòm th của mình.
Quản lý ngời sử dụng hệ thống email: Thông tin liên quan đến kiểm soát
truy nhập vào các hòm th cá nhân đợc lu trữ tập trung trong cơ sở dữ liệu
của LDAP server, mỗi khi nhận đợc các yêu cầu gửi/nhận email, các dịch
vụ tơng ứng sẽ hỏi máy chủ LDAP các thông tin xác thực cần thiết trớc khi
thực hiện các yêu cầu gửi/nhận email.
P
Má
y
tr
ạ
m
Đại học Quốc gia Hà Nội
khoa Công nghệ
Luận văn Thạc Sĩ
Hoàng Đắc Đạt
Trang 18
Cho phép che th mục và file của hệ thống theo các thuộc tính khác nhau.
Có thể hạn chế dung lợng đối với ngời sử dụng (quota).
Xác thực ngời sử dụng
Ghi lại thông tin truy nhập của ngời sử dụng (logging).
1.3.2. dịch vụ Thông tin th mục
Lightweight Directory Access Protocol (LDAP) là một giao thức để thực hiện dịch vụ
truy cập trực tuyến đến các th mục. Nó chạy trực tiếp thông qua TCP, và có thể đợc
sử dụng để truy cập đến các dịch vụ chuẩn của LDAP hoặc truy cập đến các dịch vụ th
mục mà nó đợc hỗ trợ bởi giao thức X.500.
1.3.3. hệ quản trị Cơ sở dữ liệu
Đối với bất kỳ một hệ thống thông tin nào, yếu tố quan trọng hàng đầu là dữ liệu của hệ
thống. Hệ thống mạng dùng riêng bao gồm rất nhiều các dịch vụ hoạt động trên đó.
Chức năng của một hệ quản trị cơ sở dữ liệu là lu giữ, thao tác, quản lý các dữ liệu của
hệ thống.
Hiện nay có rất nhiều các hệ quản trị cơ sở dữ liệu tốt mà chúng ta có thể sử dụng, ví dụ
nh: ORACLE, MySQL, PostgreSQL, DB2,
Việc lựa chọn một hệ quản trị cơ sở dữ liệu thích hợp sẽ mang lại tính hiệu quả cho hệ
mạng. Một khi kẻ xâm nhập đã vợt qua đợc firewall, kẻ đó có thể hoạt động tùy ý
mạngtrên mạng.
1.3.5. Các dịch vụ hệ thống
ứng dụng quản trị mạng bằng giao thức SNMP:
SNMP (Simple Network Management Protocol) giao thức quản trị mạng đơn giản.
SNMP đợc thiết kế dựa trên mô hình Manage/Agent. Vì các Agent đòi hỏi phần mềm
tối thiểu nên đợc gọi là đơn giản. Mọi chức năng xử lý và lu trữ dữ liệu đều nằm
trên hệ quản trị, trong khi chỉ có một tập con của các chức năng đó đợc cài đặt trên hệ
bị quản trị. SNMP bao gồm một tập hạn chế các lệnh quản trị (commands/response).
Hệ quản trị gửi các lệnh Get, GetNext và Set để tìm kiếm các biến đơn, các đối tợng
hoặc để thiết lập giá trị của một biến đơn. Hệ bị quản trị gửi trả lời để hoàn tất các lệnh
trên. Hệ bị quản trị gửi tới hệ quản trị một thông báo sự kiện gọi là bẫy (trap) khi xảy
ra các điều kiện nhất định
SNMP giả định mạng kiểu không liên kết. Dữ liệu đợc truyền mà không cần thiết
lập kết nối. Thay vì sử dụng TCP/IP, SNMP sử dụng UDP/IP ở các tầng dới. Đại học Quốc gia Hà Nội
khoa Công nghệ
Luận văn Thạc Sĩ
Hoàng Đắc Đạt
Trang 20
Truyền thông
trên mạng
ứng dụng quản trị
Liên kết dữ liệu
I
P
SNMP Manage
r
UD
P
Ge
t
Ge
t
Nex
t
Se
t
GetResponse
Even
t
Các tài n
Đối tợng quản trị
ứng dụng quản trị đối tợng
Thông điệp SNM
P
Hệ
q
uản trị SNM
P
Hệ bị
q
uản trị SNM
P
Đại học Quốc gia Hà Nội
khoa Công nghệ
Luận văn Thạc Sĩ
Hoàng Đắc Đạt
Trang 21
các nút móc nối với nhau và móc nối với nút gốc (root) theo một đờng dẫn. Có thể thể
hiện đờng dẫn này dới dạng viết nh sau: các domain cấp cao viết bên phải, domain
cấp thấp hơn viết bên trái và phân cách giữa hai cấp của domain bằng dấu chấm. Ví dụ:
mail.example.com
2. Tổng quan về phần mềm mã nguồn mở
2.1. Định nghĩa
Phần mềm mã nguồn mở là những phần mềm đợc cung cấp dới cả dạng mã và
nguồn, không chỉ là miễn phí về giá mua mà chủ yếu là miễn phí về bản quyền: ngời
dùng có quyền sửa đổi, cải tiến, phát triển, nâng cấp theo một số nguyên tắc chung qui
định trong giấy phép phần mềm nguồn mở (ví dụ General Public Licence - GPL) mà
không cần xin phép ai, điều mà họ không đợc phép làm đối với các phần mềm nguồn
đóng (tức là phần mềm thơng mại). Nhà cung cấp phần mềm nguồn mở có quyền yêu
Th viện phần mềm không phải trả phần trăm (Royalties Free Software
Libraries)
Là những phần mềm mà mã nhị phân cũng nh mã nguồn đợc dùng và phân phối
tự do, nhng ngời dùng không đợc phép sửa đổi. Ví dụ: các chơng trình th
viện lớp học, các tệp header,
Phần mềm mã nguồn mở kiểu BSD (OpenSource BSD - style)
Một nhóm nhỏ khép kín (closed team) đã phát triển các phần mềm mã nguồn mở
theo giấy phép phân phối Berkeley (BSD Berkeley Software Distribution) cho
phép sử dụng và phân phối lại các phần mềm này dới dạng mã nhị phân và mã
nguồn. Tuy ngời dùng có quyền sửa đổi mã, nhng về nguyên tắc nhóm phát
triển không cho phép ngời dùng tự do đa mã đã sửa vào lại kho mã của nhóm
phát triển mà không đợc họ kiểm tra trớc (gọi là các check-in)
Phần mềm mã nguồn mở kiểu Apache (OpenSource Apache - style)
Chấp nhận nguồn mở kiểu BSD nhng cho phép những ngời ngoài nhóm phát
triển xâm nhập vào lõi của mã nền (core codebase), tức là đợc phép thực hiện các
check in
Phần mềm mã nguồn mở kiểu CopyLeft hay kiểu Linux (OpenSource
CopyLeft, Linux - style)
Đại học Quốc gia Hà Nội
khoa Công nghệ
Luận văn Thạc Sĩ
Hoàng Đắc Đạt
Trang 23
Phần mềm mã nguồn mở kiểu CopyLeft (cách chơi chữ của Free Software
Foundation FSF và GNU GNUs Not Unix, để đối nghịch hoàn toàn với
CopyRight) hay còn gọi là giấy phép GPL (General Public Licence) là một bớc
tiến quan trọng theo hớng tự do hoá của các giấy phép phần mềm. Giấy phép
GPL yêu cầu không những mã nguồn gốc phải đợc phân phối theo các qui định
của GPL mà mọi sản phẩm dẫn xuất cũng phải tuân thủ GPL.
mại
Hoàn toàn đóng, không đợc quyền nào. Muốn dùng thì phải mua và chỉ dùng
đợc trong khuôn khổ các chức năng định trớc của sản phẩm.
Phần mềm trình
diễn
3
Với những
chức năng
hạn chế
3
Sử dụng phi thơng
mại
3
Phụ thuộc
vào cách sử
dụng
3
Phần mềm chia sẻ
3
Không phải
trả lệ phí %
3
Nhị phân không %
(Freeware)
3 3 3
Các dẫn
xuất đều
đợc tự
do
Nguồn mở kiểu
Apache
3 3 3 3 3 3
Nguồn mở kiểu
GNU
3 3 3 3 3 3 3
Bảng 2. So sánh mức độ "mở"của các loại phần mềm
Để hiểu kỹ hơn về các phần mềm mã nguồn mở, chúng ta cần bắt đầu từ cách phát triển
phần mềm. Chơng trình phần mềm đợc viết bằng các ngôn ngữ bậc cao - chơng
trình nguồn (để ngời viết chơng trình có thể diễn đạt ý tởng gần giống nh ngôn
ngữ của con ngời). Các chơng trình này sau đó đợc dịch (biên dịch hoặc thông dịch)
để khi chạy, chơng trình sẽ có dạng ngôn ngữ máy (mã nhị phân). Khi thay đổi chức
năng của phần mềm, chơng trình nguồn sẽ đợc thay đổi và dịch lại. Triết lý gắn với
chơng trình phần mềm mã nguồn mở rất đơn giản: "Các lập trình viên có thể đọc, sửa
đổi, phân phát lại một đoạn hoặc toàn bộ mã nguồn của phần mềm. Tất cả mọi ngời
đều có thể sử dụng, cải tiến và sửa chữa các lỗi nằm trong phần mềm". Sự phổ biến của
các chơng trình phần mềm mã nguồn mở nằm ở chỗ, nó cho phép ngời tích hợp hệ
thống có thể bổ sung và cải tiến những ứng dụng này thành những sản phẩm tốt hơn,
phù hợp hơn cho khách hàng.
Những ngời phát triển phần mềm mã nguồn mở đã chứng minh đợc khả năng phát
triển của các sản phẩm theo hớng này trong nhiều trờng hợp tốt hơn so với các sản
phẩm theo mô hình đóng truyền thống (trong đó có rất ít các lập trình viên có thể
xem những mã nguồn và tất cả những ngời khác đều phải mò mẫm trong một khối các
mã nhị phân khó hiểu).
Mã nguồn mở khuyến khích phát triển những phần mềm đáng tin cậy với chất lợng
đặc biệt là trình biên dịch GNU C/C++.
Một loạt ngôn ngữ lập trình (nh Perl, Python, ) chất lợng cao.
Các máy chủ Web (nh Apache, TomCat, ).
Các máy chủ proxy (nh Squid, T.Rex, )
Các hệ quản trị cơ sở dữ liệu quan hệ.
Các hệ phát triển các trang web nh HTML, XML,
Phần mềm SAMBA, cho phép truy cập và thay đổi các tệp do Windows NT
và Windows 2000 quản lý.