1. Trang chủ
  2. » Luận Văn - Báo Cáo

Nghiên cứu, thiết kế và triển khai hệ thống mạng máy tính dùng riêng sử dụng phần mềm mã nguồn mở

76 595 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 76
Dung lượng 3,09 MB

Nội dung

Hướng nghiên cứu của đề tài là thiết kế, phát triển một hệ thống mạng máy tính dùng riêng sử dụng các phần mềm mã nguồn mở, tận dụng những nguồn tri thức sẵn có từ những sản phẩm phần mề

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ệ Bưu 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 -2003Hoàng Đắc Đạt

Trang 4

Mục lục

Lời cám ơn 3

thuật ngữ và từ viết tắt 6

Danh sách các hình vẽ 7

Danh sách các Bảng 8

Mở đầu 9

Chương1 Tổng quan 11

1 Yêu cầu đối với hệ thống và ứng dụng 11

1.1 Các yêu cầu chung đối với hệ thống 11

1.2 Yêu cầu về hệ thống phần cứng 12

1.3 Các yêu cầu về dịch vụ và ứng dụng nền tảng 13

2 Tổng quan về phần mềm mã nguồn mở 21

2.1 Định nghĩa 21

2.2 Thực trạng của phần mềm mã nguồn mở 25

2.3 Đặc điểm của các phần mềm mã nguồn mở 29

Chương 2 Kiến trúc và giải pháp 31

1 Kiến trúc tổng thể 31

1.1 Tổ chức kết nối 34

1.2 Cấu trúc phần mềm 34

2 Các thành phần trong hệ thống 35

2.1 Hệ thống tên miền - DNS 35

2.2 Hệ thống dịch vụ cơ bản 41

2.3 Hệ thống thông tin thư mục LDAP 49

2.4 Hệ thống xác thực người dùng từ xa 52

2.5 Hệ thống bảo an mạng 54

2.6 Hệ thống quản trị 57

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

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

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

GPL GNU General Public License

GUI Graphic User Interface

HTTP Hyper Text Transport Protocol

NAS Network Access Server

INN InterNet News

IP Internet Protocol

JSP Java Server Page

LDAP Lightweight Directory Access Protocol

PHP PHP Hypertext Preprocessor

POP3 Post Office Protocol version 3

RADIUS Remote Authentication Dial-In User Service

RAS Remote Access Server

SMTP Simple Mail Transfer Protocol

SNMP Simple Network Management Protocol

SSL Sercure Socket Layer

UCE Unsolicited Commercial Email

Trang 7

Danh sách các hình vẽ

Hình 1 Kiến trúc tổng thể của một hệ thống mạng dịch vụ 12

Hình 2 Kiến trúc hệ thống mạng máy tính dùng riêng 14

Hình 3 Các dịch vụ Internet/Intranet cơ bản 15

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

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

Bảng 2 So sánh mức độ "mở"của các loại phần mềm 24

Bảng 3 Thị phần của các phần mềm mã nguồn mở 26

Bảng 4 Điều tra về các hệ điều hành cho Web Server 27

Bảng 5 Thị phần của các phần mềm hệ điều hành 27

Bảng 6 Bảng phân bố địa chỉ IP cho các cơ quan VP Tổng Công ty 65

Bảng 7 Thông số các cổng kết nối 67

Bảng 8 Bảng định tuyến 67

Bảng 9 Phiên bản phần mềm hiện đang sử dụng 69

Trang 9

Mở đầu

Cùng với sự phát triển mạnh mẽ của Công nghệ Thông tin và Truyền thông, ngày nay nhu cầu về các hệ thống mạng dùng riêng trong các cơ quan, doanh nghiệp hay các tổ chức đã tăng lên đáng kể Giải pháp mạng của các đơn vị này đưa ra thường là sử dụng các sản phẩm thương mại với giá thành cao, khả năng làm chủ về mặt công nghệ đối với các sản phẩm này không được tốt và khả năng tuỳ biến hệ thống theo từng hoàn cảnh cụ thể tại đơn vị là không được mềm dẻo

Đối với một quốc gia đang phát triển như Việt Nam, phương pháp phát triển phần mềm theo hướng mã nguồn mở ngày càng khẳng định ưu thế của mình so với các phương pháp phát triển hệ thống theo cách truyền thống Đội ngũ cán bộ làm Công nghệ Thông tin ở Việt Nam rất cần cù, chịu khó, khả năng nắm bắt các công nghệ mới thông qua việc học hỏi từ nhiều nguồn tri thức khác nhau rất tốt nên việc phát triển phần mềm theo hướng mã nguồn mở là phù hợp

Hướng nghiên cứu của đề tài là thiết kế, phát triển một hệ thống mạng máy tính dùng riêng sử dụng các phần mềm mã nguồn mở, tận dụng những nguồn tri thức sẵn có từ 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ẽ

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

Trong chương ba, đề tài sẽ báo cáo các kết quả triển khai thử nghiệm được thực hiện đại một đơn vị cụ thể

Trang 11

Chương1 Tổng quan

