どうも、個別指導塾コミット塾長の船津です。
今回は自身が運営しているマルチサイトのセキュリティを考えるでちょっと苦労したことがあったのでまとめます。
目次
環境
- nginx
- php7
- サブドメイン型のマルチサイト
対応プラグインが少ない
とりあえず入れとけ!的なプラグインが使えません。
- SiteGuard Lite使えない
- Login rebuilder使えない(nginxでログインパスを変更するプラグイン)
- その他もろもろちゃんと動作しない機能も多い、、、
試したプラグイン
- SiteGuard Lite
マルチサイトに非対応と公式で明言されています。 - iThemes Security
マルチサイト用の設定は存在するものの、wp-login.phpをアクセス禁止にする機能が、大元のサイトにしか使えない+nginx環境で動作しなかった。apacheならしっかり機能するのかも。 - All In One WP Security & Firewall
今回はこれを採用しました
全て英語です
All In One WP Security & Firewallを新規追加したら、”WP Security”から,”Fire Wall”を選択して、基本のfirewall機能をonにしておきましょう。
wp-login.php、wp-adminへのアクセスを禁止しよう
ログインせずにwp-login.phpやwp-adminにアクセスできてしまうと、攻撃の恰好の的になります。
まずはここから禁止しましょう。
“WP Security”から,”Brute Force”を選びます。すると以下のようにログインページ変更画面が出てくるので、ランダムな文字列等に変更しておきましょう。
動作確認
Wp-adminにアクセスしてみると、以下のように冷たく拒否されます。
Wp-login.phpにアクセスすると、404ページにリダイレクトされます。
ログイン画面にキャプチャをつけよう
こちらも”Brute Force”ページのタグにあります。
チェックボックスが3つありますが、とりあえず3つともチェックしてOKです。
動作確認
四則演算の問題に答えられればOKです。
IPを制限しよう
管理画面を操作する人と場所が決まっているなら、IP制限をしましょう。
一番手軽で、効果の高い方法です。またまたこちらも”Brute Force”ページのタグにあります。
現在使用しているIPが表示されるので、簡単です。
iThemes Securityを併用してもいいかも
今回は使うことは無かったのですが、iThemes Securityには魅力的に見える機能が多く存在しています。
Pro版の機能も多いですが、デフォルトでマルチサイトの最適化や、パーミッションの設定、restapiの無効化、ファイル改ざん検知機能などがついているので
こちらと併用してもいいかも知れません。
終わり
基本的な機能しか試していませんが、マルチサイトのセキュリティ対策はAll In One WP Security & Firewallが一番良さそうです。
2段階認証など、更に機能を追加したい場合は別のプラグインで対応していきましょう。
Wordpress本体とプラグイン更新を忘れずに…