IP Geo Block 3.0.7にアップデートでログインできない時の対処法
コメント投稿、管理領域、プラグイン領域、テーマ領域などをスパムコメントやゼロデイ攻撃、悪意あるアクセスから守ってくれる便利なWordPressプラグイン 「IP Geo Block」をIP Geo Block 3.0.7にアップデートすると「Sorry, your request cannot be accepted.」と表示され、ログインフォームへのアクセスをブロック、ログインできないという事象が発生。IP Geo Block 3.0.7によるログインブロックの対処法の備忘録。
IP Geo Block 3.0.7.1がリリースされて対応は不要になった模様。作者様に感謝です。
- 1. いきなり「Sorry, your request cannot be accepted.」と突然ログインブロック
- 2. IP Geo Block 3.0.7 アップデート後のログインブロック対処手順
いきなり「Sorry, your request cannot be accepted.」と突然ログインブロック
さて新しい投稿でもするかとWordPressログインフォームにアクセスすると「Sorry, your request cannot be accepted.」と表示され「戻る」リンクをクリックすると前のページに戻されてWordPressにログインできない。
「まさか乗っ取りか?」とサイトのフロントエンドにアクセスすると別段変った様子もなく昨日までと同じ様子のサイトが表示される。別の管理サイトのWordPressログインフォームにアクセスするとまたもや「Sorry, your request cannot be accepted.」とログインブロック。サイト自体は普通にアクセスでき普通に表示される。
ちょっとパニックって最近ログイン関係のセキュリティでいじったfunctions.phpを元にもどして(何でもWordPressの問題はfunctions.phpが原因だと思っている私)、再度ログインフォームにアクセスするとやっぱりログインできない。
さらに最近ログインしていなかったサイト(ブログ)のログインフォームにアクセスするといつもの様にログインフォームが表示されログインできる。
この辺りで少し冷静になってきて「この3つのWordPressサイトの違いはなんだ?」と考えると、「ログインしてプラグインを更新したか更新してないか」の違いだなと気づく。この3つのサイトは同じテーマでほとんど同じプラグインをインストールしている。
まずは「Sorry, your request cannot be accepted.」でG先生にお聞きすると英語のページがずらり、中に日本語のページがあり、「IP Geo Block」の文字がある。そういえばIP Geo Blockを更新したなとここで気づき、IP Geo Blockのプラグインページへいって、IP Geo BlockのSupportに「When you were blocked after upgrading to 3.0.7」というIP Geo Blockの作者の方のトピを発見。
IP Geo Blockの作者の方は日本の方のようだが、このトピは英語。まあIP Geo Blockは世界中にユーザーがいるグローバルに人気のWordPressプラグインだから英語なのは仕方ないことだ。IP Geo Blockがファイヤーウォールプラグインとして人気なのは、Akismetという重いプラグインに世界のみなさんはあきあきしている現われなのかもなあ。
IP Geo Block 3.0.7 アップデート後のログインブロック対処手順
前置きが長くなったが、IP Geo Block 3.0.7に更新でおきるログインフォームへのアクセス制限、ログインブロックの対処方法について。まあ、IP Geo BlockのSupportの「When you were blocked after upgrading to 3.0.7」を読めば、英語が大の苦手である私にもできたので、誰でもできるだろう。
IP Geo Block プラグインフォルダの名前変更
IP Geo Block プラグインフォルダ( /wp-content/plugins/ip-geo-block/)の名前をFTPなど使ってip-geo-blockからip-geo-block-などに変更、WordPressログインフォームから通常どおりログインできるはずなのでログインしてIP Geo Blockを停止(無効)にする。
ip-geo-block.phpのEmergent Functionality部分のコードを編集
ip-geo-block-フォルダの中のip-geo-block.phpをFTPなどでダウンロード、テキストエディターなどでip-geo-block.phpのコードの下の方にある”Emergent Functionality”部分を書き換えてFTPなどで再度ip-geo-block-に戻す。
Emergent Functionality部分書き換え前
ip-geo-block.phpのEmergent Functionality部分書き換え前をTeraPad(テキストエディター)で開いたのが上の画像。110行目に注目。先頭が/*になっていて117行目の*/で囲まれた部分のコードが緑色になっていてコメントアウトされている。
実際のip-geo-block.phpのEmergent Functionality部分書き換え前
/*----------------------------------------------------------------------------*
* Emergent Functionality
*----------------------------------------------------------------------------*/
/**
* Invalidate blocking behavior in case yourself is locked out.
*
* How to use: Activate the following code and upload this file via FTP.
*/
/* -- ADD `/` TO THE TOP OR END OF THIS LINE TO ACTIVATE THE FOLLOWINGS -- *
function ip_geo_block_emergency( $validate ) {
$validate['result'] = 'passed';
return $validate;
}
add_filter( 'ip-geo-block-login', 'ip_geo_block_emergency', 1, 2 );
add_filter( 'ip-geo-block-admin', 'ip_geo_block_emergency', 1, 2 );
// */
Emergent Functionality部分書き換え後
ip-geo-block.phpのEmergent Functionality部分書き換え後をTeraPad(テキストエディター)で開いたのが上の画像。110行目に注目。先頭が//*になっていて111行目から116行目までのPHPコードがコメントアウト解除されている。
実際のip-geo-block.phpのEmergent Functionality部分書き換え後
/*----------------------------------------------------------------------------*
* Emergent Functionality
*----------------------------------------------------------------------------*/
/**
* Invalidate blocking behavior in case yourself is locked out.
*
* How to use: Activate the following code and upload this file via FTP.
*/
//* -- ADD `/` TO THE TOP OR END OF THIS LINE TO ACTIVATE THE FOLLOWINGS -- *
function ip_geo_block_emergency( $validate ) {
$validate['result'] = 'passed';
return $validate;
}
add_filter( 'ip-geo-block-login', 'ip_geo_block_emergency', 1, 2 );
add_filter( 'ip-geo-block-admin', 'ip_geo_block_emergency', 1, 2 );
// */
Emergent Functionality部分書き換え後のip-geo-block.phpをアップロード
Emergent Functionality部分書き換え後のip-geo-block.phpをリネームしたIP Geo Block プラグインフォルダip-geo-block-に戻す。
IP Geo Block プラグインフォルダをip-geo-blockに戻す
変更済みのip-geo-block.phpをip-geo-block-に戻したら、IP Geo Block プラグインフォルダip-geo-block-から元のオリジナルのIP Geo Block プラグインフォルダ名のip-geo-blockに再び名前変更する。
IP Geo Blockを有効化する
IP Geo Blockを有効化する。「プラグインファイルが存在しません」やダッシュボード上部にメッセージが表示されるかもしれないがかまわずにIP Geo Blockを有効化する。
国コード検索 ホワイトリスト国コードにJP,ZZと入力
IP Geo Blockを有効化後、IP Geo Block設定ページに行き、設定ページの一番上の検証ルールの設定のところでIPアドレスから国コードを検索する。あなたのIPアドレス/国コードのところが、IPアドレス/ZZ (Cache)のままなのが確認できる。
マッチング規則をホワイトリストにする。
国コードのホワイトリストを日本在住なら通常JPとだけ入力されていると思うが、JP,ZZというようにJPの後にカンマ(,)区切りでZZを付け加える。
一番下の方、「変更を保存」ボタンで設定を保存する。
ip-geo-block.phpファイルをオリジナルに戻す
「変更を保存」ができたらip-geo-block.phpファイルのEmergent Functionalityの部分を元のオリジナルの状態に戻す。
具体的にはEmergent FunctionalityのPHPコードをコメントアウトする。//*と変更した部分を、上の画像の110行目のように/をひとつ減らして/*にするだけ。
以上がIP Geo Block 3.0.7によるログインブロックの対処法、対処手順。