IPTABLES में डीएनएटी और रिडायरेक्ट में अंतर बीटेन


14

ठीक है, यह इसलिए हो सकता है क्योंकि मैं सघन हूं या शायद सिर्फ सही स्रोत नहीं मिल रहा है, लेकिन मैं समझ नहीं पा रहा हूं कि इनमें से कोई एक IPTABLES सेटअप दूसरे से बेहतर क्यों होगा।

यहाँ मेरा सेटअप है:

मेरे पास एक बॉक्स है जो एक पारदर्शी प्रॉक्सी और एक राउटर या सॉर्ट के रूप में काम कर रहा है। इस पर दो इंटरफेस हैं, ETH0 और ETH1, और निम्नलिखित पता योजना:

ETH0 = डीएचसीपी ETH1 = 192.168.5.1/24 192.168.5.0/24 नेटवर्क के लिए डीएचसीपी की सेवा कर रहा है, जो इसके पीछे ग्राहकों के लिए है

मेरे पास पोर्टो 8080 है और पारदर्शी प्रॉक्सी के रूप में पोर्ट 8080 पर सुन रहा है। इस सेटअप के साथ जो मैं पूरा कर रहा हूं वह इस बॉक्स को कम से कम कॉन्फ़िगरेशन और संलग्न क्लाइंट के साथ मौजूदा नेटवर्क में ड्रॉप करने में सक्षम होना है।

यहाँ मेरी मूल IPTABLES फ़ाइल है

*nat
-A PREROUTING -i eth1 -p tcp -m tcp --dport 80 -j REDIRECT --to-port 8080
-A POSTROUTING -o eth0 -j MASQUERADE
COMMIT
*filter
COMMIT

यह कॉन्फ़िगरेशन ठीक काम करता है और ट्रैफ़िक समस्या के बिना आगे और पीछे बह रहा है। मुझे निजी क्लाइंट लॉगफ़ाइल्स में मूल क्लाइंट आईपी पता मिलता है, और जीवन अच्छा है।

मेरा भ्रम तब होता है जब मैं अन्य लोगों के कॉन्फ़िगरेशन को देखना शुरू करता हूं और देखता हूं कि वे REDIRECT के बजाय DNAT का उपयोग कर रहे हैं, और मैं दूसरे पर एक के वास्तविक सुधार को समझने की कोशिश कर रहा हूं। यहाँ एक नमूना विन्यास है:

*nat
-A PREROUTING -i eth1 -p tcp -m tcp --dport 80 -j DNAT --to 192.168.5.1:8080
-A POSTROUTING -o eth0 -j MASQUERADE
COMMIT
*filter
COMMIT

फिर, यह कॉन्फ़िगरेशन भी काम करता है, और मुझे एक लॉगिंग परिप्रेक्ष्य से मुझे सभी की आवश्यकता है ...

कौन सा सही है, या शायद अधिक सही है, अन्य की तुलना में?

इस समय को पढ़ने के लिए समय निकालने के लिए धन्यवाद ...

जवाबों:


14

REDIRECTमशीन को भेजने के लिए गंतव्य IP पते को बदल देता है। दूसरे शब्दों में, स्थानीय रूप से उत्पन्न पैकेट 127.0.0.1 पते पर मैप किए जाते हैं। यह स्थानीय पैकेटों को पुनर्निर्देशित करने के लिए है। यदि आप केवल स्थानीय मशीन पर सेवाओं के बीच यातायात को पुनर्निर्देशित करना चाहते हैं, तो यह एक अच्छा विकल्प होगा।

DNATवास्तविक नेटवर्क एड्रेस ट्रांसलेशन है । यदि आप चाहते हैं कि गंतव्य को परिवर्तित करने के लिए स्थानीय प्रणाली से बाहर के पैकेट को बदल दिया जाए, तो यह दो का बेहतर विकल्प REDIRECTहोगा , क्योंकि यह काम नहीं करेगा।


