私のネットワークのすべてのインターネットトラフィックを制御する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の帯域幅制限には欠点があります。静的であり、動的に変更することはできません。したがって、インターネットを使用している人の数に関係なく、人の帯域幅は限られています(おそらく誰も!)
また、このソリューションは、人々がダウンロードするのを阻止するのに役立ちません。ダウンロードはできますが、速度は遅くなります。
しかし、永続的な接続(または特定の時間より長く存続している接続)を終了する方法を見つけた場合、大きなファイルをダウンロードすることはほとんど不可能になります(常に何らかの方法があります!)
これはあなたが意図した方法で問題を解決しません。ただし、別の方法では、各ホストを特定の帯域幅に制限します(要求ごとではなく、ホストごと)
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ではないことに注意してください。
試しましたか: reply_body_max_size ?
ドキュメントから、それはあなたが求めていたものとまったく同じように聞こえます:
このオプションは、返信本文の最大サイズを指定します。これは、ユーザーがMP3や映画などの非常に大きなファイルをダウンロードするのを防ぐために使用できます。
エルゴ、squid.confに以下を追加してみてください:
reply_body_max_size 50 MB