Written by TSUYOSHI

【簡単!WordPressのセキュリティ対策】 SiteGuard WP Pluginを設定する

WordPress

本記事では、WordPressのセキュリティについて、初心者でも簡単にできる方法を解説します。

初心者の方は知らないこともあるのですが、WordPressはインストールして、そのままの状態で使い続けるとセキュリティ上の問題があり、危険があります。クライアントへの納品物などの場合は必ず把握しておかなければならないことなので、知らない方にはぜひ知っておいて欲しいことを記載しています。

本記事の内容

  • SiteGuard WP Plugin を設定してセキュリティを高める
  • ログインできなくなってしまったときは…
  • なぜWordPressは素のまま運用すると危険性があるのか

この記事を書いている僕は、エンジニア歴が約4年で、WordPressのテーマ作成については、新規作成とメンテナンスを含めると100サイト以上は対応した経験があります。

この記事を読むことによって、WordPressの基本的なセキュリティ対策が分かるようになります。

対応方法は「SiteGuard WP Plugin」という有名プラグインを使った方法をお伝えします。また後半でなぜ、WordPressは素のまま使うと危険なのかについても解説しています。

SiteGuard WP Plugin を設定してセキュリティを高める


結論としては、「SiteGuard WP Plugin」というプラグインをインストールするだけで、セキュリティが強力になります。設定は必要に応じて変更してもらえればと思いますが、基本的には有効化した後のデフォルト設定のままで問題ありません。

なぜこのプラグインを入れるかという理由は、WordPressは管理画面のログインページが攻撃の対象となりやすいためです。詳細は記事の後半で解説しています。

SiteGuard WP Plugin をインストール&有効化する

管理画面にログインして、「プラグイン > 新規追加」へ進みます。

SiteGuard WP Plugin」で検索するとプラグインが見つかるので「今すぐインストール」をクリックしてインストールします。

インストール後に「有効化」をクリックしてプラグインを有効にします。

これで設定は完了となります。

有効後にログインのURLが変更されるのでこれをメモするなどして、一旦、メモしておく方がよいと思います。(/wp-admin からは初期状態だとアクセスはできるので覚えなくても問題はないかとは思います)
例) xxx.com/login_53419
※ ログインURLが変わり、/login_xxxxx のランダムな数字が付くようになります。
/wp-login.php からはログインできなくなります

デフォルトの設定のままなら、/wp-admin か 変更後のURLのどちらかでログインするようにしてください。

SiteGuard WP Plugin を有効化するだけで設定は完了

インストールした時点でログイン画面に画像認証が追加されるなどいくつかが有効になるので、これだけでもセキュリティはほぼ問題なくなります。

試しに一旦ログアウトしてから、「/wp-admin」(例: xxx.com/wp-admin )へアクセスすると、ログイン画面へリダイレクトされ、日本語の入力画面が増えていると思います。

この時点で「ログインURLの変更」や「日本語の画像認証」などがされているため、セキュリティ的にはほぼ問題なくなります。
この初期設定で問題ないので、基本的には変更しなくてよいと思います。

SiteGuard WP Plugin の設定について解説

さらに設定について、詳しく解説します。管理画面の左側メニュー「SiteGuard」の項目から詳細な設定や確認が可能です。

▼デフォルトのSiteGuard WP Plugin設定(ダッシュボード)

管理ページアクセス制限

デフォルトOFFで、通常はOFFのままでよいかと思います。ログインをしていないIPアドレスからの管理画面の操作を制御するものになります。
サーバーがApatcheでないかmod_rewrite(Apatcheのモジュール)が無効の時はONにしないでください。

ログインページ変更

名前の通り、ログインのURLを変更します。「wp-login.php」へのアクセスを元に戻したい場合は、OFFに変更して「変更を保存」ボタンを押して保存し直します。
もしサーバーがApatcheでない時、もしくはmod_rewriteが有効ではない時はOFFに変更してください。

画像認証

各ページに日本語入力の画像認証を入れるようにするかどうかです。
僕の経験からすると、攻撃をしてくるIPアドレスのほとんどが、中国とロシアからであるので、日本語の画像入力を入れるだけでセキュリティ的にはほぼ問題が無くなると思っています。
ここの項目は初期状態のまま、ONにすることをおすすめします。

ログイン詳細エラーメッセージの無効化

何が間違っているかのヒントを表示せずすべて同じエラーメッセージにします。ONのままで問題ないとは思います。

ログインロック

デフォルトONで、デフォルトのままでOKです。
管理画面にログインする際、ユーザ名とパスワードの組み合わせで間違えが一定回数以上あった時に、そのIPアドレスからのアクセスを一定期間、遮断するような機能です。ブルートフォースアタックに有効なのでONにしておくべきです。

