当サイトには広告が含まれております

ログイン失敗回数を制限するlimit login attemptsプラグインを入れてみた

この記事は最終更新日から9年経過しています。内容が古い可能性があります。

Image

昨日、「話題になっているセキュリティに関する記事を読んで超訳解説してみる」という記事を書いていて、ブルートフォースアタックがだんだん気になってきました。WordPressはどのurlからログイン出来るか分かっているので、プログラムを作って地道に総当たりでログインを試みられたらできちゃいそうな気もしてきます。

仕事ではそういう場合の対策用にログインを数回失敗したら時間をおかないとログインを試みられなかったり、何度も同じことをすればログインをできなくしたりする機能のプログラムを作ったことがあります。似たようなモノを作ろうかと思ったのですが、ググってみたら良いプラグインがありましたのでそれを入れることにします。

記事をざっと見る

limit login attempts というプラグイン

ログイン失敗回数を制限して不正ログインを検知するWordPressプラグイン「Limit Login Attempts」

こちらのblogに詳しい使い方が載っていましたので読んだところ、求めている機能が備わっているようでしたので早速使ってみたいと思います。

Image

ダッシュボード>プラグイン>新規追加 で limit login attempts を検索、

Image

今すぐインストール をクリックして、

Image

プラグインを有効化 をクリックします。

日本語化する

ダッシュボード>設定>limit login attempts

Image

デフォルトは英語です。先ほど参照したblogで日本語化ファイルがあるということが分かったので、日本語化してみたいと思います。日本語化ファイルは、

ShingoFukuyama/limit-login-attempts-ja.po

ここにあります。

Image

右ブロックの一番下、 Download ZIP というボタンをクリックしてzipファイルをダウンロードして解凍します。

Image

解凍するとこれらのファイルが見えますので、limit-login-attempts-ja.moというファイルを、wp-content\plugins\limit-login-attempts の下に置きます。すると、

Image91

日本語化されました。

設定をしてみる

日本語化ファイルを独自で検索していたときに見つけた

Limit Login Attemptsの日本語化をしてみた

を見ると、設定を変えないとまずいらしいところ

ApacheやNginxでリバースプロキシを構築している場合はLimit Login Attemptsをお勧めします。その場合、リバースプロキシを利用するにチェックを入れてください。そうしないと全てがループバックアドレス127.0.0.1になるので、他人がアタックしてきた際に127.0.0.1がロックを受けて自分自身も閉め出されて何十時間もログインできなくなったり…(まぁ管理者が間抜けなことにログイン出来なくなったとしても設定データをデータベースから直接削除または更新すればいいだけですが)。

があったので、変えてみました。

Image

リバースプロキシで接続 の方にチェックを入れます。

あとどんな攻撃がくるのか分からないのでとりあえず、

Image

管理者のメールに通知 ( 4回のロックで) にチェックを入れてみました。

Image

設定を変更 を押して設定終了です。

たくさん間違えてロックされてみる!

ということでわざと間違えて入力してみます。

Image

1回目、エラー:ユーザー名またはパスワードが正しくありません。残り3回まで間違えることができます というメッセージが表示されました!

Image

2回、3回と間違えていよいよあと1回です。

Image

4回間違えると、このように エラー:ユーザー名またはパスワードが正しくありません。エラー:ログイン失敗数が一定数になりました。20分後に再度ログインを試みて下さい。 というメッセージが出ました。

20分経つまでは、たとえ正しいIDとパスワードを入れてもログイン出来ません。

管理画面で見てみる

このようにログインを試みられて失敗している状態を管理画面から見ることが出来ます。

ダッシュボード>設定>limit login attempts を見ると、

Image

ロックのログ という項目が増えて、ログが表示されているのが分かります。

もしどうしても入れなくなったら??

何かの間違いで自分のIDでどうしても入れなくなったら、データベースの プレフィックス_options というテーブルの、

limit_login_retries
limit_login_retries_valid
limit_login_lockouts
limit_login_logged
limit_login_lockouts_total

このあたりのデータがロックされた情報のようですので、削除すれば入れるようになると思います。

DELETE FROM  `プレフィックス_options` WHERE option_name IN (
'limit_login_retries',
'limit_login_retries_valid',
'limit_login_lockouts',
'limit_login_logged',
'limit_login_lockouts_total'
);

delete文はこんな感じでしょうか?データを削除するのでもしやる場合は自己責任で、できればDBをバックアップしてからやってみてください。

この記事が気に入ったら
いいね または フォローしてね!

あなたのシェアが励みになります!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントを残す

記事をざっと見る