カスタムHTTPサーバーがあります。
ブラウザでF5を押したままにすると、サーバーはリクエストで非難されます。
これら(またはその他の)無効な接続を検出して制限するにはどうすればよいですか?
着信IPごとに、各リクエスト間の時間の長さ、およびリクエストが有効かどうかを記録する必要があるようです。特定の期間内に特定の数の無効な要求が受信された場合、そのIPからのすべての接続を特定の期間だけ切断(または禁止)します。
このテーマに関する記事、ポインタ、ヒントはありますか?
以下のいずれかで利用できるようになったQoS設定をいくつか試してください。
多くのタイプの(D)DoS攻撃が発生する可能性があります。説明した状況は1つのソースからのみ発生するため制限されますが、分散攻撃ではそれを掛け合わせて、クライアントごとの制限を回避できます。別の攻撃では、状態情報をすばやく入力することにより、メモリオーバーフローを試みる可能性があります。 Slowloris など、より多くの攻撃が存在するため、全体的に防御するのが理にかなっています。
LinuxでL7ファイアウォール(パケットの正規表現)を使用し、Last-Modified&Etagを尊重する頻度と、他の「良好な動作」(要求時間の短縮、MTUの増加、永続的な接続など)をクライアントに評価します。常にCaptchaをスローするか、バックオフタイマー(1秒の遅延、2秒の遅延、4秒の遅延など)を使用して、単一の接続で人為的に応答を遅延させることができます。ここでのコツは、接続(IPアドレス、リファラー、ユーザーエージェント、またはそれらの組み合わせではない)によって制限することでした。
将来のプロジェクトでは、侵入検知システムを使用してレート制限を構成します。
HTML 5の キャッシュマニフェスト は、F5の更新中にサーバーの負荷を効果的に無効にし、Google Gearsは常に存在します。
これをStackoverflowに投稿しようとしたようです。
https://stackoverflow.com/questions/3673188/http-server-invalid-request-connection-throttling
これをServerfaultに投稿すると、2、3の応答が得られる場合がありますが、サービス拒否タイプの攻撃に関連するスレッドがすでに多数あります。これらのスレッドを調べてみて、DDOSとDOSまたはサービス拒否を検索してください。
DoS攻撃は、ルーターハードウェア(Ciscoなど)で最適に処理されます。