netstat ve iptables kullanarak dos saldırısını önlemek için linux komutu


11

Ben ddos ​​saldırı önlemek için ip başına 200'den fazla istek DROP istiyorum. Bu ip başına istek sayısını tespit etmek için kullanılan komut:

netstat -alpn | grep :80 | awk '{print $5}' |awk -F: '{print $(NF-1)}' |sort | uniq -c | sort -nr

şimdi IPtables içine 200'den fazla istekleri yapılan tüm ip adreslerini DROP giriş ve çıkış koymak eklemek istiyorum.


@Dawud'un belirttiği gibi, sunucunuza DDOS saldırısını tamamen "engelleyemeyeceğinizi" ve gerçekten tamamen engelleyemeyeceğinizi bildiğinizden emin olun.
kaptan

Yanıtlar:


12

Ayrıca iptables'ı gelen bağlantıların hızını sınırlamak için de kullanabilirsiniz. Örneğin, bir kaynaktan dakikada 200'den fazla bağlantı istemiyorsanız:

iptables -I INPUT -p tcp --dport 80 -m state --state NEW -m recent --set

iptables -I INPUT -p tcp --dport 80 -m state --state NEW -m recent --update --seconds 60 --hitcount 200 -j DROP


1
Bunun bir açıklaması da güzel olurdu.
ffledgling

18

Bir oluşturabilirsiniz ipset. Bu şekilde, iptableskural kümesini değiştirmeden, istediğiniz kadar kümeye IP ekleyebilirsiniz .

ipset -N myset iphash
ipset -A myset 1.1.1.1
ipset -A myset 2.2.2.2

Veya, sizin durumunuzda, komut dosyanızın çıktısını kullanın ve şöyle bir şeyle okuyun:

while read a; do ipset -A myset "$a"; done < <(your script here)

Ve iptableskurallarınızda referans :

iptables -A INPUT -m set --set myset src -j DROP

Daha fazla ayrıntı ve seçenek için kılavuz sayfasını okuyun .

Doğrudan kullanarak DDOS saldırısını azaltmanın başka yolları da vardır iptables. Ve modülleri ile iptablesilgili manpage bölümünü okuyun .connlimitrecent


Bu mükemmel çünkü ipsetler hashtables gibi alternatiflerden çok daha hızlı.
isuldor
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.