मैं iptables नियमों के एक विशिष्ट सेट को कैसे स्थायी बना सकता हूं?


42

क्या कुछ iptables नियमों को स्थायी बनाने के लिए "सर्वोत्तम अभ्यास" या मानक है? मेरा मतलब है: स्वचालित रूप से सिस्टम रिबूट पर लागू होता है?

मैं उबंटू सर्वर 10.04 एलटीएस (ल्यूसिड लिंक्स) के साथ एक वीपीएस का उपयोग कर रहा हूं।

धन्यवाद।

बड़े संस्करण: मैं नहीं चाहता कि कोई नियम कायम रहे (जैसे iptables-persistentपैकेज करता है)। मैं चाहता हूं कि केवल मेरे अपने विशिष्ट सेट को फिर से लोड किया जाए ... यदि अन्य नियम अंततः iptables चलाकर जोड़े जाते हैं, तो इन्हें छोड़ दिया जाना चाहिए ...

जवाबों:


51

सरलतम विधि iptables-save और iptables- पुनर्स्थापना का उपयोग वर्तमान में परिभाषित iptables नियमों को एक फ़ाइल में सहेजने के लिए है और (फिर से) उन्हें लोड करें (जैसे, रिबूट पर)।

उदाहरण के लिए, आप दौड़ेंगे

sudo iptables-save | sudo tee /etc/iptables.conf

अपने मौजूदा iptables नियमों को बचाने के लिए /etc/iptables.confऔर फिर इन पंक्तियों को सम्मिलित करें /etc/rc.local:

# Load iptables rules from this file
iptables-restore < /etc/iptables.conf

2
+1 आपका उत्तर मेरे मूल प्रश्न के लिए एकदम सही है। इससे मुझे यह भी एहसास हुआ कि मैं वास्तव में क्या चाहता हूं, इसलिए मुझे इस सवाल को "मैं iptables नियमों को स्थायी कैसे बना सकता हूं" से बदलना पड़ा? "मैं iptables नियमों के एक विशिष्ट सेट को कैसे स्थायी बना सकता हूं?"
जे। ब्रुनी

यदि आप कर सकते हैं, तो कृपया, प्रश्न में परिवर्तन को प्रतिबिंबित करने के लिए अपने उत्तर को थोड़ा संपादित करें ... मुझे इसे स्वीकार करने में खुशी होगी! मुझे iptables-saveएक बार उपयोग करने की आवश्यकता है , और हमेशा लोड करें (iptables-Restore at /etc/rc.local अच्छा लगता है)।
जे। ब्रुनी

1
यदि आप permission deniedउपयोग करने की कोशिश कर रहे हैं >तो यह स्टैक ओवरफ्लो उत्तर उपयोगी होगा।
डेविड टयूइट

2
sudo sh -c "iptables-save > /etc/iptables.conf"इसके बजाय का उपयोग करेंsudo iptables-save > /etc/iptables.conf
रजत गुप्ता

31

इस के लिए एक त्वरित अद्यतन के रूप में आप अब 12.04 का उपयोग कर सकते हैं और चीजें बेहतर हैं।

iptables-persistentपैकेज अब इस मुद्दे को हल करती है। स्थापित करने के लिए,

sudo apt-get install iptables-persistent

पैकेज स्थापित होने पर परिभाषित नियम प्रत्येक बाद के बूट पर सहेजे और उपयोग किए जाते हैं। नए नियम लोड किए गए रिबूट पर खारिज कर दिए गए हैं।

अगर आपको उन्हें (एक बार iptables-persistentस्थापित किया गया है) /etc/iptables/rules.v4या फिर /etc/iptables/rules.v6क्रमशः IPv4 और ipv6 iptables के लिए बदलने की आवश्यकता है, तो कॉन्फ़िग फ़ाइल ।


यदि आप एक संपादन करते हैं /etc/iptables/rules.v4, तो आप इसे कैसे लागू करते हैं [आधिकारिक रूप से]? वर्तमान में मैं कर रहा हूंsudo iptables-restore < /etc/iptables/rules.v4
ब्रूनो ब्रोंस्की

24

इससे बेहतर है कि iptable के नियमों को सहेजने के बाद /etc/rc.localएक लाइन को /etc/network/interfacesइस तरह से जोड़ा जाए

post-up iptables-restore < /etc/iptables.up.rules

या यह फाइल के अंदर डाल करने के लिए ही है /etc/network/if-down.d/या /etc/network/if-post-down.d/या /etc/network/if-pre-up.d/या /etc/network/if-up.d/


1
@ क्रेकर: कृपया स्पष्ट करें कि आपका दृष्टिकोण किस तरह से एक पुनर्स्थापना स्क्रिप्ट को निष्पादित करने से बेहतर है rc.local? क्या अन्य दृष्टिकोण कुछ मामलों में काम नहीं करता है?
रजत गुप्ता

2
"सेवा नेटवर्किंग पुनरारंभ" कमांड चलाने के बाद इसे नेटवर्क कॉन्फ़िगरेशन में जोड़ने से यह फिर से लोड हो जाता है। यह सिस्टम शुरू होने तक सीमित नहीं है।
। डारिएन फ्रीहार्ट

4
जब कोई इंटरफ़ेस नीचे जा रहा है तो कोई पोस्ट-अप iptables-पुनर्स्थापना क्यों करेगा?
अल्फागदग
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.