Wordfence WAFトラブル対応履歴(202112)

「売れる」ウェブサイトを手に入れるため、最初に知っておくべきこと
成果の出ている「売れる」ウェブサイトが持つ、5つの要素をご存じですか?ウェブサイトを作るなら、まず初めにこれを確認して下さい。
Table of Contents

運営サイト全てに導入している「Wordfence Security(以下、「Wordfence」と表記)」で、昨年末にトラブルが発生しました。海外製品だからなのか、Wordfenceのトラブル事例とその対処法の情報は少なく、対応に苦労しました。そこで、今回発生したトラブルと復旧までに行った対策についてシェアします。

トラブル内容(問題点)

◎一部ドメイン/サブドメインで、常にWAF(Web Application Firewall)の警告が出ている状況。

対象のドメインは、親ドメイン(以下、「サイトA」と表記)とサブドメイン2つ(以下、「サイトB」「サイトC」と表記)の計3サイトを運営しています。Wordfenceは全てのサイトに導入済みです。ちなみに、マルチサイトにはしていません。

Wordfenceは、WAF設定の異常を検知すると管理画面に下図のようなエラーメッセージを表示して、WAFを最適化するように要求します。

Wordfence WAF Alert1:Wordfence WAF対応履歴
Wordfence アラートメッセージ

エラーメッセージの「CLICK HERE TO CONFIGURE」ボタンをクリックすると、このようなポップアップが表示されます。

Wordfence WAF Alert2:Wordfence WAF対応履歴
Wordfence WAF 最適化画面

ここで「DOWNLOAD .HTACCESS」や「 DOWNLOAD USER.INI」ボタンをクリックしてバックアップを取得し、「CONTINUE」ボタンをクリックすれば、普通は最適化が完了します。

ところが、今回の事象では常に 「サイトA」「サイトB」「サイトC」のうち2サイトからエラーが出ている状態でした。何度対処しても、エラーは解消しませんでした。

トラブル詳細

Wordfenceを導入すると、導入したサイトごとに「wordfence-waf.php」というファイルが生成されます。Wordfenceは、「.htaccess」、「.user.ini」、または「php.ini」ファイルに生成した「wordfence-waf.php」を参照するよう設定します(サーバーにより異なる。エックスサーバーの場合は「user.ini」)。

今回の例で言えば、正しい挙動は下記の通りです。

  • サイトAの「user.ini」はサイトAの「wordfence-waf.php」を参照する。
  • サイトBの「user.ini」はサイトBの「wordfence-waf.php」を参照する。
  • サイトCの「user.ini」はサイトCの「wordfence-waf.php」を参照する。

ところが、警告が出続けているサイトを調べてみたら、3サイトとも「user.ini」の内容は全く同じでした。こんな感じです。

  • サイトAの「user.ini」はサイトCの「wordfence-waf.php」を参照する。
  • サイトBの「user.ini」はサイトCの「wordfence-waf.php」を参照する。
  • サイトCの「user.ini」はサイトCの「wordfence-waf.php」を参照する。

試しにサイトAのWAFを最適化し、その後サイトA/B/C全ての「user.ini」を確認してみました。するとサイトB/サイトCの「user.ini」もサイトAの「wordfence-waf.php」を参照するように書き換えられて(上書きされて)しまうことが分かりました。

  • サイトAの「user.ini」はサイトAの「wordfence-waf.php」を参照する。
  • サイトBの「user.ini」はサイトAの「wordfence-waf.php」を参照する。
  • サイトCの「user.ini」はサイトAの「wordfence-waf.php」を参照する。

この状況下では、正しい挙動を示すのはサイトAだけです。その結果、今度はサイトBとサイトCがエラーを出す。サイトBを修正すれば、今度はサイトAとサイトCがエラーを出す…この状況が延々と続いていました。

ちなみに、Wordfenceが「user.ini」に書き込む内容は、下記の通りです。

; Wordfence WAF
auto_prepend_file = '/home/(サーバーの第1階層)/********.com(親ドメイン)/public_html/********.com(サブドメイン)/wordfence-waf.php'
; END Wordfence WAF

対策

何度書き換えてもダメなので、正常動作している他のドメインの「user.ini」をダウンロードし、比較してみました。その結果、記載内容が異なる箇所が数か所あることを発見。

そこで正常動作しているドメインの「user.ini」をサイトA用に記述を修正、アップロードしました。この時点ではサイトB/サイトCもサイトAの「wordfence-waf.php」を参照するよう上書きされます。

次に、WordfenceでサイトBのWAFを最適化し、各サイトの「user.ini」を確認しました。すると、サイトAは上書きされず、元の情報を保ったままになりました。しかし、サイトCはサイトBの 「wordfence-waf.php」を参照するよう上書きされました。 これで、各サイトの「user.ini」に問題があることが特定出来ました。

そこで、サイトAにアップした「user.ini」をサイトB/C用に一部修正してアップロード。これでエラー表示が無くなりました。1週間ほど経過を見ましたが、エラー表示は出ておらず、WAFのステータスも正常です。よって問題解決と判断しました。

Wordfence WAF ステータス(正常):Wordfence WAF対応履歴
正常動作中のWAF。「Enabled and Protecting」と言うメッセージが表示される。

ちなみに差し替え方法は一般的な「元のファイルの名前を変更」→「新しいファイルをアップロード」→動作確認→問題なければ旧ファイルを削除…の流れです。

トラブル発生の原因(推測)

