24時間365日フルマネージドホスティングサービスのデイーネット

mod_remoteipを組み込んだので、動作確認を行います

先日に続いて、どうもディーネットの山田です。

前回は、mod_remoteipを組み込むところだけで動作確認の結果はお預けでしたので今回ご紹介します。

環境の情報を以下の通りで、定義しておきます

セキュリティ上実際のIPは、お教えできないので置き換えておりますご了承下さい。

  • 私の拠点IP:192.0.2.100
  • サーバのIP:198.51.100.200
  • ロードバランサーのIP:203.0.113.10
  • ロードバランサーの内部IP:192.0.2.170

簡単な動作確認を行います。

①、mod_remoteipが組み込まれていない状態でのアクセスログを確認

サーバのIPにアクセス

http://198.51.100.200/

192.0.2.100 - - [27/Nov/2017:16:58:52 +0900] "GET / HTTP/1.1" 200 67 "-" "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:57.0) Gecko/20100101 Firefox/57.0" 1530

-> サーバ直接なので、送信元IPに私の拠点IPがアクセスログ上に現れている

ロードバランサーのIPにアクセス

http://203.0.113.10/

192.0.2.170 - - [27/Nov/2017:16:59:23 +0900] "GET / HTTP/1.1" 200 64 "-" "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:57.0) Gecko/20100101 Firefox/57.0" 1219

-> リバースプロキシ型のロードバランサーを経由したので、送信元IPにロードバランサーの内部IPが表示されてしまっている、これでは誰がアクセスしてきたか判断できないね

②、mod_remoteipが組み込まれた状態でのアクセスログを確認

サーバのIPにアクセス

http://198.51.100.200/

192.0.2.100 - - [27/Nov/2017:17:04:31 +0900] "GET / HTTP/1.1" 200 67 "-" "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:57.0) Gecko/20100101 Firefox/57.0" 1095

-> サーバ直接なので、mod_remoteipを組み込んでいない場合と同じですね

ロードバランサーのIPにアクセス

http://203.0.113.10/

192.0.2.100 - - [27/Nov/2017:17:04:42 +0900] "GET / HTTP/1.1" 200 67 "-" "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:57.0) Gecko/20100101 Firefox/57.0" 1129

-> mod_remoteipを組み込んだのでApache内部で送信元IPを書き換えてくれて私の拠点IPがアクセスログ上に現れている

応用編

以下のような.htaccessを設置して私の拠点IP以外からは、表示させないようにしてみます。

Order Deny,Allow
Deny from all
Allow from 192.0.2.100

①、mod_remoteipが組み込まれていない状態でのアクセスログを確認

サーバのIPにアクセス

http://198.51.100.200/

192.0.2.100 - - [27/Nov/2017:17:25:04 +0900] "GET / HTTP/1.1" 200 67 "-" "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:57.0) Gecko/20100101 Firefox/57.0" 1408

-> 私の拠点IPからは問題なく、コンテンツが表示された

ロードバランサーのIPにアクセス

http://203.0.113.10/

210.131.4.26 - - [27/Nov/2017:17:25:14 +0900] "GET / HTTP/1.1" 403 202 "-" "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:57.0) Gecko/20100101 Firefox/57.0" 447

-> 私の拠点IPからだけど、送信元IPがリバースプロキシ型ロードバランサーのIPアドレスに置き換えられているので、正しくコンテンツが表示できない

②、mod_remoteipが組み込まれた状態でのアクセスログを確認

サーバのIPにアクセス

http://198.51.100.200/

192.0.2.100 - - [27/Nov/2017:17:25:38 +0900] "GET / HTTP/1.1" 200 67 "-" "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:57.0) Gecko/20100101 Firefox/57.0" 1204

-> 私の拠点IPからは問題なく、コンテンツが表示された

ロードバランサーのIPにアクセス

http://203.0.113.10/

192.0.2.100 - - [27/Nov/2017:17:25:47 +0900] "GET / HTTP/1.1" 200 67 "-" "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:57.0) Gecko/20100101 Firefox/57.0" 1221

-> mod_remoteipを組み込んだのでApache内部で送信元IPを書き換えてくれて私の拠点IPから正しくコンテンツが表示された

まとめ

X-Forwarded-Forが付与されていた場合、mod_remoteipがApache内部でうまく"アクセス元のIPアドレス"を置き換えてくれているので、LogFormatを工夫する必要がなくなります。

また、mod_remoteipを使うことで、ロードバランサーを意識することなく.htaccessの設置も可能だしアクセスログの出力形式も工夫する必要がなくなりました。

最後に

Apache2.4系だとデフォルトで組み込まれている、モジュールなので設定ファイルを設置するだけで使用開始できます。

  • このページの先頭へ

  • 東京本社
    〒105-0001東京都港区虎ノ門2-3-22 第一秋山ビル5F
    TEL:03-3591-8887 FAX:03-3591-8886
  • 大阪本社
    〒541-0041 大阪市中央区北浜2-6-11北浜エクセルビル5F
    TEL:06-6231-8887 FAX:06-6231-8897

  • 認証範囲はこちらをご覧ください。

Denet logo

クラウドサービス・データセンタ・高機能専有サーバ・共有サーバホスティングサービス 株式会社ディーネット
dot_bar