WooCommerce向けWordPressテーマ「Japacart(ジャパカート)」

Japacartアフィリエイトプログラムを開始しました

Wordfence は 有名な WordPress のセキュリティプラグインです。日々攻撃に遭ったWordPressサイトを調査して脅威リストを更新しています。有料版の場合はファイアウォールとマルウェアのパターンがリアルタイムに、無料版の場合は30日遅れで更新されます。
その他有料版「国ごとのブロック 」「Real-Time IP ブロックリスト」機能があります。
できれば有料版を使用するのが望ましいですが、無料版でもセキュリティ対策にかなり有効です。

Wordfenceのインストール

[プラグイン] > [新規追加] で「wordfence」で検索をしてインストールして「有効化」してください。


メールアドレスを入力して利用規約の同意チェックボックスにチェックを入れます。

Wordfence

セキュリティーアラートを受け取るメールアドレスを入力して、Wordfenceのメーリングリストを受け取る場合は「YES」、受け取らない場合は「NO」を選択して「CONTINUE」をクリックしてください。

管理画面にログインがあった場合はこのエールアドレスに毎回通知が届くようになります。


「Premium(有料)」バージョンのライセンスキーの入力欄が表示されますの。このページではひとまず無料版での設定で進めていきますので「No Thanks」をクリックします。


[Wordfence] > [Dashboard] で上部に表示されているバーから [CLICK HERE TO CONFIGURE ] をクリックします。


この後の設定で「.HTACCESS」ファイルが書きかえられますので、「DOWNLOAD .HTACCESS」ボタンを押して変更前の.HTACCESSファイルをダウンロードして保管しておきましょう。その後 [CONTINUE] を押します。


下記画面が表示されればインストール完了です。[CLOSE] を押してください。

Wordfenceではデフォルトでもある程度良い感じの設定になっているようですが、設定を変更した方が良いと思う項目についてご説明します。

ブルートフォースアタック対策の設定

ユーザーのアカウントとパスワードを解読するためにあらゆるパターンを試す(総当たり)攻撃への対策設定をします。WooCommerceではユーザーがマイアカウントページを持つことが多いと思いますので、必ず有効にして設定をしてください。

[Wordfence] > [All Options] > [Firewall Options] > [Brute Force Protection] タブで設定をします。

あらかじめWordfence側で設定がされているのですが、少し緩い気がしますので、数字を変更していきます。

Wordfence ブルートフォースアタック対策

Lock out after how many login failures

設定した回数ログインに失敗した場合に訪問者の IP からはログイン画面が利用できなくなります。IDとパスワードは時に忘れてしまうものですが(人間だもの…)、デフォルトでは20回は多い気がしますので設定例では10回に減らしています。

Lock out after how many forgot password attempts

「パスワードをお忘れですか?」のフォームを使用できる回数です。デフォルトでは20回ですが、これも多い気がしますので設定例では10回に設定しています。
あまり大きな数字を設定していると本物ユーザーの元に大量にメールが送られてしまうことになります。

Count failures over what time period

失敗としてカウントする時間の長さを設定します。
例えば5分で20回と設定した場合は5分間の間に20回失敗するとログイン画面が利用できなくなります。
デフォルトの4時間は長いのでここでは30分間で設定をしています。

Amount of time a user is locked out

ロックアウトされたユーザーの IP から再び ログインフォームが利用できるようになるまでの時間です。攻撃者に対しては長ければ長いほど、次の攻撃まで待機しなければならなくなります。設定例では12時間にしています。

レート制限ファイアウォールの設定

サイトを訪問者に対して1分間の間に許容するリクエスト数を設定していきます。
もし制限に達した場合は一時的に「503」エラーを返しブロックされます。

[Wordfence] > [All Options] > [Firewall Options] > [Rate LImiting] タブで設定をします。

画像はWordfence公式サイトの「Rate Limiting」のドキュメントを参考にした設定例です。
大体がWordfenceの推奨の設定にしておりますが、「※注意が必要」の部分は制限が厳しいように思ったため少しだけ緩めに変更しています。
この項目は404エラーが多いサイトの場合は注意が必要です(後述)。

Wordfence レート制限ファイアウォールの設定

Enable Rate Limiting and Advanced Blocking

まずレート制限を有効にするためにここが「ON」になっていることを確認してください。

How should we treat Google’s crawlers

