एम-कंस्ट्रक्ट - एमस्टेट और एम स्टेट --स्टेट के बीच क्या अंतर है


85

मैं पढ़ रहा हूँ इस howto, और वहाँ कुछ इस तरह है:

हम ट्रैफ़िक प्राप्त करने के लिए स्थापित सत्रों की अनुमति दे सकते हैं:

$ sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

उपरोक्त नियम में ESTABLISHED, संबंधित में अल्पविराम का कोई स्थान नहीं है

यदि ऊपर की रेखा काम नहीं करती है, तो आप एक ऐसे वीपीएस पर हो सकते हैं, जिसके प्रदाता ने एक्सटेंशन उपलब्ध नहीं कराया है, जिस स्थिति में एक अवर संस्करण को अंतिम उपाय के रूप में इस्तेमाल किया जा सकता है:

$ sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

क्या -m conntrack --ctstateऔर के बीच काम करने में महत्वपूर्ण अंतर है -m state --state? वे कहते हैं कि कोई काम नहीं कर सकता है, लेकिन वे ऐसा नहीं कहते हैं। मुझे एक पर दूसरे को क्यों पसंद करना चाहिए?


1
के संभावित dup serverfault.com/questions/358996/...
John1024

मैं इसे देखता हूं, क्या मुझे यह प्रश्न दूर करना चाहिए?
मिखाइल मोरफिकोव

1
@ जॉन 1024 - डुप्लिकेट केवल एक एसई साइट के भीतर हैं। जब तक क्यू एक विशेष एसई साइट को नियंत्रित करने वाले नियमों के भीतर हैं, तब तक कई एसई साइटों पर समान प्रश्न पोस्ट करना पूरी तरह से ठीक है!
स्लम

1
@MikhailMorfikov - आपके प्रश्न, हालांकि अन्य एसई साइटों पर अन्य क्यू के समान है यहां पूरी तरह से ठीक है!
SLM

1
@ टोटर - यदि आप मेरे जवाब में मेरा "डेटा पॉइंट # 4" देखते हैं, तो stateवास्तव में एक उपनाम है conntrack। तो कोई बात नहीं। मुझे लगता है कि भविष्य में वे stateपूरी तरह से हटा सकते हैं, लेकिन अगर आप इसका इस्तेमाल करते हैं तो इससे कोई फर्क नहीं पड़ता।
SLM

जवाबों:


99

मैं iptablesनियमों के विशेषज्ञ होने का दावा नहीं करता, लेकिन पहला कमांड कनेक्शन ट्रैकिंग एक्सटेंशन ( conntrack) का उपयोग कर रहा है जबकि दूसरा stateएक्सटेंशन का उपयोग कर रहा है।

डेटा बिंदु # 1

इस दस्तावेज़ के अनुसार conntrackविस्तार का विस्तार हुआ state

 Obsolete extensions:
  • -m state: replaced by -m conntrack

डेटा बिंदु # 2

यहां तक ​​कि मुझे यह एसएफ क्यू एंड ए शीर्षक मिला: फायरवाल राज्य और नीति के बारे में प्रश्न? जहां ओपी ने # iptables @ freenode में IRC पर यह सवाल पूछा है। वहां इस पर चर्चा करने के बाद वह इस निष्कर्ष पर पहुंचे कि:

तकनीकी रूप से कंसट्रैक मैच डूब जाता है - और ऐसा ही है - स्टेट मैच। लेकिन व्यावहारिक रूप से राज्य मैच किसी भी तरह से बाधित नहीं है।

डेटा बिंदु # 3

अंत में मुझे यह SF Q & A शीर्षक मिला: Iptables, क्या अंतर है -m स्थिति और -m संबंध? । इस सवाल से जवाब शायद सबसे अच्छा सबूत और कैसे के उपयोग को देखने के लिए के बारे में सलाह है conntrackऔर state

अंश

दोनों एक ही कर्नेल इंटर्नल का उपयोग करते हैं (कनेक्शन ट्रैकिंग सबसिस्टम)।

Xt_conntrack.c का शीर्षलेख:

xt_conntrack - Netfilter module to match connection tracking
information. (Superset of Rusty's minimalistic state match.)

तो मैं कहूंगा - राज्य मॉड्यूल सरल है (और शायद कम त्रुटि वाला)। यह अब कर्नेल में भी है। दूसरी तरफ Conntrack में अधिक विकल्प और विशेषताएं हैं [1]

यदि आपको इसकी विशेषताओं की आवश्यकता है, तो मेरा कॉल कॉनट्रैक का उपयोग करना है, अन्यथा राज्य मॉड्यूल के साथ रहें।

[१]"-m conntrack --ctstate DNAT -j MASQUERADE" राउटिंग / डीएनएटी फ़िक्सअप; क्विट जैसे उपयोगी

डेटा बिंदु # 4

मुझे यह धागा netfilter@vger.kernel.org netfilte / iptables चर्चा से मिला, जिसका शीर्षक है: राज्य मिलान अप्रचलित है 1.4.17 , जो बहुत कुछ कहता है कि stateयह सिर्फ एक उपनाम है conntrackइसलिए यह वास्तव में कोई फर्क नहीं पड़ता जो आप उपयोग करते हैं, दोनों परिस्थितियों का आप उपयोग कर रहे हैं conntrack

अंश

दरअसल, मुझे सहमत होना होगा। हम "राज्य" को एक उपनाम के रूप में क्यों नहीं रखते हैं और "वाक्य रचना" में पुराने वाक्यविन्यास को स्वीकार करते हैं?

यदि कर्नेल के पास है तो राज्य को वर्तमान में अलियास किया जाता है और iptables में अनुवाद किया जाता है। कोई स्क्रिप्ट नहीं टूटी।

यदि उपयोक्ता में अलियासिंग की जाती है, तो कर्नेल भाग को हटाया जा सकता है - किसी दिन।

उपयोगकर्ता नाम में aliasing पहले से ही किया गया है। "स्टेट" में एक प्रकार और इसे "कॉनट्रैक" में बदल दिया जाता है और फिर इसे कर्नेल में भेज दिया जाता है। (जहां तक ​​मैं देख रहा हूं कि अगर ipt_state, आदि मॉड्यूल एलियाज़ को कन्वर्टर मॉड्यूल में जोड़ दिया गया, तो भी राज्य कर्नेल मॉड्यूल को हटाया जा सकता है।)

संदर्भ


3

मैं नेटफिल्टर का विशेषज्ञ नहीं हूं, लेकिन मैंने iptables- एक्सटेंशन मैन-पेज और सुपरराइज में देखा, वहां यह है

The "state" extension is a subset of the "conntrack" module.

तो राज्य कंसट्रैक का एक हिस्सा है और इसका सिर्फ एक सरल संस्करण है अगर आपको वास्तव में सिर्फ जरूरत है - कॉन्सट्रैक की अधिक फैंसी विशेषताओं के लिए पर्याप्त और गैर

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