Windows28. Mai 2026 7 Aufrufe

Blockieren von RDP-Brute-Force-Angriffen auf einem Windows-VPS im 2026

Blockieren von RDP-Brute-Force-Angriffen auf einem Windows-VPS im 2026

Sie verwalten einen Windows VPS, der im Internet exponiert ist, und entdecken im Ereignisprotokoll Tausende von fehlgeschlagenen RDP-Anmeldeversuchen pro Tag. Das ist normal: Jeder Windows VPS mit dem offenen Port 3389 wird ständig von Botnets gescannt. Ohne Schutz reicht eine einzige falsche Konfiguration aus, damit ein Angreifer eindringen kann.

Dieser Leitfaden erklärt, wie man RDP-Brute-Force-Angriffe auf 3 Ebenen blockiert: (1) grundlegende RDP-Hygiene, (2) automatisches Sperren angreifender IPs, (3) VPN/Gateway-Architektur zur Eliminierung der Exposition. Sie erhalten eine umfassende, getestete, kostenlose und anpassbare Lösung für jeden Windows Server VPS 2019, 2022 oder 2025.

Schnelle Zusammenfassung - Das Minimum in 5 Minuten

  • NLA (Network Level Authentication) aktivieren: System → Remotedesktop → Erweitert → NLA erforderlich
  • Kontosperrpolitik: 5 Fehlversuche = 30 Minuten Sperre (über secpol.msc)
  • IPBan installieren (1 PowerShell-Befehl, automatisches Sperren bösartiger IPs):