Đối với một hệ thống mạng nói chung và hệ thống mạng dùng riêng nói riêng, yêu cầu

đối với hệ thống và ứng dụng được tập trung vào các phần chính như sau:

Các yêu cầu chung về kiến trúc của hệ thống

Yêu cầu về hệ thống phần cứng và mạng

Yêu cầu về các dịch vụ và ứng dụng nền tảng

Cơ sở hạ tầng của một hệ thống mạng dùng riêng về cơ bản sẽ bao gồm nhiều lớp:

1 Cơ sở hạ tầng phần cứng hỗ trợ thực hiện kết nối vật lý cũng như trao đổi thông tin

2 Hệ điều hành và các công cụ hệ thống cho phép và đảm bảo triển khai các dịch vụ, yêu cầu đối với lớp này là phải có tính ổn định cao, với các hệ thống lớn, phải đảm bảo các yêu cầu về tính dư thừa dữ liệu (redundancy) và khả năng bó cụm (clustering)

3 Lớp các dịch vụ mạng cơ bản hỗ trợ truy nhập, hosting và bảo an hệ thống

4 Lớp hỗ trợ các công cụ hỗ trợ cho nhà cung cấp dịch vụ quản lý dịch vụ, hỗ trợ khách hàng, tính cước

5 Lớp các ứng dụng cho khách hàng

Trong đó công nghệ mã nguồn mở có thể được áp dụng hiệu quả tại các lớp 3, 4, 5 Trong phạm vi đề tài, tôi xin tập trung nghiên cứu chủ yếu vào ứng dụng công nghệ mã nguồn mở tại lớp 3 nhằm đảm bảo cung cấp các dịch vụ mạng ổn định và tin cậy cho các lớp quản lý và ứng dụng bên trên

Trang 12

Hình 1 Kiến trúc tổng thể của một hệ thống mạng dịch vụ

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

Quản lý Truy nhập, Hosting và An ninh Hệ thống

Quản lý Truy nhập, Hosting và An ninh Hệ thống

Hạ tầng cơ sở, thiết bị phần cứng

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ư

Để 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:

Trang 14

C¬ së d÷ liÖu:

Oracle, DB2, Berkeley,

øng dông Web

(jsp,php, )

Dial-up PSTN

Internet

ISP2 ISP1

SMTP

(Postfix)

IMAP/POP3 (Cyrus)

WEB

(Apache)

FTP (ProFTP)

LDAP (OpenLDAP)

RADIUS (Cistron)

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

X¸c thùc ng−êi dïng quay sè tõ xa (RADIUS)

Th«ng tin th− môc (LDAP)

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 content upload), email, truyền file (FTP),…

Dịch vụ thông tin thư mục (LDAP) dùng để lưu trữ và xác thực thông tin về người dùng

Hệ quản trị cơ sở dữ liệu

Kiểm soát truy nhập hệ thống và bảo an mạng

Các dịch vụ hệ thống khác như: DHCP, Quản trị mạng bằng giao thức SNMP, Dịch vụ tên miền - DNS…

FTPHTTP

POP/IMAPSMTP

RADIUS

Dịch vụ WEB

DHCPLDAP

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ẽ gồm có các máy chủ HTTP, máy chủ FTP và máy chủ LDAP Chức năng của các máy chủ này được tích hợp nhằm đảm bảo cung cấp:

Hỗ trợ giao thức HTTP cho phép các trình duyệt web (browser) có thể truy nhập tới các trang web và các ứng dụng web, duy trì dịch vụ web hosting Cho phép người sử dụng hệ thống và quản lý các website có thể quản lý nội dung các trang web từ xa, thông tin liên quan tới các trang web được chuyển tới máy chủ bằng giao thức truyền file FTP(File Transfer Protocol), việc phân chia thư mục lưu trữ các website được quản lý trong cơ sở dữ liệu của máy chủ LDAP

Để hỗ trợ quản lý tập trung dịch vụ này, thông tin về các website cũng như thư mục lưu trữ các website này sẽ được đưa vào cơ sở dữ liệu của máy chủ LDAP; thông tin về người quản lý website và các thông tin xác thực người cập nhật website cũng được lưu trữ trong cơ sở của LDAP

Hình 4 Mô hình hệ thống cung cấp dịch vụ Web

Dịch vụ Email:

Hệ thống dịch vụ email thực hiện các chức năng chính bao gồm:

Máy chủ LDAP

Máy chủ HTTP

FTPWEB

Đồng bộ hóa

ánh xạ thư mục/ Xác thực người dùng

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

Lưu 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 lưu 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

Máy chủ SMTP

Máy chủ LDAP

SMTP

Yêu cầu xác thực người dùng

Yêu cầu xác thực người dùng IMAP

POP

Máy trạm

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à lưu giữ, thao tác, quản lý các dữ liệu của

1.3.4 Kiểm soát truy nhập hệ thống và bảo an mạng

Kiểm soát truy nhập:

Mỗi khi một modem được lắp thêm vào máy tính hay máy chủ truyền thông trong một

