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?