iex (irm https://raw.githubusercontent.com/DigitalRuby/IPBan/master/IPBanCore/Windows/Scripts/install-latest.ps1)
  • RDP-Port 3389 → 49xxx über regedit ändern (verlangsamt automatisierte Scans).

Details und erweiterte Optionen finden Sie weiter unten.

Warum RDP das Hauptziel von Botnets ist

Das Remote Desktop Protocol ist über den Port 3389/TCP exponiert, und dieser Port wird kontinuierlich im gesamten IPv4 von automatisierten Botnets gescannt. Ein neuer Windows VPS, der heute ohne weitere Maßnahmen online geht, wird typischerweise erhalten:

  • 5.000 bis 50.000 Anmeldeversuche pro Tag bereits in den ersten Stunden.
  • Versuche mit Standardkonten: Administrator, admin, user, test, sql, backup.
  • Versuche mit Standard-Windows-Konten, die über SMB/NetBIOS-Enumeration entdeckt wurden.
  • Versuche mit Passwortlisten (rockyou.txt und Ableitungen), im Rhythmus von 1 Versuch alle 1 bis 5 Sekunden pro IP.

Wenn der Angreifer ein schwaches Passwort findet, dann:

  • Erstellt ein neues "diskretes" Administratorkonto (z. B. Helpdesk$, IUSR_X).
  • Deaktiviert Windows Defender.
  • Installiert einen Kryptowährungs-Miner, einen Spam-Bot oder Ransomware.
  • Verkauft den Zugang auf dem Schwarzmarkt (z. B. xDedic historisch).

Die durchschnittliche Zeit zwischen Kompromittierung und erstem bösartigem Einfluss: 15 Minuten.

Daher das Ziel dieses Leitfadens: Ihren VPS für Bots uninteressant zu machen und die IPs zu blockieren, die es trotzdem versuchen.

Diagnose eines laufenden Brute-Force-Angriffs

Fehlgeschlagene Versuche zählen

Öffnen Sie PowerShell als Administrator und führen Sie aus:

# Anzahl der fehlgeschlagenen Anmeldeversuche in den letzten 24 Stunden
Get-WinEvent -FilterHashtable @{LogName='Security'; ID=4625; StartTime=(Get-Date).AddDays(-1)} |
    Measure-Object | Select-Object -ExpandProperty Count

Die Ereignis-ID 4625 ist die Windows-ID für einen Authentifizierungsfehler. Wenn Sie mehr als ein paar Dutzend pro Tag sehen, sind Sie ein Ziel.

Angreifende IPs im Klartext anzeigen

Get-WinEvent -FilterHashtable @{LogName='Security'; ID=4625} -MaxEvents 1000 |
    ForEach-Object {
        $xml = [xml]$_.ToXml()
        $xml.Event.EventData.Data | Where-Object { $_.Name -eq 'IpAddress' } | Select-Object -ExpandProperty '#text'
    } |
    Where-Object { $_ -and $_ -ne '-' } |
    Group-Object | Sort-Object Count -Descending | Select-Object -First 20

Sie erhalten die Top 20 der angreifenden IPs mit ihrer Anzahl an Versuchen. Wenn eine IP mehr als 50 Versuche hat, ist sie eindeutig bösartig - sie muss gesperrt werden.

Identifizieren der angegriffenen Konten

Get-WinEvent -FilterHashtable @{LogName='Security'; ID=4625} -MaxEvents 1000 |
    ForEach-Object {
        $xml = [xml]$_.ToXml()
        $xml.Event.EventData.Data | Where-Object { $_.Name -eq 'TargetUserName' } | Select-Object -ExpandProperty '#text'
    } |
    Group-Object | Sort-Object Count -Descending | Select-Object -First 20

Wenn Sie Administrator, admin oder nicht existierende Konten sehen, handelt es sich um einen blinden Brute-Force-Angriff (der häufigste Fall).

Schicht 1 - RDP-Hygiene (das unverzichtbare Minimum)

Bevor Sie über Anti-Brute-Force-Tools sprechen, konfigurieren Sie diese 5 grundlegenden Einstellungen. Kein Tool kann deren Fehlen ausgleichen.

1.1 NLA (Network Level Authentication) aktivieren

NLA zwingt die Authentifizierung VOR der Eröffnung der RDP-Sitzung. Ohne NLA kann der Angreifer die Sitzung starten, den Anmeldebildschirm sehen und viel schneller brute-forcen.

# NLA über die Registrierung aktivieren
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" `
    -Name "UserAuthentication" -Value 1

Oder über die Benutzeroberfläche: sysdm.cpl → Registerkarte Remotedesktop → aktivieren Sie Nur Verbindungen mit NLA zulassen.

1.2 Konto Administrator umbenennen (oder deaktivieren)

Das Konto Administrator macht 80 % der Ziele für Brute-Force-Angriffe aus. Benennen Sie es um:

$adminSID = "S-1-5-21-*-500"
$adminAccount = Get-LocalUser | Where-Object { $_.SID -like $adminSID }
Rename-LocalUser -Name $adminAccount.Name -NewName "Admin_$(Get-Random -Maximum 9999)"

Noch besser: Erstellen Sie ein neues Administratorkonto mit einem nicht erratbaren Namen und deaktivieren Sie das Administrator-Konto vollständig:

Disable-LocalUser -Name "Administrator"

⚠️ Bevor Sie das Administrator-Konto deaktivieren, stellen Sie sicher, dass ein anderes Administratorkonto funktioniert und dass Sie sich über RDP damit verbinden können. Andernfalls sperren Sie sich selbst vom VPS aus.

1.3 Kontosperrpolitik (Account Lockout Policy)

5 fehlgeschlagene Versuche = Konto 30 Minuten gesperrt. Konfiguration über secpol.msc → Kontorichtlinien → Kontosperrpolitik:

Parameter Empfohlener Wert
Kontosperrschwelle 5 Versuche
Dauer der Kontosperre 30 Minuten
Zähler nach zurücksetzen 30 Minuten

Oder über die Befehlszeile:

net accounts /lockoutthreshold:5 /lockoutduration:30 /lockoutwindow:30

1.4 Richtlinie für starke Passwörter

net accounts /minpwlen:14 /maxpwage:90 /minpwage:1 /uniquepw:5
  • Mindestens 14 Zeichen
  • Ablauf alle 90 Tage
  • Mindestens 1 Tag vor Änderung (Anti-Cycling)
  • Die letzten 5 Passwörter sind verboten

1.5 Standard-RDP-Port ändern (3389 → zufälliger Port)

Das blockiert keinen gezielten Angreifer, beseitigt aber 95 % des Rauschens von automatisierten Scans.

$newPort = 53389  # Wählen Sie einen zufälligen Port zwischen 49152 und 65535
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" `
    -Name "PortNumber" -Value $newPort

# Den neuen Port in der Firewall öffnen
New-NetFirewallRule -DisplayName "RDP Custom Port" -Direction Inbound `
    -LocalPort $newPort -Protocol TCP -Action Allow

# Den Port 3389 schließen
Get-NetFirewallRule -DisplayName "Remote Desktop*" | Disable-NetFirewallRule

Um sich erneut zu verbinden, verwenden Sie jetzt <ip>:53389 im RDP-Client. Starten Sie den Server neu, damit der neue Port aktiv wird.

⚠️ Bevor Sie neu starten, testen Sie die neue Firewallregel von einer anderen IP oder notieren Sie die Out-of-Band-Konsole (KVM/IPMI-Konsole Ihres Anbieters), um im Fehlerfall wieder Zugriff zu erhalten.

1.6 RDP-Zugriff nach IP einschränken (Firewall-Bereichsregeln)

Wenn Sie sich immer von denselben IPs (Büro, VPN, feste IP) verbinden, erlauben Sie nur diese IPs:

# Ersetzen Sie durch Ihre erlaubten IPs (durch Kommas getrennt)
$allowedIPs = "203.0.113.42", "198.51.100.10"

Get-NetFirewallRule -DisplayName "*Remote Desktop*" | ForEach-Object {
    Set-NetFirewallRule -Name $_.Name -RemoteAddress $allowedIPs
}

Das ist die effektivste Maßnahme: Wenn der Angreifer nicht von einer auf die Whitelist gesetzten IP kommt, wird sein Paket abgelehnt, bevor es den RDP-Dienst erreicht. Brute-Force unmöglich.

Für mobile Nutzung sehen Sie sich Schicht 3 mit VPN an.

Schicht 2 - Automatisches Sperren bösartiger IPs

Ihre Basiseinstellungen sind eingerichtet, aber die Bots werden weiterhin versuchen. Das Auto-Ban erkennt automatisch die IPs, die viele Fehlversuche haben, und sperrt sie über die Windows-Firewall.

Vergleich der 6 Haupttools

Tool Lizenz Wartung Typ Empfehlung
IPBan (DigitalRuby) Kostenlos (Pro kostenpflichtig) Aktiv 2025+ Windows-Dienst ⭐ Das beliebteste und robusteste
Fail2Ban4Win (Aldaviva) Kostenlos, MIT Aktiv Windows-Dienst Ausgezeichnet, modern, .NET
EZWinBan (neil-sabol) Kostenlos Moderat PS-Skript + Aufgabenplanung Einfach, ideal für kleinen Server
wail2ban (glasnt) Kostenlos Niedrig (2017) PS-Skript Historisch, zu vermeiden
EvlWatcher Kostenlos Aktiv Windows-Dienst Gut, weniger dokumentiert
RDPGuard Kommerziell (~99$) Aktiv Windows-Dienst Deckt auch FTP/SMTP/SQL ab

Empfehlung für OuiHeberg: IPBan in der kostenlosen Version deckt 99 % der Bedürfnisse ab. Wenn Sie eine 100 % moderne Open-Source-Alternative möchten, verwenden Sie Fail2Ban4Win.

IPBan-Tutorial - Installation, Konfiguration, Überprüfung

Schritt 1 - Installation mit einem Befehl

Öffnen Sie PowerShell als Administrator und führen Sie aus:

iex (irm https://raw.githubusercontent.com/DigitalRuby/IPBan/master/IPBanCore/Windows/Scripts/install-latest.ps1)

Das Skript lädt die neueste Version herunter, installiert sie als Windows-Dienst und konfiguriert den IPBan-Dienst so, dass er automatisch startet.

Schritt 2 - Überprüfen, ob der Dienst läuft

Get-Service -Name IPBan

Sollte Status: Running anzeigen.

Schritt 3 - Konfiguration bearbeiten

Die Konfigurationsdatei befindet sich unter:

C:\Program Files\IPBan\ipban.config

Die wesentlichen Parameter:

<!-- Anzahl der Fehlversuche vor der Sperre -->
<add key="FailedLoginAttemptsBeforeBan" value="5"/>

<!-- Dauer der Sperre (in Tagen.Stunden:Minuten:Sekunden) -->
<!-- Besonderes Format: 00:30:00 = 30 Minuten -->
<add key="ExpireTime" value="01:00:00:00"/>  <!-- 1 Tag -->

<!-- Zählfenster für Fehlversuche -->
<add key="CycleTime" value="00:00:00:15"/>  <!-- 15 Sekunden -->

<!-- Whitelist (IPs, die niemals gesperrt werden) -->
<add key="Whitelist" value="203.0.113.42,198.51.100.0/24"/>

<!-- Permanente Blacklist -->
<add key="Blacklist" value=""/>

Um eine strenge Richtlinie zu aktivieren (empfohlen für die Produktion):

  • FailedLoginAttemptsBeforeBan = 3
  • ExpireTime = 30:00:00:00 (30 Tage)
  • Whitelisten Sie alle Ihre Verwaltungs-IP-Adressen.

Schritt 4 - Dienst nach Änderung neu starten

Restart-Service IPBan

Schritt 5 - Gesperrte IPs in Echtzeit anzeigen

IPBan erstellt automatisch eine Firewallregel mit dem Namen IPBan_*. Um sie anzuzeigen:

Get-NetFirewallRule -DisplayName "IPBan*" |
    Get-NetFirewallAddressFilter |
    Select-Object -ExpandProperty RemoteAddress

Oder visuell, indem Sie die IPBan-Protokolle ansehen:

Get-Content "C:\Program Files\IPBan\ipban.log" -Tail 50 -Wait

Sie sehen in Echtzeit jede gesperrte IP mit Zeitstempel und Anzahl der Fehlversuche.

Schritt 6 - Eine IP fälschlicherweise entsperren

# Methode 1: Direkt aus der Firewall entfernen
Remove-NetFirewallRule -DisplayName "IPBan_*" -ErrorAction SilentlyContinue

# Methode 2: Die IP zur Whitelist in ipban.config hinzufügen und dann neu starten
Restart-Service IPBan

Empfohlene Konfiguration nach Profil

Profil Versuche vor der Sperre Dauer der Sperre Zyklus
Persönlicher / Entwicklungsserver 5 1 Tag 15 Sek.
Produktionsserver exponiert 3 7 Tage 15 Sek.
Kritischer Server 2 30 Tage 15 Sek.
Bastion / Einzelserver 1 365 Tage 15 Sek.

Alternative - Eigenständiges PowerShell-Skript für Auto-Ban (ohne Abhängigkeiten)

Wenn Sie keine externen Abhängigkeiten oder Drittanbieter-Dienste wünschen, hier ist ein eigenständiges PowerShell-Skript, das die Arbeit erledigt. Es scannt die Ereignis-ID 4625 und sperrt jede IP, die mehr als N Fehlversuche in 1 Stunde hat.

Speichern Sie dieses Skript unter C:\Scripts\AutoBanRDP.ps1:

# === OuiHeberg - Auto-Ban RDP Brute-Force (ohne Abhängigkeiten) ===

param(
    [int]$Threshold = 10,       # Anzahl der Fehlversuche vor der Sperre
    [int]$WindowHours = 1,      # Zählfenster in Stunden
    [int]$BanDays = 7           # Dauer der Sperre in Tagen
)

$ruleName = "OuiHeberg_AutoBan_RDP"
$startTime = (Get-Date).AddHours(-$WindowHours)

# Angreifende IPs abrufen
$attackers = Get-WinEvent -FilterHashtable @{
    LogName   = 'Security'
    ID        = 4625
    StartTime = $startTime
} -ErrorAction SilentlyContinue | ForEach-Object {
    $xml = [xml]$_.ToXml()
    $ip = ($xml.Event.EventData.Data | Where-Object { $_.Name -eq 'IpAddress' }).'#text'
    if ($ip -and $ip -ne '-' -and $ip -ne '::1' -and $ip -ne '127.0.0.1') { $ip }
} | Group-Object | Where-Object { $_.Count -ge $Threshold } | Select-Object -ExpandProperty Name

if (-not $attackers) {
    Write-Host "Keine IPs zu sperren (Schwelle = $Threshold über $WindowHours h)." -ForegroundColor Green
    return
}

# Vorhandene Regel abrufen oder erstellen
$existingRule = Get-NetFirewallRule -DisplayName $ruleName -ErrorAction SilentlyContinue
if ($existingRule) {
    $currentIPs = ($existingRule | Get-NetFirewallAddressFilter).RemoteAddress
    $allIPs = ($currentIPs + $attackers) | Sort-Object -Unique
    Set-NetFirewallRule -DisplayName $ruleName -RemoteAddress $allIPs
} else {
    New-NetFirewallRule -DisplayName $ruleName `
        -Direction Inbound -Action Block `
        -RemoteAddress $attackers `
        -Description "Auto-Ban OuiHeberg: erstellt am $(Get-Date -Format 'yyyy-MM-dd HH:mm')"
}

Write-Host "$($attackers.Count) IP(s) gesperrt: $($attackers -join ', ')" -ForegroundColor Yellow

# Automatische Entsperrung planen (Löschen der Regel nach BanDays Tagen)
$logPath = "C:\Scripts\AutoBanRDP.log"
$attackers | ForEach-Object {
    "$(Get-Date -Format 'yyyy-MM-dd HH:mm:ss')`tBAN`t$_`tEXPIRE=$((Get-Date).AddDays($BanDays))" | Out-File -Append $logPath
}

Planen Sie die Ausführung alle 15 Minuten

$action = New-ScheduledTaskAction -Execute "powershell.exe" `
    -Argument "-NoProfile -ExecutionPolicy Bypass -File C:\Scripts\AutoBanRDP.ps1"

$trigger = New-ScheduledTaskTrigger -Once -At (Get-Date) `
    -RepetitionInterval (New-TimeSpan -Minutes 15) `
    -RepetitionDuration (New-TimeSpan -Days 365)

Register-ScheduledTask -TaskName "OuiHeberg-AutoBanRDP" `
    -Action $action -Trigger $trigger `
    -User "SYSTEM" -RunLevel Highest -Force

Das Skript läuft alle 15 Minuten im Hintergrund. Sie können $Threshold, $WindowHours und $BanDays je nach Ihrer Toleranz anpassen.

Vorteile des benutzerdefinierten Skripts

  • ✓ Keine externen Abhängigkeiten.
  • ✓ 100 % auditierbarer und modifizierbarer Code.
  • ✓ Vollständige lokale Protokolle.

Grenzen

  • ❌ Keine automatische Entsperrung (muss zusätzlich geskriptet werden).
  • ❌ Keine Multi-Service-Erkennung (nur RDP über Ereignis 4625).
  • ❌ Bei > 10.000 gesperrten IPs wird die Firewallregel schwerfällig - IPBan bevorzugen.

Schicht 3 - Sichere Architektur (die echte Lösung)

Die Schichten 1 und 2 reduzieren die Risiken drastisch. Echte Sicherheit besteht darin, RDP überhaupt nicht zu exponieren. Drei empfohlene Architekturen:

Option A - VPN vor RDP (die einfachste)

  • Installieren Sie einen WireGuard- oder OpenVPN-Server auf Ihrem VPS (oder im Frontend).
  • Blockieren Sie den RDP-Port, außer von der internen IP des VPN.
  • Sie verbinden sich zuerst über VPN und dann über RDP, als wären Sie im LAN.

Vorteile: RDP wird von Internet unsichtbar. Kosten: 30 Minuten Installation, native Leistung.

Option B - RD Gateway (Remote Desktop Gateway)

Native Microsoft-Lösung: Ein RD Gateway-Server fungiert als HTTPS-Proxy für Ihre RDP-Sitzungen. Der Client verbindet sich über HTTPS (Port 443) mit dem Gateway, das intern in RDP weiterleitet.

Vorteile: Kompatibel mit dem Standard-RDP-Client, HTTPS-Verschlüsselung, AD-Integration. Nachteil: Erfordert eine RDS-Lizenz und mehr Konfiguration.

Option C - Bastion / Jump-Host

Ein minimalistischer "Bastion"-Server mit nur SSH oder RDP über Schlüssel. Alle Ihre Verbindungen laufen über ihn. Wenn die Bastion kompromittiert wird, bleiben Ihre echten Server unberührt.

Empfohlen für Infrastrukturen mit mehr als 3-5 VPS.

Überprüfung und Monitoring

Effektivität nach 24 Stunden messen

Starten Sie das Diagnose-Skript aus dem vorherigen Abschnitt erneut. Wenn Ihre Maßnahmen effektiv sind, sollten Sie sehen:

  • Ereignis 4625: < 100/Tag (gegenüber Tausenden zuvor).
  • Top angreifende IPs: 1-3 Versuche jeweils (gegenüber Hunderten).
  • Firewallregeln von IPBan: regelmäßiges Wachstum der gesperrten IPs.

E-Mail-Benachrichtigung bei massiven Angriffen

Skript, das jede Stunde geplant werden soll, um zu benachrichtigen, wenn > 500 Fehlversuche/Stunde:

$count = (Get-WinEvent -FilterHashtable @{
    LogName='Security'; ID=4625; StartTime=(Get-Date).AddHours(-1)
} -ErrorAction SilentlyContinue | Measure-Object).Count

if ($count -gt 500) {
    Send-MailMessage -From "[email protected]" -To "[email protected]" `
        -Subject "⚠️ Aktueller RDP-Angriff: $count Versuche in 1h" `
        -Body "VPS angegriffen. Überprüfen Sie IPBan und Protokolle." `
        -SmtpServer "smtp.votreservice.com"
}

