6

皆さん、IP ブラックリストが機能しないことは誰もが知っています。スパム送信者がプロキシ経由で侵入する可能性があり、正当なユーザーが影響を受ける可能性もあります... IP の実際のリストは、アプリケーションのフィードバックとユーザーの行動に基づいて動的に決定されます。

例: - 誰かがあなたのログイン画面を総当たり攻撃しようとする - よく書かれていないボットがあなたのサイトに非常に奇妙な HTTP リクエストを発行する - スクリプトキディがスキャナーを使ってアプリの脆弱性を探す

次のメカニズムが機能するかどうか疑問に思っています。もしそうなら、それを行うツールがあるかどうか知っていますか:

  • Web アプリケーションでは、開発者は「攻撃」を報告するためのフックを持っています。違反は軽微 (無効なパスワード) である可能性があり、ブラックリストに登録されるまでには数十回の違反が必要です。または、重大な場合があり、24 時間以内にそのような違反が 2 回あると、追い出されます。
  • すべてのページが読み込まれる前に何らかの形式の Web サーバー レベルのブロックが開始され、ユーザーが「不適切な」IP から来たかどうかが判断されます。
  • 組み込みの「許し」メカニズムがあります。違反は、しばらくすると IP に対してカウントされなくなります。

ありがとう!

追記: 解決策が PHP で機能した場合は素晴らしいと思いますが、言語/プラットフォームを問わず、一般的なアプローチについてのご意見をお待ちしております。

4

6 に答える 6

5

fail2banを見てください。誤った動作パターンのログ ファイルを追跡することから IP テーブル ブロックを生成できるようにする Python フレームワーク。

于 2008-09-22T03:59:15.800 に答える
2

*nix マシンを使用していますか? この種のことは、おそらくiptablesのようなものを使用して、OS レベルに任せたほうがよいでしょう。

編集:

コメントに応えて、はい(一種)。ただし、アイデアは iptables が独立して動作できるということです。特定のしきい値を調整するように設定でき (たとえば、ポート 80 の TCP で x リクエスト/分を超えるリクエストをブロックする)、すべて透過的に処理されます (つまり、アプリケーションはそれについて何も知る必要はありません。動的ブロッキングが行われます)。

ボックスを完全に制御でき、ファイアウォールでスロットリングを処理できるようにする場合は、iptables メソッドをお勧めします (利点は、このロジックを Web アプリに組み込む必要がなく、リクエストが処理されるときにリソースを節約できることです)。ウェブサーバーに到達する前にドロップされます)

そうではなく、ブロッキングが大きなコンポーネントではないことが予想される場合 (またはアプリが移植可能であり、iptables へのアクセスを保証できない場合) は、そのロジックをアプリに組み込む方が理にかなっています。

于 2008-09-22T03:56:25.853 に答える
0

この種のシステムは簡単で一般的です。私のものは簡単に提供できます。

ここで簡単かつ簡単に説明しますhttp://www.alandoherty.net/info/webservers/

書かれたスクリプトはダウンロードできません {現在コメントが追加されていないため} ですが、上記のサイトから電子メールを送ってください.

于 2009-01-28T23:57:00.953 に答える
0

ユーザー名と IP ブロックの組み合わせにする必要があると思います。IPだけではありません。

于 2008-09-22T03:56:20.893 に答える
0

カスタム ロックアウト コードを見ています。オープン ソースの世界には、そのようなコードのさまざまなフレーバーを含むアプリケーションがあります。要件は非常に些細なものですが、おそらくそれらのいくつかを確認する必要があるため、IP/ユーザー名の組み合わせをマークし、それを使用して IP を x 時間ブロックします。(ユーザーではなくIPをブロックすると言いました。ユーザーは、有効なIP /ユーザー名/パスワードの組み合わせを介してオンラインにしようとする場合があります。)

実際のところ、ユーザー ログインの痕跡を残すこともできます。不明な IP から 3 ストライクの悪いユーザー名とパスワードの組み合わせでログインすると、そのユーザー名に対して好きなだけその IP をロックアウトできます。(多くの ISP が IP を共有していることに注意してください....)

また、認証に遅延を設定して、IP が「y」秒ごとに 2 回以上ログインを試行できないようにすることもできます。

于 2008-09-22T04:02:57.053 に答える
0

私は、Web サーバーに対するヒットを追跡し、オペレーティング システム/ファイアウォール レベルで特定の攻撃に対してさまざまな期間、IP アドレスを動的に禁止するクライアント用のシステムを開発したので、はい、これは間違いなく可能です。Owen が言ったように、ファイアウォール ルールは、Web サーバーよりもこの種のことを行うのに適した場所です。(残念ながら、クライアントはこのコードの著作権を厳重に保持することを選択したため、自由に共有することはできません。)

私は通常、PHP ではなく Perl で作業しますが、ファイアウォール ルール エンジン (たとえば、/sbin/iptables など) へのコマンドライン インターフェイスがある限り、どの言語からでもこれをかなり簡単に実行できるはずです。システムコマンドを実行する機能があります。

于 2008-09-22T04:54:09.130 に答える