WordPressではセキュリティ対策を実施することがとても重要です。

 

WordPressは有名なコンテンツ管理ツール(CMS)でもあるのでセキュリティ被害も多く、何も対策をしないでほったらかしにしておくと、自身のブログサイトがマルェアに侵されているなんてことにもつながりかねません。

 

せっかく時間を掛けて構築したブログサイトですので、やはりきちんとセキュリティ対策を実施しておくことをおすすめします。

 

今回はWordPressのセキュリティ対策第一弾として、「iThemes Security」というプラグインを使用して実際にセキュリティ対策を実施していきたいと思います。

 

「iThemes Security」プラグインでできる主なセキュリティ対策としては、セキュリティ診断やコメントスパム遮断及びサイトSSL化などが主な機能となります。

 

そもそもなぜこのプラグインを使用するのかを知りたい方は以下を参照してください。

 

この記事では以下のような方に読んでいただけると参考になると思います。

この記事はこんな方におすすめ
  • WordPressのセキュリティ対策にはどういったことが必要かを知りたい方
  • 「iThemes Security」プラグインを導入したいがどの様な設定があるかを知りたい方
  • 「iThemes Security」をインストールしたが、設定方法がよくわからない方

 

それでは順を追って説明していきたいと思います。

 

■目次(読みたいタイトルをタップ、クリックすることで移動できます)

iThemes Securityによってセキュリティ対策を実施する手順

 

まずは「iThemes Security」プラグインを導入して設定することによって、セキュリティ対策を実施するまでの手順をご説明したいと思います。

手順1:「iThemes Security」の有効化

手順2:「iThemes Security」の設定

手順3:「iThemes Security」の運用

 

各手順の詳細説明

 

それではそれぞれの手順について詳細に説明していきます。

 

「iThemes Security」の有効化

 

プラグイン管理画面から「iThemes Security」プラグインを有効化します。

iThemes Securityプラグインの有効化画面
iThemes Securityプラグインの有効化画面

 

「iThemes Security」の設定

 

プラグイン管理画面から「iThemes Security」の管理画面を表示します。

iThemes Securityプラグインの管理画面へのリンク画像
iThemes Securityプラグインの管理画面へのリンク画像

「iThemes Security」の管理画面から各種セキュリティの設定を実施します。

iThemes Securityプラグインの設定画面その1
iThemes Securityプラグインの設定画面その1
iThemes Securityプラグインの設定画面その2
iThemes Securityプラグインの設定画面その2

 

グローバル設定

iThemes Security が提供する多くの機能の動作を設定できます。

iThemes Securityプラグインのグローバル設定画面その1
iThemes Securityプラグインのグローバル設定画面その1
ファイルへの書き込み

wp-config.phpと.htaccessへiThemes Securityが書き込みできるようにするかどうかを設定できます。

ファイル書き込みできる方が運用的に楽なのでチェックボックスにチェックを入れて有効化します。

ホストのロックアウトメッセージ

コンピュータ(ホスト)がロックアウトされた際のメッセージを設定できます。

このテキストボックスに記載されたメッセージが表示されます。

こだわりはないので、デフォルトのままとします。

Themes Securityプラグインのグローバル設定画面その2
Themes Securityプラグインのグローバル設定画面その2
ユーザーのロックアウトメッセージ

アカウント(ユーザー)がロックアウトされた際のメッセージを設定できます。

このテキストボックスに記載されたメッセージが表示されます。

こだわりはないので、デフォルトのままとします。

コミュニティのロックアウトメッセージ

送信元のIPアドレスが脅威としてフラグ指定された際のメッセージを設定できます。

このテキストボックスに記載されたメッセージを表示します。

こだわりはないので、デフォルトのままとします。

Themes Securityプラグインのグローバル設定画面その3
Themes Securityプラグインのグローバル設定画面その3
違反者のブラックリスト

このチェックボックスをオンにすると、問題のあるコンピュータのIPアドレスが、以降で設定されているロックアウトの数に達した後、”禁止ユーザー” のブラックリストに追加されるかどうかの設定です。

ブラックリストに追加したいのでチェックボックスにチェックを入れて有効化します。

