सिस्टम संन्यास खोए बिना कितने निर्देश iptables में भरे जा सकते हैं?


9

कहो कि एक इच्छा के लिए अवरुद्ध आईपी पते की एक सूची है।

मैंने निम्न उदाहरण स्क्रिप्ट देखी है:

BLOCKDB="/path/to/ip.blocked.file"
# omit comments lines
IPS=$(grep -Ev "^#" $BLOCKDB)
for i in $IPS
do
    iptables -A INPUT -s $i -j DROP
    iptables -A OUTPUT -d $i -j DROP
done

क्या कई हज़ार लाइनें, जो कई हज़ार iptables प्रविष्टियों में परिवर्तित हो जाती हैं, समझदार हैं?

शीर्ष सीमा क्या है, जिसके आगे, सिस्टम दक्षता काफी प्रभावित हो जाएगी?


2
ऐसा प्रतीत होता है कि आपको अपने प्रश्न का उत्तर मिल गया। यदि हां, तो आपको अपने प्रश्न के उत्तर को स्थानांतरित करना चाहिए और "अपने प्रश्न का उत्तर दें" बटन का उपयोग करना चाहिए और वहां उत्तर को पोस्ट करना चाहिए। फिर, आप अपने उत्तर को स्वीकार कर सकते हैं और चीजें बहुत अच्छी तरह से व्यवस्थित होंगी।
स्कॉट सेवेरेंस

@ScottSeverance जैसा कि आप सुझाव देते हैं, हालांकि, इसमें 4 घंटे लगते हैं जब तक कि कोई व्यक्ति स्वयं जवाब स्वीकार नहीं कर सकता।
त्ज़ुरी बार योचाय

जवाबों:


8

मुझे लगता है कि मुझे इस लेख के माध्यम से एक समाधान मिल गया है और IPSet का जवाब लगता है

कुल मिलाकर:

यदि IP पतों के सेट में हज़ारों आइटम होते हैं तो iptables का प्रदर्शन कम हो जाता है (वास्तव में, netfilter का प्रदर्शन, जैसे ही iptables सिर्फ फ़ायरवॉल के प्रबंधन के लिए एक उपकरण है)। आपका सीपीयू लोड भी बढ़ सकता है। सौभाग्य से एक सही समाधान है - ipsets

यदि आप चाहते हैं तो IPSet सही उपकरण है:

  • एक से अधिक आईपी पते या पोर्ट नंबर स्टोर करें और एक स्वूप में iptables द्वारा संग्रह के खिलाफ मैच करें;
  • IP पते या पोर्ट के खिलाफ प्रदर्शन दंड के बिना डायनामिक रूप से iptables नियम अपडेट करें;
  • एक ही iptables नियम के साथ जटिल आईपी पते और बंदरगाहों पर आधारित नियम व्यक्त करें और आईपी सेट की गति से लाभ उठाएं

Ipset स्थापित करना सीधे आगे है sudo apt-get install ipset

फिर निम्न को चलाएँ

ipset -N autoban iphash ––hashsize 4096 ––probes 2 ––resize 50

इसे अपनी iptables श्रृंखला में जोड़ें। यह आपके फ़ायरवॉल सेटिंग्स के आधार पर भिन्न हो सकता है। यहां हम एथिन चेन का उपयोग करते हैं।

iptables -I ethin 2 -p tcp -m multiport ––dport 80,443 -m set ––match-set autoban src -j DROP

अब आप अपने ipset में सभी खराब IP जोड़ सकते हैं। उदाहरण के लिए, आपके पास एक IP प्रति पंक्ति के साथ bots.txt नामक पाठ फ़ाइल है। तो आप उन्हें सरल बैश स्क्रिप्ट का उपयोग करके ipset में जोड़ सकते हैं:

for i in $( cat /tmp/bots.txt ) ; do ipset -A autoban $i ; done

रन की जांच करने के लिए:

ipset -L autoban

जवाब के लिए धन्यवाद। यहां उन लोगों के लिए ipset पर एक त्वरित ट्यूटोरियल दिया गया है, जो ipset से परिचित नहीं हैं (जैसे 8-) - linuxjournal.com/content/advanced-firewall-configurations-ipset
Tzunghsing David Gong
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.