IPtables IP पते को छोड़कर पोर्ट 8000 तक पहुंच को अवरुद्ध करता है


80

मैंने कभी भी iptables का उपयोग नहीं किया है, और प्रलेखन ऑनलाइन थोड़ा अपारदर्शी लगता है।

मैं एक विशिष्ट आईपी पते से आने वाले को छोड़कर अपने सर्वर पर 8000 पोर्ट को सभी अनुरोधों को रोकना चाहता हूं। मैं iptables का उपयोग कैसे करूँ?


2
//, क्या आप इस तरह से अपारदर्शी प्रलेखन के लिए एक लिंक साझा करने के लिए होगा?
नाथन बसानी

जवाबों:


149

यह सवाल सर्वर फॉल्ट पर होना चाहिए । फिर भी, निम्नलिखित को यह करना चाहिए कि आप टीसीपी के बारे में बात कर रहे हैं और जिस आईपी की आप अनुमति देना चाहते हैं वह 1.2.3.4 है:

iptables -A INPUT -p tcp --dport 8000 -s 1.2.3.4 -j ACCEPT
iptables -A INPUT -p tcp --dport 8000 -j DROP

3
आप इस आईपी / पोर्ट प्रतिबंध को अपने यहां सेटअप करने के बारे में कैसे जाएंगे? (यदि मैं भविष्य में इसे पूर्ववत करना चाहता हूं)
परीक्षक

4
परीक्षक, सामान को हटाने के लिए, इसे देखें - stackoverflow.com/questions/10197405/…
क्वेस्ट मोंगर

2
मुझे पता है कि यह अपेक्षाकृत पुराना है, और मुझे इसकी पूरी जरूरत है। और जब से उत्तर को किसी भी तरह से स्वीकार कर लिया गया है, आप एक विशिष्ट आईपी रेंज के साथ एक ही काम कैसे करते हैं? धन्यवाद! :)
जग

1
@JiegoCordoviz आप स्रोत पते पर एक मुखौटा जोड़ सकते हैं: "-s 1.2.3.0/24" "1.2.3" के साथ शुरू होने वाली किसी भी चीज़ से स्वीकार करेंगे। यदि आपके पास एक रेंज है तो "नेटमास्क कैलकुलेटर" खोजें।
जॉन ब्राइट

17

एक और विकल्प है;

sudo iptables -A INPUT -p tcp --dport 8000 -s ! 1.2.3.4 -j DROP

मेरे पास इसी तरह का मुद्दा था कि 3 ब्रिजमेड वर्चुअलचैन को अलग-अलग संयोजन के साथ प्रत्येक अभिगम की आवश्यकता है, इसलिए मैंने इस कमांड का परीक्षण किया है और यह अच्छी तरह से काम करता है।

** संपादित करें

फर्नांडो टिप्पणी के अनुसार और इस लिंक विस्मयादिबोधक चिह्न ( !) को -sपैरामीटर से पहले रखा जाएगा :

sudo iptables -A INPUT -p tcp --dport 8000 ! -s 1.2.3.4 -j DROP

1
विस्मयादिबोधक बिंदु ( !) अब -sपैरामीटर से पहले रखा जाना चाहिए sudo iptables -A INPUT -p tcp --dport 8000 -s ! 1.2.3.4 -j DROP:।
फर्नांडो सिलवीरा

मुझे यकीन नहीं है कि विस्मयादिबोधक चिह्न यहां क्या करता है। क्या यह स्वीकृत उत्तर से बेहतर है?
aexl

@aexl सिंगल लाइन को छोड़कर बहुत ज्यादा समान है
HRgiger

5

नियमों को हटाने के लिए आप हमेशा iptables का उपयोग कर सकते हैं। यदि आपके पास बहुत सारे नियम हैं, तो बस निम्नलिखित कमांड का उपयोग करके उन्हें आउटपुट करें।

iptables-save > myfile

viउन्हें सराहनीय पंक्ति से संपादित करने के लिए। बस "dd" का उपयोग उन लाइनों को हटाने के लिए करें जिन्हें आप अब नहीं चाहते हैं।

iptables-restore < myfile and you're good to go.  

याद रखें कि यदि आप अपने ओएस को एक फाइल पर जाने के लिए नहीं कहते हैं और आपके पास मौजूद हैं, जो आपके रूल को खो देगा, तो आप इन फाइलों को खरीद सकते हैं।


3
डेबियन पर कोई iptables- लोड नहीं है, लेकिन iptables-Restore iptables-restore < myfile/ wiki.debian.org/iptables
फेडिर RYKHTIK
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.