Iptables में PREROUTING और FORWARD के बीच क्या अंतर है?


16

मैं यह समझने की कोशिश कर रहा हूं कि यह प्रणाली कैसे काम करती है और मुझे NAT PREROUTING या फ़िल्टर फॉरवर्ड का उपयोग करने के बीच के अंतर को समझने में समस्या है। जो मैं समझता हूं, फ़िल्टर से बचने के लिए PREROUTE पैकेट को दूसरे सर्वर पर भेज सकता है। यदि NAT PREROUTE के माध्यम से इसे संभाल सकता है, तो फ़िल्टर में एक फ़ॉरवर्ड नियम होने का क्या उद्देश्य है?

जवाबों:


25

NAT तालिका :

इस तालिका का उपयोग केवल NAT (नेटवर्क एड्रेस ट्रांसलेशन) के लिए अलग-अलग पैकेट पर किया जाना चाहिए। दूसरे शब्दों में, इसका उपयोग केवल पैकेट के स्रोत क्षेत्र या गंतव्य क्षेत्र का अनुवाद करने के लिए किया जाना चाहिए।

फ़िल्टर तालिका :

फ़िल्टर टेबल का उपयोग मुख्य रूप से फ़िल्टरिंग पैकेट के लिए किया जाता है। हम पैकेटों का मिलान कर सकते हैं और उन्हें जिस भी तरीके से चाहें, फ़िल्टर कर सकते हैं। यह वह जगह है जहां हम वास्तव में पैकेट के खिलाफ कार्रवाई करते हैं और उनकी सामग्री के आधार पर उन्हें देखते हैं और उनके पास क्या हैं या डीआरओपी या एसीसीपीटी हैं। बेशक हम पूर्व फ़िल्टरिंग भी कर सकते हैं; हालाँकि, यह विशेष तालिका वह स्थान है जिसके लिए फ़िल्टरिंग डिज़ाइन किया गया था।

में टेबल और श्रृंखला के traversing हम चाहते हैं कि फिल्टर के आगे श्रृंखला देख सकते हैं, केवल अग्रेषित पैकेट (पैकेट है कि नेटवर्क से आते हैं और नेटवर्क से बाहर जाना) द्वारा पार कर रहा है अर्थात् क्या आपके कंप्यूटर एक रूटर की तरह काम कर रहा है, जबकि नेट के PREROUTING श्रृंखला दोनों अग्रेषित द्वारा पार कर रहा है पैकेट और पैकेट जिसका गंतव्य स्थानीय होस्ट है।

आपको नेट के PREROUTING का उपयोग केवल पैकेटों के गंतव्य पते को बदलने के लिए करना चाहिए और केवल फ़िल्टर करने (पैकेटों को छोड़ने / स्वीकार करने) के लिए FORWARD को फ़िल्टर करना चाहिए।

यदि हमें पहले रूटिंग निर्णय में एक पैकेट मिलता है जो कि स्थानीय मशीन के लिए नियत नहीं है, तो इसे फ़ोरवर्ड श्रृंखला के माध्यम से रूट किया जाएगा। यदि पैकेट दूसरी ओर है, तो एक IP पते के लिए किस्मत में है जिसे स्थानीय मशीन सुन रही है, हम पैकेट को INPUT श्रृंखला और स्थानीय मशीन के माध्यम से भेजेंगे। यहाँ छवि विवरण दर्ज करें पैकेट स्थानीय मशीन के लिए नियत किया जा सकता है, लेकिन गंतव्य पते को NAT द्वारा PREROUTING श्रृंखला के भीतर बदला जा सकता है। चूंकि यह पहला रूटिंग निर्णय लेने से पहले होता है, इसलिए पैकेट को इस बदलाव के बाद देखा जाएगा। इस वजह से, रूटिंग निर्णय लेने से पहले रूटिंग को बदला जा सकता है। ध्यान दें, इस छवि में सभी पैकेट एक या दूसरे रास्ते से गुजर रहे होंगे। यदि आप एक पैकेट को उसी नेटवर्क पर वापस भेजते हैं जो वह आता है, तो यह तब तक बाकी श्रृंखलाओं के माध्यम से यात्रा करेगा जब तक कि यह नेटवर्क पर वापस नहीं आ जाता है।


5

