とーますメモ

Ruby on Rails / Goなどの学習メモ

NinjaFirewallとCloudflareを併用時の設定

Cloudflareを使用すると、CloudflareのIPからのアクセスのみが記録されてしまうので
オリジナルからのIPを取得したい場合は、別途設定が必要になる。
以下の記事を参考に.htninjaファイルを作成し、ドキュメントルートの親ディレクトリにデプロイする。
NinjaFirewall (WP Edition): The .htninja configuration file – NinTechNet

<?php
/*
 +===========================================================================================+
 | NinjaFirewall optional configuration file                                                 |
 |                                                                                           |
 | See: https://blog.nintechnet.com/ninjafirewall-wp-edition-the-htninja-configuration-file/ |
 +===========================================================================================+
*/

// Users of Cloudflare CDN:
if (! empty($_SERVER["HTTP_CF_CONNECTING_IP"]) &&
 filter_var($_SERVER["HTTP_CF_CONNECTING_IP"],FILTER_VALIDATE_IP)) {
   $_SERVER["REMOTE_ADDR"] = $_SERVER["HTTP_CF_CONNECTING_IP"];
}

ex) ドキュメントルートが/var/www/html/projectなら/var/www/html/にデプロイ。

正しく設定ファイルが設定されるとNinjaFirewallのDashboardに「Optional configuration file」という項目が追加され、設定パスと共に表示されるようになる。