セキュリティ対策

初心者でも簡単にできる「WordPressのセキュリティ対策」の実践例を紹介します。

WordPressのセキュリティ対策は、様々な方法がありますが、この記事で紹介する方法が一番簡単に導入できます。この手順で進めれば、初心者でも簡単にWordPressのセキュリティ対策の設定を完了できます。

概要を説明すると、まずはじめにレンタルサーバーに用意されているセキュリティ対策の機能を活用します。それに加えて、「SiteGuard WP Plugin」のプラグインを利用してセキュリティ対策を強化します。

ちなみに、レンタルサーバーは「エックスサーバー」での利用を想定して記事を書いていますが、同じような共用レンタルサーバーであれば、他のレンタルサーバーを利用しても問題ありません。

はじめに

この記事で紹介しているセキュリティ対策の設定を行うと、下記の効果が期待できます。
複雑な設定は不要なので、WordPressの初心者でも導入できます。

強化できるセキュリティ対策

  • 国外サーバーから投稿される迷惑なコメントスパム・トラックバックを拒否する。
  • WP管理画面に不正ログインを試している不明な接続元を一定期間ロックして拒否する。
  • WordPressの管理ディレクトリに格納されているファイルへのアクセスを制限できる。ログインしていない不明なユーザーからのアクセスを全て拒否する。
  • ログイン画面のURLを変更して、不正ログインを試みてくる攻撃を受けにくくする。
  • ログイン画面のログインエラーの情報を記録して、不正ログインを試している不明な接続元の存在を把握しやすくする。
  • それでも、何度も不正アクセスを試みてくる場合は、アクセス拒否設定に接続元のIPアドレスを指定してアクセス拒否する。

セキュリテイ対策の重要性

重要

WordPressは、日本でも海外でも非常に人気のあるコンテンツ管理システム(CMS)です。利用者が非常に多いので、それを悪用しようとする悪者も非常に多いのが現実です。

それらの殆どが海外からの不正利用を目的としたアクセスです。Webサイトの脆弱性をスキャンし、何かセキュリティ面の弱点を発見したら、それを利用してWebページを改ざんしたり、WordPressの管理者権限を乗っ取ったりすることがあります。

WordPressをセキュリティ対策を何もとらずに利用していると、様々な危険に晒されたままの状態になり、非常に危険です。

この記事で紹介するプラグインやレンタルサーバーの機能を活用し、WordPressのセキュリテイを向上させましょう。

最近よくある被害
  1. 海外の何者かによるWordPressの管理者権限の乗っ取り。
  2. ブログ記事の改ざん。
  3. ブログのコメントフォームにコメントスパムが大量に投稿される。

Akismetも併用する

WordPressに最初からインストールされている「Akismet」のスパムフィルターも併用して運用しましょう。それもセキュリティ対策の一つです。

迷惑なコメントスパムやトラックバックをフィルタリンクした方がWordPressを快適に運用できます。

レンタルサーバーのセキュリティ対策

エックスサーバーを利用する場合

エックスサーバー

エックスサーバーを利用している場合は、サーバーパネルに「WordPressセキュリティ設定」があります。

殆どの機能が初期状態からONになっていますが、
「コメント・トラックバック制限設定」は初期状態はOFFに設定されています。
設定をONに変更しておきましょう。

この機能を利用すると、国外のIPアドレスからのコメント・トラックバックを制限することができます。
迷惑なコメントスパムや無関係のトラックバックは、海外のサーバーから送信される場合が多いです。

セキュリティ対策を何もしないと、最悪の場合、WordPressの管理者権限を乗っ取られたり、
記事が「改ざん」され、詐欺目的のフィッシングサイトへのリンクを張られたりする場合もあります。
それらをサーバー側で制限することにより、WordPressのセキュリティを強化します。

強化できるセキュリティ対策
  • ダッシュボード アクセス制限
  • XML-RPC API アクセス制限
  • REST API アクセス制限
  • ログイン試行回数制限設定
  • 大量コメント・トラックバック制限
  • 国外IPアドレスからのコメント・トラックバック制限
  • WAF設定
  • アクセス拒否設定
サーバーパネル

