नेटफिल्टर वेब साइट पर आधिकारिक और अनुशंसित प्रलेखन के लिंक मौजूद हैं।
यह कोई नया विषय नहीं है, संसाधन असीम हैं ।
अधिकांश बुनियादी आदेश काफी सहज हैं और आसानी से मैनपेज का संदर्भ हो सकते हैं ।
netfilter, जो कर्नेल स्तर की तकनीक है जो पैकेट को छानने में सक्षम बनाता है, काफी उन्नत है। अतिरिक्त तालिकाएँ हैं जो पैकेटों का अनुवाद कर सकती हैं, पैकेटों का अनुवाद कर सकती हैं और अन्यथा रूटिंग को प्रभावित कर सकती हैं। iptables
उपयोगिता नेटफिल्टर के साथ बातचीत के लिए userland उपकरण है। यदि आप उन्नत कार्यक्षमता के बारे में सीखना चाहते हैं, तो मेरा सुझाव है कि आप उपरोक्त दस्तावेज का संदर्भ लें। बुनियादी कार्यक्षमता के लिए एक परिचय के लिए, कृपया आगे पढ़ें।
सभी मौजूदा नियमों को सूचीबद्ध करने के लिए:
iptables -L -n
-n
IPtables को ips को हल करने से रोकता है, जो तेजी से उत्पादन करता है।
डिफॉल्ट टेबल वह filter
टेबल होती है, जो तीन चेन में बेसिक फायरवॉल रूल्स लागू करने के लिए इस्तेमाल की जाती है। में तीन डिफ़ॉल्ट चेन filter
तालिका हैं INPUT
, OUTPUT
, और FORWARD
।
श्रृंखला काफी हद तक आत्म व्याख्यात्मक हैं। INPUT श्रृंखला में आने वाले पैकेट को प्रभावित करता है, OUTPUT श्रृंखला स्थानीय रूप से उत्पन्न पैकेटों को प्रभावित करती है, और अंत में सिस्टम के माध्यम से उस मार्ग के किसी भी पैकेट के लिए अग्रेषित करती है।
जिन लक्ष्यों को आप निर्दिष्ट कर सकते हैं, उनमें आप DROP
पैकेट दे सकते हैं , जिसका अर्थ है केवल अनदेखा करना और प्रतिक्रिया न करना। आप REJECT
पैकेट ले सकते हैं , जहां इनकार के स्रोत पर एक आईसीएमपी प्रतिक्रिया भेजी जाएगी। अंत में, आप ACCEPT
उन्हें कर सकते हैं, जो पैकेट को रूट करना जारी रखने की अनुमति देता है।
अक्सर एक बाहरी सामना करने वाले फ़ायरवॉल के साथ डिफ़ॉल्ट विकल्प का DROP
विरोध किया जाएगा REJECT
, क्योंकि यह इंटरनेट पर आपके नेटवर्क के दृश्यमान पदचिह्न को कम करता है। उदाहरण के लिए, एक आईपी जो किसी विशिष्ट होस्ट के लिए सेवाओं को सीमित करता है, उसके साथ कम दृश्यता होगी DROP
।
ध्यान दें, का -A
अर्थ है श्रृंखला के अंत में संलग्न करें। यदि आप शीर्ष पर सम्मिलित करना चाहते हैं, तो आप उपयोग कर सकते हैं -I
। सभी नियमों को ऊपर से नीचे संसाधित किया जाता है। -D
हटाने के लिए।
करने के लिए DROP
एक इनकमिंग पैकेट से आ रही 192.168.235.235
:
iptables -A INPUT -s 192.168.235.235 -j DROP
यह DROP
उस आईपी से आने वाले सभी प्रोटोकॉल के लिए लक्ष्य के लिए कूदता है ।
मंजूर करना:
iptables -A INPUT -s 192.168.235.235 -j ACCEPT
अपने स्थानीय सर्वर या नेटवर्क से उस आईपी तक पहुंचने से रोकने के लिए:
iptables -A OUTPUT -d 192.168.235.235 -j DROP
आप -p
प्रोटोकॉल, -s
पैकेट के स्रोत, पैकेट के लिए -d
गंतव्य, गंतव्य बंदरगाह --dport
, स्रोत बंदरगाह --sport
और कई अन्य झंडे को निर्दिष्ट कर सकते हैं जो इस बात को प्रभावित करेंगे कि पैकेट को नियम द्वारा कैसे व्यवहार किया जाता है।
यदि आपकी डिफ़ॉल्ट INPUT
नीति थी DROP
और आप 192.168.123.0/24
सबनेट पर अपने सर्वर पर एसएसएच का उपयोग करने की अनुमति देना चाहते थे , तो यहां एक उदाहरण है:
iptables -A INPUT -s 192.168.123.0/24 -p tcp --dport 22 -j ACCEPT
यह सही है, आप CIDR नोटेशन का भी उपयोग कर सकते हैं !
सामान्यतया, DROP
सभी चेन के लिए सबसे अच्छी डिफ़ॉल्ट पॉलिसी है । प्रत्येक श्रृंखला में एक डिफ़ॉल्ट नीति होती है, जिसे -P
ध्वज द्वारा निर्दिष्ट किया जाता है । यहां तक कि अगर आपने अपनी पॉलिसी को डिफ़ॉल्ट रूप से सेट किया है DROP
, तब भी यह सलाह दी जाती है कि एक चेन में अंतिम प्रविष्टि के DROP
रूप में अच्छी तरह से होना चाहिए ।
उदाहरण के लिए, DROP
INPUT, FORWARD और OUTPUT श्रृंखलाओं के लिए नीति बदलने के लिए:
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP
सावधान रहें , यदि आप पहले खुद को एसएसएच एक्सेस की अनुमति के बिना रिमोट सिस्टम पर INPUT के लिए DROP की डिफ़ॉल्ट नीति निर्दिष्ट करते हैं, तो आप सिस्टम को एक्सेस करने से खुद को रोक सकते हैं। यदि दूरस्थ सिस्टम पर, आप एक असफल क्रेफ़ैट के रूप में हर 5 मिनट में सभी नियमों को फ्लश करने के लिए एक अस्थायी क्रॉस्टैब निर्दिष्ट कर सकते हैं।
सभी नियमों को हटाने और सभी ट्रैफ़िक को अनुमति देने के लिए:
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -X
iptables -F
ध्यान दें, -X
सभी बनाई गई श्रृंखलाओं को निकालता है। -F
सभी नियमों की धज्जियाँ उड़ाता है।
नियमों को बचाने और पुनर्स्थापित करने के लिए देशी उपकरण हैं। विशेष रूप से, iptables-save
और iptables-restore
। अधिकांश आधुनिक लिनक्स वितरण है save
और restore
एक iptables के भीतर काम करता है सिस्टम के साथ प्रदान की गई फ़ाइल init।
अन्य फ़ायरवॉल सर्वोत्तम अभ्यास हैं, जैसे कि विकृत पैकेट और अन्य प्रकार के अवांछनीय ट्रैफ़िक को छोड़ना। Shorewall जैसे फ्रंट एंड यूटिलिटी का उपयोग करने का यह एक फायदा है , क्योंकि यह डिफ़ॉल्ट रूप से इनमें से कई पॉलिसियों को लागू करेगा। फिर भी, मैं आपके दृष्टिकोण से सहमत हूं और अपने स्वयं के नियमों को भी सीधे बनाए रखना पसंद करता हूं, और इन सबसे अच्छी प्रथाओं को बिना किसी अंत के लागू किया जा सकता है।