ठीक है, इसलिए यदि मेरे पास क्लाइंट है जो 192.168.5.234 पर प्रॉक्सी के पीछे बैठा है, और मैं 192.168.5.1 को प्रॉक्सी के माध्यम से इसके HTTP रिक्वेस्ट को "प्रोसेस" करना चाहता हूं, तो आप सुझाव दे रहे हैं कि मुझे 192.168 को पोर्ट आउटबाउंड पोर्ट ट्रैफ़िक डीएनटी करना चाहिए .5.1: 8080 प्रॉक्सी पर। मैं खरीद सकता हूँ, लेकिन क्यों ???? क्या यह कुछ ऐसा है कि इंटरनेट पर डिफ़ॉल्ट गेटवे के माध्यम से छद्म ETH0 को अपने रास्ते पर छोड़ने के बाद ट्रैफ़िक को कैसे संभाला जाए? मुझे यह करने की जरूरत है या मेरे सिर में विस्फोट होगा
QWade

2
DNAT पते को बदल देता है क्योंकि पैकेट फ़ायरवॉल से होकर गुजरता है, ताकि यह मेजर होस्ट पर पहुंचे और फायरवॉल से उलटा दिखाई दे। DNAT लगभग कभी आउटबाउंड ट्रैफ़िक पर लागू नहीं होता है, जिसे MASQUERADE नियम द्वारा नियंत्रित किया जाता है। यह Privateproxy दूसरे होस्ट पर था, तो DNAT उपयुक्त होगा, उस होस्ट के लिए उपयुक्त अपवाद होगा।
बिल्टोर सेप

बिल, धन्यवाद। यही वह जगह है जहाँ मेरा सरीसृप मस्तिष्क जा रहा था, लेकिन क्या सत्यापन करना हमेशा अच्छा होता है। इसलिए यदि मैं 192.168.5.234 से google.com के लिए एक पैकेट भेजना चाहता हूं और इसका डिफ़ॉल्ट gw 192.168.5.1 (प्रॉक्सी पर eth1) के रूप में सेट है, तो मुझे "REDIRECT" उस पैकेट को प्रॉक्सी पर 8080 पोर्ट करना चाहिए और निजीकरण करने देना चाहिए बाकी। इसका कारण यह है क्योंकि प्राइवेटॉक्सी 192.168.5.1 पर रहती है और किसी अन्य होस्ट पर नहीं। क्या मुझे कुछ धूम्रपान करना चाहिए जो मुझे नहीं करना चाहिए?
16

9

REDIRECTवार्नर @ द्वारा उत्तर के रूप में मशीन को भेजने के लिए गंतव्य आईपी पते को बदल देता है। लेकिन मैं कहूंगा कि उत्तर पूरी तरह से सही नहीं है, या थोड़ा भ्रामक है।

REDIRECTसिर्फ स्थानीय पैकेटों को पुनर्निर्देशित करने के लिए नहीं है। यह वास्तव DNATमें है, जिसमें उपयोग करने के लिए गंतव्य आईपी पता निहित है, 127.0.0.1 यदि यह एक स्थानीय पैकेट या मशीन इंटरफ़ेस का आईपी पता अन्यथा, 192.168.5.1 ओपी के मामले में है।

तो इस सवाल में, कोई फर्क नहीं पड़ता कि अंतिम गंतव्य, पैकेट को पहले प्रॉक्सी तक पहुंचना चाहिए, इसलिए REDIRECTपूरी तरह से अनुकूल है।

चूँकि REDIRECTआपको IP पता निर्दिष्ट करने की आवश्यकता नहीं है, यह सिर्फ सही लेगा, इसके कुछ फायदे हैं DNAT:

  • यदि किसी कारण से मशीन का आईपी पता बदल जाता है, तो आपको अपने नियमों को संशोधित करने की आवश्यकता नहीं है, और विशेष रूप DNATसे डीएचसीपी-नियंत्रित इंटरफेस के लिए काम नहीं करेगा।

  • आप विशिष्ट आईपी पते के कारण अलग-अलग थोड़े संस्करणों को रखे बिना कई प्रणालियों (उदाहरण के लिए कई प्रॉक्सी उदाहरण) के लिए एक ही नियम लिख और रख सकते हैं।


किसी तरह साँप / बहाना।
जीका

@ ओह, मैंने सुना है REDIRECT DNAT का एक विशेष मामला है, लेकिन मैं REDIRECT का उपयोग करता हूं और TOR एक पैकेट के वास्तविक गंतव्य को जानता है, इसलिए मैं ipdr और tcphdr संरचनाओं का dddr और dport निष्कर्ष निकालता हूं, और पैकेट सिर्फ REDIRECT गंतव्य तक वापस आ गया है गिरी। DNAT वास्तव में संरचनाओं को संशोधित करेगा। क्या मै गलत हु?
बाती
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.