デフォルト設定でよいですが、ロック時間だけ「5分」にしてもよいかもしれません。

クライアントに納品をする時は念の為、「セキュリティ対策で、ユーザ名とパスワードを◯秒間以内に連続で◯回間違えると、◯分間は管理画面にアクセスできなくなるので注意してください」というようなことを伝えておいてもよいかもしれません。
(デフォルト設定なら、通常は5秒間に3回間違える人とかはいないと思うので伝えなくても問題はないかとは思います)

ログインアラート

ログインの度に管理者権限で設定しているメールアドレスにメールで通知が届きます。通常はOFFで問題ないかと。

フェールワンス

通常はOFFのままで問題ありません。ログインに成功しても、わざと1回だけログインに失敗するようにする機能です。

XMLRPC制御

これもOFFで問題ないです。外部からWordPressを操作する時に使うものなのですが、特に無効化しなくてもよいかと。

更新通知

デフォルトでOFFの機能です。
「WordPressの更新」「プラグインの更新」「テーマの更新」について、更新が必要な場合に管理者にメール通知する機能です。
バージョンを最新にしておくことは重要なので、たまにしかWordPressにログインしない場合は、ONにしておいてもよいかもしれません。

WAFチューニングサポート

デフォルトOFFで通常はOFFで問題ありません。サーバ側にもこのプラグインを提供している会社のパッケージが導入されている時に使う機能のようです。

詳細設定

これは初期設定の「リモートアドレス」で問題ありません。プロキシやロードバランサーによってIPアドレスの取得方法が変わる時に設定します。

ログイン履歴

ログインした履歴を見ることができます。ログイン履歴で不正アクセスがあったかどうかが分かります。

ログインできなくなってしまったときは…

1.サイトのログインURLがわからないとき

もしログインURLが分からなくなった時は、WordPressのインストールディレクトリにある「.htaccess」ファイルを見て、login_xxxxxという部分がログインページURL名となります。

RewriteRule ^login_xxxxx(.*)$ wp-login.php$1 [L]

2.それでもダメな時

1.の方法で解決できない時は、WordPressのインストールディレクトリにある「.htaccess」ファイルをまずは直接書き換えます。

#SITEGUARD_PLUGIN_SETTINGS_START から
#SITEGUARD_PLUGIN_SETTINGS_END まで

この部分を削除します。.htaccessを変更する際は念の為、もとに戻せるようにバックアップを取ってから操作することをおすすめします。

さらに、/wp-content/plugins/にあるsiteguardディレクトリを削除すれば、設定が元に戻ると思います。

詳しくは公式のFAQを確認してみてください。

なぜWordPressは素のまま運用すると危険性があるのか


WordPressは全世界のサイトでも3割以上のシェアを超える、最も使われているCMSです。そのため信頼性も高いのですが、ハッカーから狙われやすいという特徴もあります。

素のままにしておくと管理画面のログイン画面が危険

WordPressは管理画面のログインページがデフォルトの設定では世界共通で同じため、WordPressを使っているサイトは主にこの部分を攻撃の対象にされます。

WordPressの管理画面は、ユーザ名(もしくはメールアドレス)とパスワードの2つの組み合わせでログインすることになります。

このユーザ名とパスワードの組み合わせについては何回でも試すことができるため、ブルートフォースアタックという総当り攻撃をされてしまうと、ユーザ名とパスワードの組み合わせが解析されてしまい、ハッカーにログインを許してしまいます。

WordPressの管理画面・ログイン画面はURLが決まっているため、この画面からハッカーに侵入されるサイトは非常に多かったりします。

ex) WordPressでブルートフォースアタックの標的となるURL例
xxx.com/wp-admin/
xxx.com/wp-login.php

通常はWordPressの管理画面のログインURLを変えたり、一定の回数ログインのユーザ名とパスワードを間違えると一定時間そのIPからのアクセスを遮断するなどが一般的な防御方法だと思います。

僕も企業で600社のクライアントのサイトを管理していたことがありますが、主にIPアドレスが中国とロシアからの攻撃が頻繁にあり、サーバ側で対処をしていた経験もあります。

ちなみにエックスサーバーはデフォルト設定で海外IPアドレスからのアクセスを遮断する設定になっているので、このあたりは安心です。サーバーにエックスサーバーを使っている場合はより安全かと思います。(海外ユーザも見れるようにするには管理画面で設定を変更する必要があります)

まとめ

セキュリティについては、「SiteGuard WP Plugin」のプラグインをインストールして、有効化するだけでOKです。

ログインURLが変わる点だけ注意が必要です。(/wp-admin からログインしている人はデフォルト設定なら変わらず使えるので問題ありません)

ご参考になれば幸いです。

※当サイトでは一部のリンクについてアフィリエイトプログラムを利用して商品を紹介しています