मुझे लगता है कि मुझे इस लेख के माध्यम से एक समाधान मिल गया है और 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