Nftables ट्यूटोरियल

Nftables Tyutoriyala



यह ट्यूटोरियल बताता है कि कैसे Nftables Linux फ़ायरवॉल के साथ काम करना है। यह सामग्री Linux के अनुभवी और नए उपयोगकर्ताओं दोनों के लिए अनुकूलित है।

Nftables फ़ायरवॉल कार्यात्मकता प्रदान करने वाले Linux कर्नेल का एक घटक है। यह Iptables का प्रतिस्थापन है।







इस ट्यूटोरियल को पढ़ने के बाद, आप Nftables के नियमों को समझेंगे, और आप अपना फ़ायरवॉल बनाने में सक्षम होंगे। आपको Iptables पर पिछले ज्ञान की आवश्यकता नहीं है।



इस ट्यूटोरियल के सभी उदाहरणों में स्क्रीनशॉट शामिल हैं, जिससे सभी लिनक्स उपयोगकर्ताओं के लिए, उनके ज्ञान स्तर से स्वतंत्र, उन्हें समझना और कार्यान्वित करना आसान हो गया है।



Nftables के साथ शुरुआत करना

आरंभ करने से पहले, निम्नलिखित उदाहरण के आधार पर अपने पहले Nftables नियमों को टाइप करना शुरू करने के लिए नैनो या vi जैसे टेक्स्ट एडिटर का उपयोग करके एक फ़ाइल बनाएं और खोलें। कॉपी-पेस्ट न करें; सब कुछ टाइप करें।





नैनो फ़ायरवॉल.एनएफटी

इस ट्यूटोरियल में उदाहरण बहुत सरल है और एक प्रतिबंधात्मक फ़ायरवॉल दिखाता है जिसमें लूपबैक और विशिष्ट पोर्ट को छोड़कर सभी IPv4 ट्रैफ़िक को छोड़ दिया जाता है।



पिछले स्क्रीनशॉट में, मैंने अपने स्थानीय नेटवर्क (192.168.0.0/16) को LinuxHintNet के रूप में परिभाषित करने के लिए पहली पंक्ति का उपयोग किया था।

LinuxHintNet को परिभाषित करें = 192.168.0.0 / 16

दूसरी पंक्ति में, मैं बंदरगाहों के एक समूह (80,443, और 22) को परिभाषित करता हूं। मैं इस समूह को अनुमति देता हूं क्योंकि मैं उनके माध्यम से यातायात की अनुमति देने की योजना बना रहा हूं। AllowPorts एक मनमाना नाम है।

AllowPorts को परिभाषित करें   = { 80 , 443 , 53 , 22 }

फिर, मैं एक टेबल जोड़ता हूं, जो एक कंटेनर या जंजीरों और नियमों का समूह है; उन दोनों को नीचे समझाया गया है। टेबल्स नियमों और जंजीरों को व्यवस्थित करने में मदद करते हैं। मैंने तालिका को 'प्रतिबंधात्मक' उदाहरण में बुलाया क्योंकि इसमें एक प्रतिबंधात्मक नीति है, और इसका नाम मनमाना है।

तालिका नाम से पहले का IP इंगित करता है कि que तालिका नियम केवल IPv4 ट्रैफ़िक पर लागू होंगे। IPv4 और IPv6 प्रोटोकॉल पर नियम लागू करने के लिए आप IP के बजाय inet का उपयोग कर सकते हैं। या आप केवल IPv6 के लिए IP को ip6 से बदल सकते हैं।

याद रखें, प्रतिबंधित एक ऐसा नाम है जिसे मैंने मनमाने ढंग से परिभाषित किया है। आप टेबल को अपनी इच्छानुसार नाम दे सकते हैं।

मेरे मामले में, मैं केवल IPv4 पर नियम लागू करता हूं, जैसा कि नीचे दिखाया गया है।

तालिका जोड़ें आईपी प्रतिबंधक

दोनों प्रोटोकॉल के लिए, निम्न का उपयोग करें:

तालिका जोड़ें इनसेट प्रतिबंधात्मक

