合理合規設置境外正向代理服務


 

1.1 方案目標

  •  目標1 :能夠穩定訪問境外網站

          由於國家互聯網安全管理原因,通過國內運營商的網絡訪問國外網站並不是很穩定。真正解決該問題的辦法是,在境外部署跳板機,然后專線鏈接到企業內網,企業內網通過跳板機代理訪問境外網站。這樣就可以避免境內互聯網訪問境外網站不穩定的情況。

           方案需求境外服務器、國際專線、國內到集團內網專線。

  • 目標2:  能夠專線專訪,合規使用國際線路
     我國目前對於境外互聯網訪問有嚴格的限制要求,當通過國際專線訪問境外網站時,要按照國家法律法規嚴格限制境外網站訪問,只要訪問合規業務需求網站即可。
     方案需求:境外網站白名單策略。

  • 目標3 :盡量控制可進入准則  (可選)   

           從安全角度出發,控制能夠接入專線的IP,避免擴大風險范圍。

1.2 方案技術選型

1.2.1 代理模式選擇

         通過方案的目標設定我們可以知道,代理是必然的技術選擇,但是需要選擇怎樣的代理模式、怎樣的代理軟件,確是需要進行合理的評估設計。常見的網站代理模式有正向代理和方向代理。

  •  正向代理:
     正向代理(forward)是一個位於客戶端【用戶A】和原始服務器(origin server)【服務器B】之間的服務器【代理服務器Z】,為了從原始服務器取得內容,用戶A向代理服務器Z發送一個請求並指定目標(服務器B),然后代理服務器Z向服務器B轉交請求並將獲得的內容返回給客戶端。客戶端必須要進行一些特別的設置才能使用正向代理。如圖:

 

 

  • 方向代理:

    反向代理正好與正向代理相反,對於客戶端而言代理服務器就像是原始服務器,並且客戶端不需要進行任何特別的設置。客戶端向反向代理的命名空間(name-space)中的內容發送普通請求,接着反向代理將判斷向何處(原始服務器)轉交請求,並將獲得的內容返回給客戶端。 使用反向代理服務器的作用如下:

  • 代理模式選擇
    按照當前的業務使用場景來看,選擇正向代理模式才能夠合理解決問題。如果選擇反向代理模式,在不知道服務器資源的情況,進行反向代理,可能出現很多意想不到的問題,甚至服務器干脆就直接采用了防反代理限制。

1.2.2 代理軟件選擇