「WordPressセキュリティ設定」をクリックします。
設定内容は必要に応じて調整してください。
ちなみに、「アクセス拒否設定」「WAF設定」は別ページに別れています。

サーバーパネル

国外IPアクセス制限設定

国外からの不正なアクセスを遮断する機能です。
設定が「ON」になっているのを確認してください。

国外IPアクセス制限設定

ログイン試行回数制限設定

何度もログインエラーを繰り返すアクセスを遮断する機能です。
設定が「ON」になっているのを確認してください。

ログイン試行回数制限設定

コメント・トラックバック制限設定

コメント・トラックバックを制限する機能です。
設定が「ON」になっているのを確認してください。

コメント・トラックバック制限設定

アクセス拒否設定

何度も不正アクセスを試みてくる場合は、アクセス拒否設定に接続元のIPアドレスを指定してアクセスを遮断することができます。

ブログの脆弱性をスキャンしてくるアクセスを遮断するのに役立つ機能です。

アクセス拒否設定

WAF設定

不正なアクセスを検知して遮断できる機能を利用できます。
この機能は必要に応じて機能をON・OFFを切り替えて運用できます。

WAF設定

プラグインを利用してセキュリティを強化する

SiteGuard WP Plugin

SiteGuard WP Plugin

SiteGuard WP Pluginは、WordPressの管理画面に対して不正ログインを試みる攻撃から防御することに特化したセキュリティ対策のプラグインです。

ブルートフォース攻撃、パスワードリスト攻撃など、WordPressの管理画面に不正にログインを試みる攻撃や、コメントスパムを受けにくくするための機能が搭載されています。

画像認証の文字は「ひらがな」と「英数字」から選択できます。
ひらがなによる画像認証は、日本語が分からない外国人には突破困難なので、セキュリティ対策として役に立ちます。

このプラグインは日本の企業が開発・運用しています。
プラグインの管理画面やオンラインマニュアルが全て日本語表記です。

難しい初期設定などはありません。初心者でも安心して利用できます。

信頼性

このプラグインは「CPI(KDDIグループ)、ロリポップ(GMOグループ)」のレンタルサーバーでもWordPressのセキュリティ対策のプラグインとして採用されています。

運用実績もあり、信頼性が確かなプラグインです。

強化できるセキュリテイ対策
  • WordPress管理画面にログインしていない状態のユーザーからのアクセスを制限できる。
  • WordPress管理画面の接続履歴を記録・閲覧できる。
  • ログイン画面のURLを変更できる。
  • ログイン画面、コメントの投稿画面に画像認証を追加できる。
  • ログイン画面のエラーメッセージの表示を無効化できる。
  • ログイン失敗を繰り返す接続元を一定期間ロックできる。
  • ログイン時に管理者にメールで通知ができる。
  • 正しいログイン情報を入力しても、1回目はログインを意図的に失敗させる。
    2回目の入力でログインが成功するように変更できる。
  • 「ピンバック」「XMLRPC」の機能を無効化して悪用を防げる。
  • WordPress本体、WPプラグイン、WPテーマの更新が必要になった場合に、管理者にメールで通知。
インストール方法

管理画面から検索してインストールして下さい。
もしくは「wordpress.org」からダウンロードし、アップロードしてインストールして下さい。

  1. WordPress管理画面 > プラグイン > 新規追加 >「SiteGuard WP Plugin」で検索
  2. 「wordpress.org」からダウンロード
使用上の注意点

このプラグインをインストールして有効化すると、自動的にログイン画面のURLが変更されます。
管理画面の「SiteGuard > ログインページ変更」をクリックして、新しいログインページを確認してブックマークしてください。

また、新しいログイン画面のURLが記載されたメールが管理者のメールアドレス宛に送信されますのでご確認ください。

メール件名「WordPress: ログインページURLが変更されました」

公式オンラインマニュアル

プラグインの設定

「SiteGuard WP Plugin」のプラグインを利用すると、難しい設定を行うことなく、WordPressのセキュリティを簡単に強化できます。

メニュー

SiteGuard WP Plugin

ダッシュボード

ダッシュボードで機能の有効化の状態が分かります。
機能が「ON」になると、チェックリストの画像が「緑色」に変わります。