tổ hợp mạng, thì mạng sẽ trở nên dễ bị tấn công hơn Những người quản lý mạng cho phép một số ít công cụ có thể bảo vệ chống lại những cuộc tấn công Trạng thái của những hệ thống bảo an thường đòi hỏi những thiết bị phần cứng đặc biệt hoặc là chỉ là thích hợp với một số lượng nhỏ những sản phẩm Vấn đề này tăng lên nhiều lần trong những hệ thống mạng lớn với nhiều điểm truy cập

RADIUS (Remote Authentication Dial-In User Service) – dịch vụ xác thực người dùng quay số từ xa là một giải pháp bảo an đáp ứng được các yêu cầu về truy nhập cũng như

Trang 19

bảo mật cho hệ thống Giải pháp này không đòi hỏi các thiết bị phần cứng đặc biệt mà vẫn có khả năng cho phép các máy client truy cập đến hệ thống với các mức bảo an khác nhau

Bảo an mạng:

Các giải pháp bảo an thường được sử dụng trong một hệ thống thông tin thường là các

“tường lửa” (firewall), proxy server hoặc hệ thống phát hiện xâm nhập trái phép - IDS (Intrusion Detection System) Chức năng của các thành phần này thường là chặn, lọc, cảnh báo những nguy cơ tấn công từ bên ngoài hệ thống hoặc thậm chí sửa chữa, khôi phục những phá hoại do các tấn công đó gây ra

Trong khi firewall đóng vai trò như nhân viên bảo vệ cơ quan, kiểm tra mọi người đến

và đi thì hệ thống kiểm tra xâm nhập giống như có một mạng lưới cảm biến để thông báo cho bạn biết khi có ai đó xâm nhập, họ đang ở đâu và làm gì Firewall “án ngữ” ở ngõ vào của mạng và chỉ làm việc với những gói tin khi chúng đi vào và đi ra khỏi 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à lưu 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

Trang 20

Hình 6 Kiến trúc SNMP

Dịch vụ tên miền – DNS:

DNS là một cơ sở dữ liệu phân tán, có trật tự Nó lưu giữ các thông tin ánh xạ tên miền trên Internet tới địa chỉ IP và ngược lại, các thông tin về đường đi của mail, và dữ liệu của các chương trình ứng dụng Internet khác

Các Client tìm kiếm thông tin trong DNS bằng cách gọi tới thư viện resolver, thư viện này gửi các truy vấn tới một hay nhiều name server và biên dịch các trả lời từ name server

Dữ liệu lưu trữ trong DNS được định danh bởi các domain name, các domain name này

tổ chức dưới dạng hình cây Mỗi nút của cây được gán một nhãn Domain name của

Truyền thông trên mạng

Thông điệp SNMP

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

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 cầu người dùng trả một số chi phí về các dịch vụ bảo hành, huấn luyện, nâng cấp, tư vấn, … tức là những dịch vụ thực sự đã thể hiện để phục vụ người dùng, nhưng không

được bán các sản phẩm nguồn mở vì nó là tài sản của trí tuệ chung, không phải là tài sản riêng của một nhà cung cấp nào

Trên thị trường phần mềm, có nhiều loại giấy phép Có thể chia các giấy phép này đại khái như sau [1] :

Phần mềm thương mại (Commercial Software)

Là phần mềm thuộc bản quyền của tác giả hoặc nhà sản xuất, chỉ được cung cấp ở dạng mã nhị phân, người dùng phải mua và không có quyền phân phối lại

Phần mềm thử nghiệm giới hạn (Limited Trial Software)

Là những phiên bản giới hạn của các phần mềm thương mại được cung cấp miễn phí nhằm mục đích thử nghiệm, giới thiệu sản phẩm và kích thích người dùng quyết định mua Loại sản phẩm này không những có giới hạn về mặt tính năng mà còn có giới hạn về mặt thời gian dùng thử (thường là 60 ngày)

Phần mềm “chia sẻ” (Shareware)

Trang 22

Loại phần mềm này có đủ các tính năng và được phân phối tự do, nhưng có một giấy phép khuyến cáo các cá nhân hoặc tổ chức mua sản phẩm

Phần mềm sử dụng phi thương mại (Non-commercial Use)

Loại phần mềm này được sử dụng tự do và có thể phân phối lại bởi các tổ chức phi lợi nhuận Nhưng các tổ chức kinh tế, thí dụ các doanh nghiệp, … muốn dùng phải mua Netscape Navigator là một thí dụ của loại hình phần mềm này

Phần mềm miễn phí hoa lợi (Royalties Free Binaries Software)

Phần mềm được cung cấp dưới dạng nhị phân và được dùng tự do Ví dụ: bản nhị phân của các phần mềm Internet Explorer và NetMeeting

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, nhưng 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ã, nhưng 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 nhưng 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)

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 – GNU’s 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

GPL cho người dùng tối đa quyền hạn và tự do (đồng thời với những giới hạn về bản quyền, thương phẩm) đối với các phần mềm mã nguồn mở theo GPL, cụ thể người dùng có quyền không những sao chép, sửa đổi, mua bán các phần mềm mã nguồn mở dưới dạng CopyLeft mà còn được quyền tự do như vậy đối với các phần mềm dẫn xuất Tóm lại, nếu phần mềm mã nguồn mở gốc đã theo CopyLeft thì mọi phần mềm mã nguồn mở dẫn xuất của nó cũng đương nhiên theo CopyLeft Bảng dưới đây so sánh mức độ mở của các loại phần mềm mã nguồn mở nói trên:

