comando linux para impedir o ataque dos usando netstat e iptables

11

Quero derrubar mais de 200 solicitações por ip para evitar ataques de ddos. este é o comando que eu usei para detectar a contagem de solicitações por ip:

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

Agora eu quero adicionar todos os endereços IP que fizeram mais de 200 solicitações nas tabelas de IPs para a entrada e saída DROP.

Morteza Soltanabadiyan
fonte
Como o @dawud mencionado, certifique-se de que você pode apenas "mitigar" e não realmente impedir totalmente o ataque DDOS ao seu servidor.
kaptan

Respostas:

12

Você também pode usar o iptables para limitar a taxa de conexões de entrada. Por exemplo, se você não deseja mais de 200 conexões por minuto de uma fonte:

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

LinuxDevOps
fonte
1
Seria ótimo ter uma explicação disso também.
precisa saber é o seguinte
18

Você pode criar um ipset. Dessa maneira, você pode adicionar quantos IPs precisar ao conjunto, sem modificar o iptablesconjunto de regras.

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

Ou, no seu caso, use a saída do seu script e leia-a com algo como:

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

E a referência em suas iptablesregras:

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

Leia a página de manual para mais detalhes e opções.

Também existem outras maneiras de mitigar um ataque DDOS usando iptablesdiretamente. Leia a iptablesseção da página de manual sobre os módulos connlimite recent.

dawud
fonte
Isso é brilhante porque os ipsets são muito mais rápidos que as alternativas, como as hashtables.
Isuldor