Sanırım bu makale aracılığıyla bir çözüm buldum ve cevap IPSet gibi görünüyor
Toplamda:
IP adresleri kümesinde binlerce öğe varsa iptables performansı düşer (aslında, nettabilter performansı iptables sadece güvenlik duvarını yönetmek için bir araçtır). CPU yükünüz de artabilir. Neyse ki mükemmel bir çözüm var - ipsets
IPSet aşağıdakileri yapmak için mükemmel bir araçtır:
- Birden fazla IP adresini veya bağlantı noktası numarasını saklayın ve tek bir geçişte iptables tarafından koleksiyonla eşleştirin;
- IPtables veya portlara karşı iptables kurallarını performans cezası olmadan dinamik olarak güncelleyin;
- Tek bir iptables kuralı ile karmaşık IP adresini ve bağlantı noktası tabanlı kural kümelerini ifade edin ve IP setlerinin hızından yararlanın
Ipset'i kurmak çok basit sudo apt-get install ipset
Sonra aşağıdakileri çalıştırın
ipset -N autoban iphash ––hashsize 4096 ––probes 2 ––resize 50
Iptables zincirinize ekleyin. Güvenlik duvarı ayarlarınıza bağlı olarak değişebilir. Burada ethin zinciri kullanıyoruz.
iptables -I ethin 2 -p tcp -m multiport ––dport 80,443 -m set ––match-set autoban src -j DROP
Artık tüm kötü IP'leri ipset'inize ekleyebilirsiniz. Örneğin, satır başına bir IP içeren bots.txt adlı metin dosyanız var. Böylece basit bash betiğini kullanarak bunları ipset'e ekleyebilirsiniz:
for i in $( cat /tmp/bots.txt ) ; do ipset -A autoban $i ; done
Çalışmayı kontrol etmek için:
ipset -L autoban