Khả năng cho

phép

Được phân phối tự do

Được phân phối lại

Dùng hạn chế

Được biết mã

nguồn

Được sửa mã

nguồn

Được

“check in”

Các dẫn xuất đều

được tự

do

Phần mềm thương

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

Phần mềm chia sẻ

3

Không phải trả lệ phí %

Trang 24

Khả năng cho

phép

Được phân phối tự do

Được phân phối lại

Dùng hạn chế

Được biết mã

nguồn

Được sửa mã

nguồn

Được

“check in”

Các dẫn xuất đều

để 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 cao bằng cách hỗ trợ những ứng dụng độc lập và nhanh chóng phát triển các mã nguồn

Để phần mềm có thể nhận được chứng nhận của hiệp hội mã nguồn mở OSI (Open Source Initiative), nó phải được phân phối với một chứng chỉ đảm bảo rằng người dùng

có thể sử dụng, đọc, thay đổi và phân phối lại những phần mềm này một cách tự do, hoàn toàn miễn phí

Trang 25

Với các phần mềm mã nguồn mở, mã nguồn trên thực tế không phải dưới dạng nhị phân mà thực sự mở cho mọi người và đặc biệt quan trọng là có thể theo dõi được “vết” thay đổi của hệ thống Nếu phần mềm này ảnh hưởng tới các phần mềm khác trong hệ thống thì tất cả những thông tin để khắc phục và giải quyết phải luôn được sẵn sàng cung cấp

2.2 Thực trạng của phần mềm mã nguồn mở

2.1.1 Trên thế giới

Phần mềm mã nguồn mở là một phong trào tin cậy đang phát triển rất nhanh Số lượng các phần mềm mã nguồn mở ngày càng nhiều và tăng theo hàm mũ và có thể liệt kê một số sản phẩm chính như sau [2]:

Các hệ điều hành Linux, NetBSD và FreeBSD Đó là những hệ điều hành Unix (Hiện có khuynh hướng lạm dụng khi ghép vào trong "Hệ điều hành Unix" một loạt chương trình ứng dụng, không thuộc "lõi" của Unix, như sendmail và qmail cho thư tín điện tử, X11, GNOME, KDE cho môi trường

đồ hoạ, BIND cho máy chủ quản lý tên miền, Những phần mềm này cũng

là mở và cần thiết cho các mạng TCP/IP.) Chỉ Linux là dành được sự tham gia phát triển của cộng đồng quốc tế, còn NetBSD và FreeBSD do Đại học Berkeley, Hoa Kỳ phát triển

Tập hợp các sản phẩm GNU của FSF do Richard Stallman chủ trì, phát triển

đặ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ý

Trang 26

Trong thời gian qua các phần mềm mã nguồn mở thường chủ yếu gắn với môi trường Unix và mạng Internet Do đó chúng thường được hay dùng trong các máy chủ, trong các máy phân phối dịch vụ và chứa dữ liệu bên trong các hệ thống thông tin của các cơ quan và trên Internet Ngày nay chúng đã dần dần xâm nhập vào các máy "khách", đặc biệt sau khi xuất hiện hàng loạt các công cụ văn phòng đủ chất lượng cho các ứng dụng chuyên nghiệp như Open Office Nhiều công ty Công nghệ Thông tin lớn trên thế giới

đã ủng hộ phần mềm mã nguồn mở, như IBM, HP, Một phần do tác động của những công ty này, phần khác muốn làm giảm vai trò thống trị của Microsoft, một số công ty khác cũng đã đưa sản phẩm của họ chạy trên nền Linux với giá thấp hơn nhiều so với các sản phẩm tương tự chạy trên các hệ điều hành sở hữu riêng, như các hệ quản trị cơ

sở dữ liệu quan hệ Oracle và Informix, các phần mềm SAP, môi trường phát triển Delphi d'Insprise, các công cụ văn phòng Corel, Cũng đã có những sản phẩm thương mại chất lượng rất tốt, cho phép mô phỏng Windows dưới Linux và thực hiện các chương trình viết cho môi trường Windows

Về thị phần đến năm 2000 của các phần mềm mã nguồn mở, ta có bảng sau đây do Dan Kuznetsky của International Data Corporation điều tra

9-Nhóm HĐH Phần trăm

(Tháng ba)

Phần trăm (Tháng sáu) Thành phần

Windows 49.2 % 49.6 % Windows 2000, NT4, NT3,

Windows 95, Windows 98 [GNU/]Linux 28.5 % 29.6 % [GNU/]Linux

Trang 27

Nhóm HĐH Phần trăm

(Tháng ba)

Phần trăm (Tháng sáu) Thành phần

Solaris 7.6 % 7.1 % Solaris 2, Solaris 7, Solaris 8

