Iptables -A और -I विकल्प के बीच अंतर


20

मैं अपने DNS सर्वर से DNS प्रश्नों की अनुमति देने के लिए iptables को कॉन्फ़िगर करने के लिए (घंटों तक) कोशिश कर रहा हूं और मुझे पता चला कि मेरे iptables ने नियम ऐड विकल्प के कारण ब्लॉकिंग एक्सेस को रोक रखा था जो मैं उपयोग कर रहा था। अधिकांश फोरम निम्नलिखित के समान नियम सुझाते हैं:

iptables -A INPUT -p udp -m udp --dport 53 -j ACCEPT

हालाँकि, मेरे मामले में, मुझे काम करने के लिए नियम को एक insertप्रकार में बदलना पड़ा :

iptables -I INPUT -p udp -m udp --dport 53 -j ACCEPT

मुझे पता है कि एक नियम लागू करने के लिए और दूसरा डालने के लिए है और यह भी कि दोनों शब्दों का क्या मतलब है, लेकिन क्या कोई कृपया दोनों के बीच के अंतर को समझा सकता है और यह भी कि कब किस विकल्प का उपयोग करना है? मैंने उबंटू के iptables को देखा, लेकिन वहां ज्यादा जानकारी नहीं है।

जवाबों:


24

iptables -Aनियमों के अंत में नियमों को जोड़ता है जबकि iptables -Iनियम में एक विशिष्ट स्थान पर नियम सम्मिलित करता है जैसा आपने बताया है।

Iptables के लिए आदमी की प्रविष्टि को देखने से पता चलता है:

-I, --इन्टर चेन [रूलेनम] नियम-विनिर्देश दिए गए नियम संख्या के रूप में चयनित श्रृंखला में एक या अधिक नियम सम्मिलित करें। इसलिए, यदि नियम संख्या 1 है, तो नियम या नियम श्रृंखला के शीर्ष पर डाले जाते हैं। यदि कोई नियम संख्या निर्दिष्ट नहीं है, तो यह भी डिफ़ॉल्ट है।

और यहीं कारण है कि -Iआप के लिए काम किया और -Aनहीं करता है। यदि आप कोई रूलेनम आपूर्ति नहीं करते हैं, तो आपका नियम पहले स्थान पर डाला जाता है। आपके मामले में इसका मतलब यह है कि आपके नियमों में कहीं न कहीं एक नियम होना चाहिए जो DNS पैकेट्स को मना कर रहा हो (शायद एक नियम जो यूडीपी को आम तौर पर मना करता है?) क्योंकि iptables पहले से आखिरी तक सभी नियमों को संसाधित करता है, पहला मिलान और स्टॉप लागू करता है।
Btw, यही कारण है कि आपको उन नियमों को भी रखना चाहिए जो सबसे अधिक पैकेट से मेल खाते हैं: यदि आप सबसे अधिक उपयोग किए गए नियम को रखते हैं, और पैकेट को प्रत्येक नियम के विरुद्ध जांचा जाता है जो बहुत सारे स्रोतों का उपभोग कर सकता है।

और उपयोग के लिए: -Aजब आप किसी नियम को अंतिम रूप से जोड़ना चाहते हैं या जब आपका नियम नहीं होगा, तब आप आसानी से उपयोग कर सकते हैं। यदि आप एक विशिष्ट स्थिति में अपना नियम चाहते हैं, तो -Iउदाहरण के लिए इस तरह का उपयोग करें: iptables -I INPUT 6 -p tcp -j DROP(यह INPUT नियम में स्थिति 6 पर होस्ट को संबोधित किए गए सभी tcp पैकेटों के लिए DROP स्टेटमेंट जोड़ देगा।)

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