IT

nG Firewall 設定方法と使い方読み終わるまで 2

nG Firewall 設定方法と使い方 アイキャッチ

Apacheの.htaccessファイルに直接記述する形式のファイアウォール nG Firewall の設定方法と使い方を解説します。

この記事を見ることで得られるメリット
  • nG Firewall の設定方法がわかります

nG Firewall で実現できること

nG Firewall はWebサーバー Apacheの.htaccessファイルに直接記述する形式のファイアウォールなので高速で動作することが特長です。

2024年10月時点の最新バージョン(世代)は8Gで、nGのnには世代数が入ります。

Apacheのルール設定の記述で作成されたファイアウォールです。
プログラム(ルール)自体がテキスト情報のみなので容量が軽く、サーバーのリソース(CPUやメモリ)を消費しないため、Webサイトのレスポンスに影響を及ぼしません。

導入は簡単で、.htaccessファイルにテキストの内容をコピペして貼り付けるだけです。

難解なApacheのルール設定を知らなくても大丈夫です。

Web技術者が開発したオープンソースソフトウェアなので無料で利用できます。

WordPress用のプラグインではないので、他のCMSでも動作します。

Nginxでも動作しますが、当記事ではApacheの.htaccessを使った設定方法のみ記載しています。

同じ開発者が提供している、WordPress専用プラグイン BBQ Firewallの記事はこちらを参考にしてください↓

BBQ Firewall セキュリティ対策プラグイン 設定方法と使い方 アイキャッチ
BBQ Firewall セキュリティ対策プラグイン 設定方法と使い方ワードプレス(WordPress)のセキュリティ対策プラグイン BBQ Firewallの設定方法と使い方を解説します。 BB...

nG Firewall の主な機能

nG Firewall の主な機能は次の通りです。

  • すべてのHTTPリクエストをスキャン
  • SQLインジェクションやXSS攻撃から保護
  • 悪質なBOTやリファラーから保護
  • バックグラウンドで動作し、サイトを保護
  • 他のセキュリティプラグインと併用可能

同じ開発者が作成したWordPress用プラグイン BBQ Firewallと主な機能は同じですが、他のプログラムを介さずに動作するので高速に動作します。

nG Firewall の設定方法

nG Firewall を導入・設定する方法を解説します。

当記事はレンタルサーバーはエックスサーバ、Web(HTTP)サーバーはApache、CMSはWordPressを使用しています。

導入手順を要約すると下記の流れになります。

  1. nG Firewall 公式サイトからファイアウォールのテキストファイルをダウンロードして解凍
  2. .htaccessファイルの先頭に①のテキストファイルの内容をコピーして貼り付ける

基本的には上記の2ステップで完了です。※慣れた人なら5分程で終わる作業です。

以降で詳しい手順を解説します。

公式サイトからファイアウォールのファイルをダウンロード

nG Firewall公式サイト トップページnG Firewall公式サイト トップページ

nG Firewall公式サイトからファイアウォールのファイルをダウンロードします↓

https://perishablepress.com/8g-firewall/

nG Firewall公式サイトのファイアウォールのダウンロードリンクnG Firewall公式サイトのファイアウォールのダウンロードリンク

↑上の画像は日本語に翻訳しています。
リンクをクリックすると自動でファイルのダウンロードが完了します。

ダウンロードしたファイアウォールファイルダウンロードしたファイアウォールファイル

↑ダウンロードしたzipファイルを解凍するとフォルダの中にあるFirewallと書かれたテキストファイルをテキストエディタで開きます。

ファイアウォールファイルの中身ファイアウォールファイルの中身

↑テキストファイルの中身を全てコピーします。

レンタルサーバー内の.htaccessファイルレンタルサーバー内の.htaccessファイル

↑エックスサーバのファイルマネージャで開いた.htaccessファイルが保存されているディレクトリです。

WordPressの場合、htaccessファイルが保存されているディレクトリはpublic_htmlになります。

.htaccessファイルの最上部.htaccessファイルの最上部