BSD 6.3 % 6.1 % BSDI BSD/OS, FreeBSD, NetBSD,

OpenBSD Các hệ Unix khác 2.4 % 2.2 %

AIX, Compaq Tru64, HP-UX, IRIX, SCO Unix, SUN OS 4 và các HĐH khác

Bảng 4 Điều tra về các hệ điều hành cho Web Server

Theo Zoebelein từ tháng 4-1999, GNU/Linux đã đứng thứ nhất về các hệ điều hành server trên Internet công cộng, đếm theo tên miền chủ yếu của các site ở châu Âu và các site giáo dục

Hệ điều hành Số phần trăm thị phần Thành phần hệ điều hành

GNU/Linux 28.5 % GNU/ Linux

Windows 24.4 % Tổ hợp mọi Windows (kể cả

Windows 95, 98, NT) SUN 17.7 % SUN Solaris hay SunOS

BSD 15.0 % Họ BSD (FreeBSD, NetBSD,

OpenBSD, BSDI, ) IRIX 5.3 % SGI IRIX

Bảng 5 Thị phần của các phần mềm hệ điều hành

Năm 1998, thị phần của Linux đã tăng 212%, năm 1999 tăng 156% trong khi thị phần chung của các hệ điều hành máy chủ chỉ tăng 23% Theo Steve Balmer, Tổng Giám đốc Microsoft, thì "Linux đã thực sự là mối đe doạ cho thị trường của Windows Nó cũng là mối đe doạ chính của Office"

2.1.2 Tại Việt Nam

Linux đã vào Việt Nam từ rất sớm Từ đầu những năm 90, một số phiên bản Linux khác nhau đã lần lượt đến Hà Nội và thành phố Hồ Chí Minh bằng nhiều con đường, hoặc do các chuyên gia tin học người Việt mang về sau khi đi công tác ở nước ngoài, hoặc do

Trang 28

0.93 với một vài ứng dụng phần mềm mã nguồn mở đơn giản kèm theo đã được một số chuyên gia Unix trong nước sử dụng thử và nhanh chóng thu hút sự chú ý của một số

đơn vị, như tại Trung tâm Hệ thống Thông tin ISC, thuộc Viện Nghiên cứu Công nghệ Quốc Gia - Bộ Khoa học Công nghệ Môi trường đã cài Linux trên một máy PC-AT386, nối trong một mạng gồm vài máy Macintosh giả terminal, một máy PC-AT386 cài SCO Unix (System V) và một trạm làm việc SUN SPARC chạy trên SunOS (BSD)

Sau đó các chuyên gia Công nghệ Thông tin trong nước đã giới thiệu Linux, chủ yếu trong giới nghiên cứu và giáo dục, và liên lạc trao đổi thông tin với những đồng nghiệp quốc tế và cộng đồng người Việt ở nước ngoài Những chuyên gia này, phần lớn làm việc tại Hoa Kỳ, Nhật Bản, Australia, Nga, Pháp, Đức, Bỉ và Thuỵ Sĩ, đã đóng một vai trò đặc biệt là chiếc cầu nối giữa phong trào phần mềm mã nguồn mở thế giới và Việt Nam

Ngay từ giữa những năm 90, một số chuyên gia Linux tại Hà Nội đã trực tiếp đóng góp vào việc xây dựng và thực hiện chương trình Quốc gia về Công nghệ Thông tin, qua đó

đã phần nào làm tăng nhanh sự thâm nhập của phần mềm mã nguồn mở ở Việt Nam

Được thành lập và tồn tại khá ổn định trong giai đoạn 1994-1998, Ban chỉ đạo Chương trình Quốc gia về Công nghệ Thông tin đã cho phép mở rộng tầm hoạt động của nhiều chuyên gia xuống các ngành và địa phương Năm 1996 Ban chỉ đạo Chương trình Quốc gia về Công nghệ Thông tin đã phối hợp với Trung tâm huấn luyện Công nghệ Thông tin tổ chức một khoá giảng về quản trị mạng và an toàn dữ liệu có thực tập sử dụng phần mềm mã nguồn mở trên nền Linux Ngoài việc cung cấp các phương tiện cho nhiều người, Ban chỉ đạo Chương trình Quốc gia về Công nghệ Thông tin cũng gửi một

số kỹ sư đi thực tập ở nước ngoài, trong đó có nhóm quản trị ITnet Trong hai ngày

27-28 tháng 1/1996 Ban chỉ đạo Chương trình Quốc gia về Công nghệ Thông tin đã tổ chức tại thành phố Hồ Chí Minh "Hội thảo về máy tính hệ thống mở và các hệ điều hành mạng tại Việt Nam" Hai tiểu ban Chuẩn và tiểu ban Mạng của Ban chỉ đạo Chương trình Quốc gia về Công nghệ Thông tin đã trình bày về tính tương thích kết nối

và tiêu chuẩn hoá Công nghệ Thông tin, đề cập đến khả năng mở của các hệ thống và mạng máy tính dựa trên khuyến cáo POSIX của Hội các Kỹ sư Điện và Điện tử (IEEE), cũng như đã nêu ra việc phát triển phần mềm mã nguồn mở trên nền Linux Năm 1999 Ban chỉ đạo Chương trình Quốc gia về Công nghệ Thông tin lại tổ chức một hội thảo

