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

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ở

59 14 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 59
Dung lượng 1,06 MB

Nội dung

Trang 1



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

Trang 2

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

Lời đầu tiên em xin bày tỏ lòng biết ơn sâu sắc đến thầy giáo ThS Nguyễn Hữu Lộc đã hướng dẫn em tận tình trong suốt q trình làm khóa luận này

Em xin tỏ lòng biết ơn tới các thầy, cô trong khoa Công Nghệ Thông Tin, trường Đại Học Võ Trường Toản Các thầy, cô đã dạy bảo, chỉ dẫn chúng em và luôn tạo điều kiện tốt nhất cho chúng em học tập trong suốt quá trình học đại học đặc biệt là trong thời gian làm khóa luận tốt nghiệp

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 u thương sâu sắc

Sinh viên thực hiện

Trang 4

 Họ và tên người hướng dẫn: Nguyễn Hữu Lộc

 Học vị : Thạc sĩ

 Chuyên ngành : Mạng Máy Tính

 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

 Mã số sinh viên : 0951190338

 Chuyên ngành : Mạng Máy Tính

 Tên đề tài : Xây dựng Proxy Server cho hệ thống mạng LAN bằng giải pháp nguồn mở

NỘI DUNG NHẬN XÉT

1 Tính phù hợp của đề tài với chuyên ngành đào tạo:

2 Về hình thức:

Trang 5

4 Độ tin cậy của số liệu và tính hiện đại của luận văn:

5 Nội dung và các kết quả đạt được:

Trang 6

Hậu Giang, ngày … tháng … năm …

Trang 7

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ƯƠNG3NỘ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

Trang 8

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 4THỰ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 5KẾT LUẬN - 44

 KẾT QUẢ THU ĐƯỢC - 44

 HƯỚNG PHÁT TRIỂN TIẾP THEO 44

Trang 9

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

Trang 11

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)

Trang 12

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 hồn tồ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

Trang 13

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

Trang 14

CHƯƠNG 1

TỔNG QUAN

1.1 ĐẶT VẤN ĐỀ

Với sự phổ biến của Internet ngày nay hầu như mọi người sống, làm việc, học tập đều không thể thiếu Internet, nhưng chính vì nó q phổ biến và con người ngày càng phụ thuộc vào nó nên trong học tập, làm việc đã lạm dụng để phục vụ cho nhu cầu riêng ảnh hưởng đến năng suất học tập và lao động Từ đó nhu cầu quản lý việc truy cập Internet từ trong cơ quan làm việc xuất hiện nhằm hạn chế khả năng truy cập Internet của nhân viên trong giờ làm việc Hầu hết các tổ chức, doanh nghiệp cỡ vừa và 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

Trang 15

tuyế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

Trang 16

Hì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

Trang 17

 Extended ACLs: hoạt động lọc gói tin ngồ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 2000, Macintosh, và UNIX

Trang 18

CERN 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

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 hồn tồ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

Trang 20

CHƯƠ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

Trang 21

Tuy 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

 Ưu và nhược điểm của hệ điều hành 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

Trang 22

chươ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 tồ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 hồn tồ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

 Các bản phân phối Linux

Trang 23

nguồ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 Các bản tương tự

Linux mint 15 www.linuxmint.co

m

Ubuntu 12.10 www.ubuntu.com Kubuntu,Xubuntu, Lubuntu

Fedora 18 www.fedoraproject.

org

Debian 7.0 www.debian.org

SUSE Linux 12.3 www.opensuse.org openSuse 12.3

Geento 20121221 www.geento.org

Mandriva 2011 www.mandriva.org

Arch Linux 20121101 www.archlinux.org

Mageia 3 www.mageia.org

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]

Trang 24

củ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ó ln 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]

Trang 25

Bả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

Được hỗ trợ Main Restricted

Không được hỗ trợ Universe Multiverse

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

Desktop & Laptop

Server

Tối thiểu Khuyên dùng

CPU 300 MHz (x86) 700 MHz (x86) 300 MHz (x86)

