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 3Lờ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 71.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 83.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 9Hì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 12như 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 13Internet 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 14CHƯƠ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 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
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
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 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
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 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
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
Ư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 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 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 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 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 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ó 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 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
Đượ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 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 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 28Hì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 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ợ
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 30Chí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 31Hì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 33cá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 34như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 35CHƯƠ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 36Cache_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 37sá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 38thuộ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 39kiể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 40example 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