Proxy là gì?

3300

Bài viết được sự cho phép của BQT Kinh nghiệm lập trình

1. Proxy

Proxy là một server nằm giữa máy tính của người dùng và website họ truy cập. Một proxy thường có các tính chất:

  • Proxy thực chất là đại diện cho các máy tính phía client hoặc phía server.
  • Nó thực hiện công việc chuyển tiếp các yêu cầu web, bảo mật dữ liệu và tăng hiệu suất mạng.
Proxy là gì?

2. Phân loại Proxy chính

Có hai loại Proxy chính đó là:

  • Forward proxy
  • Reverse proxy
  3 bài học xương máu mà mỗi Product Manager đều phải trải qua.
  4 mẹo deal lương như ý với vị trí Product Manager

2.1 Forward proxy

Forward Proxy đại diện cho các máy clients. Nó đại diện cho clients gửi request tới các webserver, sau đó nó nhận dữ liệu mà các target site trả về và chuyển tới clients nếu hợp lệ.

Proxy là gì?

Chúng ta xem xét ví dụ sau:

  • Chúng ta có 3 máy tính: X, Y, Z.
    • X: là clients
    • Y: proxy server
    • Z: target site
  • Bình thường, sẽ có kết nối trực tiếp từ X –> Z. Trong thực tế, tốt hơn nên để kết nối có dạng Y –> Z, ở đây Y đại diện cho X. Kết nối đầy đủ sẽ là X –> Y –> Z. Trong trường hợp này, Z có thể biết hoặc không biết X là ai tùy vào loại proxy của Y.
  • Forward Proxy chia thành 2 loại
    • Anonymous proxy: sẽ che giấu thông tin của các requester bằng cách ẩn IP trước khi gửi request tới target server. Tuy nhiên, địa chỉ IP của các proxy này thường có trong backlist công khai vì vậy khi dùng anonymous proxy bạn sẽ bị giới hạn một số chức năng (bản chất là bị một số target site nó block).
    • High Anonymity Proxy (Elite Proxy): nó có chức năng của anonymous proxy nhưng ẩn danh còn tốt hơn cả anonymous proxy. Bản thân anonymous proxy bị ảnh hưởng nhiều bởi blacklist, còn high anonymous proxy thậm chí không xuất hiện trong blacklist này. Nó có cơ chế che giấu thông tin định danh của chính mình, nghĩa là nó không cho ai biết mình là một proxy.
    • Transparent proxy: public thông tin của các requester với target site trong khi truy cập tới chúng.
    • Distorting Proxy: là loại proxy sẽ thay đổi IP gốc của các requester khi đẩy request tới target server.
  • Tại sao chúng ta phải dùng Forward Proxy
    • Admin của X không muốn X truy cập tới những trang web gây hại cho tổ chức của họ.
      • Các công ty sẽ muốn chặn trang familypostcards2008.com vì ở đó có virus
      • Ví dụ khác, một số công ty sẽ chặn facebook.com để nhân viên yên tâm công tác =))
      • Trường cấp 1 thì chặn playboy.com :”>
      • Chính phủ thì chặn các trang mạng chứa thông tin không hay về họ
    • Admin của Z muốn block X
      • Admin của Z nhận ra X có giấu hiệu hacking, vì vậy anh ta đã block địa chỉ IP của X.
      • Z là một forum website, X là một spammer thì Z cũng block X.

2.2 Reverse proxy

Proxy là gì?

Chúng ta xem xét ví dụ sau:

  • Chúng ta có 3 máy tính: X, Y, Z.
    • X: là clients
    • Y: proxy server
    • Z: target site
  • Bình thường, kết nối sẽ là X –> Z. Trong thực tế, admin của Z không cho phép những truy cập trực tiếp tới Z mà phải thông qua Y trước. Trong góc nhìn của X, kết nối sẽ là X –> Y nhưng thực tế là X –> Y –> Z bởi vì X không thể nhìn thấy Z. Y ở đây đóng vai trò che giấu thông tin của các target server.
  • Tại sao chúng ta phải dùng Reverse Proxy?
    • Z muốn tất cả request tới mình phải thông qua Y trước
      • Z muốn dùng Y để cân bằng tải, đưa request tới target server đang rảnh hơn những cái khác.
      • Z muốn tối ưu thời gian phản hồi của mình thông qua Y, Y sẽ chuyển request tới CDN gần với X nhất.
      • Tạo cơ chế cache để giảm thời gian phản hồi các request.
    • Thực hiện những authentication tasks. Z lo lắng về những dữ liệu mình đang chứa và không cho phép các truy cập trực tiếp. Thông qua Y, Z có thể block những request gây hại cho mình và cho phép những request hợp lệ đi qua.

Proxy và một vài so sánh

Ở một góc độ nào đó, proxy và firewall khá tương đồng. Chúng ta cùng tìm hiểu một chút về firewall nhé.

  • Khái niệm Firewall
    • Tường lửa là một thiết bị phần cứng hoặc phần mềm hoạt động trong một môi trường máy tính nối mạng để ngăn chặn một số liên lạc bị cấm bởi chính sách an ninh của cá nhân hay tổ chức.
    • Nó nằm ở giữa hai vùng có độ tin cậy khác nhau.
  • Chức năng của Firewall & các loại Firewall
    • Nó cung cấp kết nối nhưng là kết nối có kiểm soát giữa hai vùng có độ tin cậy khác nhau.
      • Các vùng tin cậy (zone of trust) điển hình bao gồm: mạng Internet (vùng không đáng tin cậy) và mạng nội bộ (một vùng có độ tin cậy cao).
    • Các loại Firewall
      • Tường lửa bảo vệ: bảo vệ an ninh cho máy tính cá nhân hay mạng cục bộ, tránh sự xâm nhập, tấn công từ bên ngoài.
      • Tường lửa ngăn chặn: có nhiệm vụ ngăn chặn không cho máy tính truy cập một số trang web hay máy chủ nhất định, thường dùng với mục đích kiểm duyệt Internet (thường do các nhà cung cấp dịch vụ Internet thiết lập).

Trên đây là bài viết tổng quan của mình về Proxy và các loại Proxy trong thực tế làm việc. Các bài viết sau mình sẽ đi sâu hơn về chiếc server này cụ thể là HAProxy. Mong các bạn sẽ tiếp tục đón đọc!