Bộ nhớ RAM 256 MB 384 MB* 256 MB

Sức chứa ổ đĩa cứng 5 GB 8 GB 1 GB

Video card VGA @ 640x480 VGA @ 1024x768 VGA @ 648x480

*- Để sử dụng các hiệu ứng đồ họa

 PROXY SERVER

 Khái niệm Proxy

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

Trang 26

trê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 tồ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]

 Chức năng và cơ chế hoạt động 2.2.2.1 Chức năng

Đối với người dùng

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

Trang 28

Hình 5: Cơ chế hoạt động của Proxy Server

 Phân loại Proxy

2.2.3.1 Theo chức năng

Anonymous

Đơ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 hồn tồ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

Hight Anonymity

Mức độ che giấu tung tích cao hơn Anonymous HTTP Proxy hồn tồ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

Transparent

Trang 29

thứ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ợ

HTTP/HTTPS Proxy

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à 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

Trang 30

Chính là một Circuit-level Proxy Server cho các IP networks theo định nghĩa từ IETF (Internet Engineering Task Force ) - một cộng đồng các chuyên gia về thiết kế mạng, các nhà điều hành, các nhà sản xuất, và các nhà nghiên cứu tham gia vào cuộc xây dựng kiến trúc Internet và ngày càng hoàn thiện Internet hơn SOCKS được viết bởi David và Michelle Koblas vào những năm đầu thập niên 90

SOCKS đã nhanh chóng trở thành một de facto standard (hardware hay software được sử dụng rộng rãi nhưng không được công nhận từ các tổ chức chuyên cung cấp các định chuẩn), ngược lại là de jure standard Mặc dù SOCKS ra đời sớm và được dùng phổ biến, nhưng SOCKS được IETF thông qua lần đầu tiên là SOCKS 5, SOCKS ban đầu là hệ thống Proxy được sử dụng cho các traffic như FTP, Telnet, v.v.v, nhưng không dành cho HTTP SOCKS 4 kiểm soát các TCP connections (là phần lớn các Application trên Internet ), SOCKS 5 còn hỗ trợ thêm UDP, ICMP, xác thực User (User Authentication) và phân giải hostname (DNS Server)

Trang 31

Hình 7: SOCK/SOCKS Proxy

 Ý nghĩa của Proxy

Proxy khơng chỉ có giá trị bởi nó làm được nhiệm vụ của một bộ lọc thông tin, nó cịn tạo ra được sự an toàn cho các khách hàng của nó, firewal Proxy ngăn chặn hiệu quả sự xâm nhập của các đối tượng không mong muốn vào máy của khách hàng Proxy lưu trữ được các thông tin mà khách hàng cần trong bộ nhớ, do đó làm giảm thời gian truy tìm làm cho việc sử dụng băng thông hiệu quả Proxy Server giống như một vệ sĩ bảo vệ khỏi những rắc rối trên Internet

Một Proxy Server thường nằm bên trong tường lửa, giữa trình duyệt web và Server thật, làm chức năng tạm giữ những yêu cầu Internet của các máy khách để chúng không giao tiếp trực tiếp Internet Người dùng sẽ không truy cập được những trang web không cho phép (bị cấm) Mọi yêu cầu của máy khách phải qua Proxy Server, nếu địa chỉ IP có trên Proxy, nghĩa là website này được lưu trữ cục bộ, trang này sẽ được truy cập mà không cần phải kết nối Internet, nếu khơng có trên Proxy Server và trang này không bị cấm, yêu cầu sẽ được chuyển đến Server thật, DNS Server Và ra Internet Proxy Server lưu trữ cục bộ các trang web thường truy cập nhất trong bộ đệm để giảm chi phí kết nối, giúp tốc độ duyệt web nhanh hơn

Trang 32

“bí danh” đối với thế giới bên ngồi và gây khó khăn đối với nếu người dùng “tự tung

tự tác” hay các hacker muốn xâm nhập trực tiếp máy tính nào đó [8]