फिर हम पहली आधार श्रृंखला जोड़ते हैं, जिसे मैं मनमाने ढंग से इनकमिंग नाम देता हूं क्योंकि यह आने वाले ट्रैफ़िक से संबंधित है। हालाँकि, आप इसे अपनी इच्छानुसार नाम दे सकते हैं।

निम्न आधार श्रृंखला डिफ़ॉल्ट रूप से आने वाले सभी ट्रैफ़िक को छोड़ देती है:

  • श्रृंखला जोड़ें आईपी प्रतिबंधित आवक: यह खंड आईपीवी 4 पर लागू होने वाली प्रतिबंधित आने वाली श्रृंखला को जोड़ता है
  • फ़िल्टर प्रकार: यह श्रृंखला प्रकार को फ़िल्टर के रूप में परिभाषित करता है क्योंकि यह ट्रैफ़िक को फ़िल्टर करेगा। अन्य संभावित श्रृंखला प्रकार मार्ग या NAT . हैं
  • हुक इनपुट: आने वाले पैकेट को संदर्भित करता है
  • प्राथमिकता 0: बेस चेन प्राथमिकता बेस चेन ऑर्डर को परिभाषित करती है
  • पॉलिसी ड्रॉप: ड्रॉप पॉलिसी, डिफ़ॉल्ट रूप से, सभी पैकेटों को छोड़ देती है
श्रृंखला जोड़ें आईपी प्रतिबंधित आवक { प्रकार फ़िल्टर हुक इनपुट प्राथमिकता 0 ; पॉलिसी ड्रॉप; }

जैसा कि आप निम्नलिखित स्क्रीनशॉट में देख सकते हैं, मैंने पिछले, प्रतिबंधित पुनर्निर्देशन और प्रतिबंधात्मक आउटगोइंग के समान दो अन्य आधार श्रृंखलाएं बनाईं। अंतर प्रत्येक के लिए परिभाषित हुक है (हुक फॉरवर्ड और हुक आउटपुट)। उन्हें समझाना दोहराव है।

तीन आधार श्रृंखलाओं के बाद, हम लूपबैक ट्रैफ़िक की अनुमति देने के लिए Nftables नियमों के साथ जारी रख सकते हैं।

मैं लूपबैक इंटरफ़ेस पर इनकमिंग और आउटगोइंग ट्रैफ़िक के लिए निम्न पंक्तियाँ जोड़ता हूँ।

नियम जोड़ें आईपी प्रतिबंधित आवक आईआईएफनाम लो काउंटर स्वीकार

नियम जोड़ें आईपी प्रतिबंधात्मक आवक का नाम काउंटर स्वीकार करें

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

नियम जोड़ें आईपी प्रतिबंधित आने वाली टीसीपी खेल $AllowPorts काउंटर स्वीकार

नियम जोड़ें आईपी प्रतिबंधित आउटगोइंग टीसीपी डीपोर्ट $AllowPorts काउंटर स्वीकार

नियम जोड़ें आईपी प्रतिबंधित आवक udp खेल $AllowPorts काउंटर स्वीकार

नियम जोड़ें आईपी प्रतिबंधित आउटगोइंग udp dport $AllowPorts काउंटर स्वीकार

आप नीचे पूरी स्क्रिप्ट देख सकते हैं।

एक बार जब आप अपनी टेबल, चेन और नियम टाइप करना समाप्त कर लें, तो दस्तावेज़ को बंद करें और परिवर्तनों को सहेजें।

