Limit Login Attempts Reloadedプラグインの設定とロック解除(WordPressプラグイン)

Limit Login Attempts Reloadedプラグイン

WordPressへのログイン失敗での「ロック」と「メール通知」が手軽に行えるプラグインで、非常にシンプルな設定ですが、必要な機能が備わっていて使いやすいと思います。

Limit Login Attempts Reloaded
WordPress の開発者チームによる、元祖 Limit Login Attempts plugin for Login Protection (ログイン保護のためのログイン試行制限) プラグインのリニューアル版。GDPR 準拠。

プラグインの設定

GDPR準拠

GDPR(General Data Protection Regulation)は個人情報保護のための規則で、ONにすると次の設定の「GDPR message」がログインフォーム下部に表示されます。

「続行するとIPアドレスを収集して利用する可能性があります」みたいな意味のメッセージです。

GDPR message

ここに入れたメッセージがログインフォーム下部に表示されます。

以下のような感じです。

ロック通知

ログイン失敗でロックされるとメールで通知してくれる機能です。

チェックボックスをONにしてメールアドレスを入れ、最後の項目は何回ロックアウトしたら通知するかなので1でいいと思います。

実際に送られてくる通知メール

ログイン失敗してロックされると以下のようなメールが届きます。

Hello,

1 failed login attempts (1 lockout(s)) from IP 225.219.15.221
Last user attempted: test10
IP was blocked for 30分間

This notification was sent automatically via Limit Login Attempts Reloaded Plugin. This is installed on your aimix.jp WordPress site.

Under Attack? Try our advanced protection. Have Questions? Visit our help section.

Unsubscribe from these notifications.

失敗回数とIPアドレス

以下の箇所は失敗回数と、ログイン失敗した端末のIPアドレスです。

ロックアウトの記録はデータベースに保管されており、複数ロックアウトした場合は以下の「1 lockout(s)」部分が変化します。

1 failed login attempts (1 lockout(s)) from IP 225.219.15.221

入力されたユーザー名

以下の箇所はログインフォームのユーザー名に入力された文字列で、下の例だと「test10」と入力されたのがわかります。

ログインフォームのユーザー名に入力された文字列なので、存在しないユーザー名でも表示されます。

Last user attempted: test10

ブロック期間

以下の部分は上記を30分ブロックしますよという意味です。

IP was blocked for 30分間

Show top-level menu item

WordPressのサイドメニューのトップレベルに「Limit Login Attempts Reloadedプラグイン」の設定項目を出すかどうかです。

ONにすると下のようにトップレベルのメニューに追加されます。

OFFの場合は 設定 > Limit Login Attempts と辿ると設定に入れます。

Active App

premiumの機能なので無料版では設定不要です。

App Settings

「Custom App」はpremiumの機能なので「Local App」だけ設定します。

以下の箇所が初回のロックに関する設定です。

「回までリトライを許可する」は何回失敗しても良いかを指定し、「分間ロックする」は初回のロックを何分にするかです。

以下の例だと1回失敗すると30分間ロックされます。

以下の箇所は何度もロックした場合に、さらに長い時間ロックするための設定です。

下段の「時間でリトライ数をリセットする」は、データベースに保存されているリトライ数をクリアするまでの時間を指定します。

Logsタブ

Safelist

Safelistはホワイトリストの事で、1行につき「1つのIP」か「IP範囲」を指定します。

IPアドレスの範囲が不明な場合はWhoisで調べると良いです。

例えば「126.33.205.167」をWhoisで調べると「inetnum: 126.0.0.0 – 126.133.255.255」という感じでアドレス範囲が確認できます。

Blocklist

Blocklistはブラックリストで、これも「IPアドレス」か「IPアドレス範囲」で1行に1つ指定します。

これも範囲でブロックしたい場合はWhoisでIPアドレス範囲を調べると良いです。

ロックの解除

WordPressの管理画面から行う場合