Có 2 loại Proxy thường gặp

Proxy chia sẻ đường truyền: giúp nhiều máy truy cập Internet thông qua 1 máy,

mà máy này gọi là Proxy Chỉ duy nhất máy Proxy này cần modem và account truy cập Internet, các máy Client 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

Proxy trung chuyển: hiện nay trên Internet có rất nhiều Proxy Server, khi đăng

nhập Server này, nó sẽ hỗ trợ ta truy cập tới website khác trên Internet mà khơng bị Firewall chặn lại Ngồi ra, nó che dấu cả IP thực của máy Client, nơi truy cập chỉ biết được IP của Proxy Server Các hacker rất thường sử dụng loại này để che dấu vết

 Nhược điểm của Proxy

 Do các Proxy có quy mơ bộ nhớ khác nhau và số lượng người đang sử dụng Proxy nhiều-ít khác nhau, Proxy Server hoạt động quá tải thì tốc độ truy cập Internet của Client có thể bị chậm

 Quản lý tập trung, Client sẽ không thể kết nối Internet nếu Proxy không hoạt động

2.3 SQUID PROXY TRONG LINUX

Squid là một Proxy Server, khả năng của Squid là tiết kiệm băng thông, cải tiến việc bảo mật, tăng tốc độ truy cập web cho những người sử dụng và trở thành một trong những Proxy phổ biến được nhiều người biết đến 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 trong cache - 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 của chúng ta là sử dụng miễn phí và có thể sử dụng đặc trưng ICP

Trang 33

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 trong 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 truy cập 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 khác trong việc sắp xếp lưu trữ các trang web một cách hợp lý

 Quá trình trao đổi cache trên Squid

Squid có khả năng chia sẻ dữ liệu giữa những cache với nhau Việc chia sẻ này

mang lại những lợi ích như sau:

User Base: Nếu số lượng Client truy cập Internet thông qua Proxy càng nhiều thì khả năng một số đối tượng nào đó được yêu cầu 2 lần sẽ cao hơn

Giảm tải truy xuất cho đường truyền

Disk space: Nếu ta chuyển cân bằng giữa các cache với nhau sẽ tránh được việc

sao lại dữ liệu đã lưu Do đó dung lượng dành cho việc lưu trữ dữ liệu cache sẽ giảm

 Cài đặt Squid

Đầu tiên chúng ta nên có một khái niệm về đòi hỏi phần cứng của một

Proxy-Server:

Tốc độ truy cập đĩa cứng: Rất quan trọng vì Squid thường xuyên phải đọc và

ghi dữ liệu trên ổ cứng Một ổ đĩa SCSI với tốc độ truyền dữ liệu lớn là một ứng

cử viên tốt cho nhiệm vụ này

Dung lượng đĩa dành cho cache, phụ thuộc vào kích cỡ của mạng mà Squid

phục vụ Từ 1 đến 2 Gb cho một mạng trung bình khoảng 100 máy Tuy nhiên đây chỉ là một con số có tính chất ví dụ vì nhu cầu truy cập Internet mới là yếu tố

quyết định sự cần thiết độ lớn của đĩa cứng

RAM: Rất quan trọng, ít RAM thì Squid sẽ chậm hơn một cách rõ ràng

CPU: Không cần mạnh lắm, khoảng 133 MHz là cũng có thể chạy tốt với tải là

7 request /second

2.3.2.1 Cài đặt Squid trên Ubuntu Server

Trang 34

nhưng khơng có Squid, bạn có thể cài với tiện tích apt-get bằng lệnh: # apt-get install Squid3

2.3.2.2 Cài đặt từ source

Ta có file source của Squid là Squid-version.tar.gz, ta thực hiện các bước lệnh sau:

# tar -xzvf Squid-version.tar.gz # cd Squid-version

# make install

Các thư mục mặc định của Squid: /usr/sbin

Trang 35

CHƯƠNG 3

NỘI DUNG VÀ KẾT QUẢ NGHIÊN CỨU

 Cấu hình Squid

 Tập tin cấu hình

