Squid Proxy là một công giải pháp cài đặt một Server Proxy cho công ty giúp công ty kiểm soát tốt hơn hành vi của nhân viên, con người đồng thời ngăn chặn họ truy cập đến những trang web. nguy hiểm gây ra thiệt hại không đáng có. Với mong muốn tìm hiểu và giới thiệu thêm về vấn đề này nhóm xin trình bày đề tài Thiết kế hệ thống Proxy server trên Ubuntu sử dụng Squid cho một doanh nghiệp .
Trang 1CHƯƠNG 3: THIẾT KẾ HỆ THỐNG PROXY SERVER TRÊN UBUNTU SỬ DỤNG SQUID
3.1 Cấu hình hệ thống proxy và quản lý quyền truy cập của các máy khách 15
Trang 2BẢNG KÝ HIỆU VIẾT TẮT
VPN Virtual Private Network
HTTP HyperText Transfer Protocol
HTTPS HyperText Transfer Protocol Secure
FTP File Transfer Protocol
SNMP Simple Network Management Protocol
Trang 3DANH SÁCH BẢNG BIỂU, HÌNH ẢNH
Hình 1 : Khái niệm về Proxy Server 5
Hình 2: Cách thức hoạt động của máy chủ Proxy 7
Hình 3: Forward Proxy Server 8
Hình 4: Reverse Proxy Server 9
Hình 5: Squid proxy 10
Hình 6: Nguyên tắc hoạt động của squid proxy 11
Hình 7: Nguyên tắc hoạt động squid proxy 11
Hình 8: Cài đặt Squid trên Ubuntu 13
Hình 9: Kiểm tra trạng thái của squid 13
Hình 10: File thiết lập cấu hình squid 14
Hình 11: Cấu hình port cho squid proxy 15
Hình 12: Cấu hình hệ thống Proxy Server 16
Hình 13: Thiết lập card mạng cho máy chủ 17
Hình 14: Thiết lập địa chỉ IP cho mạng LAN 17
Hình 15: Định nghĩa acl và chặn quyền truy cập 18
Hình 16: Khởi động lại và kiểm trang trạng thái Squid 18
Hình 17:Setup card mạng Custom cho máy khách Windows 7 19
Hình 18: Cấu hình địa chỉ IP máy khách Windows 7 19
Hình 19 : Chỉnh sửa Network Proxy 20
Hình 20 : Truy cập trang web sau khi thêm proxy 20
Hình 21: Cấu hình địa chỉ IP máy khách Ubuntu 22.04 21
Hình 22: Toàn bộ các truy cập thông qua Squid 21
Hình 23 : Cấu hình chặn một số website theo thời gian 22
Hình 24 : Truy cập website facebook.com sau khi đã chặn quyền truy cập 22
Hình 25 Hệ thống cân bằng tải sử dụng Squid Proxy 23
Hình 26.Cấu hình Hệ thống Squid Proxy parent 23
Hình 27 Thiết lập cho phép kết nối đến máy chủ parent 24
Hình 28 Truy cập vào gmail để kiểm tra cân bằng tải 24
Hình 29 Kiểm tra file log của Hệ thống Squid Proxy sv1 25
Hình 30 Kiểm tra file log của Hệ thống Squid Proxy sv2 25
Trang 4LỜI MỞ ĐẦU
Công nghệ thông tin là một ngành phát triên mạnh mẽ không chỉ ở nước
ta mà trên toàn thế giới Song hành với việc phát triển công nghệ thì việc bảo mật dữ liệu và an toàn thông tin giữa kỷ nguyên số đang được thế giới cực kỳ quan tâm
Các công ty, doanh nghiệp thường chứa những lượng thông tin cần bảo mật rất đáng giá như thông tin của khách hàng, dữ liệu doanh nghiệp, Các hacker có thể dùng nhiều phương thức và kỹ thuật tấn công khác nhau để tấn công trên mạng của công ty đó nếu chúng không được bảo mật trong môi
trường và một trong số đó là kỹ thuật tấn công bằng kỹ thuật xã hội và tấn công vào mỗi nhân viên sử dụng mạng của công ty
Squid Proxy là một công giải pháp cài đặt một Server Proxy cho công ty giúp công ty kiểm soát tốt hơn hành vi của nhân viên, con người đồng thời ngănchặn họ truy cập đến những trang web nguy hiểm gây ra thiệt hại không đáng
có Với mong muốn tìm hiểu và giới thiệu thêm về vấn đề này nhóm xin trình
bày đề tài " Thiết kế hệ thống Proxy server trên Ubuntu sử dụng Squid cho một doanh nghiệp"
Trang 5CHƯƠNG 1: TỔNG QUAN VỀ HỆ THỐNG PROXY SERVER 1.1 Khái niệm, chức năng của máy chủ Proxy
1.1.1 Khái niệm
Máy chủ proxy hoạt động như một cổng kết nối giữa khách và internet
Nó là một máy chủ trung gian tách người dùng cuối khỏi các trang web mà họ duyệt qua Máy chủ proxy cung cấp các mức chức năng, bảo mật và quyền riêng
tư khác nhau tùy thuộc vào trường hợp sử dụng, nhu cầu của bạn hoặc chính sách của công ty
Nếu bạn đang sử dụng máy chủ proxy, lưu lượng truy cập internet sẽ di chuyển qua máy chủ proxy trên đường đến địa chỉ bạn yêu cầu Sau đó, yêu cầu quay trở lại thông qua cùng một máy chủ proxy đó (có những ngoại lệ đối với quy tắc này) và sau đó máy chủ proxy sẽ chuyển tiếp dữ liệu nhận được từ trangweb cho bạn
Hình 1 : Khái niệm về Proxy Server 1.1.2 Chức năng
- Tường lửa và Filtering
Proxy Server có thể lọc Web và các ứng dụng cho bạn một cách hiệu quả.Nếu máy chủ Proxy của bạn được cài đặt và cấu hình đúng cách, chúng sẽ cải
Trang 6thiện đáng kể các vấn đề liên quan đến bảo mật và tăng hiệu suất mạng cực kỳ hiệu quả.
- Chia sẻ kết nối với Proxy Server
Proxy Server thường được sử dụng cho những mạng có kích thước lớn vàtrung bình, thay vì phải trực tiếp mỗi máy khách cho một kết nối Internet thì tất
cả các kết nối bên trong đều có thể kết nối ra bên ngoài thông qua một hay nhiều Proxy Server
- Caching
Proxy Server và kết hợp Caching của các trang web có thể cải thiện chất lượng dịch vụ của một mạng bằng cách:
●Cải tiến băng thông mạng, tăng khả năng mở rộng
●Cải thiện khả năng đáp trả cho các máy khách
●Các Proxy Server Cache có thể tăng khả năng phục vụ với khả năng truy cập
1.2 Cách thức hoạt động của máy chủ Proxy
Khi một máy chủ proxy nhận được yêu cầu cho một tài nguyên Internet (chẳng hạn như một trang Web), nó sẽ tìm trong bộ nhớ cache cục bộ của các trang trước đó Nếu nó tìm thấy trang, nó sẽ trả lại cho người dùng mà không cần chuyển tiếp yêu cầu đến Internet Nếu trang không có trong bộ nhớ cache, máy chủ proxy, hoạt động như một máy khách thay mặt cho người dùng, sử dụng một trong các địa chỉ IP của chính nó để yêu cầu trang từ máy chủ ra trên Internet Khi trang được trả lại, máy chủ proxy sẽ liên hệ nó với yêu cầu ban đầu và chuyển tiếp nó tới người dùng
Máy chủ proxy được sử dụng cho cả mục đích hợp pháp và bất hợp pháp.Trong doanh nghiệp, máy chủ proxy được sử dụng để hỗ trợ các dịch vụ bảo mật, kiểm soát quản trị hoặc bộ nhớ đệm, trong số các mục đích khác Trong bốicảnh máy tính cá nhân, máy chủ proxy được sử dụng để kích hoạt quyền riêng
tư của người dùng và lướt web ẩn danh Máy chủ proxy cũng có thể được sử dụng cho mục đích ngược lại: Để giám sát lưu lượng truy cập và phá hoại quyềnriêng tư của người dùng
Trang 7Người dùng có thể truy cập web proxy trực tuyến hoặc cấu hình trình duyệt web để liên tục sử dụng máy chủ proxy Cài đặt trình duyệt bao gồm các tùy chọn được phát hiện tự động và thủ công cho các proxy HTTP, SSL, FTP vàSOCKS Máy chủ proxy có thể phục vụ nhiều người dùng hoặc chỉ một máy chủ cho mỗi máy chủ Các tùy chọn này lần lượt được gọi là proxy chia sẻ và proxy chuyên dụng Có một số lý do cho proxy và do đó một số loại máy chủ proxy, thường nằm trong các danh mục chồng chéo.
Hình 2: Cách thức hoạt động của máy chủ Proxy
1.3 Ưu điểm của máy chủ Proxy
1.3.1 Kiểm soát việc sử dụng Internet
Máy chủ Proxy có thể được sử dụng để hạn chế quyền truy cập vào các trang web cụ thể Các tổ chức có thể sử dụng proxy để ngăn nhân viên của mìnhđăng nhập vào một số trang web nhất định để họ có thể cải thiện năng suất tổng thể của mình
1.3.2 Tiết kiệm băng thông và nâng cao tốc độ
Với khả năng sao lưu bộ nhớ Cache (lưu một bản sao trang web cục bộ) các trang web thường truy cập, máy chủ proxy có thể tiếp nhận và xử lý cùng lúc các lượt truy cập có thể là lên tới hàng trăm hay hàng nghìn lượt Điều này
sẽ giúp tăng tốc độ truy cập và tiết kiệm băng thông rất nhiều
1.3.3 Bảo mật riêng tư
Máy chủ proxy cũng có thể sử dụng để duyệt Internet riêng tư hơn Người dùng còn có thể tránh được các trang Web độc hại thôngqua máy chủ proxy Một số máy chủ proxy sẽ thay đổi địa chỉ IP và thông tin nhận dạng khác, có nghĩa là máy chủ đích không biết ai thực sự đã thực hiện yêu cầu ban đầu, giúp giữ thông tin cá nhân và thói quen duyệt Web của bạn riêng tư hơn
Trang 81.3.4 Truy cập vào các tài nguyên bị chặn
Máy chủ proxy cho phép người dùng truy cập vào trang Web bị chặn, bạn
có thểđăng nhập vào máy chủ proxy ở nơi khác và khai thác tài nguyên từ vị trí
đó Bạn có thể hiểu máy chủ proxy cho phép người dùng phá vỡ các hạn chế nộidung do công tyhoặc một số tổ chức áp đặt nó khiến bạn giống như ở nước ngoài nhưng thực ra đang ởViệt Nam
1.4 Một số máy chủ Proxy
1.4.1 Máy chủ Forward Proxy
Forward là một loại máy chủ proxy thường chuyển các yêu cầu từ người dùng trong mạng nội bộ đến Internet thông qua tường lửa
Các proxy chuyển tiếp được định cấu hình để ‘cho phép’ hoặc ‘từ chối’ yêu cầu của người dùng để vượt qua tường lửa để truy cập nội dung trên
Internet
Nếu proxy cho phép yêu cầu của người dùng, nó sẽ chuyển tiếp nó đến máy chủ web thông qua tường lửa Máy chủ web gửi phản hồi của nó tới proxy Sau đó proxy sẽ gửi lại phản hồi này cho người dùng
Trước tiên, một proxy chuyển tiếp sẽ kiểm tra xem thông tin yêu cầu của người dùng có được lưu vào bộ nhớ đệm hay không trước khi truy xuất nó từ máy chủ Proxy tự lưu trữ thông tin đã lưu trong bộ nhớ cache, loại bỏ nhu cầu yêu cầu thông tin đó từ máy chủ Nếu thông tin yêu cầu được lưu trong bộ nhớ cache, proxy sẽ gửi trực tiếp đến người dùng
Nếu proxy từ chối yêu cầu của người dùng, nó sẽ gửi cho người dùng mộtthông báo lỗi hoặc chuyển hướng
Hình 3: Forward Proxy Server 1.4.2 Máy chủ Reverse Proxy
Không giống như Forward proxy, đặt trước máy khách,Reverse proxy được đặt trước máy chủ web và chuyển tiếp các yêu cầu từ trình duyệt đến máy chủ web Nó hoạt động bằng cách chặn các yêu cầu từ người dùng ở biên mạng
Trang 9của máy chủ web Sau đó, nó sẽ gửi các yêu cầu đến và nhận trả lời từ máy chủ gốc.
Hình 4: Reverse Proxy Server 1.4.3 Máy chủ Transparent Proxy
Đây là phương 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 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 kết nối đến 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 cũng như Internet applications khác
1.4.4 Máy chủ Anonymous Proxy
Anonymous Proxy hay còn gọi là Proxy ẩn danh sẽ không chuyển địa chỉ
IP của người dùng tới website Chính điều này giúp tăng độ bảo mật, ngăn chặn hành vi trộm cắp danh tính và giữ cho thói quen duyệt Web của bạn ở chế độ riêng tư nhất Với Proxy ẩn danh chúng cũng có thể ngăn Website phân phát nộidung tiếp thị, được nhắm chọn mục tiêu dựa trên vị trí của bạn
Trang 10CHƯƠNG 2:GIỚI THIỆU VỀ PROXY SQUID 2.1 Khái niệm Proxy Squid.
Squid là một phần mềm Proxy Server dùng cho việc lưu trữ cache và lọc nội dung web Squid hỗ trợ các giao thức HTTP, HTTPS, FTP,… giúp bạn tiết kiệm băng thông và tăng tốc độ truy cập web cho nhóm người dùng trong công
ty
Hình 5: Squid proxy
Squid proxy là một giải pháp proxy phần mềm mã nguồn mở tự do được
sử dụng nhiều nhất trong giải pháp Proxy của cộng đồng mạng Squid proxy làm nhiệm vụ chuyển tiếp các yêu cầu từ phía client và đồng thời đóng vai trò kiểm soát tạo sự an toàn cho việc truy cập Internet của các client
Máy chủ bộ nhớ cache proxy Squid là một giải pháp tuyệt vời cho nhiều nhu cầu khác nhau của máy chủ proxy và bộ nhớ đệm, cũng như quy mô từ văn phòng chi nhánh đến mạng cấp doanh nghiệp đồng thời cung cấp các cơ chế kiểm soát truy cập chi tiết, rộng rãi và giám sát các thông số quan trọng thông qua giao thức quản lý mạng đơn giản ( SNMP) Khi chọn một hệ thống máy tính để sử dụng làm máy chủ proxy Squid caching chuyên dụng cho nhiều người dùng, hãy đảm bảo rằng nó được cấu hình với một lượng lớn bộ nhớ vật
lý vì Squid duy trì một bộ nhớ đệm trong bộ nhớ để tăng hiệu suất
Trang 11Hình 6: Nguyên tắc hoạt động của squid proxy
Bên cạnh việc chuyển tiếp những yêu cầu từ client đến server, nó cũng sẽ đồng thời lưu lại trên đĩa những dữ liệu được trả về từ Internet Server- gọi là caching Nếu trong thời gian hiệu lực mà một hay nhiều client cùng yêu cầu nội dung thì squid proxy sẽ ngay lập tức đáp ứng lại những yêu cầu từ phía client
Hình 7: Nguyên tắc hoạt động squid proxy
Trang 122.3 Các chức năng cơ bản của Proxy Squid.
Sau khi máy chủ proxy Squid được cài đặt, các trình duyệt web có thể đượcđịnh cấu hình để sử dụng nó như một máy chủ HTTP proxy, cho phép Squid giữlại các bản sao của các tài liệu được trả về sự tiêu thụ Điều này thường hữu ích cho các nhà cung cấp dịch vụ Internet để tăng tốc độ cho khách hàng của họ và các mạng LAN chia sẻ kết nối Internet Bởi vì các máy chủ lưu trong bộ nhớ đệm được kiểm soát bởi nhà khai thác dịch vụ web, proxy lưu trong bộ nhớ đệmkhông ẩn danh người dùng và không nên nhầm lẫn với proxy ẩn danh
Một chương trình khách (ví dụ: trình duyệt) phải chỉ định rõ ràng máy chủ proxy mà nó muốn sử dụng hoặc có thể đang sử dụng proxy mà không có bất kỳ cấu hình bổ sung nào: "bộ nhớ đệm trong suốt", trong trường hợp này là tất cả các yêu cầu HTTP gửi đi bị chặn bởi Squid và tất cả các phản hồi đều được lưu vào bộ nhớ đệm Loại thứ hai thường là một thiết lập của công ty (tất
cả các khách hàng đều nằm trong cùng một mạng LAN) và thường đưa ra các mối quan tâm về quyền riêng tư được đề cập ở trên
Squid có một số tính năng có thể giúp ẩn danh các kết nối, chẳng hạn như
vô hiệu hóa hoặc thay đổi các trường tiêu đề cụ thể trong các yêu cầu HTTP củakhách hàng Những điều này có được thiết lập hay không và những gì chúng được thiết lập để thực hiện, là tùy thuộc vào người điều khiển máy tính đang chạy Squid Những người yêu cầu các trang thông qua một mạng sử dụng Squidmột cách minh bạch có thể không biết liệu thông tin này có đang được ghi lại hay không
2.4 Cài đặt và cấu hình Proxy Squid.
2.4.1 Cài đặt
Trang 13Sử dụng lệnh: “sudo apt install squid” để cài đặt Squid
Hình 8: Cài đặt Squid trên Ubuntu
Sử dụng lệnh “systemctl status squid.service” để kiểm tra xem squid có
đang chạy hay không
Hình 9: Kiểm tra trạng thái của squid 2.4.2 Cấu hình Squid Proxy
File cấu hình chính của Squid là squid.conf (/etc/squid/squid.conf), sử
dụng câu lệnh “sudo nano /etc/squid/squid.conf” để cấu hình squid proxy.
Trang 14Hình 10: File thiết lập cấu hình squid
Trong file squid.conf máy chủ proxy Squid để mặc định cổng 3128 Để
thay cổng của proxy squid thì tìm kiếm “http_port 3128” để thay đổi Như
hình bên dưới đã thay đổi cổng thành 1507 để đảm bảo tính bảo mật
Trang 15Hình 11: Cấu hình port cho squid proxy
Một số lệnh cấu hình proxy squid cơ bản:
+acl aclname alctype string hoặc “file”
-Trong đó:
acl: Định nghĩa access control listaclname: tên của acl
acltype:src, srcdomain
+acl aclname time [day or week] [h1:m1-h2:m2]
+acl aclname port 80 70…
+http_access allow/deny aclname
Trang 16CHƯƠNG 3: THIẾT KẾ HỆ THỐNG PROXY SERVER TRÊN UBUNTU
SỬ DỤNG SQUID CHO MỘT DOANH NGHIỆP
Thiết lập hệ thống máy chủ proxy trong mạng nội bộ doanh nghiệp giúp giám sát việc truy cập Internet của tất cả nhân viên trong nội bộ hay việc truy cập Web,… Với cơ chế bảo mật, proxy có thể từ chối truy cập vào trang Web để
cá nhân không xem các trang Web này trong giờ hành chính, hay không cho nhân viên vào những trang Web không mong muốn
Hiểu rõ được tầm quan trọng của hệ thống, nhóm chúng tôi đã xây dựng một số kịch bản thiết kế hệ thống máy chủ proxy server cho doanh nghiệp sử dụng Squid Hệ thống bao gồm một máy ảo Ubuntu 22.04 làm máy chủ proxy;
1 máy ảo Ubuntu 22.04 và 1 máy ảo Windows 7 làm máy khách
Hình 12: Cấu hình hệ thống Proxy Server
3.1 Cấu hình hệ thống proxy và quản lý quyền truy cập của các máy khách
3.1.1 Máy chủ (Ubuntu 22.04)
Thiết lập 2 card mạng cho máy chủ Ubuntu bao gồm 1 card mạng chế độ Bridged để sử dụng chung mạng với máy thật và 1 card mạng chế độ Custom để
sử dụng làm mạng LAN
Trang 17Hình 13: Thiết lập card mạng cho máy chủ
Mở máy chủ Ubuntu và tiến hành cấu hình cho card mạng chế độ Customvới địa chỉ ip là 172.16.1.1 Đây cũng chính là địa chỉ ip của mạng LAN được
sử dụng
Hình 14: Thiết lập địa chỉ IP cho mạng LAN