Katakanlah seseorang ingin memiliki daftar alamat IP yang diblokir.
Saya telah melihat contoh skrip berikut:
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
Apakah beberapa ribu baris, yang berubah menjadi beberapa ribu entri iptables, waras?
Apa batas atas, di luar itu, efisiensi sistem akan terpengaruh secara signifikan?
Jawaban:
Saya pikir saya telah menemukan solusi melalui artikel ini dan IPSet tampaknya menjadi jawabannya
Alhasil:
Jika set alamat IP berisi ribuan item, kinerja iptables menurun (sebenarnya, kinerja netfilter, segera setelah iptables hanyalah alat untuk mengelola firewall). Beban CPU Anda juga dapat meningkat. Untungnya ada solusi yang sempurna - ipsets
IPSet adalah alat yang sempurna jika Anda ingin:
Memasang ipset sangat mudah
sudo apt-get install ipset
Kemudian jalankan yang berikut ini
Tambahkan ke rantai iptables Anda. Ini bisa berbeda tergantung pada pengaturan firewall Anda. Di sini kita menggunakan rantai etin.
Sekarang Anda dapat menambahkan semua IP buruk ke ipset Anda. Misalnya, Anda memiliki file teks bernama bots.txt dengan satu IP per baris. Jadi Anda bisa menambahkannya ke ipset menggunakan skrip bash sederhana:
Untuk memeriksa jalankan:
sumber