我已經使用 Kerberos 驗證進行了魷魚設定。我還使用 squidguard 作為 URL 重定向器來阻止網路上常見的骯髒行為。有些網站我們允許某些用戶訪問,而有些則不允許。假設我沒有使用任何串流媒體,這一切都運作良好。
從我可以從魷魚日誌和wireshark追蹤中確定的情況來看,當發送初始串流請求時,一切都很好,經過身份驗證的使用者名稱與請求一起發送到squidguard。問題是,在後續流量中,使用者名稱不會發送到squidguard,導致它根據預設策略被封鎖。
我嘗試過使用魷魚內建的允許/拒絕功能,但它相對笨重,到目前為止,魷魚衛士非常簡單和快速。
問題來了:
- 如何讓 Squid 在所有請求中傳遞使用者名稱? (有件事告訴我這不是最好的方法)
- 即使未傳遞用戶名,如何讓squidguard 查看流量已通過特定用戶的身份驗證?
- 有其他方法可以實現此目的嗎?
一些可能很重要的細節:
- 我正在使用儲存在文字檔案中的使用者列表,供squidguard 進行比較。
- 我正在對 Squid 使用完整的 kerberos 身份驗證。
- CentOS 6.0
- 魷魚3.1.4
- 烏賊衛士1.3
編輯
為了澄清起見,我添加了以下魷魚片段來演示發生的情況:
wsXX.domain.local 534 5.99 34M 3.04 1 69.93
*.outsidedomain.com 204 14.22 5M 20.66 0 92.14
<error> 137 0.00 0M 0.00 0 589.16
[email protected]@wsXX.domain.local 115 0.00 1M 0.00 70 0.16
*.outsidedomain.com 84 0.00 1M 0.00 73 0.17
<error> 24 0.00 0M 0.00 21 0.00
* 編輯 *
當我進一步深入研究時,發現它尤其沒有針對 HTTP 請求的回覆進行身份驗證。事實上,如果我加入聲明
http_reply_access deny !auth
它不會允許任何 https 流量,但會允許大多數 http 流量。我完全被難住了,它實際上看起來像是讓未經身份驗證的流量通過(今天將進行測試)[已測試,它將允許未經身份驗證的http 流量,但熱https],儘管我的魷魚.conf 中有以下幾行:
http_access deny !auth
http_access allow auth
http_access deny all
* 編輯 * 我已經修復了未經身份驗證的 http,並且 httpsm 一切似乎都運作良好,除了串流媒體網站仍然:(
為了它的價值,我必須更改配置中的以下行
http_access deny !Safe_ports
到
http_access deny !Safe_ports !auth
答案1
所以,我想通了。事實證明,我的 squid.conf 中還有一些其他 ACL 允許未經身份驗證的流量通過代理。由於這些規則在拒絕未經身份驗證的流量的規則之前受到影響,因此流量是透過未經身份驗證的方式發送的。
我希望這對於任何嘗試做類似事情的人來說都是一個很好的資源。