PREROUTING : इस श्रृंखला से पहले किसी भी मार्ग से संबंधित निर्णय (बनाने के लिए प्रयोग किया जाता है पूर्व ) किसी भी पैकेट भेजने। हमेशा कि में याद PREROUTING/POSTROUTINGयानी NATतालिका ACCEPT/DROP/REJECTडिफ़ॉल्ट के आदि लक्ष्यों FILTERकाम की मेज नहीं होगा। NATतालिका रूटिंग निर्णय लेने के लिए ही प्रयोग किया जाता है। PREROUTINGराउटिंग के किसी भी निर्णय को लेते समय आपको इसका उपयोग करना चाहिए यानी जो निर्णय पैकेट से पहले लिए जाने चाहिए, वे नेटवर्क के माध्यम से ट्रेस करने लगेंगे। यहाँ एक उदाहरण है, हम किसी भी ट्रैफ़िक को रीडायरेक्ट कर रहे हैं जो पोर्ट 80 पर पोर्ट 8080 पर सर्वर तक पहुंचा है:

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080

FORWARD : जैसा कि नाम से पता चलता है, तालिका की FORWARDश्रृंखला का FILTERउपयोग किसी स्रोत से गंतव्य तक पैकेट को अग्रेषित करने के लिए किया जाता है, यहाँ स्रोत और गंतव्य दो अलग-अलग होस्ट हैं। इसलिए, जैसा कि आप कल्पना कर सकते हैं कि FORWARDनियम मूल रूप से सर्वर पर उपयोग किए जाते हैं जहां एक होस्ट सर्वर के माध्यम से दूसरे होस्ट से ट्रैफ़िक भेज / प्राप्त कर रहा है। जब पैकेट सर्वर से जेनरेट होता है तो चेन OUTPUTयानी ट्रैफिक अपने आप ही खत्म हो जाता है जबकि INPUTचेन का मतलब पैकेट केवल सर्वर के लिए होता है। यहाँ FORWARDश्रृंखला का एक उदाहरण है जहाँ होस्ट के लिए TCPइंटरफ़ेस पर पोर्ट 80 पर प्राप्त किसी भी ट्रैफ़िक को स्वीकार किया जाएगा और इसे आगे भेज दिया जाएगा :eth0192.168.0.4192.168.0.4

iptables -A FORWARD -i eth0 -p tcp --dport 80 -d 192.168.0.4 -j ACCEPT

"मेजबानों" का आपका उपयोग अजीब लगता है। कौन सी तालिका का उपयोग किया जाता है जब मुख्य रूप से स्थानीय इंटरफेस पर निर्भर करता है कि एक पैकेज में आया है और बाहर निकलने का इरादा है।
गुंटबर्ट

कौन सा हिस्सा अजीब लगता है? मैंने भेजने और प्राप्त करने वाले दलों को इंगित करने के लिए मेजबानों की धारणा का उपयोग किया है ..
हेमायेल

मैं पैरा फॉरवर्ड के बारे में बात कर रहा हूं: उस तालिका का उपयोग तब किया जाता है जब एक इंटरफ़ेस के माध्यम से आने वाले पैकेट को दूसरे इंटरफ़ेस (स्थानीय होस्ट के विपरीत) के लिए नियत किया जाता है
गुंटबर्ट

ओह..ओक..आई मिल गया .... हाँ, मुझे इंटरफ़ेस का उपयोग करना चाहिए .... बस मेजबानों का उपयोग करके चित्र को आसान बनाने के लिए..मैं इसे बदल दूंगा जब मैं अपने कंप्यूटर से संक्रमित हो जाऊंगा।
हेमायल

@ गुंटबर्ट: बस मेरा सिर सीधा हो गया। आपकी पिछली टिप्पणी को ध्यान से नहीं पढ़ा। मुझे लगता है कि आप FORWARDश्रृंखला के लिए दो अलग-अलग इंटरफेस के संदर्भ में गलत हैं । जब पैकेट को LAN के एक मेजबान से LAN के किसी अन्य होस्ट में स्थानांतरित किया जा रहा हो, तो पैकेट केवल एक इंटरफ़ेस से गुजरेगा और उपयोग की जाने वाली श्रृंखला होगी, FORWARDहालांकि यहां सर्वर (माध्यम) सख्त अर्थ में एक राउटर के रूप में कार्य नहीं करेगा। बल्कि एक स्विच के रूप में सोचा जा सकता है।
हेमायल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.