डेबियन 'इग्नोर' /etc/network/if-pre-up.d/iptables


12

मैं चाहता हूं कि मेरे iptables नियम स्वतः ही स्टार्टअप पर लोड हो जाएं। डेबियन पर विकी के अनुसार /etc/network/if-pre-up.d/ में iptables नाम के साथ एक स्क्रिप्ट रखकर ऐसा किया जा सकता है, इसलिए मैंने ऐसा किया, यह ऐसा दिखता है:

cat /etc/network/if-pre-up.d/iptables 
#!/bin/sh
/sbin/iptables-restore < /etc/firewall/iptables.rules
/sbin/ip6tables-restore < /etc/firewall/ip6tables.rules

यह स्क्रिप्ट काम करती है: यदि मैं इसे रूट करता हूं तो मेरे फ़ायरवॉल नियम लागू होते हैं। लेकिन रिबूट पर कोई फ़ायरवॉल नियम नहीं हैं। मैं क्या गलत कर रहा हूं?

अनुरोध पर: / etc / नेटवर्क / इंटरफेस (मैंने इस फ़ाइल को नहीं छुआ)

user@DebianVPS:~$ cat /etc/network/interfaces 
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
allow-hotplug eth0
iface eth0 inet dhcp

आप अपने इंटरफेस को कैसे कॉन्फ़िगर करते हैं? क्या आप / etc / network / interfaces file जोड़ सकते हैं?
बेइन्दिरह

कृपया ध्यान दें कि /etc/network/if-pre-up.d/उबंटू 18.04 में अब काम नहीं करता है, देखें serverfault.com/questions/914493/…
BurninLeo

जवाबों:


6

iptables-persistentइस कार्य के लिए पैकेज का उपयोग करें ।

में अपने नियमों को परिभाषित /etc/iptables/rules.4और /etc/iptables/rules.6और भूल नहीं है (सेवा को सक्रिय करने का उपयोग कर update-rc.d, chkconfigया आप पसंदीदा उपकरण।


पैकेज की स्थापना के समय, डिबेंकफ आपसे पूछता है कि क्या आप वर्तमान नियमों को बचाना चाहते हैं। इसलिए, यदि आपके पास पहले से परिभाषित नियम हैं, तो आप बस पैकेज स्थापित कर सकते हैं। यदि आप उन्हें बाद में बदलना चाहते हैं, तो बस dpkg-reconfigure iptables-persistent
ब्रियम

10

यह समस्या आपकी स्क्रिप्ट की अनुमति बिट्स से संबंधित हो सकती है। इस कमांड का आउटपुट क्या है? क्या इसमें आपकी फ़ाइल शामिल है?

run-parts --test /etc/network/if-pre-up.d

रन-पार्ट्स-test /etc/network/if-pre-up.d /etc/network/if-pre-up.d/iptables देता है, जो मुझे सही आउटपुट लगता है?
चीरोन

1
ठीक है, इसलिए, आपको अपनी स्क्रिप्ट चलने पर संभवतः जांच करनी चाहिए। इस तरह एक पहली पंक्ति जोड़ें (date; set; echo) >> /tmp/iptables-cmd.log, तो आप देखेंगे जब यह कहा जाता है। मैं हमेशा पर्यावरण को मुद्रित करता हूं ताकि वहां पारित किसी भी तर्क की जांच हो सके। आप अंतिम आईपी * इंटरफ़ेस उठने के बाद ही अपने iptables को चलाने का निर्णय ले सकते हैं, बजाय इसे चलाने के बजाय हर बार जब इंटरफ़ेस जोड़ा जाता है।
ईप्स्यूइग

3
अब जब आपने अपना पोस्ट किया है तो interfacesमैं देखता हूं कि आप ifupdown का उपयोग नहीं कर रहे हैं, लेकिन नेटवर्क-मैनेजर। यही कारण है कि आपकी स्क्रिप्ट को नहीं कहा जाता है। कृपया इस दस्तावेज़ को देखें: ubuntuforums.org/showthread.php?t=1084308
eppesuig

खैर जो बहुत कुछ समझाता है। मुझे लगता है कि अब मैं सिर्फ दाऊद के जवाब के साथ जा रहा हूं, जो किसी भी तरह से काम करता है।
चीरोन

3
रन-पार्ट्स स्क्रिप्ट्स के नाम के बारे में थोड़ा अचार है और फ़ाइल नाम में एक डॉट होने के कारण स्क्रिप्ट को मेरे मामले में स्टार्टअप पर ध्यान नहीं दिया जा रहा था।
एलेक्स ५

0

यह आसान तरीका क्यों नहीं है?

1 - अपने iptables नियम बनाएं

2 - "sudo apt-get install iptables-persistent" चलाएं यह आपसे पूछेगा कि क्या आप नियमों को सहेजना चाहते हैं और बूट के बाद उन्हें पुनर्स्थापित करना चाहते हैं।

3- आप हो गए


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