私はWPインストールを持っていますが、これはここ数日でブルートフォースログインの試みによって妨害されています。
このサイトには、ログイン試行回数制限プラグインがインストールされています。そして、私がロックアウトについての頻繁な通知を受け始めたとき、私はwp-login.php
を介してすべてのIPをブロックするために、1つの場所からwp-admin
ファイルと.htaccess
にのみアクセスするので決定しました。私は例外リストから自分のIPアドレスを削除することによって.htaccess
ブロックをテストしました、そしてそれは確かにwp-login.phpへのアクセスをブロックします。したがって、それはその側面から機能するように見えます。
ただし、IPがブロックされている場合でも、[ログイン試行の制限]はIPからの(頻繁な)ロックアウトを報告し続けます。 .htaccess
ブロックが配置されていると、最初はwp-login.php
スクリプトに到達することは不可能であるべきであるように思われるので、私はこれが奇妙だと思いました。ログイン試行がプラグインによって処理される限りはもちろん。
それで私は別の実験を試みました:すでにWPにログインしている間、私はwp-login.php
の名前をwp-login.xyz
に変えて、スクリプトが完全に実行されるのを無効にしました。ログインスクリプトが完全に無効になっていても、ログインが試行されIPがロックアウトされていることに気付きました。
それから私はおそらく誰かが認証クッキーを持っていると思いました。だから私は塩を変えました。それでも試みは来ます。
認証APIの助けとしてコーデックスを調べましたが、そこにある情報源の大部分は不完全であり、どのような場合でもwp-login.php
以外でログインを試みることが可能であるかもしれない方法を私は見つけていません。
だから私の質問です:もしあれば、wp-login.php
スクリプトなしでログインを試みるための他の手段は何ですか?そして、そのような代替ログインルートをどのように無効にすることができますか?
編集:.htaccessコード(ファイルの最初の行):これはWPルートディレクトリ(wp-login.php
と同じ場所)にあります。
<FilesMatch wp-login.php>
order deny,allow
Deny from all
# Allow from this IP address
allow from xx.xxx.xxx.xx #My IP
</FilesMatch>
ErrorDocument 401 "Sorry. No logins here!"
ErrorDocument 403 "Sorry. No logins here!"
その答えは、モバイルWordPressアプリケーションとの通信に使用されているXML-RPCであり、新しいバージョンでは常に有効になっています。携帯アプリを使ってWPを管理していない場合は、私のプラグインを使用できます - http://wordpress.org/plugins/control-xml-rpc-publishing無効にするには/ を押します。
@MarkKaplunが示唆しているように、問題は確かにXML-RPCでした。私はホスティング会社に連絡を取り、ログの読み出しを依頼しました。 xmlrpc.phpは、24時間以内に3500回以上ヒットしました(そしてこれは、誰もヒットする理由がない小さなサイトです)。
編集
これは私が起こっていたと思われるものです。 xmlrpc攻撃の軽減に関する Antti Vilpponenのブログ から:
私が実行したテストから、WordPressが認証情報を含むURLもサポートしていることがわかりました。そのため、攻撃者は
http://admin:[email protected]/changeDNS.asp?newDNS=aaaa
のようなURLを使用して内部ルーターを再構成することができます。
そのため、xmlrpc.php
を使用した場合と同じ効果があり、認証ルーチンに入るためにWPをトリガーしたwp-login.php
を使用して.htaccess
をヒットしました。
/編集
プラグインを使用するのではなく(これは@MarkKaplanが答える前のものでした)、サーバーでxmlrpc.phpへのアクセスをすべて遮断することにしました。ここでもWPルートで<Files xmlrpc.php>
Order allow,deny
Deny from all
</Files>
を使用します。
__コード__
魅力のように働いた。私のログインは沈黙しています。
編集
Apacheディレクティブのファイル名がxlmrpc.phpのように間違っています。それを修正しようとしましたが、私がこの無用な段落を書くまでstackexchange文字編集制限は私をさせませんでした。今では正しいです。