設定 > Limit Login Attempts > Logsタブ

ロックされているIPが存在しない場合は何も表示されませんが、1件でもあると「Logs」タブの下部に以下のように表示されます。

右端に「Unlock」ボタンがあり、手軽にロック解除できます。

時間経過でロックが解除されると、「Unlock」ボタンの代わりに「Unlocked」と表示されます。

ログはクリアするまで上記のように残りますので、似たIPアドレスが何度も引っかかるようなら「Blocklist」でIPアドレス範囲ごとブロックするのも良いと思います。

自分がロックされてWordPressの管理画面へ入れない場合は次項の方法でデータベースから値を削除します。

自分がロックアウトされた場合(DBからレコード削除)

誤って自分がロックアウトされてしまった場合でも、放置しておけば設定した時間が経過すると解除されます。

すぐに解除したい場合はデータベースから対象レコードを削除するか、IPが記録されたフィールドの値を消すと解除されます。

操作するデータベースはWordPressの設定や記事内容などの重要なデータが含まれているため、操作前に必ずデータベースのバックアップを取って下さい。

レンタルサーバにはデータベース操作の「phpMyAdmin」などが備わっているので、これで操作します。

左ペインからWordPressの「データベース名」をクリックします。

一覧から「options」テーブルをクリックします。

先頭にプレフィックスが付加されており、プレフィックスが「wp10000」の場合は「wp10000options」のようなテーブル名になっています。

「options」テーブルはレコード件数が多いため、1ページあたりの表示件数を増やさないと何度も「次のページ」をクリックしないといけないので「500」くらいにして表示します。

この中の「limit_login_lockouts」レコードがロックアウト中のIPを格納していますので、レコード自体を削除するか、IPアドレスが記録されているフィールド内容を消去するとロックが解除されます。

「limit_login_lockouts」レコードはロックのタイミングで挿入されるため、レコード自体を削除しても次回ロック時に再度挿入してくれます。

初回のロックアウトは「limit_login_lockouts」レコードを削除すれば解除できますが、複数回ロックした場合のロックアウトはIPアドレスを格納する他のレコードも削除する必要があります。

試しに「limit_login_lockouts」レコードだけ削除してログインを試すと、まだロック中になっており、再度確認すると削除した「limit_login_lockouts」レコードが復活しています。

「Limit Login Attempts Reloaded」プラグインのレコードは「limit_login_」で始まりますが、ロックアウト情報以外にプラグイン自体の設定を保持しているレコード(例えばメール通知先が limit_login_admin_notify_email など)があるので、必要なレコードだけ削除します。

IPアドレスが格納されているレコードは以下の4つです。

  • limit_login_retries_valid
  • limit_login_retries
  • limit_login_logged
  • limit_login_lockouts

対象レコードを削除したらロックアウトが解除されているか確認してみてください。

「Limit Login Attempts Reloaded」プラグインのレコード一覧は以下のとおりです。

    • limit_login_valid_duration
    • limit_login_trusted_ip_origins
    • limit_login_show_top_level_menu_item
    • limit_login_retries_valid
    • limit_login_retries_stats
    • limit_login_retries
    • limit_login_notify_email_after
    • limit_login_notice_enable_notify_timestamp
    • limit_login_long_duration
    • limit_login_logged
    • limit_login_lockouts_total
    • limit_login_lockouts
    • limit_login_lockout_notify
    • limit_login_lockout_duration
    • limit_login_gdpr_message
    • limit_login_gdpr
    • limit_login_allowed_retries
    • limit_login_allowed_lockouts
    • limit_login_admin_notify_email
    • limit_login_active_app
    • limit_login_activation_timestamp

誤って設定のレコードを削除すると正常に動作しなくなる可能性があるため、レコードの削除後は正常に動作しているか、無料で提供されているプロキシ経由でログイン試行してロックアウトされるか確認しておくと安心です。

Comment

タイトルとURLをコピーしました