ブラックリストのしきい値

ブラックリストに登録されるまでのロックアウトの回数を設定できます。

デフォルトのまま「3」回としています。

ブラックリスト解除までの期間

ブラックリスト入りに登録されるまでの期間を設定できます。

デフォルトのまま「7」日としています。

ですので7日間の間に3回ロックアプトされるとブラックリストに登録されます。

ロックアウトの期間

ロックアウトされてから解除されるまでの時間を設定できます。

デフォルトのまま「15」分としています。

Themes Securityプラグインのグローバル設定画面その4
Themes Securityプラグインのグローバル設定画面その4
ロックアウトのホワイトリスト

ロックアウトから除外したいIPアドレスを設定できます。

固定のグローバルIPアドレスを使用している場合はホワイトリストに登録しておいてもいいかと思いますが、一般の家庭ではグローバルIPアドレスは固定されていません。

自分の環境でグローバルIPアドレスは固定されていないため、何も設定しないでおきます。

Themes Securityプラグインのグローバル設定画面その5
Themes Securityプラグインのグローバル設定画面その5
ログタイプ

イベント等のログをどこに保管するのかを設定できます。

「データベースのみ」か「ファイルのみ」か「両方」を選択できます。

ログ容量がかさばらないように、デフォルトのまま「データベースのみ」としています。

データベースのログを保存する日数

データベースのログを保存する日数を設定できます。

60日もいらないとは思いますが、とりあえずデフォルトのまま「60」日としています。

データの追跡を許可

プラグインの使用状況を匿名データとして開発元に送信するかどうかの設定です。

余計な通信が発生するので、チェックボックスにチェックを入れないでおきます。

プロキシ検出をオーバーライド

プロキシのIP検出を無効にするかどうかの設定です。

プロキシは使っていませんが、特に無効にする必要もないためチェックボックスにチェックを入れないでおきます。

管理バーのセキュリティメニューを非表示

WordPressの管理画面上部のセキュリティメニューを非表示にするかどうかの設定です。

表示しておきたいので、チェックボックスにチェックを入れないでおきます。

Themes Securityプラグインのグローバル設定画面その6
Themes Securityプラグインのグローバル設定画面その6
エラーコードの表示

エラーコードを表示するかどうかの設定です。

特に運用に問題がない場合は、「No(Default)」を選択します。

設定を保存

「設定を保存」ボタンをクリックして、設定を保存します。

 

Notification Center

運用や設定の注意喚起情報をEメールでお知らせする設定です。

Themes SecurityプラグインのNotification Center設定画面その1
Themes SecurityプラグインのNotification Center設定画面その1
From Email

送信元のEメールアドレスを設定できます。

テキストボックスを空白のままとすると、WordPressの管理用メールアドレスが指定されます。

Default Recipients

デフォルトでどのユーザーにEメールを送信するかを設定できます。

「All 管理者 users」にチェックを入れて、全管理者に送信を行います。

File Change

ファイル変更のチェックを実施した結果をEメールで通知するかどうかの設定ができます。

有効

有効化するためチェックボックスにチェックを入れます。

Subject

題名を設定できます。

こだわりはないので、デフォルトのままとしています。

Recipient

「Default Recipients」を選択して、全管理者にお知らせします。

Themes SecurityプラグインのNotification Center設定画面その2
Themes SecurityプラグインのNotification Center設定画面その2
Security Digest

セキュリティダイジェストをEメールで通知するかどうかの設定ができます。

有効

有効化するためチェックボックスにチェックを入れます。

Subject

題名を設定できます。

こだわりはないので、デフォルトのままとしています。

Schedule

送信期間を設定できます。

一応「毎日」としていますが、うっとうしい場合は「Weekly」としてもいいと思います。

Recipient

「Default Recipients」を選択して、全管理者にお知らせします。

Site Lockouts

サイトがロックアウトされた際にEメールで通知するかどうかの設定ができます。

有効

有効化するためチェックボックスにチェックを入れます。

Subject

題名を設定できます。

こだわりはないので、デフォルトのままとしています。

Recipient