何故こんなことが起きたのか?と記憶を辿ったのですが、確実な答えは分かりません。

記憶が定かではありませんが、何度もエラーが出ていたのでWAF最適化の画面で下図の「OVERRIDE(上書き)」ボタンをクリックしたような気がします(デフォルトは「INCLUDE」)。恐らく、これが原因だと思われます。

Wordfence WAF 設定ミス?:Wordfence WAF対応履歴

また、今回の事象がトラブルだとすぐに認識出来なかった理由は、下記2点にあります。

  • 理由1:画面が真っ白になる、管理画面から締め出されるなどの致命的なエラーが発生しないこと。
  • 理由2:不具合が発生していなくても、WordfenceからWAFの最適化要求というのはたまに出るものだから。

これらの理由により、明らかな異常だと悟るまでに時間を要してしまいました。

Wordfence WAFのトラブル発生時に有効な施策

操作ミスにより発生する不具合だとすれば、2度と発生しないような対策は出来ません。なので、再発したら即復旧させるために必要なポイントをまとめておきます。

①バックアップの取得と保存。

今回の不具合を解決できたのは、正常動作している「user.ini」が手元にあったからです。つまり、バックアップさえ取っていれば問題は解決します。

正常動作しているドメイン/サブドメインの「user.ini」をバックアップし、保存しておくようにして下さい。
都度手動でバックアップを取るのは面倒なので、バックアッププラグインを使った定期取得がお勧めです。

②「auto_prepend_file」の確認

何かおかしいと思ったら、まず最初にやることは「auto_prepend_file」がどこを参照しているかの確認です。確認するには、下記の順番で進めば(クリックすれば)OKです。

  1. Wordfence の「Tools」メニューをクリック
  2. 「Diagnostics」タブをクリック
  3. 「Other Tests System configuration, memory test, send test email from this server.」をクリック
  4. 「Click to view your system’s configuration in a new window(opens in new tab)」 をクリック

すると、新しいタブ(Wordfence System Info)が起動します。

Wordfence System Infopage:Wordfence WAF対応履歴
「Wordfence System Info」起動時。右側にはシステム情報等が表示される。

起動したら「auto_prepend_file」を検索し、どのWordfence-waf.phpを参照しているかを確認します。

Wordfence System Infopage2:Wordfence WAFトラブル対応履歴
「auto_prepend_file」 欄。ここに記載されているパスをチェックする。

③不具合内容の確認と対処

参照している場所(パス)がおかしければ、ファイルマネージャー等で「user.ini」にアクセス。念の為、再度 「user.ini」に記載されている「Wordfence-waf.php」のパスを確認します。パスがおかしければ、user.iniを差し替えます。

Wordfenceダッシュボードに戻り、WAFメニューを確認しましょう。ファイルを差し替えていれば、最適化を要求されるので、最適化を行います。エラーが出なければOKです。

参考情報

Wordfence WAFの最適化に関する公式のドキュメンテーションは下記を参照下さい。

Firewall Optimization Troubleshooting:Wordfence.com

Wordfenceの概要やメリットについて知りたい場合は、下記コンテンツをご覧下さい。

Wordfence:無料で得られる4つのメリットを今すぐ活用しよう:DIY WordPress Site


集客やセールスのスピードを上げたい。精度を上げたい…とお考えなら、出来ることは自分でやるのが一番です。 全てが難しい訳ではありません。あなた自身でやれることは、想像以上に多いものです。

当サイトのコンテンツは、あなた自身が出来る内容にフォーカスしています。 これらを活用して、売れるウェブサイトを作り上げて下さい。

もし、「そう言われても、本当に自分でやれるの?」と感じているのなら…STRATEGY SUPPLIERが運営する「Output STUDIO」に参加して下さい。

「Output STUDIO」は売れるサイトを作り・育てていくための訓練場であり、コミュニティです。 興味をお持ちなら、下のボタンをクリックして詳細をご確認下さい。

Recommends
あなたのメッセージやアイディアを形にする会員制スタジオ「Output STUDIO」がオープン。 ウェブページや動画など、ターゲットに届ける最終工程をしっかり形に仕上げ、顧客や見込み客に届けることが出来ます。 集客やセールスのスピード感が高まるので、数多くの施策を打てるようになります。また、都度外注するより圧倒的に安いので、コストの有効配分にもつながります。 「Output STUDIO」は会員限定での提供となります。詳細は公式サイトでご確認下さい。
Recent posts
これは見出しです
Lorem ipsum dolor sit amet consectetur adipiscing elit dolor

Table of Contents

集客やセールスの「資産とスキル」が手に入る制作室
集客やセールスのスピードと精度を上げ、無駄なコストを抑えたいとお考えなら、STRATEGY SUPPLIERが運営する「Output STUDIO」に参加して下さい。 低コストでウェブサイトという「資産」と、構築・運用「スキル」を手に入れることが出来ます。 「Output STUDIO」は、高品質なサポートを提供するため会員制とさせて頂いており、参加人数を制限しています。 募集状況など、詳細は下のボタンをクリックしてご確認下さい。
松浦 臣吾
松浦 臣吾
マーケティングプロデューサー/コピーライター。STRATEGY SUPPLIER在籍。神奈川県在住。継続性にフォーカスしたマーケティング戦略の立案と実践を得意とする。成長し続けるビジネスの設計図「Business Design Method」を公開し、ビジネスオーナーへの精力的なサポートを行っている。
関連コンテンツ