web-dev-qa-db-ja.com

IPアドレスに基づいて特定のページを提供することは可能ですか?

私は2つのWordPress私が所有するサイトへのブルートフォース攻撃の標的になっています。攻撃者は古くからあるXML-RPCの物を使ってブルートフォースパスワード攻撃を増幅しています。幸いにも非常によく生成されたパスワードなので、私は彼がこれまでどこにもたどりつくことはないと思います。

私はiptablesを使用して、彼が再びポップアップするときはいつでも(常に同じ仮想クラウドプロバイダーから)彼のリクエストをブロックしましたが、彼のIPアドレスがリクエストするたびにany pageになるようにサーバーを変更します、彼は命を得るために彼に言う応答を受け取ります。ほとんどのリクエストはPOSTなので、理想的には、応答ヘッダーを変更して、「次回は頑張ってください!」のようなものを含めるようにします。または同等に満足できる何か。

これは可能ですか?私はApacheの専門家とはほど遠いので、これを実装するのがどれほど難しいかはわかりません。しかし、それが私に何時間もかかっても、満足は貴重です。

参考までに、私は、Apache 2.4.18ホスティングでUbuntu 16.04.2 LTSを実行していますWordpress 4.7.3。

8
Aurelius

fail2ban を適切な刑務所にインストールするだけで完了です。見られない可能性が最も高いので、カスタム応答を与えることに迷惑を掛けないでください。

25
EEAA

考えられる攻撃を元に戻す可能性があります。 iptablesを使用して、クラウドプロバイダー(アドレス範囲)を別のポートにリダイレクトします。プレーンヘッダーでも、攻撃者に応答を提供します。

Apacheでは、例によってヘッダーを変更できます。

Header set GetOut "Better luck next time!"
5
BlackWebWolf

これは、Apache用のサードパーティのWAFモジュールであるModSecurityを使用すると非常に簡単です。ただし、ルール言語の構文を学習する必要があります。

また、ModSecurityを使用して、まったく応答せずに接続をドロップすることもできます。

他の人が示唆しているように、このためだけにModSecurityをインストールすると、応答が無視される可能性が高いため、やりすぎかもしれません。

3
Barry Pollard

Fail2banを使用して、既知の不正使用の場所からのリクエストをドロップします。また、攻撃者のサービスプロバイダーに責任がないと思われる場合は、攻撃を悪用メールアドレスに報告してください。

攻撃者の速度を低下させるものを作ることに時間を費やしたい場合は、 ターピット を作成することをお勧めします。最初に、もちろん攻撃がどこから来ているのかを知る必要があります。次に、Apacheを使用して、リクエストをip(範囲?)から特定のスクリプトにリダイレクトできます。 これ 自分で試したことはありませんが、トリックを行う可能性があります。次に、たとえば、15秒ごとにドット(または/ dev/nullの何か)を出力するスクリプトを実装して、攻撃者の接続を無期限に開いたままにします。

攻撃者はスクリプトを使用してサイトを攻撃している可能性が高いため、攻撃が停止していることに気付くまでに時間がかかることがあります。接続はすべてアクティブに見えるため、タイムアウトは発生せず、リクエストはその場で拒否されません。

問題は、時間とリソースを、より重要な懸念事項としてはおそらく役に立たないもの、つまりログインの保護に費やすことです。どこを攻撃すればいいかわからないときは、攻撃するのは難しいです。以下のいくつかを検討してください。

  • ログインページへのアクセスを制限します(イントラネット、IP範囲、VPN、その他?)。
  • reCaptcha またはその他の確認用の質問をログインに追加します。
  • 多要素認証 を使用します。
  • ログインページを非表示にします。可能であれば、メインページからリンクしないでください。また、/ loginやその他のわかりやすい場所を使用しないでください。
2
user391905