↑.htaccessファイルの一番上に、先ほどのファイアウォールファイルのテキストをすべてコピーして貼り付けます。

.htaccessファイルの最上部にファイアウォールファイルのテキストを貼り付ける.htaccessファイルの最上部にファイアウォールファイルのテキストを貼り付ける

↑貼り付けた後は更新ボタンを押して保存します。
※心配な場合は、変更前の.htaccessファイルを丸ごとバックアップしてください。

以上で、nG Firewallの実装は完了です。
次はファイアウォールが動作しているか確認します。

ファイアウォールの動作確認

Webブラウザで"ドメイン名/?eval("を入力するWebブラウザで”ドメイン名/?eval(“を入力する

↑ファイアウォールが動作している時に、ドメイン名の後ろに?eval(を入力してアクセスすると404エラーが表示されます。
万が一、エラーが表示されない場合はファイアウォールが動作していないので.htaccessファイルの内容を確認してください。

次は悪意のあるアクセスの内容をログファイルに書き出して動作確認する方法を解説します。

悪意あるアクセスをログファイルに記録する方法

nG Firewall公式サイトからファイアウォールのログを有効にするファイルをダウンロードします↓https://perishablepress.com/ng-firewall-logging/

nG Firewall公式サイトのファイアウォールのログを有効にするファイルのダウンロードリンクnG Firewall公式サイトのファイアウォールのログを有効にするファイルのダウンロードリンク

↑上の画像は日本語に翻訳しています。
リンクをクリックすると自動でファイルのダウンロードが完了します。

ファイアウォールのログを有効にするスクリプトファイルファイアウォールのログを有効にするスクリプトファイル

↑ダウンロードしたzipファイルを解凍するとフォルダの中に3つのファイルがありますが、使用するのはnG_log.phpとnG_log.txtファイルの2つです。

nG_log.phpファイルがログを出力するスクリプト(プログラム)が書かれたファイルで、基本的には弄る必要はありません。

nG_log.txtファイルは悪意あるアクセスがあった時に実際に記録が書き込まれるファイルなので、最初は中身は空です。

次に、この2つのファイルをサーバーの.htaccessファイルと同じディレクトリの中に保存します。

レンタルサーバー内の.htaccessファイルが保存されているpublic_htmlディレクトリレンタルサーバー内の.htaccessファイルが保存されているpublic_htmlディレクトリ

↑public_htmlディレクトリに先ほどの2つのファイルをアップロード(保存)します。
エックスサーバの場合はファイルマネージャでpublic_htmlに入ってアップロードを押します。

nG_log.phpとnG_log.txtファイルをドメイン名/public_htmlに保存するnG_log.phpとnG_log.txtファイルをドメイン名/public_htmlに保存する

↑エックスサーバの場合はファイルを選択またはドラッグ&ドロップしてアップロードボタンを押します。

public_htmlにアップロード(保存)されたnG_log.phpとnG_log.txtファイルpublic_htmlにアップロード(保存)されたnG_log.phpとnG_log.txtファイル

次に.htaccessファイルを開いて、nG Firewallのルール(記述)内のコメント(#)を解除してログ出力を有効にします。

.htaccessファイルのnG Firewallルールにあるコメント(#)を移動させる.htaccessファイルのnG Firewallルールにあるコメント(#)を移動させる

各モジュール内、 <IfModule mod_rewrite.c>~</IfModule>の間に下記の記述があります。

変更前

<IfModule mod_rewrite.c>

~省略~

RewriteRule .* - [F]
# RewriteRule .* /nG_log.php?log [END,NE,E=nG_REQUEST_URI:%1___%2___%3]

</IfModule>

上記を下記のように変更します。

変更後

<IfModule mod_rewrite.c>

~省略~

# RewriteRule .* - [F]
RewriteRule .* /nG_log.php?log [END,NE,E=nG_REQUEST_URI:%1___%2___%3]

</IfModule>

全部で8か所あるので、すべて同じようにコメント(#)を”RewriteRule .* – [F]”の先頭に移動させます。

.htaccessファイルのnG Firewallルールにあるコメント(#)を移動させてログが有効になっている状態.htaccessファイルのnG Firewallルールにあるコメント(#)を移動させてログが有効になっている状態

↑最後に更新ボタンを押して変更内容を保存します。

しばらく待つとnG_log.txtファイルに悪意あるアクセスが保存されます。

ログの排出を停止する場合は、移動させたコメント(#)を元の位置に戻す作業が必要になります。

nG_log.txtファイルに保存されたログnG_log.txtファイルに保存されたログ

↑ある程度運用しているWebサイトの場合は、変更後すぐに悪意あるアクセスが保存されます。

nG_log.txtファイルのアクセス権限を変更しないと外部からログの中身が見えるnG_log.txtファイルのアクセス権限を変更しないと外部からログの中身が見える

↑nG_log.txtファイルのアクセス権限(パーミッション)を変更しないと、上の画像のように第三者からログが見えるので、パーミッションを変更します。

nG_log.txtファイルのパーミッションを600に変更するnG_log.txtファイルのパーミッションを600に変更する

↑最初パーミッションは数値だと604になっているので、”その他”内の”読み取り”のチェックマークを外すか、数値で600を指定し、変更ボタンを押して保存します。

nG_log.txtファイルのアクセス権限(パーミッション)変更後は403が表示されるnG_log.txtファイルのアクセス権限(パーミッション)変更後は403が表示される

↑nG_log.txtファイルのアクセス権限(パーミッション)を600に変更後は、403エラーが表示され、Webブラウザからはログが確認できなくなります。

悪意のあるアクセスだけではなく、自分のIPアドレスがログに残る可能性があるので、nG_log.txtファイルのパーミッションの変更は必須です。

ちなみに、正常で健全なアクセスはnG_log.txtファイルにログとして記録されません。

各モジュールの意味や、他のカスタマイズ方法はnG Firewall 公式サイトを参考にしてください。

実際にnG Firewall を使った感想とメリットデメリット

実際にnG Firewall を使ってみた感じたメリットとデメリットです。

nG Firewall のメリット

  • Webサーバーの.htaccessファイルに直接記述するので動作が高速で軽量
  • 個人ブログや小規模なWebサイトで必要十分な機能
  • オープンソフトウェアなので無料で利用できる

個人情報など、外部に絶対に流出させれない情報を保存しているサーバーの場合は、他のハイエンドなWAFを少なくとも併用して使うべきですが、個人用途オンリーなサイトやブログには必要十分です。

nG Firewall のデメリット

  • 導入難易度がやや高く、敷居が高い
  • 公式サイトが全て英語

グラフなどのGUI画面でログを確認ではできない点は動作が高速なのとトレードオフの関係なのでしかたありません。

導入は設定ファイルのテキストを変更するので、GUIに慣れている場合などは、導入する難易度が高いです。その上、公式サイトが英語なので余計に判り難くいです。

まとめ

nG Firewall は悪意あるボットやリファラーのアクセスからWebサイト(ブログ)を保護し、動作が軽量で高速に処理できることが特長です。

Apacheの.htaccessファイルのルール構文だけで記述されており、他のプログラムを一切介す必要が無いため、サーバーのCPUやメモリ等のリソースをエンドユーザーの表示処理に回すことが可能になります。

その結果、利用者の満足度が向上し、SEO上昇に繋がります。

もし、WordPressを利用している場合は、nG Firewallと同じ性能と機能を提供するBBQ Firewallプラグインを使うほうが導入する難易度が低いですが、他のプログラムを介して動作するのでサーバーのリソースを消費し、利用者へのレスポンスが遅くなります。

nG Firewallと機能が被らないセキュリティ対策プラグインが殆どなので、”Wordfence Security“や”XO Security“と併用して利用することも可能です。

どちらにせよ、ある程度Web知識がある場合は、WordPressのセキュリティ対策にはBBQ Firewallプラグインよりも、nG Firewalを使うことをおすすめします。