設定ファイルの変更に不慣れな方は、「.htaccess」は慎重に

この図は、ロリッポップのサイトのヘルプページのスクリーンショットです。
アドセンス公式プラグインが原因の403エラーではないのですが、403エラーは、前回、記事にしたWAF(Webアプリケーションレベルのファイアウォール)が原因のエラーという点は共通しているので、403エラーが表示されたら、「.htaccess」というファイルを編集するか、プラグインを使うかして、問題を解決できるんだなあというイメージは掴めると思います。

6-1

今回は、「.htaccess」による除外設定について書きます。
おかしなことをやると、Webサイトが表示できなくなる可能性があります。
FTP経由での設定ファイルの変更に慣れている方なら、WAFの除外設定は数行追記するだけなので、Webサイトが表示されなくても、自分が追記した数行を削って、ファイルを元の状態に戻せば良いというだけの話なのですが、慣れてない方は、慌ててしまうかもしれないので、具体的な内容に入る前に、一応、事前の注意喚起です。

「.htaccess」を編集しなくても、プラグインを利用するという方法もあります。ただ、このプラグインは、SiteGuardというWAFのメーカーさんが配布しているので、サーバーのWAFがSiteGurardであることが前提ですし、あんまりたくさんのプラグインをインストールしたくないという方もおられると思います。一方、「.htaccess」の除外設定は、汎用性が高いので、こちらを先に記事にしました。
次回、プラグインによる設定を書くので、除外設定に興味がある方は、両方読んで、どちらにするか、選んでいただければ良いかなと思います。
ただ、今回、補足説明を入れながら、丁寧に書いたので、次回は同じ部分の補足説明はいれませんから、こちらも読んでおいていただけると、プラグインでの除外設定もほうも分かりやすいと思います。

 

除外設定するために、あえてWAFに掴まってみる

6-2
前回、Google AdSense公式プラグインを使って広告をレイアウト、設定を保存しようとすると、Webサーバー側のWAF(Webアプリケーションレベルのファイアウォール)が原因で、403エラーが表示されるという記事を書きました。
この場合。単純に該当サイトのWAFを無効化すれば保存できるということも、前回書いたのですが、WAFはセキュリティに関わるので、無効化しっぱなしという状態は、好ましくありません。
アドセンス公式プラインの変更のたびに、有効化、無効化を切り替えることもできますが、有効化したまま、アドセンス公式プラグンの変更が保存されるという状態にしたいという方もいると思います。これが除外設定です。除外設定するために、403エラーのログ情報が必要になるので、あえて403エラーに掴まってみます。

 

レンタルサーバーのサイトにログインしてWAFのログ確認

私は、ロリポップという会社のレンタルサーバーを利用しているので、ロリポップのサイトにログインして、WAFのログを確認します。
どんなレンタルサーバーでも、WAFを導入しているのなら、検知ログの確認ができるはずです。
私は、記事内容に関連した図を取りたくて何度かエラーを出しましたが、ここで表示される情報が除外設定に必要になります。

検出されたシグネチャに注目する

 

6-3

これはロリポップのWAFのログです。
上段URLの部分は、どこからアクセスされたかという情報が表示されています。このサイトの場合、〈『majyuteikoku.com』の管理画面の『設定』メニュージ表示されたグーグルアドセンス公式プラグンメニューの……〉というような内容がズラズラズラと記述されています。画像は切りましたが、他にも、アクセス元のIPアドレスといった情報も表示されています。WAFの除外設定のために、必要になる情報は、シグネチャです。

シグネチャとは

ネットワークの世界でシグネチャといったら、一般的に、侵入検知機能で使われる用語です。データの中身をチェックし、不正アクセスに使われる特徴的な文字列が含まれているかを検査する仕組みをシグネチャ型とか、パターン型とか言い、この『特徴を持つ文字列』を『シグネチャ』と呼びます。