Tất cả các tập tin cấu hình chính của Squid được lưu trữ trong thư mục /etc/Squid

Một tập tin cấu hình quan trọng quyết định sự hoạt động của Squid là squid.conf Trong tập tin cấu hình này có khoảng 125 tag tùy chọn, nhưng chỉ một số tùy chọn được cấu hình, và những dịng chú thích bắt đầu bằng “#” Chúng ta chỉ cần thay đổi một số tùy chọn cơ bản là Squid có thể hoạt động được

3.1.1.1 Cấu hình cơ bản

Sau khi cài đặt xong, ta phải cấu hình để Squid phù hợp với từng yêu cầu riêng Ta sẽ cấu hình một số tham số trong file /etc/Squid3/Squid.conf như sau:

http_port: [port] Cấu hình cổng HTTP mà Squid sẽ lắng nghe những yêu cầu được gửi đến

Cú pháp: http_port<cổng>

Mặc định: http_port 3128 Ta thường thay đổi cổng này là 8080 và được khai báo như sau:

http_port 8080

icp_port<cổng>: Cấu hình cổng để gửi và nhận ICP queries Cache_mem: Chỉ định bộ nhớ tích hợp cho các đối tượng

cache_dir: Khai báo kích thước thư mục cache cho Squid, mặc định là cache_dir /var/spool/Squid3/cache 100 16 256, giá trị 100 tức là 100 MB làm cache, nếu dung lượng đĩa cứng lớn, ta có thể tăng thêm tùy thuộc vào kích thước ổ đĩa Như vậy Squid sẽ lưu cache trong thư mục /var/spool/squid3 với kích thước 100 MB

Cache_access_log: Chỉ ra tập tin nơi lưu trữ log

Trang 36

Cache_effective_user, cache_effective_group: Người dùng và nhóm có thể thay đổi Squid

Ví dụ:

Cache_effective_user squid Cache_effective_group squid

Cache_swap_low: Chỉ định kích thước thấp nhất của cache object khi thay thế (được tính bằng % với cùng mức cache)

Cache_store_log: Lưu trữ các thông tin và đối tượng được cache trên Proxy, thời gian lưu trữ

Cache_peer: Nếu Proxy không kết nối trực tiếp đến Internet hoặc Proxy nằm

sau một Firewall thì ta cần phải cấu hình Proxy truy vấn đến Proxy khác bằng tham số

Cú pháp:

Cache_peer host/IP type http_port icp_port Type = parent: truy vấn đến Proxy khác (cha)

Sibling: chia sẻ cache giữa các Proxy (ngang hàng) Ví dụ:

Cache_peer 192.168.1.1 parent 8080 8082 Cache_peer 192.168.1.10 sibling 8080 8082 Cache_peer vttu.edu.vn parent 8080 8082

Các thành viên trường Đại học Võ Trường Toản phải khai báo như trên khi kết nối tới

 ACCESS CONTROL LIST

Ta có thể hạn chế khả năng truy cập Internet của người dùng thông qua ACL Mỗi dòng ACL sẽ định nghĩa một số thuộc tính mơ tả hoạt động truy cập Internet như thời gian truy cập, mạng nguồn Sau đó chúng được kết hợp với khai báo

http_access để xác lập cho Squid loại bỏ hay chấp nhận những gói tin thoả mãn

những ACL đó

Trang 37

sách và ta chỉ việc đặt những khai báo của mình lên trên đó Ta có thể dùng hai chức năng trên để giới hạn việc truy xuất dựa vào destination domain, IP address của máy hoặc mạng Mặc định Squid sẽ từ chối phục vụ tất cả, vì vậy ta phải cấu hình lại tham số này Để được vậy, ta cấu hình thêm cho thích hợp với yêu cầu bằng hai tham số là: acl và http_access

Mỗi định nghĩa access control list phải có một tên và loại, dưới đây là một loại ACL cụ thể: [3]