Wöchentliche Prüfung der Konten

Überprüfen Sie einmal pro Woche, dass kein verdächtiges Konto erstellt wurde:

Get-LocalUser | Where-Object { $_.Enabled -eq $true } | Format-Table Name, LastLogon, Description

Überwachen Sie kürzlich erschienene Konten, die Sie nicht erkennen.

FAQ - RDP gegen Brute-Force absichern

Wie viele RDP-Anmeldeversuche sollte ich auf einem VPS erwarten?

Auf einem neu deployierten Windows VPS mit dem standardmäßig freigegebenen Port 3389 zählen Sie von den ersten Stunden an 5.000 bis 50.000 Versuche pro Tag. Dieser Verkehr stammt von Botnets, die das IPv4 kontinuierlich scannen. Eine Reduzierung auf weniger als 100 pro Tag ist das Ziel nach Anwendung des Leitfadens.

Was ist der Befehl, um die IPs zu sehen, die meinen RDP angreifen?

In PowerShell als Administrator: Get-WinEvent -FilterHashtable @{LogName='Security'; ID=4625} -MaxEvents 1000 und dann die IpAddress Felder aus dem XML extrahieren. Das vollständige Skript befindet sich im Diagnoseteil. Es gibt Ihnen die Top 20 der IPs mit der Anzahl der Versuche.