Trang 29

khác về phương hướng xây dựng và phát triển công nghệ phần mềm, mở đường cho Nghị quyết 07/2000 của Chính phủ ra đời sau này

Tháng 3-2000, Tổng Công ty Điện tử và Tin học cùng với nhóm LinuxVN tại Đại học Quốc Gia Hà Nội bắt đầu triển khai Dự án xây dựng hệ điều hành Linux Việt Nam (gọi

là Dự án OSLV) với các mục tiêu:

Xây dựng Hệ điều hành máy tính Linux trên nền tiếng Việt, hoàn thiện với

đầy đủ các chương trình ứng dụng do Việt Nam tích hợp và phát triển

Xây dựng một đội ngũ đông đảo các chuyên viên phần mềm có khả năng phát triển và hỗ trợ hệ điều hành này

Tạo môi trường thuận lợi để phát triển công nghiệp phần mềm chú trọng xuất xưởng các phần mềm ứng dụng trên nền Linux cho thị trường Việt Nam và xuất khẩu trong các lĩnh vực thiết yếu và quan trọng

Đồng thời với Dự án này, bằng vốn đầu tư của riêng mình Công ty CMC cũng đã triển khai dự án Linux Việt hoá trên cơ sở hệ điều hành nguồn mở Linux RedHat và phiên bản thử nghiệm đã được trình bày vào tháng 12-2000 tại hội thảo lần thứ nhất về Linux

và phần mềm mã nguồn mở ở Việt Nam

2.3 Đặc điểm của các phần mềm mã nguồn mở

Sử dụng mã nguồn mở có thể đem lại nhiều lợi ích cho người sử dụng, các lập trình viên cũng như các nhà cung cấp giải pháp:

Các giải pháp OpenSource có giá thành rất hấp dẫn

Giá thành dịch vụ và bảo dưỡng dịch vụ tương đương với các phần mềm thương mại, nhưng do không có chi phí bản quyền đối với các phần mềm mã nguồn mở nên các giải pháp mã nguồn mở có chi phí tổng cộng thấp hơn hẳn

Hỗ trợ tốt hơn, có nhiều lựa chọn hơn khi tích hợp hệ thống

Thông thường, quá trình sửa lỗi và thay đổi chương trình được các nhóm phần mềm mã nguồn mở thực hiện tốt hơn và nhanh hơn so với sử dụng kênh hỗ trợ của những nhà cung cấp phần mềm do có đội ngũ phát triển đông đảo và có quan hệ chặt chẽ với nhau

Trang 30

Giải pháp mã nguồn mở là một giải pháp hướng tới khách hàng, có thể mở rộng, tích hợp với hệ thống hiện tại và có thể thay đổi Do mã nguồn được cung cấp khi lựa chọn nên triển khai và duy trì bảo dưỡng hệ thống dễ dàng hơn các phần mềm thương mại

Tin cậy và có chất lượng

Phần mềm mã nguồn mở có chu trình phát triển và cung cấp nhanh chóng nhờ có

đội ngũ phát triển đông đảo Do đó chất lượng và độ tin cậy chung cao hơn các phần mềm phát triển theo phương pháp “mã nguồn đóng” Một nghiên cứu về độ tin cậy của Unix và các dịch vụ của nó đã cho chúng ta kết quả như sau:

“Tỷ lệ không thực hiện được trong các phiên bản thương mại của Unix trong khoảng từ 15 đến 43 % Tỉ lệ không thực hiện được trong các phiên bản Linux phân phối miễn phí của Unix thấp thứ nhì, chỉ khoảng 9 % Tỉ lệ không thực hiện

được trong các bản GNU công cộng là thấp nhất, chỉ 7 %.”

Phát triển gắn với các tiêu chuẩn

Quá trình phát triển phần mềm mã nguồn mở luôn tuân theo khả năng tương thích với các tiêu chuẩn đã được chuẩn hoá hơn là các phần mềm thương mại

Mã nguồn được cung cấp miễn phí

Các phần mềm mã nguồn mở được cung cấp không bị theo dõi về bản quyền và có thể sao chép tự do theo một số ràng buộc nhất định (GPL-General Public Licence)

và do đó không có các chi phí liên quan đến bản quyền

Trang 31

Chương 2 Kiến trúc và giải pháp

Mô hình tổng thể của giải pháp được thể hiện như hình vẽ dưới đây bao gồm các khối chức năng chính là:

Khối hệ thống ứng dụng và giao tiếp người dùng

Khối cung cấp dịch vụ

Khối đảm bảo an ninh mạng

Khối hạ tầng truyền thông

Hạ tầng truyền thông

Đường truyền Thiết bị mạng Thiết bị máy chủ

Hệ thống cung cấp dịch vụ và đảm bảo an ninh mạng

WEB Hosting

Dịch vụ thư điện

tử

FTP

DNS

Quản trị truy nhập từ

