Movatterモバイル変換


[0]ホーム

URL:


BLOGTIMES

cles::blog

平常心是道
« :: »
2010/04/06

リバースプロキシ経由のアクセス元IPを書き換える

  httpd 
このエントリーをはてなブックマークに追加

Reverse Proxy の裏側にウェブサーバをたてると、クライアントからのアクセスがあったときの REMOTE_ADDR が Reverse Proxy のアドレスになってしまうので、アクセスログをそのままログ分析することができないという状況になります。Proxy に変な手を入れていない限り、Proxy からのリクエストにはオリジナルのアクセス元を表す X-Forwarded-Fo r ヘッダがついてるので、REMOTE_ADDR の代わりに X-Forwarded-Fo r ヘッダの内容をログに記録してやればよいことになります。

┌─────┐ ┌────┐ ┌───────┐│ Client ├--------┤ Proxy ├------------┤ HTTP Server ││ X.X.X.X │   │ Y.Y.Y.Y│ │ │└─────┘ └────┘ └───────┘ REMOTE_ADDR -> X.X.X.X REMOTE_ADDR -> Y.Y.Y.Y HTTP_X_FORWARDED_FOR -> X.X.X.X

具体的なやり方は2つあって、1つはログの出力を変えてしまう方法、もう一つはApacheに専用のモジュールを入れる方法です。

ログの出力を変更する方法

単にログの表記上の問題であれば、最初の方法が一番簡単でデフォルトのログのフォーマット(おそらくcombined)の%hを%{X-Forwarded-For}iに書き換えるだけで対応可能です。このあたりは以前にクライアント証明書のDNをログに残すところでつかったのと同じ方法です。

/etc/httpd/conf/httpd.conf の該当部分を書き換え

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined

LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined

mod_extract_forwardedを導入する方法

上記の方法は、REMOTE_ADDRを使ってアクセス制御していたり、呼び出されるプログラムでREMOTE_ADDRを使っていたりするとその部分がうまく動かないという問題が起こります。プログラムをHTTP_X_FORWARDED_FORに対応させるというのもアリですが、通常はREMOTE_ADDRを書き換えてくれるモジュールを入れた方が対応が楽だろうと思います。今回はmod_extract_forwarded*1というモジュールを使ってみました。EPELが使えるようになっていれば、yumで一撃でインストールできました。

yum install mod_extract_forwarded

あとは、設定ファイルにproxyサーバのIPアドレスを入れて、httpdを再起動すればOKです。
/etc/httpd/conf.d/mod_extract_forwarded.conf に下記の行を追加

MEFaccept Y.Y.Y.Y

2015/10/20 追記

上記は Apache 2.2 の場合にのみ有効です。
CentOS 7.x (Apache 2.4.x)の場合には mod_extract_forwarded_for_2.4 を使う必要があります


byhsur at 16:05[5年前][4年前][3年前][2年前][1年前][1年後][2年後][3年後][4年後][5年後] |
こんな記事もあります 「httpd ADDR Proxy
2024 年の人気エントリ Top 100
2023 年の人気エントリ Top 100
Apache と Nghttp2 をアップデート
2022 年の人気エントリ Top 100
gcc で配列の境界外アクセスをチェックする
Yamaha ルータ+ぷらら光メイトでぷららv6エクスプレス(DS-Lite編)
Yamaha ルータ+ぷらら光でぷららv6エクスプレス(MAP-E編)
Cloudflare の Worker が Error 1034 になるときは
2021 年の人気エントリ Top 100
AbuseIPDB を使い始めてみた
トラックバックについて
Trackback URL:
お気軽にどうぞ。トラックバック前にポリシーをお読みください。[policy]
このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/3499
Trackbacks
このエントリにトラックバックはありません
Comments
愛のあるツッコミをお気軽にどうぞ。[policy]
古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
コメントはありません
Comments Form

コメントは承認後の表示となります。
OpenIDでログインすると、即時に公開されます。

OpenID を使ってログインすることができます。

Identity URL:Yahoo! JAPAN IDでログイン

« :: »
Copyright © 2004-2023 by CLES All Rights Reserved.
サイト内検索
検索ワードランキング
へぇが多いエントリ
閲覧数が多いエントリ
1 .アーロンチェアのポスチャーフィットを修理(99682)
2 .年次の人間ドックへ(99094)
3 .福岡銀がデマの投稿者への刑事告訴を検討中(99084)
4 .三菱鉛筆がラミーを買収(98693)
5 .2023 年分の確定申告完了!(1つめ)(98662)
最新のエントリ
cles::blogについて
誰が書いてる?
最近行った場所
サイトポリシー
タグ一覧
検索ワードランキング

Referrers

    Powered by CLES
    Nucleus CMS v3.31SP3/w memcached
    21375755(W:6380 Y:1545 T:1574)
    cles::blogのはてなブックマーク数
    benchmark


    [8]ページ先頭

    ©2009-2025 Movatter.jp