「Googleクローラーをどう扱うか」> 「Googleクローラーだと確認されたものはレート制限を適用しない」設定にしています。

If anyone’s requests exceed…

すべてのリクエストに対するグローバル制限設定です。

If a crawler’s page views exceed…

もしクローラーが人間ではなく、ボットからのリクエストと判断された場合の設定です。
Wordfenceのおすすめは「240」ですが、サイトコンテンツを機械的に収集され悪用されているといった場合はさらに少ない数字にすることを検討ください。
※実際本サイトもコンテンツ収集の被害を受けており「120」に設定しています。

※ If a crawler’s pages not found (404s) exceed…

この項目は注意が必要です。クローラーが大量の404エラーを生成している場合に、それを脆弱性を探しているスパムとみなしブロックします。
Wordfenceによると404エラーが無い(少ない)サイトでは「30」「Block」にすることでとても有効に働きます。

ただし実際に404が多いページの場合は、正式なクロールがブロックされてしまう結果となりますので設定する前にリンク切れチェックツールを使ってサイトに404が見つからない状態にしておくことをおすすめします。
画像を多用しているサイトは画像リンク切れにも注意してください。

WordPressを日々運用しているとどうしても画像のリンク切れ(404)などが発生してしまうことがありますので、
ここでは60にしています。

If a human’s page views exceed…

もし訪問者が人間と判断された場合の設定です。Wordfenceのおすすめの「240」で設定しています。
AJAXを使用した静的ページなどの場合はもう少し大きな数字に変更したほうが良いかもしれません。

If a human’s pages not found (404s) exceed…

If a crawler’s pages not found (404s) exceed…と同様の注意が必要です

How long is an IP address blocked when it breaks a rule

上記で設定した制限に達した場合、アクセスをしてきたIPアドレスをどれくらいの時間ブロックするか。
例では5分にしていますが、もし厳しく制限する場合は24時間などにすることもできます。
ただIPアドレスが固定で無い場合、悪意のある訪問者のIPが通常の訪問者に移動する場合もありますので、長い時間に設定する場合はこの点に留意してください。

Allowlisted 404 URLs

404エラー許可リストです。ここに追加されたURLは404エラーにカウントされません。一行ずつ入力します。
「favicon.ico」や「apple-touch-icon*.png」などの画像は設定がされていないサイトもあることが考えられるため
エラーにカウントされないように最初から設定されています。

2段階認証の設定

管理画面にログインをする際に、IDとパスワード以外にもう一段階の認証を追加する方法について説明します。
まず、通常通り「ユーザー名またはメールアドレス」+「パスワード」を入力したあとに、認証アプリの一定時間で切り替わるパスワードを入力する方法です。ここではスマートフォンに「Google Authenticato‪r」をインストールして行っていきます。

Wordfence 2段階認証の設定
2段階認証

Google Authenticato‪r のインストール

Google Authenticato‪r」をアプリ検索してスマートフォンにインストールします。

Google Authenticato‪r

リカバリーコードの保存とQRコードの読み取り

[Wordfence ] > [Login Security] に移動してください。

Wordfence リカバリーコードの保存とQRコードの読み取り

リカバリーコード

リカバリーコードは認証アプリが入ったスマートフォンを紛失した場合に使用します。ダウンロードをして安全な場所に保管してください。リカバリー方法はこちら(英語)

QRコードの読み取り

Google Authenticato‪r を起動したら右下に「+」マークが出てくると思います。そこをクリックしてスキャンします。
スキャンが完了したらアプリに6桁の数字が表示されると思いますので、コード入力欄に入力し、「ACTIVATE」ボタンをクリックします。

これで設定完了です。次回のログイン時から都度コードを入力して認証を行います。

その他の設定

WordPressのバージョンを隠す

[ WordPress ] > [ All Options ] > [ Wordfence Global Options ] > [ General Wordfence Options ] タブで「Hide WordPress version」にチェックを入れてWordPressのバージョンを出力しないようにします。

Wordfence で WordPressのバージョンを隠す

Japacartテーマではセキュリティ対策として元々WordPressのバージョンは出力されない仕様となっておりますが、Wordfence側でも設定することによりスタイルシートのバージョンなどのバージョンもハッシュ化されます。

ネットショップ向けWooCommcerce対応WordPressテーマ Japacart(ジャパカート)