Khóa luận tốt nghiệp công nghệ thông tin: xây dựng proxy server cho hệ thống mạng lan bằng giải pháp mã nguồn mở tài liệ...
TRƯỜNG ĐẠI HỌC VÕ TRƯỜNG TOẢN KHOA CƠNG NGHỆ THƠNG TIN KHÓA LUẬN TỐT NGHIỆP XÂY DỰNG PROXY SERVER CHO HỆ THỐNG MẠNG LAN BẰNG GIẢI PHÁP MÃ NGUỒN MỞ Giáo viên hướng dẫn: Sinh viên thực hiện: ThS NGUYỄN HỮU LỘC NGUYỄN HOÀNG TRUNG MSSV: 0951190338 Lớp: ĐH CNTT Khóa: Hậu Giang - 2013 LỜI CAM ĐOAN Tơi xin cam đoan luận văn hồn thành kết nghiên cứu với hướng dẫn, hỗ trợ 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 ghi rõ nguồn tác giả Sinh viên thực Nguyễn Hoàng Trung Trang i LỜI CẢM TẠ Lời 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 suốt trình làm khóa luận Em xin tỏ lịng biết ơn tới thầy, cô 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, dẫn chúng em tạo điều kiện tốt cho chúng em học tập suốt trình học đại học đặc biệt thời gian làm khóa luận tốt nghiệp Tơi xin chân thành ơn đến bạn sinh viên khóa trường Đại Học Võ Trường Toản, cho ý kiến đóng góp giá trị thực đề tài Cuối xin gửi tới ba mẹ tồn thể gia đình lịng biết ơn tình cảm yêu thương sâu sắc Sinh viên thực Nguyễn Hoàng Trung Trang ii BẢN NHẬN XÉT LUẬN VĂN TỐT NGHIỆP _ Họ 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ọ 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 giải pháp nguồn mở NỘI DUNG NHẬN XÉT Tính phù hợp đề tài với chuyên ngành đào tạo: Về hình thức: Trang iii Ý nghĩa khoa học, thực tiễn tính cấp thiết đề tài: Độ tin cậy số liệu tính đại luận văn: Nội dung kết đạt được: Các nhận xét khác: Kết luận: ………., ngày…… tháng …… năm… Người nhận xét Trang iv NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN Hậu Giang, ngày … tháng … năm … Giáo viên phản biện Trang v MỤC LỤC CHƯƠNG TỔNG QUAN 1.1 ĐẶT VẤN ĐỀ -1 1.2 LỊCH SỬ GIẢI QUYẾT VẤN ĐỀ -1 1.2.1 Giải pháp phần cứng -1 1.2.2 Giải pháp phần mềm -4 PHẠM VI NGHIÊN CỨU 1.4 PHƯƠNG PHÁP TIẾP CẬN CHƯƠNG CƠ SỞ LÝ THUYẾT -7 LINUX VÀ HỆ ĐIỀU HÀNH MÁY CHỦ UBUNTU SERVER 2.1 2.1.1 Giới thiệu Linux Ưu nhược điểm hệ điều hành Linux Các 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 chế hoạt động 13 Phân loại Proxy - 15 Ý nghĩa Proxy - 18 Nhược điểm Proxy 19 2.3 SQUID PROXY TRONG LINUX 19 Quá trình trao đổi cache Squid - 20 Cài đặt Squid - 20 CHƯƠNG NỘI DUNG VÀ KẾT QUẢ NGHIÊN CỨU - 22 Cấu hình Squid 22 Tập tin cấu hình 22 ACCESS CONTROL LIST - 23 MỘT SỐ ACL CƠ BẢN - 24 3.3.1 Chặn truy cập theo mạng nguồn mạng đích 24 Chặn truy cập theo thời gian - 25 3.3.3 Chặn truy cập web theo tên miền nguồn đích 26 Trang vi Xác thực người dùng với NCSA - 27 Giới hạn loại file download - 28 Hạn chế dung lượng download - 29 3.3.7 Giới hạn băng thông - 29 Giới hạn Stream online 30 3.3.9 Cấu hình transparent - 31 KHỞI ĐỘNG SQUID 32 CHƯƠNG THỰC NGHIỆM - 34 YÊU CẦU 34 Yêu cầu kỹ thuật - 34 Mơ hình thực nghiệm 34 PHƯƠNG PHÁP THỰC NGHIỆM 35 KẾT QUẢ THỰC NGHIỆM 36 4.3.1 Đối với 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 website khai báo - 38 Về giới hạn băng thông user 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 KẾT LUẬN - 44 KẾT QUẢ THU ĐƯỢC - 44 HƯỚNG PHÁT TRIỂN TIẾP THEO 44 TÀI LIỆU THAM KHẢO 46 Trang vii DANH MỤC HÌNH VẼ Hình 1: Mơ hình OSI .2 Hình 2: Các kiểu định tuyến Hình 3: Mơ hình hoạt động Router Hình 4: Cấu trúc file Linux .8 Hình 5: Cơ chế hoạt động 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 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 cho phép .38 Hình 14: Tốc độ download bị giới hạn băng thơng 39 Hình 15: Tốc độ download 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 NCSA .41 Hình 19: Chặn video 41 Hình 20: Chặn Audio .42 Hình 21: Cấu hình Transparent 43 Trang viii DANH MỤC BIỂU BẢNG Bảng 1: Các phân phối Linux 10 Bảng 2: Các thành phần phần mềm Ubuntu 12 Bảng 3:Cấu hình cài đặt Ubuntu 12 Bảng 4:Chữ viết tắt ngày tuần .25 Trang ix iptables -t nat -A PREROUTING -p TCP dport 80 -j REDIRECT to-port 3128 iptables -t nat -A PREROUTING -i eth1 -p tcp dport 80 -j REDIRECT to-port 3128 iptables -A INPUT -j ACCEPT -m state –state NEW,ESTABLISHED,RELATED -i eth1 -p tcp dport 3128 iptables -A OUTPUT -j ACCEPT -m state state NEW,ESTABLISHED,RELATED -o eth0 -p tcp dport 80 iptables -A INPUT -j ACCEPT -m state state ESTABLISHED,RELATED -i eth0 -p tcp sport 80 iptables -A OUTPUT -j ACCEPT -m state state ESTABLISHED,RELATED -o eth1 -p tcp sport 80 Lệnh chuyển tất kết nối tới port 80 sang port 3128 tức port làm Proxy Server Lưu ý Squid iptables chạy Server, eth1 card nối với mạng nội bộ, eth0 card mạng nối ngồi Internet Nếu khơng muốn cấu hình iptables ta đặt trình duyệt web user sử dụng trực tiếp Squid Proxy web port 3128 Squid sử dụng thư mục /var/spool/squid để chứa file cache Do Squid dùng để quản lý số lượng user lớn có tần xuất truy cập Internet cao ta phải dành partition có dung lượng lớn cho thư mục /var KHỞI ĐỘNG SQUID Sau cài đặt cấu hình lại Squid, ta phải tạo cache trước chạy Squid lệnh: # Squid -z Nếu trình tạo cache bị lỗi, ta ý đến quyền thư mục cache khai báo tham số cache_dir Có thể thư mục khơng phép ghi Nếu có ta phải thay đổi bằng: # chown Squid:Squid /var/spool/Squid3 # chmod 770 /var/spool/Squid3 Sau tạo xong thư mục cache, ta khởi động dừng Squid lệnh sau: Trang 32 # service Squid start # service Squid stop Restart Squid: # service Squid restart Sau Squid khởi động, muốn theo dõi quản lý việc truy cập Client hay Squid hoạt động cache nào, ta thường xuyên xem files sau đây:/var/log/Squid3/cache.log bao gồm cảnh báo thông tin trạng thái cache./var/log/Squid3/store.log bao gồm sở liệu thơng tin cập nhật cache hết hạn /var/log/Squid3/access.log chứa tất thông tin việc truy cập Client, bao gồm địa nguồn, đích đến, thời gian Trang 33 CHƯƠNG THỰC NGHIỆM YÊU CẦU Yêu cầu kỹ thuật Để đưa mơ miêu tả ta cần số yêu cầu kỹ thuật sau: máy làm Client máy làm Server cài đặt môi trường máy ảo Virtualbox Máy Server ◦ Cài đặt hệ điều hành Ubuntu Server 32 bits phiên bàn 12.04 LTS ◦ Cài đặt gói Squid Proxy phiên 3.1.19 ◦ Cài đặt Iptables Máy Client ◦ Cài đặt hệ điều hành Windows Xp, Ubuntu Desktop, … ◦ Trình duyệt Firefox, Internet Explorer Mơ hình thực nghiệm Hình 8: Mơ hình thực nghiệm Trang 34 Mơ hình hoạt động sau: Các máy Clients kết nối với thông qua HUB, HUB nối kết đến Proxy Server tiếp nhận xử lý yêu cầu Clients gửi tới định từ chối hay chấp nhận u cầu dựa vào sách mà ta cấu hình trước Nếu u cầu thỏa mãn Proxy chuyển thơng tin u cầu đến Internet thông qua Modem/Router Và ngược lại PHƯƠNG PHÁP THỰC NGHIỆM Để tiến hành thực nghiệm với mơ hình ta xây dựng Proxy Server gói phần mềm mã nguồn mở Squid (phiên 3.1.19) hệ điều hành Ubuntu Server 12.04 Server tiếp nhận yêu cầu từ Clients so sánh với sách mà ta cấu hình, thỏa mãn cho phép Client qua ngược lại từ chối u cầu Trong mơ hình thực nghiệm mình, để giới hạn người dùng duyệt web, chúng tơi sử dụng Access Control Lists (ACLs)[3] Với dòng ACL định nghĩa loại giới hạn hoạt động cụ thể, ví dụ thời gian truy cập mạng nguồn (Ở mạng LAN) Các dịng ACL sau liên kết tới khai báo http_access tương ứng, cung cấp thông tin cho Squid Allow hay Deny yêu cầu yêu cầu nằm phạm vị ACL Squid so sánh yêu cầu truy cập web mà nhận kiểm tra danh sách http_access từ đầu tới cuối Nếu tìm thấy khai báo phù hợp, áp dụng để Allow Deny dừng không đọc tiếp khai báo phía Do vậy, chúng tơi phải cẩn thận việc xếp khai báo Cuối cùng, phải có khai báo http_access deny all để từ chối tất yều cầu khác khơng nói đến khai báo trước Trang 35 KẾT QUẢ THỰC NGHIỆM Sau tiến hành cài đặt kiểm thử số sách, chúng tơi đạt kết cụ thể sau: 4.3.1 Đối với sách chặn truy cập theo lớp mạng Giả sử cho phép phòng nhân phép kết nối Internet Chúng ta tạo ACL với tham số lớp mạng phòng nhân 192.168.99.0 Chúng khai báo tên lớp mạng phong_nhansu Ban đầu Squid từ chối tất kết nối Internet hình 5: Hình 9: Chặn truy cập theo lớp mạng Sau thêm đoạn cấu phần Chặn truy cập theo địa nguồn đích [chương 3] cho Squid biết mạng 192.168.99.0 có tên phong_nhansu phép truy cập Internet Trang 36 Hình 10: Cho phép lớp mạng truy cập Internet Đối với Giới hạn truy cập web theo thời gian Ví dụ, khơng muốn clients truy cập vào youtube suốt thời gian làm việc từ 08:00 – 11:59, phép truy cập nghỉ trưa từ 12:0012:59 Ngoài ra, cho phép duyệt web làm việc Khi truy cập vào Youtube khoảng thời gian từ 08:00-11:59 người dùng nhận thông báo deny từ Squid hình Hình 11: Giới hạn thời gian truy cập theo thời gian Trang 37 Giới hạn truy cập tới website khai báo Để giới hạn người dùng không truy cập đến website khơng phép nhằm tránh lãng phí thời gian hiệu công việc giảm sút lập danh sách sites phép sites bị cấm để tiện sử dụng lúc cấm cho phép người dùng truy cập đến Ví dụ truy cập vào www.yahoo.com Do tên website nằm file restricted-sites nên Squid deny yêu cầu Hình 12: Truy cập vào website bị chặn Và với sites nằm file allowed-sites ta thấy Squid chấp nhận yêu cầu chuyển yêu cầu đến Internet Ví dụ truy cập vào www.linux.com Hình 13: Truy cập đến website cho phép Trang 38 Về giới hạn băng thơng user mạng Ví dụ ta điều chỉnh tham số delay_parameters thành 10000Byte tức 10KB/s, thấy tốc độ download số