# DDoS Angriffe abwehren Hier soll erklärt werden, wie DDoS (Distributed Denial of Service) Angriffe mit Linux Bordmitteln abgewehrt werden können. Je nach Angriff funktionieren diese Methoden allerdings nur schlecht oder gar nicht. In diesem Fall muss der Angriff soweit möglich auf vorgelagerter Hardware (Router) geblockt werden oder der Dienst hinter einen Anbieter wie CloudFlare umgezogen werden. #### Wie erkenne ich einen DDoS? Server hat hohe Load, Ping zeigt Packetloss, Login oder Arbeiten auf der Shell ist kaum möglich. #### Abwehrmaßnahmen
##### Bei protocol-ddos TCP/UDP, Synflood Syncookies auf den betroffenen Servern/Loadbalancern aktivieren:
``` echo 1 > /proc/sys/net/ipv4/tcp_syncookies ```
#### Angreifer identifizieren Hosts mit den meisten Verbindungen:
``` netstat -atun | awk '{print $5}' | cut -d: -f1 | sed -e '/^$/d' |sort | uniq -c | sort -n ```
Anhand der Apache Zugriffslogs:
``` cat access.log | awk '{print $1}' | cut -d: -f1 | sed -e '/^$/d' |sort | uniq -c | sort -n | tail -n 20 ```
#### Angreifer blocken Per IP:
``` iptables -I INPUT -s -j DROP ```
#### SYN-Pakete per iptables limitieren
``` /sbin/iptables -A INPUT -p tcp --syn -m limit --limit 1/s --limit-burst 4 -j DROP /sbin/iptables -A INPUT -p tcp --syn -m connlimit --connlimit-above 25 -j REJECT --reject-with tcp-reset ```