xa RADIU

S

Hệ thống

đảm bảo

an ninh mạng

Hệ thống sao lưu

dự phòng

Hệ quản trị cơ sở dữ liệu

LINUX

Hệ thống ứng dụng và giao tiếp người dùng

Trang 32

Tương ứng với các khối chức năng trên, đề tài đưa ra các công việc và giải pháp để thực hiện:

Đối với khối hạ tầng truyền thông, đề tài sẽ đề xuất phương án tổ chức kết nối vật lý, cấu hình thiết bị, cài đặt thiết bị,…

Đối với các khối đảm bảo an ninh mạng, khối cung cấp dịch vụ và khối hệ thống ứng dụng, đề tài sẽ đề xuất phương án sử dụng các phần mềm và phương thức kết nối giữa các ứng dụng đó với nhau

Khối hạ tầng truyền thông:

Toàn bộ các khối của hệ thống hoạt động dựa trên hạ tầng truyền thông Khối này bao gồm các thiết bị mạng, đường truyền vật lý và hỗ trợ của nhà cung cấp dịch vụ mạng cho hệ thống Ngoài ra, tuỳ theo nhu cầu của hệ thống mà khối này còn bao gồm các module kết nối đến các hệ thống mạng viễn thông khác để phục vụ cho các ứng dụng

hệ thống gia tăng

Khối đảm bảo an ninh mạng:

Khối này bao gồm các thiết bị phần cứng có vai trò lọc chặn thông tin, theo dõi lưu lượng và phát hiện thâm nhập trái phép Ngoài ra, trong khối này còn có một số phần mềm kiểm soát lưu lượng truy nhập hệ thống, mã hoá dữ liệu

Khối cung cấp dịch vụ:

Khối này là nền tảng để triển khai các hệ thống ứng dụng Nó đóng vai trò cung cấp các dịch vụ cho các ứng dụng, làm cầu nối giữa các máy chủ dịch vụ với người sử dụng Toàn bộ các hệ thống dịch vụ của giải pháp thuộc vào khu vực này Đây là khu vực hoạt

động của các phần mềm dịch vụ (các server daemon) và các tiện ích hỗ trợ hệ thống Các dịch vụ hoạt động bao gồm:

Dịch vụ quản lý thông tin

Dịch vụ Web/ Web hosting

Dịch vụ truyền file FTP

Dịch vụ phân giải tên miền DNS

Dịch vụ gửi nhận thư điện tử SMTP

Trang 33

Dịch vụ quản lý hộp thư người dùng POP3/IMAP

Dịch vụ cung cấp và quản lý truy nhập từ xa

Các dịch vụ của hệ thống bao gồm:

Cung cấp dịch vụ quản lý tên miền DNS:

Cung cấp dịch vụ Web/Web Hosting:

Cung cấp dịch vụ truyền file FTP:

Cung cấp dịch vụ gửi thư điện tử (SMTP, POP3 và IMAP4):

Cung cấp dịch vụ quản lý thông tin thư mục (LDAP):

Cung cấp dịch vụ xác thực người sử dụng (RADIUS):

Cung cấp công cụ quản trị hệ thống:

Cung cấp khả năng sao lưu, phục hồi khi có sự cố

Khối hệ thống ứng dụng và giao tiếp người dùng:

Đây là khu vực triển khai các ứng dụng phục vụ giao tiếp giữa hệ thống với người dùng Các ứng dụng bao gồm hệ thống Website, các trang Web của các thành viên, các ứng dụng đáp ứng các chức năng khác nhau của hệ thống và các ứng dụng phục vụ công tác quản trị

Trang 34

Cài đặt và cấu hình thiết bị

Đánh địa chỉ IP, thiết lập tên miền, …

Việc tổ chức kết nối và cấu hình hạ tầng mạng cho một hệ thống mạng dùng riêng hoàn toàn phụ thuộc vào hoàn cảnh cụ thể của từng đơn vị cũng như qui mô và nhu cầu về hệ thống của họ

Cấu trúc phần mềm của hệ thống được thể hiện như hình vẽ dưới đây:

User admin GUI Apache + gsp

DNS BIND

LDAP OpenLDAP

SMTP - iBox Postfix

RADIUS Cistron

HTTP Apache ProFTP

LDAP OpenLDAP

IMAP/POP3 Cyrus

SMTP - oBox Cistron

6

1 : Đồng bộ hóa DNS 4 : Xác thực người dùng 7 : Xác thực

2 : Sao lưu (slurpd) 5 : ánh xạ thư mục /Xác thực

3 : Mail relay 6 : Đồng bộ hóa thư mục

Module GUI cung cấp khả năng cập nhật dữ liệu về tên miền, thông tin người sử dụng, trong LDAP server

Trang 35

Module HTTP/FTP sử dụng các thông tin về người dùng trong LDAP server

Hệ thống tên miền - DNS (Domain Name System) là một cơ sở dữ liệu phân tán, có trật

tự Nó lưu giữ các thông tin ánh xạ host name trên Internet tới địa chỉ IP và ngược lại, các thông tin về đường đi của mail, và dữ liệu của các chương trình ứng dụng Internet khác,… với các tính năng chính như sau:

