Berapa banyak instruksi yang dapat dimasukkan ke dalam iptables tanpa kehilangan kewarasan sistem?

9

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?

Tzury Bar Yochay
sumber
2
Tampaknya Anda menemukan jawaban untuk pertanyaan Anda. Jika demikian, Anda harus memindahkan jawaban dari pertanyaan Anda dan menggunakan tombol "Jawab pertanyaan Anda" dan posting jawabannya di sana. Kemudian, Anda dapat menerima jawaban Anda dan segalanya akan lebih terorganisir dengan baik.
Scott Severance
@ScottSeverance dilakukan seperti yang Anda sarankan, namun, dibutuhkan 4 jam sampai seseorang dapat menerima jawaban sendiri.
Tzury Bar Yochay

Jawaban:

8

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:

  • Menyimpan beberapa alamat IP atau nomor port dan cocok dengan koleksi dengan iptables sekaligus;
  • Memperbarui aturan iptables secara dinamis terhadap alamat atau port IP tanpa penalti kinerja;
  • Mengungkapkan alamat IP kompleks dan aturan berbasis port dengan satu aturan iptables tunggal dan manfaatkan kecepatan set IP

Memasang ipset sangat mudah sudo apt-get install ipset

Kemudian jalankan yang berikut ini

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

Tambahkan ke rantai iptables Anda. Ini bisa berbeda tergantung pada pengaturan firewall Anda. Di sini kita menggunakan rantai etin.

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

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:

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

Untuk memeriksa jalankan:

ipset -L autoban
Tzury Bar Yochay
sumber
Terima kasih atas jawabannya. Berikut ini adalah tutorial singkat tentang ipset bagi mereka yang tidak terbiasa dengan ipset (seperti saya 8-) - linuxjournal.com/content/advanced-firewall-configurations-ipset
Tzunghsing David Wong