常見的正向代理服務器軟件有Apache Traffic Server、Tinyproxy、Squid Cache、Nginx。

  • Apache

    Apache Traffic Server(簡稱Apache TS)是一個高性能的、模塊化的HTTP代理和緩存服務器,同時支持HTTP/HTTPS的正向代理與反向代理,具有如下特點:

    緩存:改進響應時間的同時降低了服務器負載與對帶寬的需求,這是通過緩存並且重用經常請求的網頁、圖片和Web Service調用實現的。

    速度:在現代的SMP硬件上具有很好的可伸縮性,每秒鍾可以處理數以萬計的請求。可擴展性:API考慮到了自定義插件,可以修改頭與內容,還可以實現新的協議處理器。

    可靠性:能夠完美處理TB級別的數據,包括正向與反向代理。

    Apache Traffic Server v.3.0.0基准測試的結果是每秒鍾可以處理200,000多個請求,相對於v2.0來說提升了277%。它可以用在各種大規模的產品部署環境中,Yahoo!使用Apache Traffic Server處理400TB的數據量,同時每天還使用它處理多達300億的數據對象,包括Yahoo!主頁、體育、郵件及財經站點。

  • Squid
           Squid Cache(簡稱Squid)是一個高性能的代理緩存服務器,可以加快內部網瀏覽 Internet的速度,提高客戶機的訪問命中率。Squid不僅支持HTTP協議,還支持FTP、gopher、SSL和WAIS等協議。和一般的代理 緩存軟件不同,Squid用一個單獨的、非模塊化的、I/O驅動的進程來處理所有的客戶端請求。
           Squid將數據元緩存在內存中,同時也緩存DNS查尋的結果,除此之外,它還支持非模塊化的DNS查詢,對失敗的請求進行消極緩存。Squid支持SSL,支持訪問控制。由於使用了ICP,Squid能夠實現重疊的代理陣列,從而最大限度的節約帶寬。
           Squid由一個主要的服務程序Squid,一個DNS查詢程序 dnsserver,幾個重寫請求和執行認證的程序,以及幾個管理工具組成。當Squid啟動以后,它可以派生出指定數目的dnsserver進程,而每 一個dnsserver進程都可以執行單獨的DNS查詢,這樣一來就大大減少了服務器等待DNS查詢的時間。
           Squid的另一個優越性在於它使用訪問控制清單(ACL)和訪問權限清單(ARL)。訪問控制清單和訪問權限清單通過阻止特定的網絡連接來減少潛在的Internet非法連接,可以使用這些清單來確保內部網的主機無法訪問有威脅的或不適宜的站點。
  • Tinyproxy
    Tinyproxy是一個輕量級的開源web代理守護進程,其設計目標是快而小。它適用於需要完整HTTP代理特性,但系統資源又不足以運行大型代理的場景,比如嵌入式部署。
    Tinyproxy對小規模網絡非常有用,這樣的場合下大型代理會使系統資源緊張,或有安全風險。Tinyproxy的一個關鍵特性是其緩沖連接的理念。從效果上看,Tinyproxy 對服務器的響應進行了高速緩沖,然后按照客戶端能夠處理的最高速度進行響應。該特性極大的降低了網絡延滯帶來的問題。
  • Nginx

    Nginx是一款輕量級的Web 服務器/反向代理服務器及電子郵件(IMAP/POP3)代理服務器,在BSD-like 協議下發行。其特點是占有內存少,並發能力強,事實上nginx的並發能力確實在同類型的網頁服務器中表現較好,中國大陸使用nginx網站用戶有:百度、京東、新浪、網易、騰訊、淘寶等。但是nginx的正向代理,只能代理http、tcp等,不能代理https請求,正向代理功能比較雞肋。

  • 代理軟件選擇

    基於我們的方案目標及業務使用場景,Squid是最佳方案選擇,可以滿足正向代理、也可以提供白名單策略。

1.3  部署架構

1.4  關鍵技術實施說明

  • 部署環境
    操作系統版本:CentOS Linux release 7.2.1511 (Core) 
    代理軟件版本:Squid Cache: Version 3.5.20
  • 第一步安裝啟動Squid:
     yum install squid -y
     systemctl  start  squid


  • 第二步查看軟件關鍵配置文件路徑:


  • 第三步配置squid.conf文件:

       vim  /etc/squid/squid.conf


 #配置airbus 網站可訪問

acl permitted_airbus url_regex  -i airbus

http_access allow permitted_airbus

  #配置Boeing 網站可訪問

acl permitted_boeing url_regex  -i boeing

http_access allow permitted_boeing

   #配置aviationid網站可訪問 boeing登陸 使用

acl permitted_aviationid  url_regex  -i aviationid

http_access allow permitted_aviationid

 #配置可以訪問proxy的客戶端

acl guests src “/etc/squid/guest”

其中,文件“/etc/squid/guest”中的內容為:

172.168.10.3/24

210.113.24.8/16
10.0.1.24/25 

http_access allow guests

        # And finally deny all other access to this proxy

         http_access deny  all

 

  • 第四步配置squid.conf文件:
    systemctl  restart  squid

第五步客戶流程器配置:
 在客戶端的瀏覽器配置代理 : 服務IP  + 端口 3128
以火狐瀏覽器為例子: 
1、 左上角選擇首選項

2、 選擇網絡配置

3、 配置網絡代理:  填寫代理服務器IP,端口為3128,

  • 勾選 為所有協議使用相同代理服務器。
    • 第六步,檢查訪問。
      訪問boeing網站,可以訪問。
      訪問百度,代理服務器禁止。

 

作者:老格,擅長產品規划和設計,擅長解決方案,擅長PPT制作,是一個懂技術的產品PM,會設計的售前咨詢。

http://www.woshipm.com/pd/1915187.html

http://www.woshipm.com/evaluating/1759977.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM