Layer 7 - Angriff

Allgemeine Diskussionen rund um KeyHelp.
omexlu
Posts: 256
Joined: Wed 28. Aug 2024, 10:42

Re: Layer 7 - Angriff

Post by omexlu »

Die greifen random auf URLs meiner Domain zu, es ist nicht immer der gleiche Zweig. Der Log zeigt lauter aufrufe an, die kommen so schnell rein dass alles in die Knie geht. Da hilft mir auch nicht eine IP zu analyisieren.
User avatar
Ralph
Posts: 1485
Joined: Mon 30. Mar 2020, 16:14

Re: Layer 7 - Angriff

Post by Ralph »

omexlu wrote: Wed 6. May 2026, 18:10 Die greifen random auf URLs meiner Domain zu, es ist nicht immer der gleiche Zweig. Der Log zeigt lauter aufrufe an, die kommen so schnell rein dass alles in die Knie geht. Da hilft mir auch nicht eine IP zu analyisieren.
das geht schon ...

Code: Select all

tail -n 200 /home/users/username/logs/domainname/access.log
omexlu
Posts: 256
Joined: Wed 28. Aug 2024, 10:42

Re: Layer 7 - Angriff

Post by omexlu »

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.
User avatar
Ralph
Posts: 1485
Joined: Mon 30. Mar 2020, 16:14

Re: Layer 7 - Angriff

Post by Ralph »

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.
Wenn du damit überfordert bist, dann ist es vieleicht mit Cloudflare DNS die beste Lösung ... oder eventl. mal beim KH Support anfragen.
omexlu
Posts: 256
Joined: Wed 28. Aug 2024, 10:42

Re: Layer 7 - Angriff

Post by omexlu »

Cloudflare DNS hatte ich vor einigen Jahren schon, das macht mit Foren usw. nur Probleme, deswegen bin ich auch davon weg.
Genauso wie das Panel über Cloudflare und und und gibt nur Stress :/

KH-Support kann ich leider nicht beanspruchen bin kein KeyWeb-Kunde.
Blubby
Posts: 106
Joined: Tue 5. Mar 2024, 13:10

Re: Layer 7 - Angriff

Post by Blubby »

omexlu wrote: Wed 6. May 2026, 18:10 Die greifen random auf URLs meiner Domain zu, es ist nicht immer der gleiche Zweig.
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.
omexlu
Posts: 256
Joined: Wed 28. Aug 2024, 10:42

Re: Layer 7 - Angriff

Post by omexlu »

Sind existrierende Seiten.

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 :D
Tiresias
Posts: 16
Joined: Sun 22. Jun 2025, 22:53

Re: Layer 7 - Angriff

Post by Tiresias »

omexlu wrote: Wed 6. May 2026, 18:10 Die greifen random auf URLs meiner Domain zu, es ist nicht immer der gleiche Zweig. Der Log zeigt lauter aufrufe an, die kommen so schnell rein dass alles in die Knie geht. Da hilft mir auch nicht eine IP zu analyisieren.
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.sh

Die 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
omexlu
Posts: 256
Joined: Wed 28. Aug 2024, 10:42

Re: Layer 7 - Angriff

Post by omexlu »

Das witzige ist es waren nur der Webserver getroffen alle anderen Dienste funktionierten.

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)"
Post Reply