क्या मुझे बूट पर हर बार iptable नियमों को पुनर्स्थापित करने की आवश्यकता है?


18

हर बार जब मैं रिबूट करता हूं, तो मैं iptables नियमों को ढीला कर देता हूं जो मुझे प्रवेश करने के लिए बहुत ढीले लगते हैं। मुझे पता है कि मैं उन्हें बचा सकता हूं और उन्हें बूट पर बहाल कर सकता हूं , लेकिन क्या उन्हें हमेशा के लिए बचाने के लिए है? क्या मुझे वास्तव में हर बार बूट पर उन्हें पुनर्स्थापित करने की आवश्यकता है? गंभीरता से?

समस्या यह है कि मेरे पास आईपी ​​की एक बड़ी सूची है जिसमें मैं उन्हें लोड करने के लिए थोड़ी देर के लूप का उपयोग करता हूं। इसमें 10 मिनट का समय लग सकता है।

यह मेरा होम एफ़टीपी सर्वर है। यह 1gb रैम और बहुत कम प्रोसेसिंग पावर वाला एक छोटा vm है। बहुत सारे आईपी हैं क्योंकि मैंने एशियाई महाद्वीप पर बहुत अधिक दिया है। मैं उन्हें अपने एफ़टीपी सर्वर को क्रूरता बल के साथ हर रोज़ मारने की ज़रूरत नहीं है। मैंने gov को भी ब्लॉक कर दिया है। मॉनिटर, ट्रैकर्स और स्पैमर।

यह वह लूप है, जिसका उपयोग मैं सूची में लोड करने के लिए करता हूं।

grep INPUT block.list | while read LISTA; do sudo iptables -A $LISTA; done

आपका प्रश्न थोड़ा अस्पष्ट है, जब आप कहते हैं कि 'उन्हें हमेशा के लिए बचाएं' मुझे लगा कि आप एक फ़ाइल के रूप में हैं, लेकिन बाकी को पढ़ने के बाद ऐसा लगता है कि वास्तव में आपका क्या मतलब है आप उन्हें मैन्युअल रूप से पुनः लोड करना नहीं चाहते हैं हर बार बूट पर। इसके अलावा, मुझे लगता है कि फिर से लोड किए जाने की आवश्यकता वाले नियमों की संख्या समान होगी, इसलिए इसे अभी भी कुछ समय लगेगा लेकिन आपको पंकज के जवाब के बाद इसे मैन्युअल रूप से नहीं करना होगा।
जेफ वेलिंग

जवाबों:


21

सबसे पहले, की सामग्री के साथ एक फ़ाइल बनाएँ iptables-save:

sudo iptables-save > /etc/iptables_rules

यह वास्तव में मायने नहीं रखता है कि आपने फ़ाइल कहाँ रखी है, आपको बस यह सुनिश्चित करना है कि अगली पंक्ति उसी फ़ाइल को संदर्भित करती है। अगला, /etc/rc.localइस लाइन को खोलें और जोड़ें:

/sbin/iptables-restore < /etc/iptables_rules

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


1
मैं -bash: /etc/iptables_rules: Permission deniedपहले कमांड पर मिलता हूं । जो सूडो और सभी का उपयोग करके अजीब है।
कैपड्रैगन

5
मुझे त्रुटि के sudo sh -c '/sbin/iptables-save > /etc/iptables.save'आसपास पाने के लिए उपयोग करना था Permission deniedसंदर्भ
कैप्ड्रैगन

आप किसी भी डायरेक्टरी में फ़ाइल बना सकते हैं, फ़ाइल को / etc /
पंकज शर्मा

8
मैं इसके /etc/rc.localलिए उपयोग करने की सलाह नहीं दूंगा । यह आपके सिस्टम स्टार्टअप के बाकी हिस्सों की तुलना में बाद में निष्पादित होता है और संभावित रूप से आपके सिस्टम को नॉन-फायरवॉल स्टेट में छोड़ देता है। मैं इस एक-लाइन स्क्रिप्ट को /etc/network/if-up.d/firewall(नई फ़ाइल) में रखने का सुझाव दूंगा । यह सुनिश्चित करता है कि आपके नेटवर्क इंटरफेस को सक्षम करने पर हर बार इसे निष्पादित किया जाएगा।
gertvdijk

2
अनुमतियाँ त्रुटि सामान्य / अपेक्षित है। sudo ">" से पहले केवल कमांड पर लागू होता है, फ़ाइल पुनर्निर्देशन आपके शेल द्वारा अलग से किया जाता है।
इमेजिनरीआरबॉट्स

16
apt-get install iptables-persistent

स्थापित होने पर, यह आपके वर्तमान iptables कॉन्फ़िगरेशन को सहेजना चाहिए। अन्यथा आप उन्हें इन फ़ाइलों (v4 या v6 के आधार पर) और iptables-persistent पर उन्हें बूट पर लोड कर सकते हैं :)

iptables-save > /etc/iptables/rules.v4
ip6tables-save > /etc/iptables/rules.v6

1

यदि आपके पास बहुत सारे नियम हैं, तो आपको iptables के साथ संयोजन में ipset का उपयोग करने पर भी विचार करना चाहिए। Ipset एक अनुक्रमित डेटाबेस तालिका का उपयोग करता है और जब यह स्वीकार या अस्वीकार करने का निर्णय लेने के लिए एक पते की तलाश में iptables की तुलना में बहुत तेज़ होता है।

http://ipset.netfilter.org/index.html

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.