Phân giải tên miền cục bộ và tên miền Internet

Cho phép tổ chức và hỗ trợ các sub domain

Có khả năng đồng bộ thông tin tên miền với LDAP Server

Dưới đây là sơ đồ biểu diễn về mô hình hoạt động của DNS Server

Hình 9 Sơ đồ biểu diễn DNS Server

Mỗi khi sử dụng Internet là người dùng đã sử dụng tới DNS, tuy không cần biết nhiều

Trang 36

dựa vào DNS, Khác với máy tính, việc nhớ các địa chỉ bằng số đặc biệt là các địa chỉ Internet duy nhất là rất khó khăn bởi vậy mà người ta dùng đến DNS

DNS thực hiện biến đổi tên máy thành địa chỉ IP và ngược lại để giúp người dùng và các máy tính thuận tiện cho việc tìm kiếm và lưu trữ Trong thực tế DNS là một cơ chế chuẩn trên mạng để thông báo và truy nhập tất cả các kiểu thông tin về host, không phải chỉ mình địa chỉ DNS được sử dụng bởi tất cả các phần mềm trên mạng bao gồm email, các chương trình kết nối từ xa như Telnet, các chương trình truyền file như FTP

và WEB Browser như Netscape Navigator và Internet Explorer

Một điều quan trọng nữa của DNS là nó làm cho các thông tin chứa host có ý nghĩa riêng trên mạng Việc giữ thông tin về các host dưới dạng một file được định dạng trên một máy tính đơn chỉ giúp các người sử dụng trên các máy tính đó mà thôi Nhưng quan trọng nhất là DNS giúp phân phối việc quản lý thông tin của các Host giữa các site và các tổ chức Người dùng không cần đệ trình dữ liệu của họ hay nhận các bản sao

từ cơ sở dữ liệu máy chủ một cách định kỳ mà đơn giản bạn chỉ cần đảm bảo rằng việc lựa chọn của họ được coi là một zone được cập nhật trên name server của chính mình Name server của người sử dụng sẽ làm cho dữ liệu zone của họ có ý nghĩa với tất cả các server khác trên mạng

Bởi vì cơ sở dữ liệu được phân tán, nên hệ thống cũng cần có khả năng xác định dữ liệu người dùng đang tìm kiếm thông qua việc tìm kiếm một số vị trí có thể DNS tạo ra cho name server sự nhanh nhạy để truy nhập cơ sở dữ liệu và tìm kiếm dữ liệu trong zone Trước khi tìm hiểu kỹ về DNS chúng ta cần phải phân biệt được các khái niệm: domain

và zone

Domain là một nhánh của cây domain (domain tree)

Domain name là một danh sách các tên từ bất kỳ một nút nào cho tới gốc Zone là một nhánh của domain về mặt tổ chức được đại diện cho một tổ chức nào đó Người quản trị của một domain có quyền lựa chọn một phần của nó

và duy trì một phần khác trong zone dưới mức zone đó

Nguyên lý hoạt động của DNS Server được thể hiện như trong hình vẽ dưới đây:

Trang 37

Hình 10 Sơ đồ hoạt động của DNS Server

Để kiểm tra xem hệ thống hoạt động hay không, trên hệ thống ta gõ nslookup sau đó

gõ tên domain ví dụ nh− cdit.com.vn Nếu hệ thống hoạt động tốt máy sẽ trả về địa chỉ IP của máy có domain đó

Truy vấn www.eu.org ?

1

Trả lời: 192.58.58.251

3

2

Trang 38

Hình 11 Mô hình hoạt động của DNS

Trong giải pháp hệ thống mạng dùng riêng này, đề tài lựa chọn gói phần mềm rất thông dụng hiện nay là BIND (Berkelay Internet Name Domain) với phiên bản hiện tại là bind-9.2.2

BIND là một sự bổ sung của các giao thức DNS và cung cấp một sự phân phối lại của những thành phần chính trong Domain Name System, bao gồm: Domain Name System server, thư viện các công cụ phân tích Domain Name System và công cụ để kiểm tra sự hoạt động thích hợp của DNS server

Trên các server UNIX, ta có thể thi hành BIND trong môi trường chroot bằng cách thêm tham số “-t” Việc này giúp tăng tính bảo mật của hệ thống khi mà BIND hoạt

động trong một môi trường như trong một “cái hộp”, hạn chế các nguy cơ tấn công của server

Một tính năng hữu ích khác trong phiên bản UNIX của BIND là khả năng thi hành tiến trình với mức người dùng không có quyền (nonprivileged user): -u user Khi thi hành tính năng chroot thì nên thi hành ở mức người dùng không có quyền Dưới đây là một ví

/opt/bind/chroot_primary /etc/named.conf

/opt/bind/chroot_primary /etc/master.conf

/etc/resolv.conf\

LDAP Server

db.127.0.0.1 db.192.168.1.1 domain.db Chạy dịch vụ /etc/rc.d/init.d/named_primary

Ngày đăng: 25/03/2015, 10:03

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w