VPN च्या मागे PHP चा REMOTE_ADDR प्रत्यक्षात काय सांगतो
हे तुमच्या वेब सर्व्हरने दिलेले मूल्य आहे, बोगद्यातील चौकशी नाही. विनंतीचा मार्ग पाहा, तो कोण पुन्हा लिहू शकतो ते तपासा आणि ओळख ॲपमध्ये ठेवा.
कोणीतरी विचारतो की VPN वापरकर्ता ॲप्लिकेशन लॉगमध्ये गेटवेचा असलेला पत्ता घेऊन का दिसतो, किंवा जेवणानंतर बदललेला पत्ता घेऊन का दिसतो. उत्तर यापासून सुरू होते की हे मूल्य काय आहे: वेब सर्व्हरने विनंतीच्या वातावरणात ठेवलेली नोंद. ही बोगद्यातील चौकशी नाही, प्रमाणपत्राची ओळख नाही आणि क्रमांक एका व्यक्तीचा आहे असे वचन नाही. यापैकी कोणतेही मानून वाचल्यास वेगवेगळ्या प्रकारे चुकीची आत्मविश्वासू उत्तरे मिळतात.
मूल्य सर्व्हरकडून येते, बोगद्यातून नाही
PHP विनंतीचे वातावरण ज्याने स्क्रिप्ट चालवली त्याच्याकडून घेते. PHP सर्व्हर चलांचा संदर्भ या नोंदी वेब सर्व्हरने तयार केलेल्या अशा वर्णन करतो, आणि त्यांची उपलब्धता विनंती कशी आली यावर अवलंबून असते.
VPN च्या कमांड-लाइन हुक म्हणून चालणारी स्क्रिप्ट पूर्णपणे वेगळा अंमलबजावणी संदर्भ आहे. तिच्याकडे वेब विनंती नाही, क्लायंट सॉकेट नाही आणि REMOTE_ADDR नाही, म्हणूनच हुकमध्ये कॉपी केलेला वेब कोड चुकीच्या मूल्यांऐवजी रिकामी मूल्ये देतो. हुकचे स्वतःचे वातावरण आहे, जे डेमन भरते, आणि ते स्वतंत्रपणे दस्तऐवजीकृत आहे. तिथे REMOTE_ADDR कडे हात पसरणे म्हणजे कधीही सेट न केलेल्या चलाकडे हात पसरणे.
दोन लॉगची तुलना करण्यापूर्वी हा फरक लक्षात ठेवा. कदाचित तुम्ही पृष्ठाच्या विनंतीची हुकशी तुलना करत असाल, आणि ती काहीच तुलना नाही. आधी अंमलबजावणी संदर्भ तपासा आणि नंतर पत्ता.
क्रमांकावर विश्वास ठेवण्यापूर्वी विनंतीचा मार्ग पाहा
नोंदवलेला पत्ता वेब सर्व्हरने पाहिलेल्या जोडणीचा समवेत आहे. क्लायंट आणि त्या सर्व्हरमध्ये काहीही ठेवा आणि समवेत बदलतो. भाषांतर, समाप्ती आणि भार-संतुलन यापैकी प्रत्येक निरीक्षण वापरकर्त्यापासून एक पाऊल दूर नेते.
चार सामान्य मार्ग चार वेगवेगळी निरीक्षणे देतात.
| Path to the listener | What can be reported |
|---|---|
| Client routed straight to the private listener, no translation | The client's tunnel address |
| Gateway translates the source before forwarding | The gateway's translated address |
| Reverse proxy terminates the client and opens its own backend connection | The proxy's backend address |
| Load balancer in front of two proxies | Whichever hop the server treats as its peer |
मार्ग गंतव्याचे नाव, पत्त्यांचे कुटुंब आणि प्रत्येक भाषांतर बिंदूसह लिहा. त्या नकाशाशिवाय योग्य आणि चुकीचे मूल्य लॉगच्या एका ओळीत सारखे दिसतात. आकृतीच्या दोन ओळी दुपारभराची वादळे वाचवतात.
बदल फक्त तिथेच होतो जिथे तो कॉन्फिगर आहे
सर्व्हर किंवा फ्रेमवर्क क्लायंटचा पत्ता जाणूनबुजून बदलू शकते. Apache चे remote-IP मॉड्यूल आणि NGINX चे real-IP मॉड्यूल दोन्ही हे करतात, आणि PHP ला मिळणारे मूल्य त्या कॉन्फिगरेशनवर आणि स्क्रिप्ट हँडलरला दिलेल्या पॅरामीटर्सवर अवलंबून असते.
म्हणजे REMOTE_ADDR नेहमी अस्पर्शित TCP समवेत नसतो. तो सर्व्हरने स्वतःचे धोरण लागू केल्यानंतर नोंदवायचे ठरवलेला समवेत असतो. हाच फरक मूल्य पुरावा आहे की सजावट हे ठरवतो.
सर्व्हरच्या मालकाला विचारा की या उपयोजनात कोणते क्षेत्र प्रामाणिक आहे आणि बदल झाल्यावर मूळ समवेत कसा जपला जातो. कोणीही उत्तर देऊ शकत नसेल तर लॉग अजून काहीच सिद्ध करत नाही.
फॉरवर्डिंग हेडर विश्वासाने वाचू नका
कॉल करणारा स्वतः फॉरवर्डिंग हेडर पाठवू शकतो. स्वल्पविरामाने वेगळी केलेली पहिली नोंद सत्यापित वापरकर्ता पत्ता मानणे म्हणजे जो कोणी जोडतो त्यावर विश्वास ठेवण्याचा निर्णय, जो हेडरच्या उद्देशाच्या अगदी उलट आहे. हेडर एक साखळी वर्णन करतो, आणि फक्त विश्वासार्ह स्तर त्या साखळीची हमी देऊ शकतो.
सर्व्हर किंवा फ्रेमवर्कचा विश्वासार्ह प्रॉक्सी आधार खऱ्या प्रॉक्सी साखळीसह कॉन्फिगर करून वापरा आणि त्या साखळीबाहेरच्या स्रोतांकडून येणारी मूल्ये टाकून देऊ द्या. हाताने लिहिलेले विश्लेषण हे असे ठिकाण आहे जिथे बहुतेक मनोरंजक बिघाड राहतात.
प्रॉक्सीने नोंदवलेला पत्ता वरच्या फायरवॉलला दिसणाऱ्या पॅकेट स्रोतालाही बदलत नाही. HTTP मेटाडेटा आणि नेटवर्क फिल्टरिंग वेगवेगळी निरीक्षणे म्हणून ठेवा, कारण ती वेगवेगळ्या प्रश्नांची उत्तरे देतात.
निर्णयांसाठी ॲपची ओळख वापरा
वापरकर्त्याच्या नोंदींमध्ये प्रवेशासाठी प्रमाणित घटक आणि ॲपच्या अधिकृतता नियमांवर अवलंबून राहा. अंतर्गत पत्ता पुन्हा नेमला जाऊ शकतो, आणि एक भाषांतरित पत्ता शेकडो एकाचवेळी वापरकर्त्यांचे प्रतिनिधित्व करू शकतो. यापैकी कोणताही गुणधर्म पत्ता तपासणी दुरुस्त करू शकत नाही.
जर संचालनाला विनंती VPN सत्राशी जोडायची असेल, तर निरीक्षित पत्ता आणि वेळ-छाप तुम्ही दस्तऐवजीकृत केलेल्या भाषांतर मॉडेलनुसार प्रामाणिक सत्र नोंदींशी जोडा. यातून असे नाते तयार होते ज्याचा तुम्ही बचाव करू शकता; एकटा पत्ता तसा करत नाही.
निदानासाठी संपूर्ण सर्व्हर ॲरेऐवजी लागणारी ती थोडी क्षेत्रे लॉग करा, कारण ॲरे हेडर आणि प्रमाणीकरण साहित्य वाहू शकतो. उपयुक्त निष्कर्ष सांगतो की या उपयोजनात या मूल्याचा अर्थ काय आहे, कोणते मूल्य क्लायंटसारखे सर्वाधिक दिसते ते नाही.