acl ACL_NAME ACL_TYPES value

acl ACL_NAME ACL_TYPES “/path/to/filename”

Các giá trị cho mỗi tên ACL có thể được xác định trực tiếp sau ACL_TYPE hoặc Squid có thể đọc chúng từ một tập tin riêng biệt Ở đây chúng ta lưu ý rằng các giá trị trong tập tin phải được viết trên mỗi dòng khác nhau

Squid sử dụng thư mục /var/spool/squid để chứa các file cache Do đó nếu Squid được dùng để quản lý số lượng user lớn có tần xuất truy cập Internet cao thì ta phải dành một partition có dung lượng lớn cho thư mục /var

 MỘT SỐ ACL CƠ BẢN

3.3.1 Chặn truy cập theo mạng nguồn và mạng đích

Mọi yêu cầu được nhận bởi Squid từ một client có một số thuộc tính như địa chỉ IP nguồn, địa chỉ IP đích, tên miền nguồn, tên miền đích, địa chỉ MAC nguồn Vì vậy, khi chúng ta xác định một yếu tố ACL, về cơ bản chúng ta thử chọn một yêu cầu và phù hợp với thuộc tính của nó với một giá trị được xác định trước

Có 2 loại ACL, src và dst, được sử dụng để xác định địa chỉ IP nguồn và đích của một yêu cầu cụ thể Có nhiều cách khác nhau để xác định địa chỉ IP Đầu tiên là xác định một IP riêng biệt cho mỗi ACL, như ví dụ sau:

acl client src 192.168.99.100/24

Chúng ta có nhiệm vụ là phải xác định mask cho mạng mình đang thiết lập địa chỉ IP, nếu không làm vậy, Squid sẽ tự động xác định mask

Ví dụ, ACL dưới đây sẽ chỉ xác định yêu cầu từ client 192.168.99.100: acl clients src 192.168.99.100

Trang 38

thuộc lớp C) [18] Như vậy, ta đã có một cái nhìn tổng qt về việc xác định địa các chỉ IP riêng lẻ, bây giờ chúng ta sẽ chuyển sang xác định nhiều địa chỉ IP

Một cách đơn giản nhất, chúng ta có thể xác định nhiều địa chỉ IP cùng lúc bằng cách sử dụng subnets Giả sử chúng ta muốn xác định tất cả các clients trong phịng nhân sự có dãy IP trong khoảng từ 192.168.99.0 đến 192.168.99.10 ACL trong trường hợp này sẽ có dạng như sau:

acl phong_nhansu src 192.168.99.0/24

Với ACL dst cũng tương tự như vậy Giả sử chúng ta muốn khai báo một ACL sẽ xác định tất cả các yêu cầu đến địa chỉ đích 74.125.235.40 (Ip của Google) Chúng ta có thể sử dụng ACL sau:

acl website dst 74.125.235.40

 Chặn truy cập theo thời gian

Kiểm soát việc truy cập theo thời gian là một trong những tính năng thú vị nhất

của Squid Sử dụng loại ACLs time, chúng ta có thể chỉ định một khoảng thời gian

dưới dạng ngày hoặc một phạm vi thời gian Sau đó các yêu cầu sẽ được xác định bởi ACL đó Định dạng của ALC time có dạng như sau:

acl ACL_NAME time [day-abbreviation] [h1:m1-h2:m2] Sau đây là một số chữ viết tắt được sử dụng:

Bảng 4:Chữ viết tắt các ngày trong tuần

Thứ hai M Thứ ba T Thứ tư W Thứ năm T Thứ sáu F Thứ bảy A Chủ nhật S Cả ngày D

Trang 39

kiểu 24 giờ Ta sẽ xây dựng một vài ACLs điển hình cho giờ làm việc ở văn phòng: acl morning_time time MTWHF 8:00-12:59

acl lunch_time time D 13:00-13:59

acl evening_time time MTWHF 14:00-18:00

