Khóa luận tốt nghiệp công nghệ thông tin: xây dựng proxy server cho hệ thống mạng lan bằng giải pháp mã nguồn mở tài liệ...
Trang 1TRƯỜNG ĐẠI HỌC VÕ TRƯỜNG TOẢN KHOA CƠNG NGHỆ THƠNG TIN
KHĨA LUẬN TỐT NGHIỆP
XÂY DỰNG PROXY SERVER CHO HỆ THỐNG MẠNG LAN BẰNG GIẢI PHÁP MÃ NGUỒN MỞ
Giáo viên hướng dẫn:
ThS NGUYỄN HỮU LỘC
Sinh viên thực hiện:
NGUYỄN HỒNG TRUNG MSSV: 0951190338
Lớp: ĐH CNTT Khĩa: 2
Hậu Giang - 2013
Trang 2LỜI CAM ĐOAN
Tôi xin cam đoan luận văn này được hoàn thành trên kết quả nghiên cứu của tôi với sự hướng dẫn, hỗ trợ của Thầy hướng dẫn Thạc sĩ Nguyễn Hữu Lộc Những nội dung tham khảo bên trong đều được ghi rõ nguồn và tác giả
Sinh viên thực hiện
Nguyễn Hoàng Trung
Trang 3
Tôi xin chân thành các ơn đến các bạn sinh viên khóa 2 trường Đại Học Võ Trường Toản, đã cho tôi những ý kiến đóng góp giá trị khi thực hiện đề tài này
Cuối cùng con xin gửi tới ba mẹ và toàn thể gia đình lòng biết ơn và tình cảm yêu thương sâu sắc
Nguyễn Hoàng Trung
Trang 4BẢN NHẬN XÉT LUẬN VĂN TỐT NGHIỆP
Cơ quan công tác : Khoa Công Nghệ Thông Tin, Trường Đại Học Võ Trường Toản
Họ và tên : Nguyễn Hoàng Trung
Trang 53 Ý nghĩa khoa học, thực tiễn và tính cấp thiết của đề tài:
Trang 6NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN
Hậu Giang, ngày … tháng … năm …
Trang 7MỤC LỤC
CHƯƠNG 1 TỔNG QUAN - 1
1.1 ĐẶT VẤN ĐỀ - 1
1.2 LỊCH SỬ GIẢI QUYẾT VẤN ĐỀ - 1
1.2.1 Giải pháp phần cứng - 1
1.2.2 Giải pháp phần mềm - 4
PHẠM VI NGHIÊN CỨU - 5
1.4 PHƯƠNG PHÁP TIẾP CẬN - 6
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT - 7
2.1 LINUX VÀ HỆ ĐIỀU HÀNH MÁY CHỦ UBUNTU SERVER - 7
2.1.1 Giới thiệu về Linux - 7
Ưu và nhược điểm của hệ điều hành Linux - 8
Các bản phân phối Linux - 9
2.1.4 Giới thiệu hệ điều hành Ubuntu - 10
PROXY SERVER - 12
Khái niệm Proxy - 12
Chức năng và cơ chế hoạt động - 13
Phân loại Proxy - 15
Ý nghĩa của Proxy - 18
Nhược điểm của Proxy - 19
2.3 SQUID PROXY TRONG LINUX - 19
Quá trình trao đổi cache trên Squid - 20
Cài đặt Squid - 20
CHƯƠNG 3 NỘI DUNG VÀ KẾT QUẢ NGHIÊN CỨU - 22
Cấu hình Squid - 22
Tập tin cấu hình - 22
ACCESS CONTROL LIST - 23
MỘT SỐ ACL CƠ BẢN - 24
3.3.1 Chặn truy cập theo mạng nguồn và mạng đích - 24
Chặn truy cập theo thời gian - 25
3.3.3 Chặn truy cập web theo tên miền nguồn và đích - 26
Trang 8 Xác thực người dùng với NCSA - 27
Giới hạn loại file download - 28
Hạn chế dung lượng download - 29
3.3.7 Giới hạn băng thông - 29
Giới hạn Stream online - 30
3.3.9 Cấu hình transparent - 31
KHỞI ĐỘNG SQUID - 32
CHƯƠNG 4 THỰC NGHIỆM - 34
YÊU CẦU - 34
Yêu cầu kỹ thuật - 34
Mô hình thực nghiệm - 34
PHƯƠNG PHÁP THỰC NGHIỆM - 35
KẾT QUẢ THỰC NGHIỆM - 36
4.3.1 Đối với chính sách chặn truy cập theo lớp mạng - 36
Đối với Giới hạn truy cập web theo thời gian - 37
Giới hạn truy cập tới các website đã được khai báo - 38
Về giới hạn băng thông của các user trong mạng - 39
Về giới hạn loại file download - 39
Về giới hạn stream online - 41
Về sử dụng transparent - 42
CHƯƠNG 5 KẾT LUẬN - 44
KẾT QUẢ THU ĐƯỢC - 44
HƯỚNG PHÁT TRIỂN TIẾP THEO - 44
TÀI LIỆU THAM KHẢO - 46
Trang 9DANH MỤC HÌNH VẼ
Hình 1: Mô hình OSI 2
Hình 2: Các kiểu định tuyến 2
Hình 3: Mô hình hoạt động của Router 3
Hình 4: Cấu trúc file của Linux 8
Hình 5: Cơ chế hoạt động của Proxy Server 15
Hình 6: HTTP/HTTPS Proxy 16
Hình 7: SOCK/SOCKS Proxy 18
Hình 8: Mô hình thực nghiệm 34
Hình 9: Chặn truy cập theo lớp mạng 36
Hình 10: Cho phép lớp mạng được truy cập Internet 37
Hình 11: Giới hạn thời gian truy cập theo thời gian 37
Hình 12: Truy cập vào website bị chặn 38
Hình 13: Truy cập đến website được cho phép 38
Hình 14: Tốc độ download khi bị giới hạn băng thông 39
Hình 15: Tốc độ download khi không bị giới hạn băng thông 39
Hình 16: Giới hạn nội dung download 40
Hình 17: Cấu hình Proxy để ncsa hoạt động 40
Hình 18: Hoạt động của NCSA 41
Hình 19: Chặn video 41
Hình 20: Chặn Audio 42
Hình 21: Cấu hình Transparent 43
Trang 10DANH MỤC BIỂU BẢNG
Bảng 1: Các bản phân phối của Linux 10
Bảng 2: Các thành phần phần mềm trên Ubuntu 12
Bảng 3:Cấu hình cài đặt Ubuntu 12
Bảng 4:Chữ viết tắt các ngày trong tuần 25
Trang 11TỪ VIẾT TẮT VÀ THUẬT NGỮ
ACLs (Access Control Lists) - Danh sách chứa các chính sách điều khiển truy
cập
DNS Server: (Domain Name System Server) - Hệ thống tên miền
FPT (File Transfer Protocol) - Giao thức truyền tập tin
OSI (Open Systems Interconnection Reference Model) - Mô hình tham chiếu
kết nối các hệ thống mở
GNU (GNU Not Unix): Một hệ điều hành dạng Unix
HTTP(S) (HyperText Transfer Protocol) - Giao thức truyền tải siêu văn bản
IP (Internet Protocol) - Giao thức liên mạng
IMCP (Internet Control Message Protocol) - Giao thức điều khiển truyền tin
trên mạng
ICP (Internet Cache Protocol)
Individual: một cá thể trong một mạng nội bộ
LAN (Local Area Network) - Mạng máy tính cục bộ
Network: Một mạng nội bộ
TÔ PÔ (Topology) – Mô hình định tuyến
TPC: Transmission Control Protocol - Giao thức điều khiển truyền vận
SSL (Secure Sockets Layer)
UDP (User Diagram Protocol)
Trang 12TÓM TẮT
Ngày nay đối với các doanh nghiệp, các tổ chức việc quản lý truy cập, kết nối
từ trong mạng nội bộ ra bên ngoài Internet là hết sức cần thiết vì các lý do khác nhau như giảm tải đường truyền Internet, bảo mật thông tin, tăng hiệu quả làm việc của nhân viên trong cơ quan, … Từ đó xuất hiện nhiều giải pháp đảm nhiệm vai trò quản
lý hệ thống mạng nội bộ có kết nối Internet, một trong những giải pháp hàng đầu hiện nay là sử dụng một Proxy Server làm nhiệm vụ trung chuyển thông tin qua lại giữa các máy trong mạng nội bộ với Internet
Hiện nay có rất nhiều chương trình hỗ trợ xây dựng một Proxy Server cho hệ thống mạng cục bộ có kết nối Internet Từ những sản phẩm thương mại có giá thành khá cao đến những gói phần mềm mã nguồn mở được cung cấp hoàn toàn miễn phí
Đề tài tập trung xây dựng một Proxy Server dựa trên gói phần mềm mã nguồn mở Squid và Hệ điều hành Ubuntu Server
Kết quả đạt được từ đề tài có thể giúp cho các doanh nghiệp, tổ chức giảm chi phí đáng kể trong việc xây dựng một Proxy Server mà hiệu năng đem lại vẫn tương đương các phần mềm thương mại
Trong đề tài này tôi sẽ tập trung giới thiệu một cách tổng quát về Linux và một
số ứng dụng bảo mật của Linux cụ thể là gói phần mềm nguồn mở Squid và hệ điều
hành Ubuntu Server 12.04 LTS
Từ khóa: Proxy Server, Squid Proxy
Trang 13ABSTRACT
Today for companies and organizations managing access, connections from the local network to the Internet is essential because of various reasons such as offloading Internet traffic, information security, increase effectiveness of employees working in offices, From there, many solutions appear assume the role management intranet system with an Internet connection, one of the best solution is to use a Proxy Server to transport information between computers on your local network to the Internet
Currently, there are many programs support to build Proxy Server on a local network with an Internet connection From the commercial product is a high price to the open source software package is provided completely free of charge This topic focused on building a Proxy Server based on open source software packages Squid and Ubuntu Server operating system
The results from this topic can help companies and organizations reduce the cost significantly in the construction of a Proxy Server which brings performance is comparable to commercial software
In this topic I will focus on introducing an overview of Linux and a number of Linux application security namely Squid open source software packages and operating
system Ubuntu Server 12.04 LTS
Keywords: Proxy Server , Squid Proxy.
Trang 14và nhỏ đều có nhu cầu giới hạn truy cập Internet cho một số người dùng và tiết kiệm băng thông Internet Nhưng để quản lý điều đó thì không hề dễ dàng vì không phải lúc nào ta cũng giám sát được các hoạt động của nhân viên Lúc này ta cần một giải pháp tối ưu hơn để quản lý nhưng không phải là quản lý người dùng mà là quản lý ở cấp độ
hệ thống, hệ thống sẽ quan sát hành vi của người dùng nếu vi phạm các chính sách mà người quản trị hệ thống đã đưa ra ngay lập tức hành vi đó sẽ bị chặn lại, vì vậy giúp chúng ta quản lý một cách dễ dàng và tổng quan hơn Một trong những giải pháp rất hiệu quả hiện nay là sử dụng Proxy Server để làm cầu nối trung gian giữa các máy tính trong mạng LAN và Internet
1.2 LỊCH SỬ GIẢI QUYẾT VẤN ĐỀ
Để xây dựng một giải pháp hạn chế truy cập của người dùng nhằm nâng cao hiệu suất và bảo mật hệ thống thì có nhiều phương pháp khác nhau bao gồm cả phần cứng lẫn phần mềm
1.2.1 Giải pháp phần cứng
Trước hết ta đề cập đến giải pháp phần cứng, hầu hết các doanh nghiệp đều ứng dụng giải pháp này vào hệ thống mạng nội bộ của mình nhằm đảm bảo hiệu suất kết nối và bảo mật thông tin nội bộ Trong số đó ta cần phải biết đến các Router của Cisco, Draytek Các Router này đảm nhiệm chức năng chuyển đổi các gói dữ liệu qua một liên mạng và đến các đầu cuối thông qua một tiến trình được gọi là định tuyến Định
Trang 15tuyến xảy ra ở tầng 3 của mô hình OSI [16]
Hình 1: Mô hình OSI
Router đưa vào bảng định tuyến để tìm đường đi cho gói dữ liệu Bảng định tuyến được quản trị mạng cấu hình tĩnh, nghĩa là thường do quản trị mạng nhập bằng tay, hoặc động, nghĩa là bảng tự học đường đi và nội dung tự động thay đổi theo sự thay đổi của tô pô mạng
Hình 2: Các kiểu định tuyến
Trang 16Hình 3: Mô hình hoạt động của Router 1.2.1.1 Router Cisco
Nó cho phép ta cấu hình danh sách các điều khiển truy cập (ACLs) để áp dụng vào các cổng interface Danh sách này chỉ ra cho router gói tin (packet) nào được phép
đi qua (permit), hay gói tin nào bị hủy bỏ (deny) Sự chấp nhận hay hủy bỏ này có thể dựa trên địa chỉ nguồn (source address), địa chỉ đích (destination address), chỉ số cổng (socket)
Tại sao phải sử dụng Access List trên router
Quản lý traffic qua cổng router
Hỗ trợ mức độ cơ bản về bảo mật cho các truy cập mạng, thể hiện ở tính năng lọc gói tin qua router
Access-list trên router chia làm hai loại chính: Standard ACLs và Extended ACLs
Standard ALCs: là loại ACLs đơn giản, hoạt động lọc gói tin dựa vào địa chỉ nguồn của gói tin
Trang 17 Extended ACLs: hoạt động lọc gói tin ngoài dựa vào địa chỉ nguồn còn có thể dựa vào địa chỉ đích, chỉ số cổng, chỉ số cổng đích của gói tin Vì vậy Extended ALCs có thể lọc gói tin linh hoạt hơn
1.2.1.2 Router Draytek
Nó cung cấp tính năng hỗ trợ giới hạn truy cập của router Điển hình là tính năng Session Limit, tính năng này cho phép ta giải quyết vấn đề download theo kiểu chia sẻ mạng ngang hàng P2P vốn chiếm quá nhiều session Nhưng với việc download bằng FTP và HTTP thì chức năng Session Limit không giải quyết được (do download bằng FTP và HTTP chỉ chiếm một session ) Vì vậy, nó cần phải kết hợp với tính năng Bandwidth Limit - Giới hạn băng thông người dùng, được tích hợp trong router Draytek nhằm giới hạn tốc độ download và upload của các máy trong mạng Đây cũng
là nhược điểm của router Draytek
1.2.2 Giải pháp phần mềm
Ngoài việc sử dụng router để giới hạn truy cập Internet thì còn có một giải pháp khác đó là sử dụng phần mềm để quản lý Hiện nay có rất nhiều phần mềm đảm nhiệm công việc quản lý truy cập nhằm nâng giảm tải đường truyền và tăng độ bảo mật như ISA Server của Microsoft, gói phần mềm nguồn mở Squid
1.2.2.1 Microsoft ISA Server
ISA có hai tính năng chính là Firewall [10] và Web Proxy Ở đây ta sẽ đề cập đến tính năng Web Proxy (W3Proxy) [11]
Web Proxy là một dịch vụ Windows 2000, hỗ trợ các yêu cầu từ bất cứ trình duyệt nào mà nó tuân theo các tiêu chuẩn của Conseil Europeen pour la Recherch Nucleair (CERN) Dịch vụ Web Proxy cho phép các kết nối Web tới gần như tất cả các
hệ điều hành desktop, bao gồm Windows NT, Windows 95, Windows 98, Windows
Trang 18CERN và được cấu hình để sử dụng dịch vụ Web Proxy của ISA Server
1.2.2.2 Gói phần mềm nguồn mở Squid
Squid là một gói phần mềm nguồn mở dùng để xây dựng Proxy Server, khả năng của Squid là tiết kiệm băng thông (bandwidth), cải tiến về bảo mật, tăng tốc độ truy cập web cho người sử dụng và trở thành một trong những Proxy Server được nhiều người sử dụng Hiện nay, trên thị trường có rất nhiều chương trình Proxy Server nhưng chúng lại có hai nhược điểm, thứ nhất là phải trả tiền để sử dụng, thứ hai là hầu hết không hỗ trợ ICP (ICP được sử dụng để cập nhật những thay đổi về nội dung của những URL sẵn có trong caches - là nơi lưu trữ những trang web mà bạn đã từng đi qua) Squid là sự lựa chọn tốt nhất cho một Proxy - Cache Server, Squid đáp ứng hai yêu cầu mà chúng ta là sử dụng miễn phí và có thể sử dụng đặc trưng ICP [12]
Squid đưa ra kỹ thuật lưu trữ ở cấp độ cao của các web Client, đồng thời hỗ trợ các dịch vụ thông thường như FTP, Gopher và HTTP Squid lưu trữ thông tin mới nhất của các dịch vụ trên RAM, quản lý một cơ sở dữ liệu lớn của các thông tin trên đĩa, có một kỹ thuật điều khiển phức tạp , hỗ trợ giao thức SSL cho các kết nối bảo mật thông qua Proxy Hơn nữa, Squid có thể liên kết với các cache của các Proxy Server khác trong việc sắp xếp lưu trữ các trang web một cách hợp lý, đây là tính năng vô cùng
mạnh mẽ của Squid
Nhận xét
Với việc sử dụng Router và các phần mềm thương mại trong việc quản lý hệ thống tuy đem lại hiệu quả cao nhưng đối với các doanh nghiệp vừa và nhỏ thì đây là một vấn đề khá lớn về kinh phí đầu tư cho thiết bị và chi phí bản quyền phần mềm vì những giải pháp sử dụng router và phần mềm ISA server đều yêu cầu đơn vị sử dụng phải trả phí tương đối cao Vì thế, với giải pháp sử dụng gói phần mềm nguồn mở Squid để xây dựng Proxy server trên một hệ điều hành nguồn mở Ubuntu Server là giải pháp phù hợp với yêu cầu của các doanh nghiệp vừa và nhỏ mà vẫn đem lại hiệu quả rất cao
PHẠM VI NGHIÊN CỨU
Trong phạm vi nghiên cứu của mình, đề tài sẽ chỉ đưa ra mô hình có khả năng kiểm soát các yêu cầu từ phía Client ra Internet nhằm giảm tải đường truyền, tăng hiệu suất công việc của nhân viên Trong phần thực nghiệm của đề tài, mô hình sẽ được
Trang 19ứng dụng thực tế vào một trường hợp cụ thể Thực nghiệm này sẽ chứng minh rằng
mô hình đã đưa ra hoàn toàn có thể triển khai và ứng dụng vào thực tế
Tuy nhiên phạm vi nghiên cứu của đề tài có hạn nên thực nghiệm đưa ra không thể hiện hết những ưu điểm của mô hình đã được đưa ra Những nghiên cứu tiếp theo
về mô hình này sẽ được thực hiện và đưa ra những thực nghiệm khác thể hiện rõ hơn những ưu thế của mô hình khi được ứng dụng vào thực tế
1.4 PHƯƠNG PHÁP TIẾP CẬN
Để đưa ra một mô hình phù hợp với yêu cầu đặt ra là kiểm soát tất cả các kết nối từ Client ra ngoài Internet nhằm giảm dung lượng đường truyền trên Internet và tăng hiệu quả công việc, nghiên cứu các mô hình đã có trước đây là việc làm cần thiết Trong các mô hình truyền thống, việc sử dụng máy chủ Proxy là việc làm quen thuộc Proxy Server là một giải pháp đã được dùng trước đây trong các mô hình mạng truyền thống Proxy được bố trí như một cổng ra Internet của một mạng phía sau nó Ngoài chức năng làm nhiệm vụ lưu chuyển thông tin giữa các máy trong mạng và ngoài Internet, Proxy còn được tích hợp thêm chức năng như lọc thông tin, bảo đảm an ninh cho mạng cục bộ v.v Một trong những tính năng đã được tích hợp vào Proxy Server là Cache Với chức năng này, tần suất sử dụng đường truyền trên Internet đã được giảm đáng kể nhờ việc lưu lại các kết quả truy vấn trước đó Khi đó các yêu cầu được lặp lại, kết quả của lần trước sẽ được lưu lại và sử dụng để trả lời cho các lần truy vấn sau
Ở đề tài này chúng tôi sẽ sử dụng gói phần mềm nguồn mở Squid để xây dựng một Proxy Server trên nền hệ điều hành Ubuntu Server
Trang 20CHƯƠNG 2
CƠ SỞ LÝ THUYẾT
2.1 LINUX VÀ HỆ ĐIỀU HÀNH MÁY CHỦ UBUNTU SERVER
2.1.1 Giới thiệu về Linux
Linux là tên gọi của một hệ điều hành máy tính và cũng là hạt nhân của hệ điều hành Nó có lẽ là một ví dụ nổi tiếng nhất của phần mềm tự do và của việc phát triển
mã nguồn mở
Phiên bản đầu tiên do Linus Tovalds viết vào năm 1991, lúc ông còn là một sinh viên của Đại học Helsinki tại Phần Lan Ông làm việc hăng say trong vòng 3 năm liên tục và cho ra đời phiên bản Linux 1.0 vào năm 1994 và được công bố dưới bản quyền GNU General Public License Do đó bất cứ ai cũng có thể tải và xem mã nguồn của Linux
Nói một cách chính xác, thuật ngữ “Linux” được sử dụng để chỉ nhân Linux, nhưng tên này được sử dụng một rộng rãi để miêu tả tổng thể một hệ điều hành giống Unix (Còn được biết với tên GNU/Linux) được tạo ra bằng việc đóng gói nhân Linux cùng với các thư viện và công cụ GNU, cũng như các bản phân phối Linux Thực tế thì
đó là một tập hợp một số lượng lớn các phần mềm như máy chủ web, các ngôn ngữ lập trình, các hệ quản trị cơ sỡ dữ liệu, các môi trường làm việc desktop như Gnome, Kde
Và các ứng dụng thích hợp cho công việc văn phòng như Libreoffice, Openoffice Ban đầu, Linux được phát triển và sử dụng bởi những người đam mê lập trình Tuy nhiên, hiện nay Linux đã có được sự hỗ trợ bởi các công ty lớn như IBM và Hewlett-Packard [13], đồng thời nó cũng bắt kịp được các phiển bản Unix độc quyền và thậm chí là một thách thức đối với sự thống trị của Microsoft Windows trong một số lĩnh vực Sở dĩ Linux đạt được những thành công một cách nhanh chóng là nhờ vào đặc tính nổi bật so với các hệ thống khác: chi phí phần cứng thấp, tốc độ cao (khi so sánh với các phiên bản Unix độc quyền) và khả năng bảo mật tốt, độ tin cậy cao (Khi so với Windows) cũng như là các đặc điểm về giá thành rẻ, không bị lệ thuộc và nhà cung cấp Một đặc tính nổi trội của nó là được phát triển bởi một mô hình phát triển phần mềm nguồn mở hiệu quả
Trang 21Tuy nhiên, hiện tại số lượng phần cứng được Linux hỗ trợ vẫn còn rất khiêm tốn so với Windows vì các trình điều khiển thiết bị tương thích với Windows nhiều hơn là Linux Nhưng trong tương lai số lượng phần cứng được hỗ trợ cho Linux sẽ tăng lên
Phiên bản ổn định mới nhất của nhân Linux là 3.9.4 được phát hành vào ngày 24/05/2013 Các phiên bản của Linux được xác định bằng hệ thống số dạng X.YY.ZZ Nếu ZZ là số chẳn → phiên bản ổn định, ZZ là số lẻ → phiên bản thử nghiệm
Hình 4: Cấu trúc file của Linux
2.1.2.1 Ưu điểm của hệ điều hành Linux
Là hệ điều hành miễn phí và được rất nhiều người phát triển nên có nhiều tính năng, ứng dụng hay, cũng như nhiều người dùng
Là hệ điều hành đa nhiệm và đa người dùng, tận dụng được sức mạnh xử lý của máy 386 và đời cao hơn Chạy được trên nhiều loại máy khác nhau
Có sẵn bộ giao thức TCP/IP giúp cho người dùng dễ dàng kết nối Internet
Khả năng tương thích cao với các hệ thống mở có nghĩa chúng ta có thể chuyển
nó từ hệ điều hành này sang hệ điều hành khác mà vẫn hoạt động tốt
Hỗ trợ người dùng, hiện nay Linux có hàng chục ngàn ứng dụng, bao gồm các
Trang 22chương trình báo biểu, cơ sở dữ liệu, giải trí, đa phương tiện và rất nhiều ứng dụng khác
Lợi ích cho giới điện toán chuyên nghiệp, đến với Linux giới điện toán sẽ có hàng ngàn công cụ phát triển chương trình, bao gồm các bộ biên dịch cho nhiều ngôn ngữ lập trình hàng đầu hiện nay, chẳng hạn như C, C++, dotNet, Java
Uyển chuyển, các nhà phân phối có thể chỉnh sửa môi trường hoạt động của Linux cho phù hợp với yêu cầu riêng của từng đối tượng sử dụng
Độ an toàn cao, vì là phần mềm nguồn mở nên khi có lỗi phần mềm phát sinh thì chỉ sau 24 giờ là đã có thể khắc phục được Người dùng có thể tải về bản sửa lỗi
có sẵn trên mạng Mặt khác, những người viết virus thường không coi Linux là đối tượng của họ, vì thế đến với Linux chúng ta không lo về vấn đề virus như trên các hệ điều hành khác, điển hình là Windows
Hướng dẫn sử dụng phong phú
2.1.2.2 Một số khuyết điểm của Linux
Mặc dù có rất nhiều ưu điểm nhưng Linux không phải không có khuyết điểm:
Người dùng phải thành thạo, trình tự cài đặt tự động, giao diện thân thiện với người dùng chỉ giảm nhẹ phần nào sự phức tạp trong quá trình cài đặt phần mềm, tinh chỉnh màn hình, card âm thanh, card mạng, … Đôi khi những công việc này đòi hỏi ta phải thao tác bằng dòng lệnh cực kỳ “bí hiểm”, nhàm chán và rất dễ nhầm lẫn Để cài đặt thành công, đôi khi ta phải bỏ ra rất nhiều thời gian
để tham khảo và nghiên cứu tài liệu
Phần cứng ít được hỗ trợ, Linux không dễ dàng cài đặt và hỗ trợ nhiều thiết
bị phần cứng Các phiên bản phần cứng của Linux đề hỗ trợ theo nguyên tắc phần cứng của nhà phát triển Linux
Tính tiêu chuẩn hóa, do Linux hoàn toàn miễn phí nên bất cứ ai thích đêu có thể tự mình đóng gói, phân phối theo cách của mình Có hàng chục thậm chí hàng trăm nhà phân phối khác nhau trên thị thường, trước khi cài đặt người dùng phải tự mình so sánh để tìm ra sản phẩm thích hợp
Linux hiện nay có rất nhiều bản phân phối khác nhau, một phần là bởi tính chất
Trang 23nguồn mở của nó Sau đây là một số bản phân phối hàng đầu được nhiều người sử dụng nhất, danh sách được cập nhật vào tháng 6 năm 2013, nguồn: www.distrowatch.com
Bảng 1: Các bản phân phối của Linux Tên bản phân
phối
Phiên bản mới nhất
Website chính thức
2.1.4 Giới thiệu hệ điều hành Ubuntu
Ubuntu là một hệ điều hành máy tính dựa trên Debia GNU/Linux, một bản phân phối Linux thông dụng Tên của nó bắt nguồn từ “ubuntu” trong tiếng Zulu có nghĩa là
“tình người”, mô tả triết lý ubuntu: “Tôi được là chính mình nhờ có những người xung quanh”, một khía cạnh tích cực của cộng đồng Mục đích của Ubuntu bao gồm việc cung cấp hệ điều hành ổn định, cập nhật cho người dùng bình thường, và tập trung vào
sự tiện dụng và dễ dàng cài đặt Ubuntu đã được đánh xếp hạng là bản phân phối Linux thông dụng nhất cho máy tính để bàn, chiếm khoảng 30% số bản Linux được cài đặt trên máy tính để bàn năm 2007 (Theo Desktop Linux Market Survey 2007) [14] Ubuntu là phần mềm mã nguồn mở tự do, có nghĩa là người dùng được tự do chạy, sao chép, phân phối, nghiên cứu, thay đổi và cải tiến phần mềm theo điều khoản
Trang 24của giấy phép GNU GPL Ubuntu được tài trợ bởi Canonical Ltd (Nhà sáng lập là một người Nam Phi tên Mark Shuttleworth)
Bản phát hành đầu tiên của Ubuntu là vào 20 tháng 10 năm 2004, bắt đầu bằng việc tạo một nhánh tạm thời của dự án Debian Linux Việc này đã được thực hiện để một phiên bản mới của Ubuntu có thể được phát hành mỗi 6 tháng, tạo ra một hệ điều hành được cập nhật thường xuyên hơn
Trong quá trình phát triển, dự án Ubuntu đã cho ra đời nhiều phiên bản khác nhau của Ubuntu, như Ubuntu Desktop cho máy tính để bàn, Ubuntu Netbook Remix
cho notebook (đã ngừng phát triển), Ubuntu Server cho các máy chủ, Ubuntu
Business Desktop Remix cho các doanh nghiệp, Ubuntu for Android và Ubuntu for Phones cho các thiết bị di động
2.1.4.1 Các phiên bản của Ubuntu
Phiên bản thông thường
Các phiên bản Ubuntu được đặt tên theo dạng Y.MM (tên), trong đó Y tương ứng với năm phát hành và MM là tháng phát hành Tên trong ngoặc là tên hiệu được
đặt cho phiên bản trước khi phát hành chính thức
Phiên bản hỗ trợ lâu dài
Ubuntu cũng có những phiên bản hỗ trợ dài hạn “Long Term Support”, hỗ trợ
trong vòng 3 năm đới với máy tính để bàn và 5 năm đối với máy chủ
Các dự án khác
Có những kế hoạch cho một nhánh tên mã là Grumpy Groundhog Nó luôn là nhánh phát triển và kiểm tra các bản không ổn định, kết thúc việc kiểm duyệt mã nguồn của nhiều phần mềm và ứng dụng để sau đó chúng được phân phối như một phần của Ubuntu
2.1.4.2 Sự phân loại và hỗ trợ các gói
Ubuntu phân chia tất cả các phần mềm thành bốn phần, được gọi là các thành phần, để thể hiện sự khác nhau trong bản quyền và mức độ được hỗ trợ [9]
Các gói được quy về các thành phần như sau:
Trang 25Bảng 2: Các thành phần phần mềm trên Ubuntu
Phần mềm tự do Phần mềm không tự do
2.1.4.3 Cấu hình cài đặt Ubuntu
Phiên bản Desktop của Ubuntu hiện tại hỗ trợ các máy tính cấu trúc Intel x86, AMD, và ARM Phiên bản Server cũng hỗ trợ các máy có cấu trúc SPARC cũng có
bản hỗ trợ không chính thức cho cấu trúc PowerPC, IA-64 (Itanium) và PlayStation [9]
Bảng 3:Cấu hình cài đặt Ubuntu
Internet là một hệ thống mở, đó là điểm mạnh đồng thời cũng là điểm yếu của nó Chính điểm yếu này làm khả năng bảo mật thông tin nội bộ của hệ thống gặp nguy hiểm Nếu chỉ là mạng LAN thì không có vấn đề gì, nhưng khi đã kết nối Internet thì phát sinh nhiều vấn đề hết sức quan trọng trong việc quản lý tài nguyên quý giá vì thế việc xây dựng và bảo vệ các thông tin quý giá đó là hết sức quan trọng Bằng cách quản lý việc truy cập và truy xuất vào ra của hệ thống
Một Proxy Server, giống như Firewall được thiết kế để bảo vệ tài nguyên trong các mạng cục bộ khi nối kết các mạng khác như Internet Chúng ta khó phân biệt khác nhau giữa Proxy Server và Firewall Chúng ta có thể nghĩ rằng Proxy là dịch vụ chạy
Trang 26trên Firewall, nơi mà Firewall là một Server vật lý nằm giữa Internet và mạng cục bộ Tổng quát, Firewall cung cấp điều khiển mở rộng để lọc và giám sát thông tin ra vào mạng Ví dụ, Firewall có thể thực thi dịch vụ lọc gói dữ liệu ở tầng mạng để đóng gói dữ liệu mà có địa chỉ nguồn riêng biệt hay dành cho một dịch vụ nào đó
Dịch vụ Proxy là dịch vụ một chiều ngăn cản người dùng Internet cố tình truy cập mạng cục bộ Các dịch vụ này được thiết kế cho người dùng dịch vụ mạng cục bộ Chỉ có những gói dữ liệu được yêu cầu của người dùng mạng cục bộ mới được truyền qua Firewall Vì lý do an toàn, các gói dữ liệu đi vào sẽ được kiểm tra virus hay khả năng thay đổi dữ liệu bởi những kẽ phá hoại bên ngoài Proxy Server có thể tạo một bộ
mã hóa trên web Server ngăn cản sự phá hoại các tài nguyên hữu dụng Proxy Server cũng có chức năng bộ đệm quan trọng Vì nó là vị trí trung tâm để người dùng mạng cục bộ có thể truy cập Internet, một Proxy Server có thể lưu trữ các tài liệu được truy cập thường xuyên trên Internet và cho phép người dùng mạng cục bộ truy cập mạng
khi cần thiết Để giảm bớt thời gian cho người dùng mạng cục bộ [8]
2.2.2.1 Chức năng
Đối với người dùng
Giúp nhiều máy tính truy cập Internet thông qua một máy tính với tài khoản truy cập nhất định, máy tính này được gọi là Proxy Server Chỉ duy nhất máy Proxy này cần modem và account truy cập Internet, các máy Client (các máy trực thuộc) muốn truy cập Internet qua máy này chỉ cần nối mạng LAN tới máy Proxy
và truy cập địa chỉ yêu cầu Những yêu cầu của người sử dụng sẽ qua trung gian Proxy Server thay thế cho Server thật sự mà người sử dụng cần giao tiếp, tại điểm trung gian này công ty kiểm soát được mọi giao tiếp từ trong công ty ra ngoài Internet và từ Internet vào máy của công ty Sử dụng Proxy, công ty có thể cấm nhân viên truy cập những địa chỉ web không cho phép, cải thiện tốc độ truy cập nhờ sự lưu trữ cục bộ các trang web trong bộ nhớ của Proxy Server và giấu định danh địa chỉ của mạng nội bộ gây khó khăn cho việc thâm nhập từ bên ngoài vào các máy của công ty
Trang 27 Đối với nhà cung cấp dịch vụ đường truyền Internet (ISP)
Do Internet có nhiều lượng thông tin mà theo quan điểm của từng quốc gia, từng chủng tộc hay địa phương mà các nhà cung cấp dịch vụ Internet khu vực đó sẽ phối hợp sử dụng Proxy với kỹ thuật tường lửa để tạo ra một bộ lọc gọi là Firewall Proxy nhằm ngăn chặn các thông tin độc hại hoặc trái thuần phong mỹ tục đối với quốc gia, chủng tộc hay địa phương đó Địa chỉ website mà khách hàng yêu cầu truy cập sẽ được lọc tại bộ lọc này, nếu địa chỉ không bị cấm thì yêu cầu củakhách hàng tiếp tục được gửi đi, tới các DNS Server của các nhà cung cấp dịch vụ Firewall Proxy sẽ lọc tất cả các thông tin từ Internet gửi vào máy của khách hàng và ngược lại
2.2.2.2 Cơ chế hoạt động
Client có địa chỉ 192.168.99.100 muốn kết nối tới website www.abc.com bằng phương thức HTTP thông qua proxy có địa chỉ 192.168.99.1 ở cổng 3128 thì có những bước sau:
Client 192.168.99.100 gửi request chứa thông tin truy cập website www.abc.com đến Proxy server 192.168.99.1 ở cổng 3128
Proxy Server sau khi nhận được request từ Client, nó sẽ xem xét nếu thỏa các chính sách thì tiếp tục gửi request đó đến website www.abc.com, ngược lại nó sẽ gửi thông báo từ chối về Client
Website www.abc.com nhận request, nó sẽ xử lý thông tin và trả kết quả về cho Proxy-server
Proxy Server tiếp tục trả kết quả đó về Client
Trang 28Hình 5: Cơ chế hoạt động của Proxy Server
2.2.3.1 Theo chức năng
Đôi khi còn được gọi là web Proxy, giúp người dùng ẩn danh (giấu IP) khi lướt web HTTP Proxy Server không gửi thông số cụ thể của biến http_x_forwarded_for tới Host đang truy cập, do vậy có thể che giấu IP của bạn Tuy nhiên, điều đó không có nghĩa giúp bạn ẩn dấu hoàn toàn, vì các website có thể sử dụng các site scripts để thu thập thông tin về việc bạn đang truy
cập Host của họ thông qua một Proxy nào đó đang phục vụ cho bạn
Mức độ che giấu tung tích cao hơn Anonymous HTTP Proxy hoàn toàn không gửi đi bất kỳ thông số nào của các biến http_x_forwarded_for, http_via, và http_proxy_connection Do vậy Internet Host
không thể biết ta đang dùng Proxy, cũng như không phát hiện được real Ip của ta
Proxy trong suốt, đôi khi còn được gọi là Intercepting Proxy, khác với 2 loại trên, transparent là sự kết hợp 1 Proxy Server và 1 gateway Đây là phương
Trang 29thức thường được các Network Admin “ ép ” User trong mạng Lan, user không nhận thức được mình đang truy cập Internet thông qua một “ Cổng giám sát ”
Yêu cầu truy cập của Client được chuyển đến gateway sau đó gateway chuyển sang Proxy Server xử lý Khi user dùng loại Proxy này, thì họ không biết được rằng họ đang dùng 1 Proxy và bị kiểm soát User chỉ cần thiết lập địa chỉ IP của gateway do Admin cung cấp, mà không phải xác lập các thông số Proxy trong trình duyệt như Internet Application khác Thường được các Admin trong công ty triển khai, họ muốn các chính sách của Policy được áp đặt lên user, nhưng user hầu như không biết mình đang qua 1 Proxy
2.2.3.2 Theo khả năng hỗ trợ
Các Proxy sẳn sàng cho dịch vụ thông thường trên Internet, ví dụ như: một HTTP Proxy được dùng cho truy cập Web, một FTP Proxy được dùng cho truyền File Những Proxy trên được gọi là Application-level Proxies hay Application-level Gateways, bởi vì chúng được chỉ định để làm việc với những Application
và Protocol và nhận ra nội dung các Packet được gửi đến nó
Một hệ thống Proxy khác được gọi là Circuit-level Proxy, hỗ trợ nhiều Application cùng lúc Ví dụ, SOCKS là một IP-based Proxy Server (Circuit-Level Proxy), hỗ trợ hầu hết các Applications trên nền TCP và UDP
Hình 6: HTTP/HTTPS Proxy