ダッシュボード

ログイン履歴

WP管理画面のログインまたはログインエラーの履歴を確認できます。
初期状態はまだ履歴がありません。プラグインを有効化した後からログイン情報が記録されるようになります。

定期的にログイン履歴を確認する必要があります。
特に注意する必要がある情報は、ログインの結果が「失敗」や「ロック」となっている履歴です。
もし、その履歴がある場合は、あなたのWebサイトに対して、何者かが機械的に不正ログインを試している可能性があります。

その場合は、このプラグインの機能を利用してセキュリティを強化しましょう。

ログインエラーが発生している例

ログイン履歴

管理ページアクセス制限

WP管理画面のディレクトリ(/wp-admin/)に格納されているファイルに対して、アクセス制限をかけることができます。
ログインしていない接続元はファイルへのアクセスが制限されます。

この機能を「ON」に設定して運用することを推奨します。

管理ページアクセス制限

ログインページ変更

WordPressのログイン画面のURLを自由に変更できます。
新しいログイン画面のURLはメールで通知されます。
忘れないようにWebブラウザのお気に入りを変更しておきましょう。

ログイン画面のURLは、初期設定のままで運用するとURLが同じなので、ログイン画面のURLが推測されやすい問題があります。
ログイン画面のURLを変更することで、機械的に不正ログインを試してくる攻撃から防御する効果が期待できます。

この機能を「ON」に設定して運用することを推奨します。

ログインページ変更

URLの変更例
変更前 https://xxxxx.com/wp-login.php
変更後 https://xxxxx.com/login_5桁の乱数

画像認証

ブログのコメント欄に「画像認証」を追加することができます。
ブログに迷惑なコメントスパムが投稿されて困っている場合は、コメント欄に「画像認証」を追加するとコメントスパムを減らす効果を期待できます。

ブログにコメントを投稿する場合は、画像に表示された文字を入力する必要があります。
画像認証は「ひらがな」「英数字」が用意されています。
特に「ひらがな」の文字は海外の人やツールでは入力が困難です。
海外からのコメントスパムの投稿を減らすことができます。

この機能を「ON」に設定して運用することを推奨します。

画像認証

ひらがなの画像認証の例

ひらがなの画像認証の例

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

ログイン画面でログインエラーが発生した場合、常に同じエラーメッセージを表示します。

エラーメッセージが常に同じなので、何を間違ったか分かりにくくなります。
ユーザー名の存在を外部から調査されるのを防ぐ効果があります。

この機能を「ON」に設定して運用することを推奨します。

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

ログインロック

機械的に連続して不正ログインを試す攻撃をロックして防御することができます。
「ブルートフォース攻撃」や「パスワードリスト攻撃」を防ぐ効果があります。

「期間」「回数」「ロック時間」などのロックが動作する条件は必要に応じて調整することができます。

この機能を「ON」に設定して運用することを推奨します。

ログインロック

用語説明
ブルートフォース攻撃
(総当たり攻撃)
存在するパスワードのパターンを全て試して、アカウントの乗っ取りを試みる攻撃のことです。
推測されやすい単純なパスワードを利用している場合に被害に遭いやすい傾向があります。
パスワードリスト攻撃 流出した大量のパスワードのリストなどを利用して、アカウントの乗っ取りを試みる攻撃のことです。
複数のWebサイトで同じパスワードを使い回している場合に被害に遭いやすい傾向があります。

ログインアラート

WP管理画面にログインがあった場合、管理者にメールで通知します。
ログインがあれば常に通知されます。

正規の管理者以外で不正にログインしている人がいる場合、不正ログインを発見しやすくするための機能です。この機能の利用は、必要に応じて活用しましょう。

ログインアラート

フェールワンス

ログイン画面に正しいログイン情報を入力しても、1回目は必ずエラーを返します。
2回目にログインが成功します。この機能は「リスト攻撃」を受けにくくする効果があります。

例えば、「ログイン履歴」に不正なログインエラーの記録が多数残っている場合に役に立つ機能です。
1回目の入力が常にエラーを返すので、不正ログインを試す攻撃を防ぐ効果があります。

