iptables सभी आउटबाउंड स्थानीय रूप से ट्रैफ़िक उत्पन्न करने की अनुमति देने का नियम है?


11

मैं सोच रहा था कि क्या कोई मुझे निम्नलिखित iptables नियम के साथ मदद कर सकता है:

हम किसी भी और सभी को स्थानीय रूप से उत्पन्न करने की अनुमति देना चाहते हैं (जैसा कि सर्वर में iptables चल रहा है) ट्रैफ़िक।

DNS, HTTP, आदि ... यह सब। Iptables चलाने वाले सर्वर द्वारा शुरू किए गए किसी भी कनेक्शन को अनुमति दी जानी चाहिए।

वर्तमान में हम मूल रूप से OUTPUT डिफ़ॉल्ट नीति, ACCEPT का उपयोग कर रहे हैं। क्या ये सही है? इनपुट्स ब्लॉक कर दिए गए हैं, इसलिए मैं इसका मतलब यह मान रहा हूं कि कनेक्शन (जिन्हें हम अनुमति देते हैं) को शुरू नहीं किया जा सकता है, क्योंकि वे OUTPUT पॉलिसी को हिट करने से पहले ही हमारी ओर से गिरा दिए जाएंगे?

क्षमा करें, मेरे iptables कौशल कमजोर हैं;)

बहुत धन्यवाद।

जवाबों:


26

आपको ऐसा करने के लिए दो नियमों की आवश्यकता है:

iptables -I OUTPUT -o eth0 -d 0.0.0.0/0 -j ACCEPT
iptables -I INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT

कुछ नोट।

  • हो सकता है कि आप पहले से ऐसा कर सकते हैं, लेकिन नियम अलग हैं।
  • यह -Iइन नियमों को पहले लागू करने के लिए मजबूर करता है। iptablesनियमों का मूल्यांकन ऊपर नीचे किया जाता है।
  • -oऔर -iझंडे क्रमशः "में" "बाहर" और मतलब है। eth0उचित ईथरनेट इंटरफ़ेस नाम से बदलें ।

हम दोनों के पास :) मैं 2 का उल्लेख करने में विफल रहा क्योंकि जैसे मैंने कहा ... मेरे iptables कौशल कमजोर सॉस हैं। स्पष्टीकरण के लिए धन्यवाद :)
अनाम-एक

2
-d 0.0.0.0/0बेमानी है और जरूरत नहीं है।
zapstar

बहुत बढ़िया जवाब। लेकिन अब मैं सर्वर को पिंग करने में सक्षम हूं, और मुझे समझ नहीं आता कि क्यों। क्या तुम समझा सकते हो?
डैनियल

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

@ नौबत: दोबारा कोशिश करने के बाद, मैंने पाया कि मुझे स्पष्ट रूप से icmp यातायात की अनुमति देने की आवश्यकता है। और मैं सर्वर को पिंग करने में सक्षम होने के बारे में बोल रहा था, जहां मैंने उपरोक्त नियमों को लागू किया था। यह btw को पुन: उत्पन्न नहीं कर सकता।, शायद मैंने कहीं गलती की। फिर भी धन्यवाद।
डैनियल

0

वर्तमान में हम मूल रूप से OUTPUT डिफ़ॉल्ट नीति, ACCEPT का उपयोग कर रहे हैं।

यह OUTPUT के लिए पर्याप्त है क्योंकि Netfilter को राज्य कनेक्शन को ट्रैक करने के लिए विशेष नियमों की आवश्यकता नहीं है।

लेकिन अगर आप " डिफ़ॉल्ट इनकार " नीति के अनुसार इनबाउंड ट्रैफ़िक को फ़िल्टर करना चाहते हैं तो इसे स्विचिंग INPUT-चैन के साथ किया जा सकता है DROP:iptables -P INPUT DROP

बाद में यह सब सिर्फ 2 नियमों के साथ निर्धारित किया जाएगा :

iptables -A INPUT -j ACCEPT -i lo
iptables -A INPUT -j ACCEPT -m state --state RELATED,ESTABLISHED

लूपबैक इंटरफ़ेस पर इनपुट ट्रैफ़िक की अनुमति देने वाले नियम पर अपना ध्यान दें - जैसा कि मैंने अपने ब्लॉग में " एंड यूज़र के लिए मिनिमल फ़ायरवॉल " पोस्ट किया है , जब तक कि स्पष्ट रूप से अनुमति नहीं दी जाती है, लूपबैक ट्रैफ़िक को "स्थापित" स्टेट चेकिंग के द्वारा नहीं दिया जाएगा, वापसी की तुलना में ट्रैफिक ओवर, कहते हैं eth0,।

यह सुनिश्चित करने के लिए कि यह न्यूनतम नियमों को लोड किया गया है " जैसा कि " w / o नियमों के साथ हस्तक्षेप है जो पहले से ही हो सकता है, यह iptables-restoreSHELL-सत्र का उपयोग करने के लिए सुविधाजनक है :

lptables-restore <<__EOF__
-P INPUT DROP
-A INPUT -j ACCEPT -i lo
-A INPUT -j ACCEPT -m state --state RELATED,ESTABLISHED
__EOF__

ऐसा करने से पहले सुनिश्चित करें कि आप अपने स्वयं के नेटवर्किंग कनेक्शन 1 को नहीं काटेंगे , हालांकि पहले से ही खुले एसएसएच सत्रों को सामान्य रूप से काम करना जारी रखना चाहिए, नए खोलने के प्रयास काम नहीं करेंगे।

__

  1. बेशक आप इस तरह के कनेक्शन की अनुमति देने के लिए अन्य नियम जोड़ सकते हैं। यह बस के रूप में सरल हो सकता है -A INPUT -j ACCEPT -p tcp --dport 22- -m stateयहाँ के साथ टिंकर करने की कोई आवश्यकता नहीं है। इसे आज़माने lptables-restoreसे iptables-restoreपहले ठीक करना न भूलें ;)
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.