nghiên cứu giải pháp mở rộng của kiến trúc client-server kiến trúc proxy ngược

35 803 0
nghiên cứu giải pháp mở rộng của kiến trúc client-server kiến trúc proxy ngược

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

  BÁO CÁO  ĐỀ TÀI: -server:   TS. Hà Quốc Trung  Nguyễn Khánh Hưng 20081279 TTM-K53  5/2012 2 L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 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 3 LI GII THIU Thế kỷ 21 được mệnh danh là thế kỷ của công nghệ thông tin, với sự bùng nổ mạnh mẽ về khoa học công nghệ. Đây là kỷ nguyên của nền văn minh dựa trên cơ sở công nghiệp trí tuệ. Ngày nay, tin học đã trở thành một môn khoa học quan trọng trên thế giới. Sự phát triển mạnh mẽ như vậy thì vấn đề quản lý nguồn tài nguyên “công nghệ” đặt ra cho người sử dụng là một vấn đề cấp thiết hiện nay. Một trong số đó là vấn đề đảm bảo an toàn cho hệ thống server cũng như những giải pháp giúp hình client/server làm việc hiệu quả hơn, an toàn hơn. Kiến trúc reverse proxy được đề 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 “-serv  để 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. 4 I. -server 1.  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à hình client/server. Trong 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. 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. 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. t lý Yếu tố cơ bản trong 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.  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. Máy khách(Client) Các máy trạm truy xuất các tài nguyên đã được chia sẻ trên mạng như các dữ liệu dùng chung trên máy chủ và in ấn các tài liệu trên máy in dùng chung. Dây cá Hệ thống dây kim loại hoặc quang học nối kết vậy lý các máy tính, máy in lại với nhau.  5 Cá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. 3. Server 3.1. Client/Server hai tầng  Kiến trúc client/server đơn giản nhất là kiến trúc hai tầng. Trong thực tế hầu hết các kiến trúc client/server là kiến trúc hai tầng. Một ứng dụng hai tầng cung cấp nhiều trạm làm việc với một tầng trình diễn thống nhất, tầng này truyền tiin với tầ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. 6 3.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.  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. 3.3. Kiến trúc n tầng 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: 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). 7 4.  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 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. 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.  5.1.  -  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 rẻ. 8 -  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. -  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.  - Một trong những vấn đề nảy sinh trong 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 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.  1.  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.  Để chặn các trạng web không mong muốn hay để truy cập vào các trạng web bị cấm, lọc bởi công ty, tổ chức của bạn. 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  Giúp cân bằng tải, giải mã, chứng thực hoặc bộ nhớ đệm. Các loại proxy:  Forward proxy: đứng giữa một client và tất cả các server mà client truy cập đến.  Reverse proxy (proxy ngược): đứng giữa một server và tất cả client mà server phục vụ. 2. Forward proxy 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: hình Forward proxy Hình 3: hình proxy 1 10 2.1.  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.  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 [...]... 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: 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,... 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 của web server Apache có mặt trong reverse proxy bảo vệ của chúng ta 17 Mặt khác,... 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... lưu thay đổi iểm tra hoạt động của reverse proxy Mở trình duyệt web để yêu cầu tới địa chỉ: http://hungnk.com/webserver1/default.aspx hay http://hungnk.com/webserver2/default.aspx 33 V Ế LUẬ Qua việc nghiên cứu đề tài giúp tôi có cài nhìn toàn diện hơn về kiến trúc reverse proxy Việc triển khai hình reverse proxy giúp đảm bảo an toàn cho server, giúp che dấu sự tồn tại của server trên Internet, giúp... nhập trực tiếp máy tính nào đó 11 III iến trúc reverse proxy 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 1 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... phép công ty trong ví dụ của chúng ta tiếp tục cung cấp host name gốc của họ, ngay cả sau khi họ đã chuyển sang kến trúc reverse proxy Sự kết hợp của các tiền tố và các máy chủ ảo cho phép nhà cung cấp dịch vụ để lưu trữ các chức năng tương tự cho một số client mà không cần phải lặp lại tất cả các cơ sở hạ tầng và dễ dàng mở rộng kến trúc hạ tầng nếu cần thiết Công ty này có thể sử dụng hệ thống này để... địa chỉ chung của reverse proxy Đường dẫn ánh xạ URL bên dưới, địa chỉ máy chủ lưu trữ chung cho các chức năng của backend server, vì vậy bất cứ thay đổi các chức năng trên máy chủ lưu trữ backend, có thể dễ dàng được thay đổi ở reverse proxy Cung cấp tùy chọn có reverse proxy tích hợp với giấy chứng nhận SSL cho tên miền trang web của chúng ta  ài đặt Thực hiện cài đặt một reverse proxy tích hợp... vì reverse proxy bảo vệ với khả năng lọc các yêu cầu của nó có thể ngăn cản việc lợi dụng lỗ hổng của web server  Quản trị viên dễ dàng vá lỗi Chỉ một máy tính kết nối trực tiếp tới Internet và cần giám sát các lỗ hổng tiềm tàng và các bản vá lỗi đã cài đặt Tuy nhiên, chúng ta không thể mù quáng tin tưởng và reverse proxy bảo vệ của chúng ta Backend server vẫn cần được cấu hình với bộ não của chú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... này hay chính reverse proxy có thể hiển thị một trang chuyển hướng cho người dùng bào gồm một menu cấu hình dịch vụ backend Điều này có thể thay đổi tự động với thay đổi cấu hình của reverse proxy Một thay thế cho các tiền tố đường dẫn ánh xạ là để sử dụng máy ảo cho các reverse proxy, nơi mà tên của 1 host vẫn chỉ định một dịch vụ backend Điều này cho phép công ty trong ví dụ của chúng ta tiếp tục . 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. đ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. 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.  1.  Trong mạng máy tính, một máy chủ proxy là

Ngày đăng: 26/05/2014, 18:07

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan