中国とオーストラリアのアクセスを拒否しようとしたのだが、
中国のIPアドレスは膨大にあったので、アクセス拒否の別の方法を探していたところ、
WordPressプラグイン「IP Geo Block」を発見したので、試してみた。
実行環境
- Debian GNU/Linux 10 (buster)
- WordPress 5.5
- WordPress プラグイン 「IP Geo Block」 3.0.17.4
https://ja.wordpress.org/plugins/ip-geo-block/
IP Geo Block とは
特定の国やIPアドレスからのアスセスを制限することができる、WordPressプラグイン。
利用にあたって
2019年の1月から更新が止まっており、
動作確認バージョンは、WordPress 5.0.10 となっている。
5.5にインストールして設定してみたところ、GeoLite2のIPリストの取得ができなかった。
5.5だからと動作しないというわけではなく、GeoLite2側の問題で動作不良となっている。
ただ、IP2LocationのIPリストは正常に取得できているので、ひとまず継続利用してみることにする。
設定内容
各セクションの設定内容を記載する。
検証ルールと振る舞いの設定
拒否したい国コードを指定したいので、ブラックリストと選択し、カンマ区切りで国コードを指定する。
- マッチング規制
- 「ブラックリスト」を選択
- 国コードのブラックリスト
- 「AU,CN」を入力
バックエンドの設定
それぞれの情報、領域ごとの遮断設定を行う。
- コメント投稿
- 「国コードで遮断」にチェック
- 管理領域
- 「国コードで遮断」にチェック
- 「ゼロデイ攻撃を遮断」にチェック
- 管理領域 ajax/post
- 「国コードで遮断」にチェック
- 「ゼロデイ攻撃を遮断」にチェック
- プラグイン領域
- 「ゼロデイ攻撃を遮断」を選択
- テーマ領域
- 「ゼロデイ攻撃を遮断」を選択
プラグイン領域の設定は、他のプラグインと干渉してしまうケースがあるようなので、
不具合が出たら、調整をしようと思う。
フロントエンドの設定
フロントページの遮断設定。
バックエンドの設定を踏襲している。
- 一般公開ページ
- 「国コードで遮断」にチェック
- マッチング規制
- 「[検証ルールと振る舞いの設定]に従う」を選択
データベースのダウンロード
初回行うことで、即時に制限が有効化される。
自動更新にしておけば、設定日の夜間から実行が取得処理が開始される。
- データベースのダウンロードをクリック
- 初回のみデータベースファイルをダウンロードする。
「自動更新」にチェックしておくことで、定期的に月1回再取得をしてくれる。
- 初回のみデータベースファイルをダウンロードする。
Geolite2 ファイルがダウンロードできない
「データベースのダウンロード」をクリックしたところ、以下のエラーが出てしまった。
cURL error 6: Could not resolve host: geolite.maxmind.com
IP2Locationは正常に取得できたが、Geolite2はデータプライバシー規制により、
ユーザ登録しないと取得できなくなったとのこと。
ユーザ登録をしてみたが、いまいちダウンロードの仕方がわからないので、
調査を行っていくことにする。
- GeoLite2 Free Downloadable Databases « MaxMind Developer Site
https://dev.maxmind.com/geoip/geoip2/geolite2/
プライバシーと記録の設定、位置情報APIの設定、プラグインの設定
こちらは設定変更はしておらず、気になった項目だけ記載しておく。
- プラグインの設定 > 緊急時用ログイン・リンク
- ログインできなくなると不安なので、念のため、緊急時用ログイン・リンクを作成しておく。
- プラグインの設定 > プリセットのインポート
- 管理画面だけをアクセス制限させたいすのであれば、「バックエンドの推奨設定」を適用すればよさそう。
今回は、一通りの設定を見たかったので、一つ一つ設定をしていった。
- 管理画面だけをアクセス制限させたいすのであれば、「バックエンドの推奨設定」を適用すればよさそう。