IPBan oder Fail2Ban4Win, welches soll ich wählen?

IPBan ist reifer, besser dokumentiert und bietet eine Pro-Version mit Dashboard. Fail2Ban4Win ist moderner (.NET 6+), 100 % Open Source MIT und leichter. Für die meisten Anwendungen reicht die kostenlose Version von IPBan völlig aus. Fail2Ban4Win eignet sich besser, wenn Sie zum Code beitragen oder in eine CI integrieren möchten.

Reicht es aus, den RDP-Port von 3389 auf einen anderen zu ändern, um sich zu schützen?

Nein, aber es ist nützlich als Ergänzung. Das Ändern des Ports eliminiert 95 % des Rauschens von automatisierten Scans (Bots scannen standardmäßig nur 3389). Aber ein gezielter Angreifer wird in wenigen Minuten einen vollständigen Scan Ihrer Ports durchführen. Kombinieren Sie benutzerdefinierten Port + NLA + Sperrung + IPBan für einen echten Schutz.

Wie kann ich herausfinden, ob mein VPS bereits kompromittiert wurde?

Überprüfen Sie: (1) Liste der lokalen Konten (Get-LocalUser) - jedes Konto, das nicht von Ihnen erstellt wurde, ist verdächtig; (2) geplante Aufgaben (Get-ScheduledTask) - nach unbekannten Skripten suchen; (3) laufende Prozesse (Get-Process) - nach Minern (xmrig, ethminer) oder ungewöhnlichen ausgehenden Verbindungen suchen; (4) Event Log Anwendung/System - nach unerwarteten kürzlichen Installationen suchen. Bei ernsthaften Zweifeln installieren Sie den VPS von Grund auf neu - ein kompromittierter VPS lässt sich nicht reinigen, er muss ersetzt werden.