「Default Recipients」を選択して、全管理者にお知らせします。

設定を保存

「設定を保存」ボタンをクリックして、設定を保存します。

 

404の検出

大量の404エラーを取得しているユーザーを検出してロックアウトする設定です。

Themes Securityプラグインの404の検出設定画面その1
Themes Securityプラグインの404の検出設定画面その1
404エラーを記録する分数(指定した周期でチェック)

404エラーを記憶し、ロックアウトまでの猶予時間を分数で指定します。

デフォルトのまま「5」分としています。

しきい値のエラー

ロックアウトするまでのエラー数を指定します。

デフォルトのまま「20」エラーとしています。

ですので、5分間に20エラーしたユーザーがロックアウトされます。

 

Themes Securityプラグインの404の検出設定画面その2
Themes Securityプラグインの404の検出設定画面その2
404ファイル/フォルダのホワイトリスト

通常の404エラーファイルやフォルダを除外設定できます。

特に除外設定したいファイルやフォルダがないためデフォルトのままとしています。

無視するファイルの種類

404エラーとして記録されるが、ロックアウトしないファイルの種類を設定できます。

特に無視する設定をしたいファイルの種類はないため、デフォルトのままとしています。

設定を保存

「設定を保存」ボタンをクリックして、設定を保存します。

 

退席中モード

スケジュールによってWordPressの管理画面へのアクセスを無効にします。

自分はWordPressの管理時間をこれといって決めていないため、有効化していません。

スケジュールによってアクセス制限をしたい場合は設定したほうがいいでしょう。

 

禁止ユーザー

この機能を使用すると、サイト側からホストもしくはユーザーエージェントで禁止することが可能となります。以下の設定項目でIPアドレスやユーザーエージェントをもとに、サイトへのアクセスを遮断します。

Themes Securityプラグインの禁止ユーザー設定画面その1
Themes Securityプラグインの禁止ユーザー設定画面その1
デフォルトのブラックリスト

HackRepair.comというサイトのブラックリスト機能を利用するかどうかの設定です。

有効にすると上記サイトでブラックリストに登録されているIPアドレスやユーザーエージェントを禁止することが可能となります。

ただ、サイトとのデータやり取りが発生するため、運用上特に問題が発生していない段階では有効としたい設定とします。

禁止リスト

禁止リストを有効化するかどうかの設定です。

特に登録するIPアドレスやユーザーエージェントはいないのですが、デフォルトのまま有効としておきます。

Themes Securityプラグインの禁止ユーザー設定画面その2
Themes Securityプラグインの禁止ユーザー設定画面その2
禁止ホスト

禁止リストで禁止したいIPアドレスを登録します。

特にはないのでテキストボックスは空白のままとしています。

Themes Securityプラグインの禁止ユーザー設定画面その3
Themes Securityプラグインの禁止ユーザー設定画面その3
ユーザーエージェントの禁止

禁止リストで禁止したいユーザーエージェントを登録します。

特にはないのでテキストボックスは空白のままとしています。

設定を保存

「設定を保存」ボタンをクリックして、設定を保存します。

 

コンテンツディレクトリの変更

コンテンツディレクトリの名称を変更することがこの設定により可能です。

デフォルトのWordPressではプラグイン、テーマおよびアップロードしたファイルを wp-contentというディレクトリに保存します。

この「wp-content」を違う名称に変更することで、コンテンツディレクトリのURLを推測されないようにすることができます。

ただ、コンテンツディレクトリ名称を変更することによって、プラグインやテーマの動作で不具合が発生する可能性があります。

プラグインやテーマへの影響を考慮して、今回は設定はしないこととします。

 

データベーステーブルのプレフィックス(接頭辞)の変更

デフォルトのWordPressでは、データベース内すべてのテーブルに wp_接頭辞を割り当てています。

この機能は使わずにレンタルサーバーの導入時に変更することとして、設定変更は実施しないこととします。

 

データベースのバックアップ

データベースのバックアップを実施するかどうかの設定となります。

自分は別途バックアップ専用のプラグインを使用しているので、有効化しません。

 

ファイル変更の検出

