Apache mod_remoteip और पहुंच लॉग


9

अपाचे के बाद से 2.4 मैं का उपयोग प्रारंभ कर mod_remoteip बजाय mod_extract_forwarded से ग्राहक पते को फिर से लिखने के लिए एक्स-अग्रेषित-के लिए दृश्यपटल सर्वर (वार्निश, व्यंग्य, अपाचे आदि) द्वारा उपलब्ध कराए गए।

अब तक सब कुछ मॉड्यूल, यानी php, cgi, wsgi आदि के साथ ठीक काम करता है ... - क्लाइंट एड्रेस को वैसे ही दिखाया जाता है, जैसा कि उन्हें होना चाहिए, लेकिन मैं एक्सेस लॉग्स में क्लाइंट एड्रेस नहीं लिख सकता (% a,% h,% {c }ए)। कोई किस्मत नहीं - मुझे हमेशा 127.0.0.1 (लोकलहोस्ट फॉरवर्ड पूर्व) मिल रहा है।

Mod_remoteip का उपयोग करते समय क्लाइंट के आईपी पते को कैसे लॉग करें?

अपडेट: आईटी काम करता है O_O - नीचे उत्तर देखें


आप अपने द्वारा उपयोग / परीक्षण किए गए विशिष्ट कॉन्फ़िगरेशन को जोड़ना चाहते हैं। इसके अतिरिक्त, जबकि विवरण में नहीं, यह मदद कर सकता है: knowledgevoid.com/blog/2012/01/13/… ... मुझे लगता है कि आपने httpd.apache.org/docs/trunk/mod/mod_remoteip.html#page-header को पढ़ा है ? stackexchange में कुछ प्रश्न हैं जिन्हें आप पढ़ना चाहते हैं: stackoverflow.com/questions/25455731/…
डेनिस नोल्टे

पुनः निर्मित विन्यास, अब यह O_O
GioMac

जवाबों:


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;
    }
}

अपाचे 2.4 कॉन्फ़िगरेशन अनुभाग:

mod_remoteip:

RemoteIPHeader X-Forwarded-For
RemoteIPInternalProxy 127.0.0.1/8

लॉगिंग (% एक काम करता है):

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

+

यदि सामने में एक nginx है (उदा। एसएसएल समाप्ति):

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

क्या आप इसे अपडेट करेंगे, या हमें CloudFlare से http.cf-connect-ip के लिए भिन्नता देंगे? क्या इसे काम करने का कोई सौभाग्य नहीं मिला, क्षमा करें।
रुसलान अबुजंत

आपको वास्तव में Nginx X-Forwarded-For के लिए $ Remote_addr के बजाय $xy_add_x_forwarded_for का उपयोग करना चाहिए। वार्निश उदाहरण के समान ही कार्यक्षमता है, जबकि $ Remote_addr में पिछले X- फ़ॉर्वर्ड किए गए मान शामिल नहीं हैं
Andy

4

Mod_remoteip के दस्तावेज़ीकरण के अनुसार , मॉड्यूल को केवल क्लाइंट IP पते को बदलना चाहिए, लेकिन केवल तब जब RemoteIPHeader x-forwarded-forसेट किया जाता है ( डॉक्टर )। यह भी सुनिश्चित करें कि, आपके vhost का लॉगिंग आपके द्वारा निर्धारित CustomLog का उपयोग करता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.