Funktioniert die IP-Whitelist, wenn ich nomadisch arbeite?

Schlecht. Wenn sich Ihre IP regelmäßig ändert (3G/4G, Hotels, Coworking), wird die Whitelist unpraktisch. Lösung: Richten Sie ein VPN auf dem VPS ein (WireGuard ideal, 10 Minuten Installation) und erlauben Sie RDP nur von der internen IP des VPN. Sie behalten den Schutz, ohne eine IP-Liste pflegen zu müssen.

Was tun, wenn ich nach einer falschen Firewall-Konfiguration ausgesperrt bin?

Verwenden Sie die Out-of-Band-Konsole Ihres Hosting-Anbieters (VNC, KVM, IPMI) - bei OuiHeberg über den Kundenbereich zugänglich. Diese Konsole bietet direkten Zugriff auf den VPS, ohne über RDP zu gehen, also unabhängig von der Firewall. Sie können die problematische Regel korrigieren oder deaktivieren.

Wie lange dauert es, bis ein Brute-Force-Angriff auf ein schwaches Konto erfolgreich ist?

Mit einem Passwort von 8 Zeichen in Kleinbuchstaben: einige Minuten. Mit 12 gemischten Zeichen: einige Tage. Mit 14+ starken Zeichen: mehrere Jahre. Deshalb macht die Passwortpolitik (net accounts /minpwlen:14) in Kombination mit der Kontosperrung Brute-Force praktisch unmöglich.

