iT邦幫忙

0

請位各位大大....
squid 可以限制上什麼網站...
但可以限制上傳檔案嗎? 不是限制下載檔案喔...

限制上傳是什麼檔案屬性,
可能沒辦法去判斷,
可參閱:
http://archives.devshed.com/forums/bsd-93/squid-mime-type-blocking-1433527.html
裡面可以設罝像:
acl allowed_mime req_mime_type -i ^application/mspowerpoint$
acl allowed_mime req_mime_type -i ^application/octet-stream$
...
http_access deny !allowed_mime
...

這樣的語法,是用來限定只能下載怎樣的檔案格式,
但要把檔案上傳,
好像 squid 沒辦法或沒有語法,
知道上傳的是什麼的MIME type?
這裡是我搞不清楚的地方,
如果是可供上傳的 Server 端,
是要把檔案上傳後,才有辦法判斷該檔是什麼格式。

但 squid 可以在下載時,判斷是什麼格式,
而決定給不給下載,
那是因為 webserver 會在 header 宣告送出的檔案是什麼格式。

然而,上傳檔案,並不會有宣告檔案格式的動作,
所以 squid 應該是沒那本事,
在還沒讀完檔案前,就知道該檔是什麼格式。

另外,限定上傳 exe 檔,也不大實際,
因為可改檔名,或者改以 uuencode 或其他編碼格式,
以文字檔上傳,就還是擋不了。

所以就 squid 上傳的限制而言,
只可以設:
准或不准上傳、
上傳檔案的大小。

不然就可能必須靠 網路硬體設備,
才有可能去擋上傳的執行檔。

2 個回答

22
逮丸逮丸
iT邦大師 1 級 ‧ 2009-07-01 07:38:43
最佳解答

Google 可找到:
http://www.squid-cache.org/mail-archive/squid-users/200508/0503.html
及其接續的相關討論,以下的相關設定有助您的問題解決:

<pre class="c" name="code">
acl my_net src 10.0.0.1/255.255.255.0
acl USERA src 10.0.0.1/255.255.255.255
# acl UPLIMIT req_header Content-Length [5-9][0-9]{5,}
acl UPLIMIT req_header Content-Length [5-9][0-9]{5} [0-9]{7,}
#可擋 500KB.
acl UPLIMIT req_header Content-Length [0-9]{8,}
#可擋 >= 10000000 (10MB) 
acl UPMETH method post
http_access deny USERA UPMETH UPLIMIT
http_access allow my_net
http_access deny_all 

嗯..大大...我是想限制上傳 副檔名為 exe 或 rar 的副檔名
而不是要限制檔案大於多少的檔案...謝謝

可能沒辦法,詳見討論裡的說明。

10
sang
iT邦新手 5 級 ‧ 2009-07-03 19:54:42

提供一个不错的网址哦.

http://linux.vbird.org/
:squid 的 process owner 與 cache directory owner
:最簡易的 squid 設定方法
:記憶體與磁碟快取留存百分比設定
:acl 的用法與用途
:上層 Proxy 的選擇與負載分流的設定方法
:與時間相關的設定值 ( connect_timeout, request_timeout )
:總是系統自己來捉資料(always_direct)
:限制使用 proxy 使用者與 proxy 目標的方式 (acl and http_access )

我要發表回答

立即登入回答