図の場合は、3回、WAFに引っ掛けて403エラーを出しているわけですが、どれも、Google AdSense公式プラグインの設定変更が保存できないという同じパターンのエラーです。ここに表示されているシグネチャも同じですね。
つまり、このシグネチャはWAFで拒否しないという除外設定をしておけば、AdSense公式プラグインによる設定変更保存が、WAFそのものを無効化せずともできるようになります。

 

「.htaccess」を編集する

「.htaccess」とは?

Webサーバーを立てたことも、ローカル環境でのWordPressのインストールをしたこともなく、レンタルサーバー環境でWordPressを始めたという方は、『Apache』と聞いてもピンと来ない方も多いかと思うのですが、.htaccessはApacheの制御ファイルの一つです。

6-10

簡単に補足しておくと、WordPressを利用するためには、Webサーバー機能とSQLサーバー機能が必要です。レンタルサーバーと契約している場合は、レンタルサーバー側で、これらサービスを提供しているため、ユーザーはWordPressをインストールするだけで簡単にWordPressを使えるようになります。サイト下段の関連記事のなかに、WordPressのローカル環境へのインストールを紹介しています。WordPressの動作確認や、ちょっと使ってみたいといった用途目的で、事業者のWebサーバーではなく、自分のPCにWordPressをインストールして使うという環境なのですが、WebサーバーやSQLサーバーの機能を最初に追加してからでないと、WordPressが使えるようになりません。そのため、XAMMPという簡易サーバーソフトを使って、ApacheとMySQLというプログラムを実装してから、WordPressのインストールが開始されます。興味のある方は、そちらもご覧ください。
私の場合は、ロリポップですが、レンタルサーバーのサイトで、Webサーバー情報を確認すると、WebサーバーソフトにApacheを使っていることが分かりますね。Apacheは世界で一番主流のWebサーバーソフトです。さて話を、その制御ファイルの一つである「.htaccess」に戻します。
「.htaccess」の編集すると、さまざまな設定ができます。たとえば、サイト移転で古いサイトにアクセスされたら、新しいサイトにリダイレクトするように設定するとか、外部の通信機器からアクセスできるようにするとか、IPアドレスやホスト名でアクセス制限をかけるとか、アクセスに関わる多岐に渡る設定が可能です。
今回は、「.htaccess」に、先ほど確認したシグネチャを利用して、除外設定をします。

 

レンタルサーバーのFTP機能で編集する

ロリポップの403エラー関連のヘルプ記事には、「.htaccess」に関する記述があり、『※.htaccessはWordpressを設置している階層(フォルダ)内にございます』とあります。
そのため、私の環境では、ロリポップのFTPを利用して、WordPressがインストールされているフォルダにアクセス、「.htaccess」というファイルというファイルを開きます。

6-5

「.htaccess」に以下の一行を追加します。

SiteGuard_User_ExcludeSig xss-tag-1

 

上手くいかないではないかっ!?

一行で、除外設定が完了した……と思ったら、上手くいかないかもしれません。というのも、シグネチャネの値が複数表示されている可能性もあるからです。

先ほどは、分かりやすくするために、すべて同じ値のシグネチャを図として掲載しました。でも、実際は、グーグルアドセンス公式プラグインの変更保存を連続で更失敗し、403エラーを出していると、WAFログのシグネチャが、異なる値を表示したりもします。

6-6

つまり、『SiteGuard_User_ExcludeSig xss-tag-1』とだけ記述しても、異なるシグネチャなら、403エラーが返されてしまうわけですね。そこで、3つとも列記します。この表記にも、パターンがあり、繰り返し失敗してみたところ、私の環境では、この3つのうちのいずれかでした。

6-8

SiteGuard_User_ExcludeSig xss-tag-1
SiteGuard_User_ExcludeSig xss-try-12
SiteGuard_User_ExcludeSig sqlinj-97

 

成功です!!

結果、私の環境では、アドセンス公式プラグインでの設定保存は、WAFの除外となり、403エラーとは、おさらば。WAFそのものを無効化しなくても、いつでも保存されるようになりました。

6-11

ちょっと丁寧に書いたので、長くなってしまいましたが、今日はここまで。
次回はSiteGuard WordPress用プラグインによるWAFの除外設定です。