श्रृंखला का नाम हुक नहीं है: iptables बनाम nftables
श्रृंखला एक पात्र है; हुक तय करता है कि कर्नेल उसे देखता है या नहीं। नियम संपादित करने से पहले iptables के अंतर्निहित और nftables की आधार श्रृंखलाओं की तुलना करें।
दोनों फ़ायरवॉल फ़ॉरवर्ड किए गए VPN ट्रैफ़िक को फ़िल्टर कर सकते हैं, और वे नियमों को पैकेट पथ से अलग-अलग तरीक़ों से जोड़ते हैं। iptables में एक तालिका के भीतर अंतर्निहित श्रृंखलाएँ होती हैं, इसलिए FORWARD एक नामित हुक बिंदु के रूप में मौजूद है। nftables श्रृंखला के नाम को उसके प्रकार, हुक और प्राथमिकता से अलग करता है, जिसका अर्थ है कि FORWARD नाम की एक साधारण श्रृंखला कुछ भी फ़िल्टर नहीं करती। दोनों मॉडलों की तुलना बताती है कि क्यों एक टूल में सही दिखने वाली प्रविष्टि दूसरे में कोई प्रभाव नहीं डालती।
श्रृंखला एक पात्र है। कर्नेल उसे देखता है या नहीं, यह कार्यान्वयन पर और इस पर निर्भर करता है कि नियम-समुच्चय उसे कैसे जोड़ता है।
दो मॉडल, दो अलग जुड़ाव
iptables में फ़िल्टर तालिका तीन अंतर्निहित श्रृंखलाओं के साथ आती है, INPUT, FORWARD और OUTPUT, और -N एक उपयोगकर्ता-परिभाषित श्रृंखला बनाता है जो केवल तभी प्रभावी होती है जब उनमें से किसी एक से उस पर जंप किया जाए। nftables मैनुअल इसके बजाय आधार श्रृंखलाएँ परिभाषित करता है, जो अपना प्रकार, हुक और प्राथमिकता घोषित करती हैं, और साधारण श्रृंखलाएँ, जो ऐसा नहीं करतीं। एक आधार श्रृंखला कोई भी नाम ले सकती है, और FORWARD नाम की साधारण श्रृंखला को अपने लेबल से कोई गुण नहीं मिलता। यही पूरा अंतर है, और यह ऐसे ट्यूटोरियल में अदृश्य रहता है जो केवल नियम का पाठ दिखाता है।
संगतता बैकएंड एक दूसरा कारण जोड़ते हैं कि कमांड के नाम से व्यवहार का अनुमान न लगाया जाए। iptables का दस्तावेज़ ऐसे संचालन बताता है जो iptables-nft के अंतर्गत भिन्न हैं, इसलिए मूल nftables, iptables-nft और पुराने नियम-समुच्चय को एक ही चीज़ के तीन रूप नहीं, बल्कि तीन अलग प्रणालियाँ मानें।
त्रुटि को उसके वास्तविक संदर्भ में पढ़ें
अनुपस्थित तालिका, अनुमति की विफलता, अनुपलब्ध कर्नेल सुविधा और अनुपस्थित नामित श्रृंखला चार अलग निष्कर्ष हैं, और उनमें से केवल एक श्रृंखला के बारे में है। टूल का संस्करण, अनुरोधित पता परिवार और तालिका, नेटवर्क नेमस्पेस और पहली सटीक त्रुटि दर्ज करें। फिर जाँचें कि नियम-समुच्चय किस घटक का है: फ़ायरवॉल सेवा या उत्पाद-प्रबंधित गेटवे अपनी श्रृंखलाएँ और क्रम स्वयं बना सकते हैं। उनके साथ मूल श्रृंखला जोड़ने से प्रबंधित नीति अछूती रहती है और सूची और अधिक भ्रमित करती है।
कंटेनर का नेमस्पेस मेज़बान से भिन्न नियम-समुच्चय रख सकता है, इसलिए गलत संदर्भ में चलाया गया कमांड यह नहीं दिखा सकता कि किस श्रृंखला ने फ़ॉरवर्ड पैकेट देखा। केवल इसलिए कि अपेक्षित श्रृंखला दिखाई नहीं दी, विशेषाधिकार बढ़ाना निदान नहीं है।
काउंटर पहुँच सिद्ध करते हैं, निर्णय नहीं
नियम काउंटर बताते हैं कि किसी नियम तक पहुँचा गया। वे यह नहीं बताते कि बाद के नियम ने संचालन की अनुमति दी, और वे यह सिद्ध नहीं करते कि हर वैकल्पिक पथ अस्वीकार हुआ। उन्हें एक हानिरहित अधिकृत प्रवाह के दौरान, नियम क्रम और श्रृंखला जुड़ाव के साथ पढ़ें, और उन्हें निर्णय नहीं बल्कि एक अवलोकन मानें। ड्रॉप नियम पर शून्येतर काउंटर का अर्थ है कि ट्रैफ़िक उससे टकराया; यह उस ट्रैफ़िक के बारे में कुछ नहीं कहता जो टकराया नहीं।
कर्नेल IP फ़ॉरवर्डिंग पूरी तरह अलग सेटिंग है। श्रृंखला का होना फ़ॉरवर्डिंग को सक्षम नहीं करता, और परिचित लेबल का अनुपस्थित होना यह नहीं दर्शाता कि फ़ॉरवर्डिंग रुक गई।
जिस प्रवाह को आप बचाना चाहते हैं उसका वर्णन करें
डीकैप्सुलेशन के बाद एक क्लाइंट अनुरोध लिखें: उसका स्रोत, उसका गंतव्य, पता परिवार, और क्या वह गेटवे पर समाप्त होता है या उससे होकर गुज़रता है। स्थानीय सेवा का इनपुट और फ़ॉरवर्ड ट्रैफ़िक अलग-अलग बिंदुओं पर देखे जाते हैं, इसलिए उन्हें अलग नियम और अलग परीक्षण चाहिए। ब्रिज्ड VPN के लिए ब्रिज पथ भी सत्यापित करें, क्योंकि IP-स्तरीय श्रृंखला Ethernet फ़्रेम की स्वतः निगरानी नहीं करती।
दूरस्थ गेटवे बदलने से पहले स्वतंत्र रिकवरी पहुँच सुरक्षित रखें। फिर उसी नियम-समुच्चय के अंतर्गत इच्छित प्रवाह और आवश्यक अस्वीकृतियों की पुष्टि करें। परिचित नाम वाली नई खाली श्रृंखला कोई मरम्मत नहीं है।
तुलना एक प्रश्न पर समाप्त होती है: इस पैकेट के लिए कर्नेल वास्तव में किस हुक को कॉल करता है? उसका उत्तर दें, और श्रृंखला का नाम महत्वहीन हो जाता है।