Verlangsamt IPBan meinen Server?

Nein. IPBan läuft als leichter Dienst, der die Event Logs liest und Regeln zur nativen Windows-Firewall hinzufügt. Der Verbrauch ist vernachlässigbar (< 30 MB RAM, < 1 % CPU selbst unter massivem Angriff). Die Windows-Firewall-Regeln sind optimiert, um Zehntausende von IPs ohne spürbare Auswirkungen zu verwalten.

Was tun mit gesperrten IPs nach mehreren Monaten?

Sie können alte IPs regelmäßig über IPBan bereinigen (Parameter ExpireTime). Ein Zeitraum von 30 bis 90 Tagen ist ein guter Kompromiss: Botnets erneuern regelmäßig ihre IPs, das Nichtbehalten ad vitam aeternam verhindert, dass die Liste unüberschaubar wird.

Fazit

Das Blockieren von RDP-Brute-Force-Angriffen auf einem Windows VPS erfordert drei ergänzende Schichten: (1) RDP-Hygiene - NLA, Sperrung, starke Passwörter, benutzerdefinierter Port; (2) Auto-Ban mit IPBan oder einem benutzerdefinierten PowerShell-Skript; (3) idealerweise ein VPN oder Bastion, um RDP überhaupt nicht auszusetzen.

Mit diesen drei Schichten reduzieren Sie von 20.000 Versuchen/Tag auf weniger als 100, und die wenigen IPs, die es weiterhin versuchen, werden automatisch gesperrt. Ihr VPS bleibt für Sie leicht zugänglich, wird aber zu einer unüberwindbaren Mauer für Bots.

Sie möchten einen bereits konfigurierten Windows VPS mit IPBan, gehärteter Firewall und kostenloser Out-of-Band-Konsole? Die Windows VPS von OuiHeberg sind für die Produktion vorkonfiguriert: NLA aktiviert, strikte Sperrpolitik, VPN WireGuard optional, 7/7 Support mit Sitz in Frankreich.