web-dev-qa-db-ja.com

接続の最大数Squid

私のネットワークのすべてのインターネットトラフィックを制御するSquidプロキシサーバーがあります。

ユーザーがネットワークに大きなファイル(たとえば> 50MB)をダウンロードしないようにする方法が必要です。いくつかの有名なポート(トレントなど)を禁止しましたが、HTTPポートでダウンロードできるものもあります。明らかに私はポート80を禁止することはできません!

簡単な解決策は、各IPの同時接続の最大数を制限することです(例:3接続)。この設定でSquidで可能です:

acl ACCOUNTSDEPT 192.168.5.0/24
acl limitusercon maxconn 3
http_access deny ACCOUNTSDEPT limitusercon

しかし、このソリューションはWebブラウジングに非常に悪影響を及ぼします。これは、スマートブラウザーは、複数の接続によってWebサイトのさまざまな部分を同時に取得して、Webブラウジングを高速化するためです。ただし、接続数が最大の場合、ブラウザは一部のパーツを取得できず、Webサイトが部分的に表示され、一部のパーツ/画像/フレームが表示されません。

では、永続接続の最大数を制限できますか?このポリシーは機能すると思います:10秒間有効な接続の最大数を指定しますしかしすべてのIPの同時接続数は無制限です

しかし、Squidの場合、このポリシーをどのように実装できますか?どの設定で?

更新:

artifexおよびTom Newtonは、帯域幅制限アプローチを使用して戦いますダウンローダー。

ただし、Squidの帯域幅制限には欠点があります。静的であり、動的に変更することはできません。したがって、インターネットを使用している人の数に関係なく、人の帯域幅は限られています(おそらく誰も!)

また、このソリューションは、人々がダウンロードするのを阻止するのに役立ちません。ダウンロードはできますが、速度は遅くなります。

しかし、永続的な接続(または特定の時間より長く存続している接続)を終了する方法を見つけた場合、大きなファイルをダウンロードすることはほとんど不可能になります(常に何らかの方法があります!)

4
Isaac

これはあなたが意図した方法で問題を解決しません。ただし、別の方法では、各ホストを特定の帯域幅に制限します(要求ごとではなく、ホストごと)

http://wiki.squid-cache.org/Features/DelayPools からの例

acl only128kusers src 192.168.1.0/24
delay_pools 1
delay_class 1 3
delay_access 1 allow only128kusers
delay_access 1 deny all
delay_parameters 1 64000/64000 -1/-1 16000/64000

これは、すべてのクライアントが共有する512kビットを持っているが、単一のIPは128kビットしか使用できないことを指定します。

上記のdelay_parametersの値はBYTESであり、BITSではないことに注意してください。

2
artifex

試しましたか: reply_body_max_size

ドキュメントから、それはあなたが求めていたものとまったく同じように聞こえます:

このオプションは、返信本文の最大サイズを指定します。これは、ユーザーがMP3や映画などの非常に大きなファイルをダウンロードするのを防ぐために使用できます。

エルゴ、squid.confに以下を追加してみてください:

reply_body_max_size 50 MB

0
Grizly