ファイル変更の検出に関する設定を行います。

Themes Securityプラグインのファイル変更の検出設定画面その1
Themes Securityプラグインのファイル変更の検出設定画面その1
ファイルとフォルダの一覧

ファイル変更の検出を除外するファイルやフォルダを設定できます。

除外するファイルはないので何も設定していません。

無視するファイルタイプ

ファイル変更の検出を無視するファイルタイプを登録できます。

特に無視するファイルタイプはないため、デフォルト設定のままとします。

ファイルの変更管理の警告を表示

WordPressの管理画面に警告を表示するかどうかの設定です。

表示がじゃまであれば表示しない設定にするといいと思います。

分かりやすいようにチェックリストにチェックを入れて有効にしています。

設定を保存

「設定を保存」ボタンをクリックして、設定を保存します。

 

ファイルのパーミッション

ファイルのパーミッション状態を確認できますが、特に設定項目はないためここでは説明を割愛します。

ファイルパーミッションの推奨値通りになっているかを確認できますが、推奨値が結構シビアなファイルもあるので、参考程度でいいと思います。

 

バックエンドの非表示

ログインページ (wp-login.php, wp-admin, admin, およびログイン) を非表示にする設定です。

自分は別のプラグインを使用してこの機能を実現しているので、バックエンドの非表示は無効にしています。

 

ローカルのブルートフォース保護

サイトにランダムでログイン情報を推測しようとする攻撃からサイトを保護する設定です。

iThemes Securityプラグインのローカルのブルートフォース保護設定画面その1
iThemes Securityプラグインのローカルのブルートフォース保護設定画面その1
ホスト単位での最大ログイン試行回数

ホスト単位で、ユーザーが許されるログイン試行回数を設定できます。

ここではデフォルトのまま5回としています。

ユーザー単位での最大ログイン試行回数

ユーザー単位で、ユーザーが許されるログイン試行回数を設定できます。

ここではデフォルトのまま10回としています。

ですので、あるホストで5回失敗しても端末を変えればあと5回はログイン試行できることになります。

不正ログインを記録する分数(指定した周期でチェック)

不正ログインを記録しる分数を指定できます。

デフォルトのまま5分としています。

ですので、5分間はいくら失敗しても一回としてカウントされます。

自動的に “admin” ユーザーを禁止

adminユーザーを使用した場合はそのホストを即座に禁止します。

チェックボックスにチェックを入れて有効にします。

設定を保存

「設定を保存」ボタンをクリックして、設定を保存します。

 

ネットワーク・ブルートフォース保護

インターネット上の悪意ある者に対して報告と保護を行う設定を行います。

ネットワークのブルートフォース保護では、他サイトに侵入しようとしたユーザーを禁止することにより、事前にサイトの保護が可能となります。

iThemes Securityプラグインのネットワークのブルートフォース保護設定画面
iThemes Securityプラグインのネットワークのブルートフォース保護設定画面
API キー

APIキーを用いてネットワークサイトと連携を行います。

文字列が記載されていると思いますが、デフォルトのままとします。

報告された禁止 IP

ネットワーク上で問題として報告されたIPを自動的に禁止します。

チェックボックスにチェックを入れて有効にします。

設定を保存

「設定を保存」ボタンをクリックして、設定を保存します。

 

Password Requirements

強力なパスワードの使用をユーザーに強要する設定です。

iThemes Securityプラグインのパスワード要求設定画面
iThemes Securityプラグインのパスワード要求設定画面
有効

チェックボックスにチェックを入れて有効にします。

Minimum Role

ユーザーが強力なパスワードを選択する必要のある最小役割を選択します。

デフォルトのまま管理者を選択します。

設定を保存

「設定を保存」ボタンをクリックして、設定を保存します。

 

SSL

サイトをSSL化する設定です。

iThemes SecurityプラグインのSSL設定画面
iThemes SecurityプラグインのSSL設定画面
Redirect All HTTP Page Requests to HTTPS

HTTPでアクセスして来たURLをHTTPSへリダイレクトするかどうかの設定です。

「有効」と「上級者モード」と「Disabled」が選択できます。