# पहली दो पंक्तियों में, मैं अपने स्थानीय नेटवर्क (LinuxHintNet) और बंदरगाहों का एक सेट (80,
#443,22) नीचे दिए गए नियमों में उनके माध्यम से यातायात सक्षम करने के लिए।
LinuxHintNet को परिभाषित करें = 192.168.0.0 / 16
AllowPorts को परिभाषित करें   = { 80 , 443 , 53 , 22 }
#मैं एक नई तालिका घोषित करता हूं जिसमें जंजीरें और नियम होंगे। मैं इस तालिका को 'प्रतिबंधात्मक' कहता हूं।
#द 'आईपी' केवल आईपीवी4 पर नियम लागू करता है। IPv6 के लिए, केवल 'ip6' का उपयोग करें और दोनों प्रोटोकॉल के लिए 'inet' का उपयोग करें।
तालिका जोड़ें आईपी प्रतिबंधक
# टेबल बनाने के बाद, मैं तीन चेन बनाता हूं, इनकमिंग, रीडायरेक्ट और आउटगोइंग,
#उनके नाम मनमानी हैं। ये सभी डिफ़ॉल्ट रूप से इनकमिंग, आउटगोइंग और फ़ॉरवर्डिंग ट्रैफ़िक छोड़ देते हैं।
श्रृंखला जोड़ें आईपी प्रतिबंधित आवक { प्रकार फ़िल्टर हुक इनपुट प्राथमिकता 0 ; पॉलिसी ड्रॉप; }
श्रृंखला जोड़ें आईपी प्रतिबंधात्मक पुनर्निर्देशन { प्रकार फ़िल्टर हुक फ़ॉरवर्ड प्राथमिकता 0 ; पॉलिसी ड्रॉप; }
श्रृंखला जोड़ें आईपी प्रतिबंधित आउटगोइंग { प्रकार फ़िल्टर हुक आउटपुट प्राथमिकता 0 ; पॉलिसी ड्रॉप; }
# मैं लूपबैक ट्रैफिक की अनुमति देने के लिए दो नियम लागू करता हूं।
नियम जोड़ें आईपी प्रतिबंधित आवक आईआईएफनाम लो काउंटर स्वीकार
नियम जोड़ें आईपी प्रतिबंधात्मक आवक का नाम काउंटर स्वीकार करें
# मैं AllowPorts चर में परिभाषित बंदरगाहों के माध्यम से यातायात की अनुमति देने के लिए नियम लागू करता हूं।
नियम जोड़ें आईपी प्रतिबंधित आने वाली टीसीपी खेल $AllowPorts काउंटर स्वीकार
नियम जोड़ें आईपी प्रतिबंधित आउटगोइंग टीसीपी डीपोर्ट $AllowPorts काउंटर स्वीकार
नियम जोड़ें आईपी प्रतिबंधित आवक udp खेल $AllowPorts काउंटर स्वीकार

नियम जोड़ें आईपी प्रतिबंधित आउटगोइंग udp dport $AllowPorts काउंटर स्वीकार

फ़ायरवॉल को सक्रिय करने के लिए, निम्न आदेश चलाएँ:

सुडो एनएफटी -एफ फ़ायरवॉल.एनएफटी

आप निम्न आदेश चलाकर अपने नियमों की जांच कर सकते हैं:

सुडो एनएफटी सूची नियमसेट

यह एक बुनियादी प्रतिबंधात्मक फ़ायरवॉल है।

निष्कर्ष:

जैसा कि आप देख सकते हैं, Nftables Iptables की तुलना में बहुत अधिक अनुकूल है, और उपयोगकर्ता Iptables की तुलना में Nftables को तेजी से सीख सकते हैं। चूंकि Iptables को बंद किया जा रहा है, और कई वितरण Nftables को डेबियन सहित डिफ़ॉल्ट फ़ायरवॉल के रूप में उपयोग कर रहे हैं। Iptables के अनुभवी उपयोगकर्ता Iptables-nftables-compat टूल को देखना चाह सकते हैं, जो Iptables से Nftables में अनुवाद करता है। इससे उन्हें मतभेदों को समझने में मदद मिल सकती है।

पेशेवर उपयोगकर्ता जैसे सिस्टम प्रशासक Iptables के साथ काम करते रहते हैं; फ़िल्टरिंग में सुधार करते हुए समय बचाने के लिए Nftables को अनदेखा करने से बचें। मुझे उम्मीद है कि यह लेख आपको Nftables को आजमाने के लिए मनाने के लिए काफी सरल था।