この機能は「ログインロック」の機能と合わせて利用すると効果的です。必要に応じて活用しましょう。

フェールワンス

XMLRPC防御

「ピンバック」または「XMLRPC」全体の機能を無効化します。
「xmlrpc.php」の機能を無効化することで悪用を防ぎ、セキュリティを強化できます。

近年、この機能が悪用される場合が多く、WordPressの「ピンバック」や「XMLRPC」の機能を利用していない場合は、機能を無効化しておくことをお勧めします。

XMLRPC防御

用語解説
ピンバック ブログの記事内で外部に対してリンクを貼ったことを相手のブログに通知する際に利用されます。
XMLRPC 外部のプラグインやアプリケーションと連携する際に利用されます。

更新通知

この機能を利用すると、WordPressの管理者はアップデートがあることをメールで知ることができます。

WordPress本体、WPプラグイン、WPテーマに新しい更新があった場合に管理者宛にメールで通知されます。
新しい更新の存在を素早く知ることにより、常に最新のWordPress環境を維持することに役立ちます。この機能は必要に応じて活用しましょう。

更新通知

WAFチューニングサポート

この機能は対応しているレンタルサーバーの環境でのみ利用できます。無理に利用する必要はありません。
一般的なレンタルサーバーにはインストールされていないので、機能を利用することができません。

WAFチューニングサポートの機能を利用するには、ApacheにWAF(SiteGuard Lite)がインストールされている必要があります。

定期的に確認すべきこと

WordPressを安全に運用する為に、不正ログインを試みようとしている悪者が存在しないかどうかを定期的に確認する必要があります。

「SiteGuard WP Plugin」の機能を活用してログインエラーの履歴を定期的に確認しましょう。

  1. WP管理画面のログイン履歴やログインエラーを確認する
  2. 定期的にパスワードを強化する
  3. 最新版のWordPressを利用する

WP管理画面のログイン履歴を確認する

WP管理画面の「ログイン履歴」は定期的に確認する必要があります。

もし、自分以外のログインやログインエラーの履歴が残っている場合は、何者かがWP管理画面に対して、不正ログインを試していることになります。
パスワードの変更やパスワードを更に強化するなどの対策が必要です。

定期的にパスワードを強化する

WordPressにログインする際に利用するパスワードは、「同じパスワードの使い回し」や「簡単に推測されそうなキーワードの組み合わせ」は絶対にやめましょう。

例えば、「admin」「guest」「test」など、推測されやすいユーザー名は絶対に避けましょう。

セキュリティを高めるアドバイスとしては、英数字だけでなく記号や演算子の文字も組み合わせて、推測されにくいパスワードにする必要があります。

最新版のWordPressを利用する

WordPress本体・WPプラグイン・WPテーマは、「機能拡張」「セキュリティ強化」「最新のWebサーバーやPHPの環境に対応」の為に定期的にアップデートされます。
定期的に更新して最新の状態を保つ必要があります。

注意点としては、WPプラグイン・WPテーマによっては、開発が停止され「2年以上更新されていない」ものも存在します。開発停止や古いバージョンのものは、最新の環境に対応できていないので、利用しないことをお勧めします。

注意点

鎖国の弊害がないかを確認する

海外のIPアドレスからの接続を遮断(鎖国)すると、迷惑なコメントスパムが殆ど無くなりますが、海外からのコメント・トラックバックも遮断してしまう弊害もあります。

もし、海外からの利用者が多い場合は「Facebookコメントプラグイン」などの外部システムと連携させてコメントを表示させることを検討してみましょう。

まとめ

多くのレンタルサーバーでは、WordPressに特化したセキュリティ対策の機能が標準で用意されている場合が多いです。
まずは、それらのレンタルサーバーに用意されているセキュリティ対策の機能を活用しましょう。

それに加えて、「SiteGuard WP Plugin」のプラグインを利用してセキュリティ対策を強化することをお勧めします。
可能であれば、この記事で推奨と書いた機能は利用することをお勧めします。

この記事で紹介した方法を利用すれば、難しい設定は不要なので、初心者でも簡単にWordPressのセキュリティを強化することができます。