上級者モードでは、フロントページと管理者ページをそれぞれSSL化するかどうかを設定できます。

Disabledでは、全てをSSL化しません。

ここでは全てをSSL化したいので、有効を選択します。

ここで設定すれば.htaccess等の設定は不要となります。

とても簡単ですね。

設定を保存

「設定を保存」ボタンをクリックして、設定を保存します。

 

システムの微調整

WordPress サイトのセキュリティを、さらに強化するための高度な設定ができます。

iThemes Securityプラグインのシステムの微調整設定画面
iThemes Securityプラグインのシステムの微調整設定画面
システムファイル

readme.html, readme.txt, wp-config.php, install.php, wp-includes, および .htaccess への一般公開を防止します。

チェックボックスにチェックを入れて有効にしています。

ディレクトリの参照

インデックスファイルがまったく存在しない場合、ディレクトリ内のファイルリスト参照をユーザーから防止します。

チェックボックスにチェックを入れて有効にしています。

リクエストメソッド

トレース、削除、または追跡リクエストのメソッドでヒットを除外します。

チェックボックスにチェックを入れて有効にしています。

不審なクエリ文字列

URL 内の不審なクエリ文字列をフィルタリングします。

チェックボックスにチェックを入れて有効にしています。

英語以外の文字

英語以外の文字をフィルタリングします。

使用しているテーマが日本語のURLを使用しているため不具合が発生しました。

チェックボックスにチェックを入れないままとしています。

 

iThemes Securityプラグインのシステムの微調整設定画面その2
iThemes Securityプラグインのシステムの微調整設定画面その2
長い URL 文字列

長い URL の文字列をフィルタリング

チェックボックスにチェックを入れて有効にしています。

ファイルの書き込み権限

スクリプトやユーザーからwp-config.phpファイルや.htaccessファイルへ不正に書き込む行為を禁止します。

他のプラグインから書き換えたいので、チェックボックスにチェックを入れないままとしています。

アップロード内のPHP

アップロードディレクトリでPHPの実行を無効にします。

PHPを利用する可能性があるため、チェックボックスにチェックを入れないままとしています。

プラグイン内の PHP

プラグインディレクトリで PHP の実行を無効にします。

PHPを利用する可能性があるため、チェックボックスにチェックを入れないままとしています。

テーマ内の PHP

テーマディレクトリで PHP の実行を無効にします。

PHPを利用する可能性があるため、チェックボックスにチェックを入れないままとしています。

設定を保存

「設定を保存」ボタンをクリックして、設定を保存します。

 

WordPress のソルト(暗号化する際に付与されるデータ)

WordPress サイトのセキュリティ強化で使用するシークレットキーを更新します。

シークレットキーを変更する必要はないため、チェックボックスにチェックを入れないままとしています。

iThemes Securityプラグインのsalt設定画面
iThemes Securityプラグインのsalt設定画面

WordPress の微調整

WordPress サイトのセキュリティを、さらに強化するための高度な設定ができます。

iThemes SecurityプラグインのWordPress の微調整設定画面その1
iThemes SecurityプラグインのWordPress の微調整設定画面その1
Windows Live Writer のヘッダー

Windows Live Writer のヘッダーを削除します。

チェックボックスにチェックを入れて有効にしています。

URI ヘッダーの編集

RSD (Really Simple Discovery) ヘッダーを削除します。

チェックボックスにチェックを入れて有効にしています。

コメントスパム

識別されるユーザーエージェントの無い、またはリファラーを持たないボットからのコメントを拒否することで、コメントスパムを削減します。

チェックボックスにチェックを入れて有効にしています。

ファイルエディター

ファイルを変更する際に、ファイルシステムへアクセス権を持っているユーザーが必要とするプラグインやテーマのファイルエディターを無効にします。

プラグインやテーマのファイルエディターからファイル変更したいので、チェックボックスにチェックを入れないままとしています。

iThemes SecurityプラグインのWordPress の微調整設定画面その2
iThemes SecurityプラグインのWordPress の微調整設定画面その2
XML-RPC

WordPress のXML-RPC機能を利用するかどうかの設定ができます。

