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.