Squid反向代理SSL加密的SharePoint站點

References:

http://apps.hi.baidu.com/share/detail/20306022

http://www.ajaxstu.com/Proxyfuwuqi/333031.html

http://www.php-oa.com/tag/squid

. 環境介紹

系統:CentOS 5.7 64bit

Squid2.6STABLE21

反代目標:https://www.avepoint.net

. 安裝Squid

Squid 官方下載地址:

http://www.squid-cache.org/Versions/

作爲老牌的Proxy軟件,Squid的支持度非常好,除了源碼包和詳盡的文檔外,主流發行版均有二進制包直接提供。

此次實驗的由於目的十分單純,爲了簡化流程,採用直接yum安裝:

yum install squid -y


. 修改配置

1. yum 安裝的 squid 默認是沒有 visible_hostname 的,首先添加 visible_hostname:

vi squid.conf

這裏我添加了 ave_squid 作爲 squid 的主機名:

visible_hostname ave_squid

2. 添加acl允許squid訪問欲代理站點

acl ssl_server dstdomain .avepoint.net

# *.avepoint.net 允許訪問

http_access allow ssl_server

!注意:不建議直接放開 http_access allow all,雖然看似省事,但可能會造成安全隱患!


3. 增加squid監聽443端口並加載自簽證書

https_port 443 cert=/etc/squid/ssl/avepoint.net.crt key=/etc/squid/ssl/avepoint.net.key defaultsite=www.avepoint.net accel


4. 預防老版本IESSL bug

ssl_unclean_shutdown on


5. 添加源網站

cache_peer www.avepoint.net parent 443 0 no-query no-digest originserver login=PASS ssl sslflags=DONT_VERIFY_PEER front-end-https=on

a) login=PASS 是爲了告知 squid 此源網站需要用戶名/密碼驗證,用於解決SP等網站的登錄認證;

b) ssl 爲指定協議,後跟的 sslflags=DONT_VERIFY_PEER 爲不進行源端SSL證書驗證,可以解決上級網站採用自簽證書造成的中斷,以及減少響應時間;

c) front-end-https=on 是爲微軟OWA使用SSL反代理而量身訂做的參數。


6. 關於 cache_mem cache_dir

如字面所述,cache_mem 是將部分緩存(通常是指定容量以下的小文件)放在內存中,cache_dir是指定硬盤上的squid緩存目錄。此處我們不涉及緩存內容,所以保持默認即可。

值得一提的是,硬盤緩存可以使用 tmpfs 文件系統,即所謂的 shm,實質上大致與 ramdisk 等同,可以提高性能。

至此配置基本完成,可以啓動squid測試了:

1.png

. 備註

1. 如果 squid 反代的併發較高時,可能會遇到類似 file descriptor error 的錯誤,多是因爲Linux默認的同時打開文件數僅爲1024,而此時打開的緩存文件大小早已超過這個數值。

解決方式:

ulimit -n 65535

2. squidclient squid 自帶的一個功能十分強大的管理軟件,可以獨立或搭配其他軟件對 squid 的狀態和緩存內容進行查看和操作。例:

squidclient -t 1 -h localhost -p 3128 mgr:info

注意,3128 端口需要在 squid 中定義爲 http_port

3. 日誌位置

/var/log/squid :

access.log 代理訪問日誌

cache.log squid 緩存的相關運行信息

squid.out squid 程序本身的運行信息

store.log 對緩存文件的操作記錄

4. 自簽證書的生成可參照Nginx的筆記,在此不再贅述。

. 小結

作爲老牌的 ProxySquid 參數十分繁雜,但與之對應的是極大豐富的功能。

如果需求簡單明確如本實驗所述的話,不需要過多的配置就可以實現所需功能。

讓我留下深刻印象的是,Squid 提供了強大的對 header 進行操作的方式,可以細緻地控制 header 輸出與否,以及對 header 進行更改等等,實用性很強。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章