この設定はレンタルサーバー側で禁止設定しているので、デフォルトのまま「XML-RPC を有効」としています。

XML-RPC リクエストごとの複数の認証試行

複数のログイン試行を含むXML-RPCへのリクエストをブロックするかどうかの設定です。

こちらもデフォルトのまま、「ブロック」を選択します。

iThemes SecurityプラグインのWordPress の微調整設定画面その3
iThemes SecurityプラグインのWordPress の微調整設定画面その3
REST API

REST APIを利用するかどうかの設定です。

こちらもデフォルトのまま「制限付きアクセス」としています。

ログインエラーメッセージ

ログインのエラーメッセージを無効にするかどうかの設定です。

チェックボックスにチェックを入れないままとしています。

ユニークなニックネームを強制

ユニークなニックネームの選択をユーザーに強制するかどうかの設定です。

チェックボックスにチェックを入れないままとしています。

追加ユーザーのアーカイブを無効

投稿カウントが0の場合は、ユーザーの作者ページを無効にするかどうかの設定です。

チェックボックスにチェックを入れないままとしています。

タブナビングからの保護

タブナビングから保護するために target=”_blank” リンクを変更するかどうかの設定です。

チェックボックスにチェックを入れないままとしています。

iThemes SecurityプラグインのWordPress の微調整設定画面その4
iThemes SecurityプラグインのWordPress の微調整設定画面その4
Login with Email Address or Username

デフォルトではWordPressのログイン画面ではEメールアドレスとユーザー名でログイン可能ですが、これをEメールアドレスのみとしたり、ユーザー名のみとしたりできます。

デフォルトのまま「Email Address and Username (Default)」としてます。

Mitigate Attachment File Traversal Attack

添付ファイルのトラバーサル攻撃を防止する設定です。

デフォルトのままチェックボックスにチェックを入れて有効にします。

設定を保存

「設定を保存」ボタンをクリックして、設定を保存します。

 

「iThemes Security」の運用

 

設定が完了した後は、iThemes Securityを運用していきます。

運用内容としては、セキュリティチェックを実施することと、マルウェアスキャンを実施することです。

セキュリティチェックについては、初期設定時や設定変更時に確認すればいいと思います。

マルウェアスキャンについては、定期的に実施することをおすすめします。

有料版ではマルェアスキャンがスケジューリングできるので、手動で実施するのが面倒くさい方は有料版を購入するといいと思います。

 

セキュリティチェックの実施

「詳細を表示」ボタンをクリックして、セキュリティチェック画面を表示します。

iThemes Securityプラグインのセキュリティチェック画面
iThemes Securityプラグインのセキュリティチェック画面

「Secure Site」ボタンをクリックするとセキュリティチェックを実施します。

iThemes Securityプラグインのセキュリティチェック結果画面
iThemes Securityプラグインのセキュリティチェック結果画面

全てがグリーンチェックで表示されていることを確認します。

グリーンチェックされていない部分は、設定を確認して対処することをおすすめします。

 

マルェアスキャンの実施

管理画面のサイドバーの右下の方にマルェアスキャンのウィジットがあります。

iThemes Securityプラグインのマルウェアスキャン画面
iThemes Securityプラグインのマルウェアスキャン画面

「ホームページのマルェアスキャン」ボタンをクリックしてマルェアスキャンを実施します。

iThemes Securityプラグインのマルウェアスキャン結果画面
iThemes Securityプラグインのマルウェアスキャン結果画面

全てがクリーンと表示されていることを確認します。

クリーン表示されていない場合は、対処が必要となります。

 

まとめ

以上でiThemes Securityを使用したセキュリティ対策の設定と運用の説明が完了となります。

設定項目は多いですが、設定さえできてしまえば特に難しいことはないと思います。

iThemes Securityでセキュリティチェックやマルェアスキャンが出来るようになるので、とても便利です。

まだ導入されていない方は、是非iThemes Securityを導入してセキュリティレベルを高めることをおすすめします。

次回は第2弾として「SiteGuard WP Plugin」を使用したセキュリティ対策をご紹介したいと思いますので、次回もお楽しみに