ワードプレスの管理画面を日本国外からのアクセス禁止について
ワードプレスの管理画面を日本国内からのみ、アクセスしたい。つまり、日本国外、外国からのIPからのアクセスをできないようにしたいという、相談があり、いろいろと方法を調べている方からの相談がありました。
通常は、有料サポートになりますが、TIPSに載せたかったので、無料相談で受け付けました。その方が調べてきた方法が、.htaccessで国内IPのみアクセスを可能にするという方法でした。IPのリストは、ネットで出回っています。
※本記事は、一般的な共有のレンタルサーバーでの使用を前提としております。
あまり現実的ではありません。
ネットの調べると.htaccessに除外IPリストをすべて載せる方法がありますが、インフラエンジニアからすると現実的ではありません。
たしかにその方法はできるとおもうのですが、毎回ページを見るときに(wp-login.phpに限定しても)、記述の内容をサーバーが読み込むので、とてもパフォーマンスが落ちます。つまり、サイト自体が遅くなります。
それではどの様にすればいいのか?
問題は、wp-login.phpがワードプレスの共通のログインアドレスで、そこを意図しないアクセス元から攻撃をされることです。これは、オープンソースや多く使われているCMSやフレームワークでは、致し方ないことです。
ということで、考えを変えてみましょう。ログインアドレスを変えればいいのです。
ログインアドレスを変える
プラグインでワードプレスのログインアドレスを変えることができます。セキュリティー関係のプラグインで「SiteGuard WP Plugin」というものがあります。名前も頼もしそうですね!
簡単にワードプレスのログインアドレスを変えることができます。攻撃はwp-login.phpにされても、サーバーは「404エラー」つまり「ページが見つかりません」を返すだけなので、サーバーにもあまり負荷がかかりませんし、攻撃されてサイトがワードプレスのハッキング(クラック)される可能性が、格段に下がります。
セキュリティー機能が満載
「SiteGuard WP Plugin」は、セキュリティー強化のワードプレスプラグインのため、その他にワードプレスのセキュリティーを高くすることができます。
- ログインページ、コメント投稿に画像認証を追加
- ログインの失敗を数回繰り返すと、指定した時間をロックをかけます。
- XMLRPCのセキュリティーの穴の悪用を防ぎます。←結構重要です。
- 正しいパスワードをいれても1回目はログインができません。
以上の設定をすることによって、ワードプレスの管理画面への攻撃を格段に減らすことができます。
レンタルサーバーの機能を使う
レンタルサーバーの機能で、国外IPからのアクセスを遮断する機能があります。ワードプレスの管理画面を外国IPから遮断する機能もあるところがあります。ここの仕組みは、本記事では割愛しますが、この機能があるのであれば、こちらをまず使うのことが第1選択となり、そして「SiteGuard WP Plugin」を併用すれば、セキュリティーのリスクは格段に下がると考えられます。XSERVERやWPXなどはこの機能が充実しており、丙h差としては多数のお客様におすすめしております。
国外IPの遮断は完璧ではない
IPというものは、簡単に言うとルーティング(経路設定)をすれば、アメリカで割り振られたIPをどこにでも持ってくることはできます。基本的にには、割り振られた国で使うのが一般的ですが。
その他、IPアドレスの割当が変更になったりすると、国が変わる場合もあります。
ですので、世の中に出回っている国内IPリストや外国IPリストは、定期的に更新がかかって言います。
ざっと簡単にいうとこんな感じです。ざっというとです。
ですので、国外IP遮断は完璧ではありませんが、共有サーバーで提供している機能は、それなりに精度が高くはなると思います。もちろん、サーバー会社も1回設定したらずっと終わりではなく、内容についても定期的にアップデートはしていると思います(多分)
おまけ VPSの場合はどうか?
これまでは、共有サーバーの話でありましたが、専用サーバーやVPSやクラウドの様に館権限を持っているサーバーはどうなのかというと、FireWall機能(旧IPTABLES)があるのですが、ここで外国IPを遮断する設定をこまかく入れていく方法もありますが、この機能はサーバーのメモリーを確実に消費するので、計算をしたり、うまくIPのレンジで制限しないといけないなど、細かく計算をしないといけないため、ワードプレスの管理画面を国外IPから遮断するという部分では、プラグインでログイン画面を変えると良いというのが、一番ベストかなと思います。