Làm reverse proxy với Linux + Apache httpd, thuộc series Bảo vệ máy chủ...
Số trang: 6
Loại file: pdf
Dung lượng: 282.67 KB
Lượt xem: 9
Lượt tải: 0
Xem trước 2 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Bài viết này chủ yếu dựa trên hai tài liệu là "Web Security Appliance With Apache and mod_security" của Ivan, tác giả mod_security và "Securing Apache 2: Step-by-Step" của Artur Maj. Bà con có thể xem đây là một bản dịch tiếng Việt của hai tài liệu trên, kèm theo những suy nghĩ riêng của bản thân tôi dựa vào kinh nghiệm thực tế khi triển khai reverse proxy -0-. Bài viết này có thể xem là một case study thuộc tập tài liệu "Bảo vệ máy chủ an toàn với phần mềm tự do"....
Nội dung trích xuất từ tài liệu:
Làm reverse proxy với Linux + Apache httpd, thuộc series "Bảo vệ máy chủ..."Làm reverse proxy với Linux + Apache httpd, thuộc series Bảovệ máy chủ... - 4/8/2005 10h:351. Giới thiệuChào các fan hâm mộ Linux,Bài viết này chủ yếu dựa trên hai tài liệu là Web Security Appliance With Apache andmod_security của Ivan, tác giả mod_security và Securing Apache 2: Step-by-Step của Artur Maj.Bà con có thể xem đây là một bản dịch tiếng Việt của hai tài liệu trên, kèm theo những suy nghĩriêng của bản thân tôi dựa vào kinh nghiệm thực tế khi triển khai reverse proxy -0-. Bài viết này cóthể xem là một case study thuộc tập tài liệu Bảo vệ máy chủ an toàn với phần mềm tự do.Nhiệm vụ của chúng ta là bảo vệ một hay nhiều content web-server -1- nằm trong vùng Internal -2-,các web-server này có thể là Apache httpd, hoặc Microsoft IIS, hoặc có thể chỉ là một web-serverđơn giản được embedded vào một ứng dụng nào đó. Để hoàn thành nhiệm vụ, chúng ta sẽ tập trungvào xây dựng một firewall/ids hoạt động ở tầng application, trong tài liệu này gọi là reverse-proxy,sử dụng Apache httpd -3- trên nền Linux.2. Reverse proxy là gì?[img]http://www-106.ibm.com/developerworks/lotus/library/lwp_proxy/geno2.jpg[/img]Một proxy, theo định nghĩa, là một thiết bị đứng giữa server và client, tham gia vào cuộc tròchuyện giữa hai bên. Khái niệm proxy mà chúng ta thường dùng hàng ngày tốt hơn nên được gọilà một forward proxy: một thiết bị đứng giữa một client và tất cả server mà client đó muốn truy cậpvào. Một reverse proxy làm công việc hoàn toàn ngược lại: nó đứng giữa một server và tất cả clientmà server này phải phục vụ. Reverse proxy giống như một nhà ga kiêm một trạm kiểm soát, cácrequest từ client, bắt buộc phải ghé vào reverse proxy, tại reverse proxy sẽ kiểm soát, lọc bỏ cácrequest không hợp lệ, và luân chuyển các request hợp lệ đến đích cuối cùng là các server. Chú ý làmột reverse proxy có thể luân chuyển request cho nhiều server cùng lúc.Lợi thế lớn nhất của việc sử dụng reverse proxy là ở khả năng quản lí tập trung. Một khi đã đẩyđược tất cả traffic đi qua một trạm kiểm soát duy nhất (là reverse proxy), chúng ta có thể áp dụngnhiều đồ nghề khác để tăng cường an ninh cho hệ thống của mình. Dĩ nhiên, bất kì sản phẩm haycông nghệ nào cũng có ưu và khuyết điểm của nó, đi cùng với single point of access bao giờ cũng làbóng ma single point of failure. Single point of failure có thể được giải quyết bằng cách xây dựngcluster. Đây là một vấn đề hoàn toàn vượt qua khỏi phạm vi của bài viết này, tôi chỉ xin giới thiệubồ nào muốn tìm hiểu về cluster trên Linux thì thử ghé vào http://www.linux-ha.org. Ngoài ra ápdụng reverse proxy đúng cách sẽ giúp tăng cường performance cũng như nâng cao scalability củacác web-application chạy trên các content server. Chút xíu nữa, tôi sẽ đi vào chi tiết các ưu điểmcủa reverse proxy cũng như làm thế nào để khai thác các ưu điểm đó.3. Cài đặt máy chủ reverse-proxy3.1. Chọn và cài đặt hệ điều hành cho reverse proxyDĩ nhiên là tôi sử dụng linux cho máy chủ reverse proxy. Tôi không mô tả quá trình cài đặt linux ởđây bởi có rất nhiều tài liệu hay trên Internet nói về đề tài này, và hơn nữa tôi nghĩ là một khi đãnghĩ đến chuyện làm reverse proxy thì chắc chắn chuyện cài đặt Linux không là vấn đề.Linux cóquá trời distro, thế mrro chọn distro nào? Theo tôi thì distro nào cũng như nhau cả thôi, nhưng nếuai đó hỏi tôi câu hỏi trên thì câu trả lời sẽ là Trustix -4-. Bất kể chọn distro nào, nhớ là sau khi càiđặt xong, hãy dành một chút thời gian để secure cái distro của mình lại trước khi đọc tiếp -5-. Phầntiếp theo chúng ta sẽ bàn về việc cài đặt Apache httpd cũng như các module kèm theo của nó.3.2. 1.3.x hay 2.x?Trước tiên, tôi nghĩ cần phải trả lời câu hỏi là chúng ta sẽ chọn phiên bản Apache nào để làmreverse proxy đây, 1.3.x hay 2.x? Tôi chọn 2.x vì ba lý do: thứ nhất là tôi nghe đồn là có rất nhiều0-day trong phiên bản 1.3.x :D. Lý do thứ hai là Apache 2.x cung cấp một bộ filtering API tốt hơnso với phiên bản 1.3.x, cho phép các module có thể nhìn thấy và tương tác với nội dung của cácrequest cũng như các response tương ứng từ trả lời từ server. Điều này rất quan trọng đối với mộtreverse proxy đóng vai trò là một application gateway bởi vì nó phải kiểm tra tất cả thông tin đixuyên qua nó trước khi chuyển giao cho bên nhận. -6-. Lý do cuối cùng là Apache httpd 2.x cóperformance cao hơn hẳn 1.3.x khi phục vụ các static content như file HTML và file hình ảnh. Tôiquan tâm đến vấn đề này là vì tôi có ý định giảm tải cho các content server bên trong bằng cách táchcontent ra làm hai loại là dynamic (các loại file CGI/Perl, PHP) và static (các file HTML và filehình ảnh), các content server chỉ phục vụ dynamic content, còn tất cả static content thì đưa qua máychủ reverse proxy luôn. Lúc đó khi các request của client đi vào reverse proxy, nếu request đó cóđích đến là một static content, máy chủ reverse proxy sẽ trả lời ...
Nội dung trích xuất từ tài liệu:
Làm reverse proxy với Linux + Apache httpd, thuộc series "Bảo vệ máy chủ..."Làm reverse proxy với Linux + Apache httpd, thuộc series Bảovệ máy chủ... - 4/8/2005 10h:351. Giới thiệuChào các fan hâm mộ Linux,Bài viết này chủ yếu dựa trên hai tài liệu là Web Security Appliance With Apache andmod_security của Ivan, tác giả mod_security và Securing Apache 2: Step-by-Step của Artur Maj.Bà con có thể xem đây là một bản dịch tiếng Việt của hai tài liệu trên, kèm theo những suy nghĩriêng của bản thân tôi dựa vào kinh nghiệm thực tế khi triển khai reverse proxy -0-. Bài viết này cóthể xem là một case study thuộc tập tài liệu Bảo vệ máy chủ an toàn với phần mềm tự do.Nhiệm vụ của chúng ta là bảo vệ một hay nhiều content web-server -1- nằm trong vùng Internal -2-,các web-server này có thể là Apache httpd, hoặc Microsoft IIS, hoặc có thể chỉ là một web-serverđơn giản được embedded vào một ứng dụng nào đó. Để hoàn thành nhiệm vụ, chúng ta sẽ tập trungvào xây dựng một firewall/ids hoạt động ở tầng application, trong tài liệu này gọi là reverse-proxy,sử dụng Apache httpd -3- trên nền Linux.2. Reverse proxy là gì?[img]http://www-106.ibm.com/developerworks/lotus/library/lwp_proxy/geno2.jpg[/img]Một proxy, theo định nghĩa, là một thiết bị đứng giữa server và client, tham gia vào cuộc tròchuyện giữa hai bên. Khái niệm proxy mà chúng ta thường dùng hàng ngày tốt hơn nên được gọilà một forward proxy: một thiết bị đứng giữa một client và tất cả server mà client đó muốn truy cậpvào. Một reverse proxy làm công việc hoàn toàn ngược lại: nó đứng giữa một server và tất cả clientmà server này phải phục vụ. Reverse proxy giống như một nhà ga kiêm một trạm kiểm soát, cácrequest từ client, bắt buộc phải ghé vào reverse proxy, tại reverse proxy sẽ kiểm soát, lọc bỏ cácrequest không hợp lệ, và luân chuyển các request hợp lệ đến đích cuối cùng là các server. Chú ý làmột reverse proxy có thể luân chuyển request cho nhiều server cùng lúc.Lợi thế lớn nhất của việc sử dụng reverse proxy là ở khả năng quản lí tập trung. Một khi đã đẩyđược tất cả traffic đi qua một trạm kiểm soát duy nhất (là reverse proxy), chúng ta có thể áp dụngnhiều đồ nghề khác để tăng cường an ninh cho hệ thống của mình. Dĩ nhiên, bất kì sản phẩm haycông nghệ nào cũng có ưu và khuyết điểm của nó, đi cùng với single point of access bao giờ cũng làbóng ma single point of failure. Single point of failure có thể được giải quyết bằng cách xây dựngcluster. Đây là một vấn đề hoàn toàn vượt qua khỏi phạm vi của bài viết này, tôi chỉ xin giới thiệubồ nào muốn tìm hiểu về cluster trên Linux thì thử ghé vào http://www.linux-ha.org. Ngoài ra ápdụng reverse proxy đúng cách sẽ giúp tăng cường performance cũng như nâng cao scalability củacác web-application chạy trên các content server. Chút xíu nữa, tôi sẽ đi vào chi tiết các ưu điểmcủa reverse proxy cũng như làm thế nào để khai thác các ưu điểm đó.3. Cài đặt máy chủ reverse-proxy3.1. Chọn và cài đặt hệ điều hành cho reverse proxyDĩ nhiên là tôi sử dụng linux cho máy chủ reverse proxy. Tôi không mô tả quá trình cài đặt linux ởđây bởi có rất nhiều tài liệu hay trên Internet nói về đề tài này, và hơn nữa tôi nghĩ là một khi đãnghĩ đến chuyện làm reverse proxy thì chắc chắn chuyện cài đặt Linux không là vấn đề.Linux cóquá trời distro, thế mrro chọn distro nào? Theo tôi thì distro nào cũng như nhau cả thôi, nhưng nếuai đó hỏi tôi câu hỏi trên thì câu trả lời sẽ là Trustix -4-. Bất kể chọn distro nào, nhớ là sau khi càiđặt xong, hãy dành một chút thời gian để secure cái distro của mình lại trước khi đọc tiếp -5-. Phầntiếp theo chúng ta sẽ bàn về việc cài đặt Apache httpd cũng như các module kèm theo của nó.3.2. 1.3.x hay 2.x?Trước tiên, tôi nghĩ cần phải trả lời câu hỏi là chúng ta sẽ chọn phiên bản Apache nào để làmreverse proxy đây, 1.3.x hay 2.x? Tôi chọn 2.x vì ba lý do: thứ nhất là tôi nghe đồn là có rất nhiều0-day trong phiên bản 1.3.x :D. Lý do thứ hai là Apache 2.x cung cấp một bộ filtering API tốt hơnso với phiên bản 1.3.x, cho phép các module có thể nhìn thấy và tương tác với nội dung của cácrequest cũng như các response tương ứng từ trả lời từ server. Điều này rất quan trọng đối với mộtreverse proxy đóng vai trò là một application gateway bởi vì nó phải kiểm tra tất cả thông tin đixuyên qua nó trước khi chuyển giao cho bên nhận. -6-. Lý do cuối cùng là Apache httpd 2.x cóperformance cao hơn hẳn 1.3.x khi phục vụ các static content như file HTML và file hình ảnh. Tôiquan tâm đến vấn đề này là vì tôi có ý định giảm tải cho các content server bên trong bằng cách táchcontent ra làm hai loại là dynamic (các loại file CGI/Perl, PHP) và static (các file HTML và filehình ảnh), các content server chỉ phục vụ dynamic content, còn tất cả static content thì đưa qua máychủ reverse proxy luôn. Lúc đó khi các request của client đi vào reverse proxy, nếu request đó cóđích đến là một static content, máy chủ reverse proxy sẽ trả lời ...
Tìm kiếm theo từ khóa liên quan:
giáo trình giáo án giáo trình cao đẳng giáo án cao đẳng giáo trình đại học giáo án đại họcTài liệu liên quan:
-
Giáo trình phân tích một số loại nghiệp vụ mới trong kinh doanh ngân hàng quản lý ngân quỹ p5
7 trang 473 0 0 -
MARKETING VÀ QUÁ TRÌNH KIỂM TRA THỰC HIỆN MARKETING
6 trang 301 0 0 -
QUY CHẾ THU THẬP, CẬP NHẬT SỬ DỤNG CƠ SỞ DỮ LIỆU DANH MỤC HÀNG HÓA BIỂU THUẾ
15 trang 209 1 0 -
BÀI GIẢNG KINH TẾ CHÍNH TRỊ MÁC - LÊNIN - TS. NGUYỄN VĂN LỊCH - 5
23 trang 209 0 0 -
Giáo trình hướng dẫn phân tích các thao tác cơ bản trong computer management p6
5 trang 199 0 0 -
Giáo trình chứng khoán cổ phiếu và thị trường (Hà Hưng Quốc Ph. D.) - 4
41 trang 198 0 0 -
Giới thiệu môn học Ngôn ngữ lập trình C++
5 trang 197 0 0 -
Hình thành hệ thống điều khiển trình tự xử lý các toán tử trong một biểu thức logic
50 trang 176 0 0 -
BÀI GIẢNG LÝ THUYẾT MẠCH THS. NGUYỄN QUỐC DINH - 1
30 trang 174 0 0 -
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG - NGÂN HÀNG ĐỀ THI HẾT HỌC PHẦN HỌC PHẦN: TOÁN KINH TẾ
9 trang 173 0 0