Layer 7 - Angriff
Re: Layer 7 - Angriff
Re: Layer 7 - Angriff
das geht schon ...
Code: Select all
tail -n 200 /home/users/username/logs/domainname/access.log
Re: Layer 7 - Angriff
Da hilft es mir nicht paar IPs rauszufischen und zu analysieren da die analyse nichts bringt ausser legitime IPs von Opfern aus dem Botnetz.
Re: Layer 7 - Angriff
Wenn du damit überfordert bist, dann ist es vieleicht mit Cloudflare DNS die beste Lösung ... oder eventl. mal beim KH Support anfragen.omexlu wrote: ↑Wed 6. May 2026, 18:37 Ich verstehe nicht was du meinst? Hab doch jetzt wiederholt gesagt dass es verschiedene IPs sind und nicht nur 5 sondern sehr viele, halt Layer-7.
Da hilft es mir nicht paar IPs rauszufischen und zu analysieren da die analyse nichts bringt ausser legitime IPs von Opfern aus dem Botnetz.
Re: Layer 7 - Angriff
Genauso wie das Panel über Cloudflare und und und gibt nur Stress :/
KH-Support kann ich leider nicht beanspruchen bin kein KeyWeb-Kunde.
Re: Layer 7 - Angriff
Sind es existierende Seiten? Wenn nicht erzeugen die ja einen 404 und darauf könntest du ja ein Fail2ban filter ansetzen, das die beim zweiten oder dritten 404 gesperrt werden.
ansonsten halt mod-evasive und darauf fail2ban.
Ist das ne reguläre seite die viel normalen Traffic hat? ansonsten würde ich sie ein paar Stunden lang einfach gnadenlos alle wegblocken die sie aufrufen.
Re: Layer 7 - Angriff
So wie ich rausfinden konnte wird mod-evasive nicht viel bringen, da dies nur eine IP prüft wenn aber viele Zugriffe von verschiedenen IPs kommt kann es sogar sein dass mod-evasive nicht mal getriggert wird, das echt ärgerlich das ganze :/
Die Seite hat viel traffic kann da nicht einfach alles blocken
Re: Layer 7 - Angriff
Moin!
Ich habe mir mal ein kleines Bash-Script geschrieben, das mir in einem solchen Fall zumindest etwas Luft verschafft. KeyHelp verwaltet die Firewall zwar über iptables, im Hintergrund läuft auf aktuellen Debian-Systemen aber ohnehin nftables (iptables-nft).
nftables bringt bereits einfache Rate-Limiting-Funktionen mit.
Mein Script setzt deshalb temporär globale Limits für neue TCP-Verbindungen auf Port 80 und 443. Nicht schön, nicht präzise und definitiv keine „DDoS-Abwehr“ – aber der Server bleibt dadurch im Idealfall wenigstens noch erreichbar. Eher wie früher mit Modem.
Die Idee dahinter ist nicht, einen Angriff zu stoppen, sondern dem System kurzfristig Luft zu verschaffen, damit man überhaupt noch:
* per SSH draufkommt,
* Logs analysieren,
* Verbindungen prüfen
* und weitere Maßnahmen einleiten kann.
Vielleicht hilft es ja dem einen oder anderen als kleiner „Panikknopf“.
Ich habe das Script als `ddos-panic.sh` gespeichert. Dann ausführbar machen.
Aufruf einfach mit:
Code: Select all
bash ddos-panic.shDie Regeln werden dabei nur temporär ins laufende nftables-Regelwerk eingefügt und sind nach einem Reboot oder Firewall-Reload wieder verschwunden. Man kann sie aber auch einzeln löschen.
Gruß,
Tiresias
Code: Select all
#!/bin/bash
set -euo pipefail
RATE="${1:-5}"
BURST="${2:-20}"
for FAMILY in ip ip6; do
for PORT in 80 443; do
nft insert rule "$FAMILY" filter INPUT ct state new tcp dport "$PORT" drop
nft insert rule "$FAMILY" filter INPUT ct state new tcp dport "$PORT" limit rate "$RATE"/second burst "$BURST" packets counter accept
done
done
echo "Panic limit active: ${RATE}/second burst ${BURST}"
echo
echo "Show handles:"
echo " nft -a list chain ip filter INPUT"
echo " nft -a list chain ip6 filter INPUT"
echo "Remove later via:"
echo " nft delete rule ip filter INPUT handle <HANDLE>"
echo " nft delete rule ip6 filter INPUT handle <HANDLE>"
echo
nft -a list chain ip filter INPUT
nft -a list chain ip6 filter INPUT
Re: Layer 7 - Angriff
Bin am überlegen ob ich per IPSET nur EU und USA (wegen Bots) erlaube und alles andere drop eventuell nur für Port 80 und 443 oder alles Mal sehen was denkt ihr?
So in der Art (KI)
Code: Select all
#!/bin/bash
# --- KONFIGURATION ---
# Liste der zu sperrenden Länder (ISO Kürzel)
# Enthält: Asien, Afrika, Südamerika, Osteuropa (Nicht-EU)
COUNTRIES="cn ru vn in id ir pk br by eg ua hk th ph my sa tr am az ge kz kg tj tm uz af bh bd bt bn kh il jp jo kp kr kw la lb mo mv mn mm np om ps qa sg lk sy tw th tl ye dz ao bj bw bf bi cm cv cf td km cg cd dj gq er et ga gm gh gn gw ci ke ls lr ly mg mw ml mr mu ma mz na ne ng rw st sn sc sl so za ss sd sz tz tg tn ug zm zw ar bo cl co ec fk gf gy py pe sr uy ve"
# ipset Namen
SET_GEO="geo_block"
SET_TOR="tor_block"
# --- VORBEREITUNG ---
if ! command -v ipset &> /dev/null; then
apt-get update && apt-get install ipset -y
fi
# Sets erstellen (falls nicht vorhanden)
ipset create $SET_GEO hash:net 2>/dev/null
ipset create $SET_TOR hash:ip 2>/dev/null
# Alte Einträge leeren
ipset flush $SET_GEO
ipset flush $SET_TOR
# --- 1. GEO-BLOCKING LADEN ---
echo "Lade Länder-Listen (Geoblocking)..."
for country in $COUNTRIES; do
# Download der IP-Zonen von IPdeny
curl -s http://www.ipdeny.com/ipblocks/data/countries/$country.zone | while read line; do
if [[ $line =~ ^[0-9] ]]; then
ipset add $SET_GEO $line
fi
done
done
# --- 2. TOR-EXIT-NODES LADEN ---
echo "Lade Tor-Exit-Nodes..."
# Offizielle Liste vom Tor-Project
curl -s https://check.torproject.org/exit-addresses | grep ExitAddress | cut -d ' ' -f 2 | while read line; do
ipset add $SET_TOR $line
done
# --- 3. FIREWALL REGELN (iptables) ---
# Wir blocken nur Port 80 und 443 (Webserver), damit Mails (Port 25) ankommen!
# Geo-Block Regel
iptables -C INPUT -p tcp -m multiport --dports 80,443 -m set --match-set $SET_GEO src -j DROP 2>/dev/null || \
iptables -I INPUT -p tcp -m multiport --dports 80,443 -m set --match-set $SET_GEO src -j DROP
# Tor-Block Regel
iptables -C INPUT -p tcp -m multiport --dports 80,443 -m set --match-set $SET_TOR src -j DROP 2>/dev/null || \
iptables -I INPUT -p tcp -m multiport --dports 80,443 -m set --match-set $SET_TOR src -j DROP
echo "Fertig! Schutzmauern sind aktiv."
echo "Geblockte Länder-Netze: $(ipset list $SET_GEO | wc -l)"
echo "Geblockte Tor-Knoten: $(ipset list $SET_TOR | wc -l)"