Bây giờ, chúng ta không muốn clients truy cập vào youtube trong suốt thời gian làm việc, nhưng sẽ được phép truy cập trong giờ nghỉ trưa Ngoài ra, chúng ta chỉ cho phép duyệt web trong giờ làm việc Vì vậy, chúng ta sẽ có những dịng sau trong file cấu hình của mình:

acl youtube dstdomain youtube.com

acl office dstdomain office.example.com http_access allow office

http_access allow youtube !morning_time !evening_time http_access deny all

3.3.3 Chặn truy cập web theo tên miền nguồn và đích

Điều này rất thuận tiện cho chúng ta sử dụng địa chỉ IP trong khi đang xác định yêu cầu liên quan tới IP của clients bởi vì chúng ta đã biết mạng mà chúng ta đang định nghĩa ACL Tuy nhiên, khi chúng ta muốn xác định các yêu cầu dựa trên địa chỉ đích thì nó hồn tồn bất tiện bởi vì:

 Địa chỉ IP của remote host bị chặn có thể thay đổi

 Phân giải địa chỉ đích là một q trình chiếm khá nhiều thời gian

Squid cung cấp 2 loại ACL dạng này Cụ thể là, srcdomain và dstdomain để xây dựng ACLs dựa trên các tên miền nguồn và đích Tuy nhiên, chúng tôi sẽ tập trung sử dụng tên miền (domain) thay vì địa chỉ IP để xác định các yêu cầu, với lý do mà chúng tôi đã giải thích trước đó Chúng ta nên lưu ý rằng srcdomain và dstdomain là 2 loại ACL có hiệu suất khác nhau

Chúng ta sẽ xây dựng một ACL để xác định các yêu cầu đến www.example.com

acl example dstdomain example.com

ACL trên có thể xác định bất cứ yêu cầu nào đến bất cứ trang nào của tên miền www.example com Vì vậy, nếu chúng ta thử truy cập vào http://www.example.com

Trang 40

example Tức là nó vẫn đưa chúng ta đến trang example.com

Tuy nhiên, vấn đề với ACL này là nó sẽ không thể xác định được các yêu cầu tới example.com hay some.example.com,… Vì thế, nếu chúng ta truy cập

http://example.com/ hay http://video.example.com/, yêu cầu của chúng ta sẽ không

được phản hồi

Để khắc phục vấn đề đó, chúng tơi đặt tiền tố cho tên miền với dấu “.” Dấu

chấm được coi như là ký tự đại diện bởi Squid [3] và một ACL sẽ kết hợp với tên miền đó hoặc các tên miền con của một tên miền cụ thể Dưới đây là một ví dụ cụ thể:

acl example dstdomain example.com

Từ giờ chúng ta có truy cập vào bất cứ tên miền con nào thuộc example.com

 Xác thực người dùng với NCSA

Xác thực bằng NCSA là một kiểu xác thực dựa trên NCSA HTTPd [9], bằng cách xác thực dựa vào tập tin chứa mật khẩu

Về cơ bản, xác thực bằng NCSA rất dễ cài đặt và quản lý Tất cả việc chúng ta cần làm là tạo một tập tin chứa username và password với định dạng đặc biệt và sử dụng tập tin đó làm một tùy chọn với chương trình trợ giúp xác thực

Để tạo và quản lý users, chúng ta có thể sử dụng chương trình htpasswd, một phần của httpd (Apache Web Server)

Giả sử chúng ta lưu tập tin passwd trong thư mục /etc/squid3/ sau đó chúng ta có thể thêm user vào như sau:

Ta dùng chương trình htpasswd để tạo user trong file “passwd” như sau: htpasswd /etc/Squid3/passwd user1

New password:

Re-type new password: Adding password for user1

Ta có thể thêm user vào bất kỳ thời điểm nào mà không cần khởi động lại Squid Chúng ta cần cấu hình file squid.conf để sử dụng tập tin passwd đó

auth_param basic program /usr/lib/Squid/ncsa_auth /etc/Squid3/passwd

Ngày đăng: 07/07/2023, 00:53

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN