Cấu hình reverse proxy
Trang 1
V Ệ Ô Ệ Ô V UYỀ Ô
BÁO CÁO hực tập chuyên ngành
ĐỀ TÀI:
ghiên cứu giải pháp mở rộng của kiến trúc client-server:
iến trúc proxy ngược
iáo viên hướng dẫn: TS Hà Quốc Trung
Sinh viên thực hiện:
Nguyễn Khánh Hưng 20081279 TTM-K53
5/2012
Trang 2L I GIỚI THIỆU 3
I Giới thiệu chung về kiến trúc client-server 4
1 Giới thiệu chung 4
2 Cấu trúc vật lý 4
3 Các kiến trúc Client/Server 5
4 Nguyên tắc hoạt động của kiến trúc Client/Server 7
5 Ưu nhược điểm của kiến trúc Client/Server 7
5.1 Ưu điểm 7
5.2 Nhược điểm 8
II Kiến trúc proxy 8
1 Giới thiệu chung về proxy 8
2 Forward proxy 9
2.1 Chức năng của Forward proxy 10
2.2 Ý nghĩa của Forward proxy 10
III Kiến trúc reverse proxy 12
1 Giới thiệu về Reverse proxy 12
2 Reverse proxy bảo vệ 13
3 Reverse proxy tích hợp 20
IV ẶT THỰC NGHIỆM 26
1 Môi trường công cụ 26
2 Xây dựng mô hình mạng 26
3 Cấu hình reverse proxy 28
V KẾT LUẬN 34
TÀI LIỆU THAM KHẢO 35
Trang 3đề xuất đã giải quyết được đòi hỏi đó Reverse proxy đảm bảo an toàn cho server, giúp cân bằng tải, lọc những yêu cầu có hại,… Chính vì lý do này mà tôi đã chọn đề
tài “ ghiên cứu giải pháp mở rộng của kiến trúc client-server: iến trúc proxy
ngược” để hiểu rõ hơn về kiến trúc này
Do thời gian có hạn nên không thể tránh khỏi những sai sót, mong thầy góp ý
để tôi hoành chỉnh đề tài này
Trang 4I iới thiệu chung về kiến trúc client-server
1 iới thiệu chung
Mô hình được phổ biến nhất và được chấp nhận rộng rãi trong hệ thống phân tán là mô hình client/server Trong mô hình này sẽ có một tập các tiến trình mà mỗi tiến trình đóng vai trò như là một trình quản lý tài nguyên cho trước và một tập các tiến trình client trong đó mỗi tiến trình thực hiện một tác vụ nào đó cần truy xuất tới tài nguyên phần cứng hoặc phần mềm dùng chung Bản thân các trình quản lý tài nguyên cần phải truy xuất tới các tài nguyên dùng chung được quản lý bởi các tiến trình khác, vì vậy một số tiến trình vừa là tiến trình client vừa là tiến trình server Các tiến trình phát ra các yêu cầu tới server bất kỳ khi nào chúng cần truy xuất tới một trong các tài nguyên của các server Nếu yêu cầu là đúng đắn thì server sẽ thực hiện hành động được yêu cầu và gửi một đáp ứng tới tiến trình client
Mô hình client/server cung cấp một cách tiếp cận tổng quát để chia sẻ tài nguyên trong các hệ thống phân tán Mô hình này có thể cài đặt bằng rất nhiều môi trường phần cứng và phần mềm khác nhau Các máy tính được sử dụng để chạy các tiến trình client/server có nhiều kiểu khác nhau và không cần thiết phải phân biệt giữa chúng; cả tiến trình client và tiến trình server đều có thể chạy trên cùng một máy tính Một tiến trình server có thể sử dụng dịch vụ của một server khác
2 ấu trúc vật lý
Yếu tố cơ bản trong mô hình client/server là trong hệ thống phải có các máy tính kết nối chung với nhau sử dụng một giao thức bất kỳ nhằm mục đích sử dụng các tài nguyên, dữ liệu của nhau
Máy chủ(Server)
Trước những năm 1990, các máy tính lớn (main frame) được sử dụng làm server, hiện nay các máy tính cá nhân vẫn được sử dụng như là một server Vì cùng một lúc sẽ có nhiều người truy xuất về server thông qua client do đó server phải có
bộ vi xử lý tốc độ cao (CPU), tài nguyên lớn (RAM, Hardisk) để hoạt động tốt Trong hệ thống mạng, có thể có nhiều server có chức năng độc lập nhau
Trang 5Các tập tin, thư mục mà người sử dụng có thể truy xuất trên server thông qua các client và dây cáp mạng
dữ liệu tập trung Tầng trình diễn thông thường là client, và tầng lưu trữ dữ liệu là server
Hầu hết các ứng dụng intetnet như email, telnet, ftp thậm chí cả Web là các ứng dụng hai tầng Phần lớn các lập trình viên trình ứng dụng viết các ứng dụng client/server có xu thế sử dụng kiến trúc này
Trong ứng dụng hai tầng truyền thống, khối lượng công việc xử lý được dành cho phía client trong khi server chỉ đóng vai trò như là chương trình kiểm soát luồng vào ra giữa ứng dụng và dữ liệu Kết quả là không chỉ hiệu năng của ứng dụng bị giảm đi do tài nguyên hạn chế của PC, mà một khối lượng dữ liệu truyền đi trên mạng cũng tăng theo Khi toàn bộ ứng dụng được xử lý trên một PC, ứng dụng bắt buộc phải yêu cần nhận dữ liệu trước khi đưa ra bất kì kết quản xử lý nào cho người dùng Nhiều yêu cầu dữ liệu cũng làm giảm hiệu năng mạng Một vấn đề thường gặp khác đối với các ứng dụng hai tầng là vấn đề bảo trì Chỉ cần một thay đổi nhỏ đối với ứng dụng cũng cần phải thay đổi lại toàn bộ ứng dụng client và server
Trang 63.2 Client/Server ba tầng
Ta có thể tránh được vấn đề với kiến trúc client/server hai tầng bằng cách mở rộng kiến trúc thành ba tầng Một kiến trúc ba tầng có thêm một tầng mới tách biệt việc xử lý dữ liệu ở vị trí trung tâm
ình 2: Mô hình Cl ent/Server 3 tầng
Theo kiến trúc ba tầng, một ứng dụng được chia thành ba tầng tách biệt về mặt logic Tầng đầu tiên là tầng trình diễn thường bao gồm các giao diện đồ họa Tầng thứ hai là tầng trung gian hay tầng tác nghiệp Tầng thứ ba chứa dữ liệu cần cho ứng dụng Tầng thứ ba về cơ bản là chương trình thực hiện lời gọi hàm để tìm kiếm dữ liệu cần thiết Tầng trình diễn nhận dữ liệu và định dạng nó để hiện thị Sự tách biệt giữa chức năng xử lý giao diện đã tạo nên sự linh hoạt cho thiết kế ứng dụng Nhiều giao diện người dùng được xây dựng và triển khai mà không làm tha đổi logic ứng dụng
Tầng thứ ba chứa dữ liệu cần thiết cho ứng dụng Dữ liệu này có thể bao gồm bất kỳ nguồn thông tin nào, bao gồm cơ sở dữ liệu như Oracale, SQL Server hoặc tài liệu XML
Kiến trúc n tầng được chia thành các tầng như sau:
- Tầng giao diện người dùng: quản lý tương tác của người dùng với ứng dụng
- Tầng logic trình diễn: Xác định cách thức hiển thị giao diện người dùng và các yêu cầu của người dùng được quản lý như thế nào
- Tầng logic tác nghiệp: Mô hình hóa các quy tắc tác nghiệp
- Tầng các dịch vụ hạ tầng: Cung cấp một chức năng bổ trợ cần thiết cho ứng dụng như các thành phần(truyền thông điệp, hỗ trợ giao tác)
Trang 74 guyên tắc hoạt động của kiến trúc lient/Server
Mô hình client/server hướng tới việc cung cấp dịch vụ Quá trình trao đổi dữ liệu bao gồm:
1 Truyền một yêu cầu từ tiến trình client đến tiến trình server
2 Yêu cầu được server xử lý
3 Truyền đáp ứng cho client
Mô hình truyền tin này liên quan tới việc truyền hai thông điệp và một dạng đồng bộ hóa cụ thể giữa client và server Tiến trình server phải nhận thức được thông điệp yêu cầu ở bước 1 ngay khi nó đến và hành động phát ra yêu cầu trong client phải được tạm dừng và buộc tiến trình client ở trạng thái chờ cho tới khi nó nhận được đáp ứng do server gửi về ở bước 3
Mô hình client/server thường được cài đặt dựa trên các thao tác cở bản là gửi (send) và nhận (receive)
Quá trình giao tiếp client và server có thể diễn ra theo một tròn hai chế độ: bị phong tỏa (blocked) và không bị phong tỏa (non-blocked)
- Chế độ bị phong tỏa (blocked):
Trong chế độ bị phong tỏa, khi client hoặc server phát ra lệnh gửi dữ liệu (send), việc thực thi của tiến trình sẽ bị tạm ngừng cho tới khi tiến trình nhận phát
ra lệnh nhận dữ liệu (receive)
Tương tự đối với tiến trình nhận dữ liệu, nếu tiến trình nào đó (client hoặc server) phát ra lệnh nhận dữ liệu, mà tại thời điểm đó chưa có dữ liệu gửi tới thì việc thực thi của tiến trình cũng sẽ bị tạm ngừng cho tới khi có dữ liệu gửi tới
- Chế độ không bị phong tỏa (non-blocked)
Trong chế độ này, khi tiến trình client hay server phát ra lệnh gửi dữ liệu thực
sự, việc thưc thi của tiến trình vẫn được tiến hành mà không quan tâm đến việc có tiến trình nào phát ra lệnh nhận dữ liệu đó hay không
Tương tự cho trường hợp nhận dữ liệu, khi tiến trình phát ra lệnh nhận dữ liêu,
nó sẽ nhận dữ liệu hiện có, việc thực thi của tiến trình vẫn được tiến hành mà không quan tâm đến việc có tiến trình nào phát ra lệnh gửi dữ liệu tiếp theo hay không
5 u nhược điểm của kiến trúc lient/Server
5.1 u điểm
- iảm chi phí
Kiến trúc client/server cho phép các công ty có thể sử dụng server là những máy tính cá nhân thay vì các máy tính lớn Vì các phần mềm ngày nay được xây dựng chủ yếu chạy trên các máy tính cá nhân do đó chi phí các phần mềm tương đối
Trang 8- ốc độ nhanh
Giảm việc tắc nghẽn thông tin trong hệ thống mạng do phân chia các xử lý ra thành 2 nhánh Các xử lý nào phức tạp tác động nhiều lên cơ sở dữ liệu sẽ được lưu trữ ngay trên server, các xử lý đơn giản sẽ được thực hiện ngay trong ứng dụng trên client Chính vì thế hệ thống vận hành sẽ hiệu quả hơn
- ính tương thích cao
Việc chọn lựa các phần mềm để phát triển ứng dụng có thể hoàn toàn độc lập
từ ngôn ngữ lập trình đến hệ cơ sở dữ liệu quan hệ và các thiết bị phần cứng Ta có thể chọn các thành phần tối ưu nhất khi xây dựng một hệ thống ứng dụng
5.2 hược điểm
- Một trong những vấn đề nảy sinh trong mô hình này đó là tính an toàn và bảo mật thông tin trên mạng Do phải trao đổi dữ liệu giữa 2 máy ở 2 khu vực khác
nhau cho nên dễ dàng xảy ra hiện tượng thông tin truyền trên mạng bị lộ
- Dễ dàng lợi dụng các lỗ hổng bảo mật của server
- Vấn đề cân bằng tải trong mô hình nhiều server
- Hỏng địa chỉ URL khi server thay đổi
- Gặp vẫn đề nghẽn cổ chai khi truyền dữ liệu giữa client và server
Để giải quyết những nhược điểm của kiến trúc client/server, kiến trúc proxy ngược là một cách giải quyết khá hiệu quả
II iến trúc proxy
1 iới thiệu chung về proxy
Trong mạng máy tính, một máy chủ proxy là một máy chủ (một hệ thống máy tính hay một ứng dụng) đứng giữa server và client, tham gia vào cuộc trò chuyện giữa hai bên Một client kết nối đến máy chủ proxy, yêu cầu một số dịch vụ như một tập tin, kết nối, trang web, hoặc tài nguyên sẵn có từ một máy chủ khác Các máy chủ proxy đánh giá các yêu cầu như một cách đơn giản hóa và kiểm soát phức tạp của họ Ngày nay, hầu hết các proxy là web proxy, tạo điều kiện thuận lợi cho
việc truy cập nội dung trên World Wide Web
Máy chủ proxy ngày càng được sử dụng rộng rãi cho nhiều mục đích, bao gồm:
Giữ máy tính ẩn danh khi truy cập Internet, nghĩa là máy tính được an toàn
Tăng tốc độ truy cập tới tài nguyên trên Internet bằng việc sử dụng bộ đệm proxy
web bị cấm, lọc bởi công ty, tổ chức của bạn
Trang 9 Kiểm soát và bảo vệ quyền truy cập vào một máy chủ trên một mạng riêng
Proxy là một Internet server đứng giữa một client và tất cả các server mà client
đó muốn truy cập đến, làm nhiệm vụ chuyển tiếp thông tin và kiểm soát tạo sự an toàn cho việc truy cập Internet của các client, còn gọi là khách hàng sử dụng dịch
vụ internet Trạm cài đặt proxy gọi là proxy server Proxy hay trạm cài đặt proxy có địa chỉ IP và một cổng truy cập cố định Ví dụ: 123.234.111.222:80 Địa chỉ IP của proxy trong ví dụ là 123.234.111.222 và cổng truy cập là 80
Hình 4: Mô hình Forward proxy
Hình 3: Mô hình proxy 1
Trang 102.1 hức năng của Forward proxy
Một số hãng và công ty sử dụng proxy với mục đích: Giúp nhiều máy tính truy cập Internet thông qua một máy tính với tài khoản truy cập nhất định, máy tính này được gọi là Proxy server Chỉ duy nhất máy Proxy này cần modem và account truy cập internet, các máy client (các máy trực thuộc) 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 Những yêu cầu của người sử dụng sẽ qua trung gian proxy server thay thế cho server thật sự mà người sử dụng cần giao tiếp, tại điểm trung gian này công ty kiểm soát được mọi giao tiếp từ trong công ty ra ngoài internet và từ internet vào máy của công ty Sử dụng Proxy, công ty có thể cấm nhân viên truy cập những địa chỉ web không cho phép, cải thiện tốc độ truy cập nhờ sự lưu trữ cục bộ các trang web trong bộ nhớ của proxy server và giấu định danh địa chỉ của mạng nội bộ gây khó khăn cho việc thâm nhập từ bên ngoài vào các máy của công ty
Đối với các nhà cung cấp dịch vụ đường truyền internet: 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ỉ các 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ủa khá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 Ý nghĩa của Forward 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
Trang 11bị 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
Proxy server bảo vệ mạng nội bộ khỏi bị xác định bởi bên ngoài bằng cách
mang lại cho mạng hai định danh: một cho nội bộ, một cho bên ngoài Điều này tạo
ra một “bí danh” đối với thế giới bên ngoà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 đó
Trang 12III iến trúc reverse proxy
1 iới thiệu về everse proxy
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 được gọi là một forward proxy như chúng ta đã trình bày ở trên 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ả client mà 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ác request 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ác request 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 đã chuyển tất cả thông tin đi qua một trạm kiểm soát duy nhất (là reverse proxy), chúng ta có thể áp dụng nhiều biện pháp khác để tăng cường an ninh cho hệ thống của mình Ngoài ra áp dụng reverse proxy đúng cách sẽ giúp tăng cường chất lượng cũng như nâng cao khả năng mở rộng của các ứng dụng web chạy trên các content server
Hình 5: Mô hình reverse proxy
Reverse proxy có thể ẩn và che dấu sự tồn tại của server Khi client từ Internet muốn truy cập vào webserver của bạn, Reverse proxy server sẽ đóng vai trò là webserver Tức là client chỉ được phép giao tiếp với proxy Server mà họ sẽ nghĩ là giao tiếp với webserver thật sự Reverse proxy sẽ chuyển tiếp yêu cầu đến Webserver thật sự và đáp lại theo chiều ngược lại Như vậy Proxy server sẽ thay thế Webserver giao tiếp với client kết nối đến
Tính năng của ứng dụng tường lửa có thể bảo vệ Webserver chống lại các cuộc tấn công phổ biến trên web Không có reverse proxy xóa phần mềm độc hại thì mọi việc trở nên khó khăn hơn
Các reverse proxy phổ biến nhất thực hiện giao thức truyền siêu văn bản (HTTP), do đó trong báo cáo chỉ đề cập tới HTTP reverse proxy Tuy nhiên, các mô hình cơ bản có thể áp dụng cho bất kỳ giao thức Internet khác, ví dụ FTP
Trang 13Trong báo cáo sẽ đề cập tới hai mô hình reverse proxy Mô hình reverse proxy bảo vệ trình bày làm sao để bảo vệ server ở mức độ giao thức ứng dụng trong vành đai mạng Một reverse proxy tích hợp cho phép kết hợp các server tại một điểm chung, do đó ẩn các hệ thống và các host bên trong
2 everse proxy bảo vệ
Việc đưa một web server hay một ứng dụng server trực tiếp trên Internet cho phép những kẻ tấn công truy cập trực tiếp tới bất cứ lỗ hổng của server (ứng dụng, web server, thư viện, hệ điều hành) Tuy nhiên để cung cấp một dịch vụ hữu ích cho người sử dụng Internet ta có thể sử dụng một bức tường lửa lọc gói tin chắn web server khỏi các cuộc tấn công trên mạng Ngoài ra, một reverse proxy bảo vệ có thể bảo vệ các ứng dụng server ở mức độ của các giao thức ứng dụng
Ví dụ, chúng ta đang chạy một website sử dụng một phần mềm web server của một nhà cung cấp phần mềm lớn Trang web này sử dụng phần mềm độc quyền của nhà cung cấp đó để cài đặt các nội dung động cho người dùng, chúng ta đã đầu tư rất nhiều cho phần mềm trong trang web Máy chủ của chúng ta đã được bảo vệ bởi một bức tường lửa lọc gói tin
ình 6: Web server vớ tường lửa bảo vệ
Chúng ta phải mở bức tường lửa này để cho phép truy cập tới cổng công khai (80) của web server Các cuộc tấn công từ Internet khai thác các lỗ hổng của phần mềm web server, gánh nặng của người quản trị là phải cài đặt các bản vá thường xuyên Việc chuyển web server sang nhà cung cấp khác là không thể vì vốn đầu tư cho nền tảng web server, nội dung và các phần mềm mở rộng sở hữu là khá tốn kém Hơn nữa, với bất cứ bản vá lỗi mà chúng ta cài đặt, khi chạy có nguy cơ gây mất ổn định cấu hình dẫn đến hệ thống, phần mềm ngừng hoạt động Vậy làm thế
Trang 14nào để giải quyết vấn đề này để giữ website của chúng ta mà không ảnh hưởng tới
an ninh của nó
Bất cứ một loại dịch vụ truy cập thông qua Internet hoặc thông qua môi trường mạng đều có khả năng bị tấn công Thông thường, các giao thức truy cập được sử dụng là HTTP và HTTPS
Ngay cả khi chúng ta cài đặt tường lửa lọc gói tin đơn giản, web server vẫn có thể bị phá hoại bởi các cuộc tấn công khai thác điểm yếu trong giao thức đã cài đặt Làm sao chúng ta có thể bảo vệ cơ sở hạ tầng web server an toàn trước những lỗ hổng tiềm tàng dễ bị tấn công sử dụng giao thức của nó
Sử dụng mô hình có tường lửa để bảo vệ web server như hình 6 ta gặp phải những vấn đề sau:
cung cấp cho truy cập trên Internet
Các cuộc tấn công thường dùng những thông số yêu cầu kéo dài, hay các thông số yêu cầu được cài đặt thủ công để khai thác lỗ hổng tràn bộ đệm
Nhưng với mỗi bản vá lỗi, hệ thống có nguy cơ ngừng làm việc Đôi khi chúng ta không thể nâng cấp web server kịp thời vì sự tương thích phần cứng, phần mềm trên web server
hiểm và tốn thời gian Một web server mới có thể có ít lỗ hổng hơn nhưng chúng ta chưa quen ngay với nó được Ngoài ra nó yêu cầu phải tương thích với hệ thống của chúng ta
Để giải quyết, chúng ta thay đổi mô hình mạng để sử dụng một reverse proxy bảo vệ là một lá chắn thực sự bảo vệ web server của chúng ta Cấu hình reverse proxy này để lọc tất cả các yêu cầu, chỉ những yêu cầu vô hại sẽ được gửi tới web server Hai tường lửa lọc gói tin để ngăn không có truy cập trực tiếp từ mạng bên ngoài tới web server Trong mô hình mạng có một khu (DNZ) chỉ chứa reverse proxy và khu vực server an toàn bao gồm web server
Trang 15ình 7: Mô hình reverse proxy bảo vệ
ác thành phần
Browser
- Phát ra các yêu cầu độc hại tới backend server thông qua tường lửa
và reverse proxy
- Nhận thông điệp trả lời thông quan reverse proxy và tường lửa
- Bộ lọc lưu lượng mạng đến và cho phép truy cập tới reverse proxy qua cổng HTTP
- Có thể từ chối kết nối đi từ reverse proxy
Reverse proxy
- Chấp nhận yêu cầu từ trình duyệt và chuyển tiếp các yêu cầu hợp lệ tới backend server
- Truyền lại thông điệp trả lời từ backend server tới trình duyệt gốc
- Ngăn cách giữa khu DMZ và server
- Từ chối kết nối gửi đến, ngoại trừ kết nối từ reverse proxy
- Từ chối kết nối gửi đi từ backend server
- Cung cấp dịch vụ web thực
- Chấp nhận yêu cầu từ reverse proxy và đáp lại yêu cầu
Trang 16 guyên tắc hoạt động
Cơ chế đầu tiên cho thấy làm thế nào để một yêu cầu hợp lệ được kiểm tra và thông qua reverse proxy bảo vệ Các thành phần tường lửa bên trong và bên ngoài được giả định là minh bạch trong trường hợp này và do đó không được hiển thị Quá trình xử lý trả lời của backend server là tùy chọn, nhưng có thể được sử dụng
để thiết lập trường tiêu đề giao thức Lưu ý rằng bản truy cập chỉ được ghi sau khi trả lời đã được gửi để cải thiện sự đáp ứng của hệ thống
Trang 17Cơ chế thứ hai thể hiện cơ chế ngăn chặn của reverse proxy bảo vệ bằng cách
bỏ qua một yêu cầu không hợp lệ và độc hại Tuy nhiên, ngay cả khi trình duyệt không nhận được trả lời thì vẫn sẽ được ghi nhận Theo giao thức truyền siêu vẫn bản, reverse proxy lại phải trả lại mã lỗi (thường là “403 forbidden” hoặc “404 not found”) Nó phụ thuộc vào chính sách bảo mật của chúng ta trong trường hợp đó, để đưa ra một trả lời lỗi hoặc bỏ qua các nỗ lực và đóng kết nối tới protection reverse proxy
ài đặt
Để cài đặt reverse proxy bảo vệ cần phải thực hiện một số nhiệm vụ sau:
1 Bản thiết kế tường lửa và cấu hình mạng Ngay cả khi cập nhật tường lửa được thực hiện sau mỗi phần khác nhau, nó là tốt để bắt đầu với một bản thiết kế, do đó cấu hình các thành phần khác có thể dựa vào bản thiết kế tương lửa Thường thì việc cấu hình cụ thể cần xem xét nhiều hơn so với chỉ một giao thức và một số lỗ hổng rõ ràng trong tường lửa có thể cần thiết Tìm hiểu giao thức nào giải quyết reverse proxy được hỗ trợ Thông thường chỉ HTTP (cổng 80) là cần thiết, nhưng chúng ta muốn cho phép các giao thức khác hiệu quả thông qua reverse proxy
2 Chọn nền tảng Reverse Proxy Tạo một reverse proxy của riêng chúng ta,
ví dụ bằng cách cấu hình web server Apache với modun mod_rewrite và mod_proxy, một số nhà cung cấp các giải pháp reverse proxy chuyên nghiệp, hoặc chúng ta có thể cần cài đặt reverse proxy của riêng chúng ta,
ví dụ, bởi vì chúng ta sử dụng một giao thưc đặc biệt không hỗ trợ bằng các giải pháp khác Khi lựa chọn nhà cung cấp hay nguồn cho reverse proxy bảo vệ của chúng ta, nên lựa chọn giải pháp đơn giản và đã được kiểm chứng Ví dụ, sử dụng Apache, chúng ta có nguy cơ tất cả lỗ hổng