Saya menggunakan iptables di Server Ubuntu. Ini adalah server web pada VPS.
Saya ingin tahu apakah saya harus menilai paket batas. Jika demikian, apa yang harus saya nilai-batas? Dan haruskah saya melakukannya secara global atau per alamat IP?
Referensi yang
saya lihat orang menyarankan ini:
# Limit packet traffic on a TCP or UDP port:
iptables -A INPUT -p $proto --destination-port $port --syn -m state --state NEW -m limit --limit $lim/s --limit-burst $lb -j ACCEPT
# Limit established/related packet traffic:
iptables -A INPUT -m state --state RELATED,ESTABLISHED -m limit --limit $lim/s --limit-burst $lb -j ACCEPT
Di atas, batas tingkat global tampaknya tidak terlalu berguna, setidaknya untuk kasus yang dapat saya bayangkan. Apakah ada kasus di mana saya harus menilai-batas secara global?
Saya percaya bahwa batas tingkat per IP biasanya lebih baik:
# Add the IP to the list:
iptables -A INPUT -p $proto --destination-port $port --syn -m state --state NEW -m recent --set --name RATELIMITED
# Drop if exceeded limit:
iptables -A INPUT -p $proto --destination-port $port --syn -m state --state NEW -m recent --update --seconds $sec --hitcount $hc --rttl --name RATELIMITED -j DROP
# Accept if inside limit:
iptables -A INPUT -p $proto --destination-port $port --syn -m state --state NEW -j ACCEPT
Pertanyaan tambahan: IP jarak jauh mungkin palsu. Bagaimana cara membatasi mereka dengan benar?
Menambahkan pertanyaan lain untuk ini:
/server/340258/how-to-rate-limit-spoofed-ips-with-iptables
Tujuan
saya mencoba mengurangi risiko beberapa serangan D / DoS dan penyalahgunaan umum.
Terkait
Bagaimana cara saya menilai batas koneksi SSH dengan iptables?
PS : Saya baru saja membuka pertanyaan terkait hanya untuk ICMP dan itu termasuk pembatasan tingkat untuk protokol ini: iptables | Jenis ICMP: yang mana (berpotensi) berbahaya?
Masalah dengan -m batas adalah keterbatasan semua paket TCP apa pun sumber alamat IP. Jadi, jika Anda memiliki batasan rendah untuk paket syn seperti
hanya satu klien dengan baris perintah hping yang dapat menurunkan server Anda dengan mengirimkan paket tcp sebanyak dengan flag SYN karena aturan batas akan cocok dan akan menjatuhkan banyak paket apa pun sumber alamat IP. batas tidak membuat perbedaan antara lalu lintas yang baik dan lalu lintas yang buruk. Ini akan menurunkan lalu lintas masuk yang baik juga.
Hping bisa berupa:
Lebih baik menggunakan hashlimit untuk membatasi koneksi tcp masuk per alamat IP . Aturan berikut hanya akan cocok jika 30 paket per detik akan diterima mengurangi jumlah paket resmi per IP menjadi 15 paket per detik.
Pada kenyataannya, saya yakin bahwa banyak server yang diturunkan hari ini tidak diambil karena kehabisan sumber daya selama serangan tetapi karena modul batas menjatuhkan semua lalu lintas yang masuk.
sumber
Saya biasanya membatasi aturan pembatasan tingkat ke server yang saya harapkan:
Misalnya, halaman login panel kontrol hosting, POP3, IMAP, SSH, dll. Saya biasanya membiarkan layanan HTTP terbuka lebar dan hanya memblokir jika ada masalah.
Anda tidak ingin menjatuhkan traffic web yang bagus. Tautan pada slashdot dapat mengirimkan Anda banyak lalu lintas dan dengan aturan global, Anda mungkin tidak menyadari adanya masalah.
Berkenaan dengan IP spoofed, mereka tidak dapat diblokir menggunakan metode ini dan biasanya tidak menjadi perhatian karena aturan ini terutama berfokus pada membatasi koneksi TCP yang sudah ada. Dengan IP spoof, koneksi TCP tidak pernah dapat dibangun.
sumber