Apache mod_remoteipとアクセスログ


9

Apache 2.4以降、フロントエンドサーバー(ワニス、イカ、アパッチなど)提供するx-forwarded-forからクライアントアドレスを書き換えるために、mod_extract_forwardedではなくmod_remoteipを使用し始めました。

これまでのところ、php、cgi、wsgiなどのモジュールですべてが正常に動作します。クライアントアドレスは本来のとおりに表示されますが、アクセスログにクライアントアドレスを書き込むことができませんでした(%a、%h、%{c } a)。運が悪い-私は常に127.0.0.1(localhost forward ex。)を取得しています。

mod_remoteipを使用しているときにクライアントのIPアドレスを記録する方法

更新:IT WORKS O_O-以下の回答を参照してください


使用/テストした特定の構成を追加することができます。また、このかもしれない助けていない細部にいる間:knowledgevoid.com/blog/2012/01/13/...私はあなたが読んでなかったと仮定しhttpd.apache.org/docs/trunk/mod/mod_remoteip.html#page-header aswellを?stackexchangeは、いくつかの質問を持っているあなたは、参照することもできます。stackoverflow.com/questions/25455731/...
デニス・ノルティ

再構築された構成、O_Oで動作するようになりました
GioMac '25

回答:


20

ワニス構成:

if (req.restarts == 0) {
    if (req.http.X-Forwarded-For) {
        set req.http.X-Forwarded-For = req.http.X-Forwarded-For + ", " + client.ip;
    } else {
        set req.http.X-Forwarded-For = client.ip;
    }
}

Apache 2.4構成セクション:

mod_remoteip:

RemoteIPHeader X-Forwarded-For
RemoteIPInternalProxy 127.0.0.1/8

ロギング(%aが仕事をします):

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

+

nginxが前にある場合(例:SSL終了):

server {
    listen       123.123.123.123:443;
    server_name  server.com;
    root         html;

    ssl                  on;
    ssl_certificate      /etc/pki/httpd/site/chain.crt;
    ssl_certificate_key  /etc/pki/httpd/site/private.key;

    ssl_session_timeout  5m;

    ssl_protocols  SSLv2 SSLv3 TLSv1;
    ssl_ciphers  HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers   on;

    location / {
        proxy_pass   http://127.0.0.1:6081;
        proxy_set_header Host $http_host;
        proxy_pass_header Server;
        proxy_set_header X-Forwarded-For $remote_addr;
    }
}

1
この答えを受け入れる場合、それがあなた自身の答えであっても、賞金を授与する必要があります。
mc0e 14

これを更新しますか、それともCloudFlareのhttp.cf-connecting-ipのバリエーションを提供しますか?うまくいきませんでした。ごめんなさい。
Ruslan Abuzant 2016年

Nginx X-Forwarded-Forの場合、実際には$ remote_addrではなく$ proxy_add_x_forwarded_forを使用する必要があります。これはVarnishの例と同じ機能を果たしますが、$ remote_addrには以前のX-Forwarded-For値が含まれていません
Andy

4

mod_remoteipのドキュメントによると、モジュールはクライアントのIPアドレスを置き換えるだけですが、RemoteIPHeader x-forwarded-forが設定されている場合のみです(doc)。また、仮想ホストのロギングは、定義したCustomLogを使用することも確認してください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.