「WordPressって、セキュリティ対策しなくても大丈夫ですよね?」と数ヶ月前の私は思っていました。
でも調べてみると、WordPressのログインページには、公開直後からボットによる不正ログイン試行が来るのが一般的だと知りました。攻撃の対象は大手サイトだけではありません。アクセス数の少ない個人ブログにも、自動化されたボットは定期的にアクセスを試みます。
この記事では、当サイト(toollensjp.com)で私が実践しているセキュリティ対策と、個人ブロガーに勧めたい施策を、優先度が高い順に7つまとめました。「完璧に守る」というより「リスクを現実的に下げる」という観点で整理しています。
WordPressを立ち上げたばかりの方は WordPress初期設定チェックリスト と合わせて読むと、抜け漏れが防げます。また、ブログをこれから始める方は 副業ブログの始め方 も参考にしてください。
なぜ個人ブログもセキュリティ対策が必要なのか
WordPressはCMSの中でも高いシェアを占めているため(具体的な数値は常に変動するので最新は公式で確認を)、攻撃ツールもWordPressに最適化されているものが多いです。
ターゲットは「大きいサイト」だけではありません。ボットは自動で脆弱なサイトを探しているので、アクセス数が少ない個人ブログも対象になります。改ざんされると、復旧の手間だけでなく、Googleの警告表示で検索流入がほぼゼロになるリスクもあります。
「何かあってから直す」より「最初に仕組みを入れる」ほうがはるかにコストが低い。そう考えて、以下の対策を順番に入れました。
優先度1:2段階認証(2FA)の導入
まず最初に入れたのがこれです。パスワードが漏れても、ログインできない状態にする仕組みです。
私が使っているのは Two Factor というプラグインです(WordPress.orgで公式配布・無料)。設定するとログイン時にTOTP(時間ベースのワンタイムパスワード)を求められるようになります。スマートフォンの認証アプリ(Google AuthenticatorやAuthyなど)と連携して使います。
- プラグインをインストール・有効化
- ユーザープロフィールから二要素認証を設定
- 認証アプリでQRコードを読み込む
- リカバリーコードを必ず保管する
4番目が特に重要です。スマホを紛失・機種変更した場合、リカバリーコードがないと自分のサイトにログインできなくなります(ロックアウト)。コードはクラウドのメモアプリや印刷して保管するなど、スマホとは別の場所に置いておいてください。
プラグインの仕様・対応バージョンは変わることがあるので、導入前に公式ページで確認することをおすすめします。
優先度2:自動バックアップの設定
セキュリティ対策は「侵入を防ぐ」だけでなく、「万一の時に戻せる」状態を作ることも含みます。バックアップは保険です。
当サイトでは UpdraftPlus を使っています(無料プランあり)。WordPressのファイルとデータベースを定期的にGoogle Driveへ自動保存する設定にしています。
設定のポイントは3つです。
- ファイルとDBの両方をバックアップする(どちらかだけでは復旧できないケースがある)
- バックアップ先はサーバー外に置く(サーバー自体が障害を起こした場合に備えてGoogle DriveやDropboxなどのクラウドへ)
- スケジュールを設定して自動化する(手動では必ず忘れる)
無料プランの保存先・世代数の制限は公式で確認してください。私は毎日の自動バックアップで運用しています。
優先度3:ログイン保護(URL変更・試行回数制限)
WordPressのデフォルトのログインURLは /wp-login.php で、ボットに筒抜けです。ここを変えるだけでログイン試行の大部分を減らせます。
WordPressのログイン保護で定番なのが SiteGuard WP Plugin(無料)です。主な機能は次のとおりです。
- ログインページのURL変更:デフォルトURLをランダムな文字列に変更
- 画像認証(CAPTCHA)の追加:ボットによる自動ログイン試行を弾く
- ログイン試行回数の制限:一定回数失敗したIPを一時ブロック
注意点として、ログインURLを変更した後は必ず新しいURLをメモしておいてください。控えを忘れると自分がログインできなくなります。
プラグインの設定仕様は変更されることがあるため、最新の動作は公式サイトで確認してください。
優先度4:プラグイン・テーマを最小限&最新に保つ
WordPressの脆弱性の多くはプラグインやテーマに起因します。「入れっぱなしで使っていないプラグイン」が攻撃の入口になるケースが典型的です。
私が実践しているルールはシンプルです。
- 使っていないプラグイン・テーマは削除する(無効化だけでは不十分なケースがある)
- 更新通知が来たら早めに適用する(脆弱性修正のアップデートが含まれることが多い)
- インストール前に評価・更新日を確認する(長期間更新されていないプラグインは避ける)
「とりあえず入れる」を減らすと、管理コストも下がります。必要なものだけを入れて、こまめに更新する。これだけです。
優先度5:管理者パスワード&ユーザー名の強化
基本中の基本ですが、意外と抜けているポイントです。
- パスワードは20文字以上のランダム文字列:パスワードマネージャー(1PasswordやBitwardenなど)で生成・管理するのが現実的
- ユーザー名を「admin」にしない:インストール時に使ってしまった場合は新しい管理者アカウントを作って旧アカウントを削除
- 投稿者スラッグをユーザー名と分離する:WordPressではデフォルトで
/?author=1でユーザー名が外部に見えるケースがあります。投稿者のスラッグをニックネームにしてユーザー名を隠す設定(「Edit Author Slug」などのプラグイン)を入れておくと安心です
ユーザー名の露出については、テーマや設定によって挙動が異なるため、自分のサイトの状態を実際に確認することをおすすめします。
優先度6:常時SSL(https)化
今や当然の設定ですが、古いサイトや移行後の設定漏れで http:// のままになっているケースがあります。
SSL化はデータの暗号化だけでなく、ログイン情報の平文送信を防ぐ意味でもセキュリティの基本です。Googleの検索評価にも影響します。
手順は WordPress初期設定チェックリスト にまとめているので、まだ対応していない方はあわせて確認してください。多くのサーバーでは無料のSSL証明書(Let’s Encrypt)が使えます(サーバーによって手順が異なるため、利用しているサーバーの公式ドキュメントで確認を)。
優先度7:信頼できるサーバーを選ぶ
ここまで紹介した対策はWordPress側での施策ですが、サーバー自体のセキュリティも重要です。
当サイトは ConoHa WING を使っています(ConoHa WINGの正直レビューに詳細を書いています)。サーバー側でWAF(Web Application Firewall)が標準提供されており、WordPress側の設定だけでは防ぎにくいレイヤーの攻撃もある程度フィルタリングしてくれます。
自分でWAFを一から設定するのはハードルが高いので、サーバー側でカバーしてくれる環境を選ぶのは合理的な選択だと思っています。
→ ConoHa WINGの公式サイト(料金・スペックは公式で最新情報を確認してください)
まとめ:7つの対策を優先度順に
- 2FA(二段階認証)の導入:リカバリーコードの保管を忘れずに
- 自動バックアップ:ファイル+DB、サーバー外保存、スケジュール設定
- ログイン保護:URL変更・画像認証・試行回数制限
- プラグイン・テーマを最小限&最新に:使わないものは削除
- パスワード&ユーザー名の強化:投稿者スラッグの分離も
- 常時SSL化:https未対応のサイトは早めに対応を
- 信頼できるサーバー選び:WAFをサーバー側でカバー
「これをやれば絶対安全」とは言えませんが、この7つを入れることでリスクを大きく下げられます。特に1〜3は優先度が高いので、まだ未対応のものがあれば先に入れることをおすすめします。
ブログ運営に関する初期設定の全体像は WordPress初期設定チェックリスト でまとめています。あわせて参考にしてください。
【PR】 本記事はアフィリエイトプログラムを通じた広告リンクを含みます。