Die Windows Server-Firewall auf einem VPS konfigurieren
5 Schritte zur Sicherung Ihrer Windows VPS-Firewall
Den Status überprüfen:
Get-NetFirewallProfile | Select Name, Enabledin PowerShell.Für alle 3 Profile aktivieren:
Set-NetFirewallProfile -Profile Domain,Private,Public -Enabled True.Eine eingehende Regel erstellen über die Schnittstelle
wf.mscoderNew-NetFirewallRulein PowerShell.RDP (3389) nur auf Ihre Quell-IP beschränken.
Logs aktivieren, um blockierte Verbindungen zu protokollieren.
🛡️ Warum die Windows Server-Firewall auf einem VPS kritisch ist
Ein Windows VPS ist direkt im Internet exponiert. Ohne korrekt konfigurierte Firewall kann jeder versuchen, sich mit Ihren offenen Ports zu verbinden.
Netzwerkfirewall vs. OS-Firewall: zwei separate Schichten.
Bei OuiHeberg verfügt Ihr Windows VPS über eine Netzwerkfirewall auf Infrastrukturebene. Diese Firewall ersetzt jedoch nicht die Windows Defender Firewall: Sie arbeitet auf OS-Ebene, Regel für Regel, Programm für Programm. Beide müssen aktiv sein.
Risiken, wenn die Windows-Firewall deaktiviert ist:
RDP (Port 3389) für alle Scan-Bots exponiert: kontinuierliche Brute-Force-Angriffe.
SQL Server (1433), WinRM (5985/5986) ohne Einschränkungen zugänglich.
Keine Sichtbarkeit über blockierten Verkehr (keine Logs).
Die 3 Netzwerkprofile: Welches gilt für einen VPS?
Profil | Wann es aktiv wird | Auf einem VPS |
|---|---|---|
Domäne | Maschine, die einer AD-Domäne beigetreten ist | Selten aktiv |
Privat | Vertrauenswürdiges Netzwerk (LAN) | Möglich je nach Netzwerkkonfiguration |
Öffentlich | Unbekanntes Netzwerk / Internet | Standardmäßig aktiv auf einem VPS |
Auf einem Standalone-VPS gilt das Profil Öffentlich. Aktivieren Sie die Regeln für alle 3 Profile, um nichts dem Zufall zu überlassen.
🔍 Den Status der Firewall vor Beginn überprüfen
Immer mit einer Bestandsaufnahme beginnen. Melden Sie sich per RDP an, öffnen Sie PowerShell als Administrator.
Über PowerShell: vollständiger Status der 3 Profile:
Get-NetFirewallProfile | Select Name, Enabled, DefaultInboundAction, DefaultOutboundAction
Erwartetes Ergebnis:
Enabled = Truefür alle 3 Profile. Wenn eines aufFalsesteht, aktivieren Sie es sofort.
Über die grafische Benutzeroberfläche:
Systemsteuerung → System und Sicherheit → Windows Defender Firewall → überprüfen Sie, dass jedes Profil "Aktiviert" anzeigt.
Firewall aktivieren, wenn sie deaktiviert ist:
Set-NetFirewallProfile -Profile Domain,Private,Public -Enabled True
Überprüfen Sie die Standardaktionen (empfohlen):
Set-NetFirewallProfile -Profile Domain,Private,Public `
-DefaultInboundAction Block `
-DefaultOutboundAction Allow
Standardmäßig den gesamten eingehenden Verkehr blockieren und nur das zulassen, was Sie ausdrücklich definieren: das ist die richtige Sicherheitsstrategie.
🖱️ Eine Firewall-Regel erstellen (GUI-Methode)
🖥️ Zugriff auf die Windows Defender Firewall mit erweiterter Sicherheit
Zwei mögliche Wege:
Windows-Taste →
wf.msceingeben → Eingabetaste.Systemsteuerung → System und Sicherheit → Windows Defender Firewall → Erweiterte Einstellungen.
Die Schnittstelle zeigt 3 Abschnitte an: Eingehende Verkehrsregeln, Ausgehende Verkehrsregeln, Verbindungs-Sicherheitsregeln.
➡️ Eine eingehende Regel erstellen
Rechtsklick auf Eingehende Verkehrsregeln → Neue Regel.
Wählen Sie den Typ: Port, Programm, Vordefiniert oder Benutzerdefiniert.
Protokoll (TCP/UDP) und Portnummer angeben.
Aktion: Verbindung zulassen oder Blockieren.
Die betroffenen Profile auswählen (Domäne, Privat, Öffentlich).
Die Regel eindeutig benennen (z. B.:
Allow-HTTP-80-Inbound).
⬅️ Eine ausgehende Regel erstellen
Die meisten Anleitungen hören bei den eingehenden Regeln auf. Das ist ein Fehler.
Rechtsklick auf Ausgehende Verkehrsregeln → Neue Regel.
Der gleiche Prozess wie bei einer eingehenden Regel.
Nützlich, um einen Prozess oder eine spezifische Ziel-IP zu blockieren.
Konkretes Beispiel: blockieren Sie ausgehende Verbindungen zu einem verdächtigen Port oder einer IP, ohne den restlichen Verkehr zu beeinträchtigen.
🔧 Den Regeltyp festlegen
Typ | Verwendung |
|---|---|
Port | Ein spezifischen TCP- oder UDP-Port öffnen/blockieren |
Programm | Ein ausführbares Programm (.exe) zulassen/blockieren |
Vordefiniert | Aktivieren Sie eine integrierte Windows-Regelgruppe (RDP, Datei- und Druckfreigabe…) |
Benutzerdefiniert | Vollständige Kontrolle: Port + Programm + Quell-/Ziel-IP-Adresse |
⚡ Eine Firewall-Regel erstellen (PowerShell-Methode)
PowerShell ist die bevorzugte Methode auf einem VPS: skriptfähig, reproduzierbar, auditierbar. Alle untenstehenden Befehle erfordern eine erhöhte (Administrator) PowerShell-Sitzung.
💻 Wesentliche Befehle New-NetFirewallRule
Grundstruktur:
New-NetFirewallRule `
-DisplayName "Beschreibender Name" `
-Direction Inbound ` # oder Outbound
-Protocol TCP `
-LocalPort 80 `
-Action Allow ` # oder Block
-Profile Public,Private,Domain `
-Enabled True
🔒 RDP (Port 3389) sichern: auf eine IP beschränken
RDP niemals für das gesamte Internet offen lassen. Beschränken Sie es auf Ihre feste IP oder Ihren VPN-Bereich.
# RDP für alle blockieren
New-NetFirewallRule `
-DisplayName "Block-RDP-All" `
-Direction Inbound `
-Protocol TCP `
-LocalPort 3389 `
-Action Block `
-Profile Any
# RDP nur von Ihrer IP zulassen
New-NetFirewallRule `
-DisplayName "Allow-RDP-MyIP" `
-Direction Inbound `
-Protocol TCP `
-LocalPort 3389 `
-RemoteAddress "203.0.113.10" `
-Action Allow `
-Profile Any
⚠️ Anwendungsreihenfolge: Erstellen Sie zuerst die Regel Allow mit Ihrer IP, dann die Regel Block. Im Zweifelsfall testen Sie von einer anderen offenen RDP-Sitzung, bevor Sie die erste schließen.
🌐 HTTP/HTTPS öffnen (Ports 80 und 443)
New-NetFirewallRule `
-DisplayName "Allow-HTTP-HTTPS-Inbound" `
-Direction Inbound `
-Protocol TCP `
-LocalPort @(80, 443) `
-Action Allow `
-Profile Any
🗄️ SQL Server öffnen (Port 1433): auf ein Subnetz beschränken
SQL Server darf niemals dem Internet ausgesetzt werden. Beschränken Sie es auf Ihr Anwendungs-Subnetz.
New-NetFirewallRule `
-DisplayName "Allow-SQLServer-LAN" `
-Direction Inbound `
-Protocol TCP `
-LocalPort 1433 `
-RemoteAddress "10.0.0.0/24" `
-Action Allow `
-Profile Any
🔌 WinRM (5985/5986) für die Remoteverwaltung öffnen
WinRM ermöglicht die Remoteverwaltung von PowerShell. Muss unbedingt auf eine Verwaltungs-IP beschränkt werden.
# WinRM HTTP (5985) und HTTPS (5986)
New-NetFirewallRule `
-DisplayName "Allow-WinRM-Management" `
-Direction Inbound `
-Protocol TCP `
-LocalPort @(5985, 5986) `
-RemoteAddress "203.0.113.10" `
-Action Allow `
-Profile Any
🚫 Einen spezifischen Port oder eine IP blockieren
# Einen eingehenden Port blockieren
New-NetFirewallRule `
-DisplayName "Block-Port-8080-Inbound" `
-Direction Inbound `
-Protocol TCP `
-LocalPort 8080 `
-Action Block `
-Profile Any
# Eine spezifische Quell-IP blockieren (eingehend)
New-NetFirewallRule `
-DisplayName "Block-IP-Suspect" `
-Direction Inbound `
-RemoteAddress "198.51.100.42" `
-Action Block `
-Profile Any
# Eine ausgehende Verbindung zu einer IP blockieren
New-NetFirewallRule `
-DisplayName "Block-Outbound-IP" `
-Direction Outbound `
-RemoteAddress "198.51.100.42" `
-Action Block `
-Profile Any
📋 Vordefinierte Windows Server-Regeln, die Sie kennen sollten
Windows Server enthält Gruppen von einsatzbereiten Regeln. Aktivieren Sie sie gruppenweise anstatt Regel für Regel.
Nützliche Gruppen:
Gruppe | Verwendung |
|---|---|
| Erlauben Sie RDP-Verbindungen |
| SMB-Netzwerkfreigabe |
| Remote WMI-Verwaltung |
| PowerShell Remoting / WinRM |
| Grundlegender Netzwerkverkehr (DNS, DHCP, ICMP) |
| Netzwerkerkennung |
Aktivieren Sie eine gesamte Gruppe mit netsh:
netsh advfirewall firewall set rule group="remote desktop" new enable=Yes
netsh advfirewall firewall set rule group="Windows Remote Management" new enable=Yes
netsh advfirewall firewall set rule group="File and Printer Sharing" new enable=Yes
Aktivieren Sie eine Gruppe mit PowerShell:
Enable-NetFirewallRule -DisplayGroup "Remote Desktop"
Enable-NetFirewallRule -DisplayGroup "Windows Remote Management"
📝 Die Protokollierung der Firewall aktivieren
Ohne Logs ist es unmöglich, eine Blockierung zu diagnostizieren oder einen Eindringversuch zu erkennen.
Warum protokollieren:
Identifizieren Sie, welche Regel eine legitime Verbindung blockiert.
Scans von Ports oder Brute-Force-Versuche erkennen.
Die Anforderungen an die Sicherheitsprüfung erfüllen.
Logs über PowerShell aktivieren (alle Profile):
Set-NetFirewallProfile -Profile Domain,Private,Public `
-LogFileName "%SystemRoot%\System32\LogFiles\Firewall\pfirewall.log" `
-LogMaxSizeKilobytes 4096 `
-LogAllowed True `
-LogBlocked True
Über netsh aktivieren:
netsh advfirewall set allprofiles logging filename "%SystemRoot%\System32\LogFiles\Firewall\pfirewall.log"
netsh advfirewall set allprofiles logging maxfilesize 4096
netsh advfirewall set allprofiles logging droppedconnections enable
netsh advfirewall set allprofiles logging allowedconnections enable
Wo die Logs zu finden sind:
Standardpfad: C:\Windows\System32\LogFiles\Firewall\pfirewall.log
Logs lesen: Format der Schlüsselspalten:
Spalte | Bedeutung |
|---|---|
| Zeitstempel des Ereignisses |
|
|
| Quell-IP |
| Ziel-IP |
| Quellport |
| Zielport |
| Richtung: |
Um blockierte Verbindungen schnell in PowerShell zu lesen:
Get-Content "C:\Windows\System32\LogFiles\Firewall\pfirewall.log" |
Where-Object { $_ -match "DROP" } |
Select-Object -Last 50
🔎 Auditing und Verwalten vorhandener Regeln
Dies ist der Abschnitt, den Sie bei OVH oder Amen nicht finden werden. Die Verwaltung vorhandener Regeln ist ebenso wichtig wie das Erstellen neuer.
Alle aktiven Regeln auflisten:
Get-NetFirewallRule | Where-Object { $_.Enabled -eq "True" } |
Select-Object DisplayName, Direction, Action, Profile |
Sort-Object Direction
Aktive Regeln mit den zugehörigen Ports auflisten:
Get-NetFirewallRule | Where-Object { $_.Enabled -eq "True" } |
ForEach-Object {
$rule = $_
$portFilter = $rule | Get-NetFirewallPortFilter
[PSCustomObject]@{
Name = $rule.DisplayName
Direction = $rule.Direction
Action = $rule.Action
Protocol = $portFilter.Protocol
LocalPort = $portFilter.LocalPort
}
} | Format-Table -AutoSize
Eine Regel deaktivieren, ohne sie zu löschen:
Disable-NetFirewallRule -DisplayName "Regelname"
Eine Regel reaktivieren:
Enable-NetFirewallRule -DisplayName "Regelname"
Eine Regel dauerhaft löschen:
Remove-NetFirewallRule -DisplayName "Regelname"
Alle Regeln exportieren (Backup):
netsh advfirewall export "C:\Backup\firewall-backup.wfw"
Regeln aus einem Backup importieren:
netsh advfirewall import "C:\Backup\firewall-backup.wfw"
💡 Gute Praxis: Exportieren Sie Ihre Regeln vor größeren Änderungen. Im Falle eines Problems dauert die Wiederherstellung 10 Sekunden.
🚨 Fehlersuche: Verbindung abgelehnt trotz aktiver Regel
Ihre Regel existiert, sie ist aktiviert, aber die Verbindung schlägt trotzdem fehl. Hier sind die 5 häufigsten Szenarien.
🔍 Überprüfen, ob der Port lokal geöffnet ist
# Testen vom Server selbst
[Upload...]
# Testen von einem externen Arbeitsplatz (IP ersetzen)
Test-NetConnection -ComputerName 203.0.113.50 -Port 443 -InformationLevel DetailedWenn TcpTestSucceeded : False → der Port ist nicht zugänglich. Wenn True → das Problem liegt woanders (Anwendung, DNS usw.).
⚠️ Konflikt zwischen eingehender und ausgehender Regel
Windows wendet die Regeln Block mit Priorität auf Allow an. Wenn eine allgemeinere Blockregel existiert, überschreibt sie Ihre spezifische Allow-Regel.
Überprüfen Sie die Konfliktregeln:
# Aktive Blockregeln für eingehende Verbindungen
Get-NetFirewallRule -Direction Inbound -Action Block -Enabled True |
Select-Object DisplayName, Profile
📡 Falsches Netzwerkprofil (Öffentlich vs. Privat)
Ihre Regel wurde für das Profil Privat erstellt, aber Ihr VPS ist im Profil Öffentlich? Sie gilt nicht.
Aktives Profil überprüfen:
Get-NetConnectionProfile | Select-Object Name, NetworkCategory
Profil bei Bedarf korrigieren:
Set-NetConnectionProfile -InterfaceAlias "Ethernet" -NetworkCategory Private
🏗️ OuiHeberg Netzwerkfirewall vs. Windows-Firewall: Wer blockiert?
Wenn Test-NetConnection vom Server selbst erfolgreich ist, aber von außen fehlschlägt, kommt die Blockade von der OuiHeberg Netzwerkfirewall, nicht von der Windows Defender Firewall.
Schnelldiagnose:
Vom VPS:
Test-NetConnection -ComputerName localhost -Port XXXX→ Erfolg = Windows OK.Von Ihrem Arbeitsplatz:
Test-NetConnection -ComputerName <IP_VPS> -Port XXXX→ Fehler = Netzwerkfirewall.
In diesem Fall überprüfen Sie die Regeln Ihrer Netzwerkfirewall im OuiHeberg-Kundenbereich.
📋 Logs überprüfen, um die blockierende Regel zu identifizieren
# Suchen Sie nach DROP auf einem spezifischen Port (z. B. 8080)
Get-Content "C:\Windows\System32\LogFiles\Firewall\pfirewall.log" |
Where-Object { $_ -match "DROP" -and $_ -match "8080" }
Die Spalte path zeigt RECEIVE (eingehend) oder SEND (ausgehend) an. Dies bestätigt die Richtung der Blockade.
✅ Gute Sicherheitspraktiken für Firewalls auf Windows VPS
Prinzip der geringsten Privilegien: alles standardmäßig blockieren.
Beginnen Sie mit DefaultInboundAction Block und öffnen Sie nur die unbedingt notwendigen Ports. Jeder geöffnete Port ist eine Angriffsfläche.
Ändern Sie den RDP-Port (3389 → benutzerdefinierter Port).
Den Port zu ändern ersetzt keine gute Firewallregel, reduziert jedoch den Lärm automatisierter Scans. Ändern Sie den Registrierungsschlüssel und erstellen Sie dann die entsprechende Firewallregel:
# Beispiel: RDP auf Port 54321
New-NetFirewallRule `
-DisplayName "Allow-RDP-Custom-Port" `
-Direction Inbound `
-Protocol TCP `
-LocalPort 54321 `
-RemoteAddress "203.0.113.10" `
-Action Allow `
-Profile Any
Bitte konsultieren Sie unser RDP-Verbindungsleitfaden für das vollständige Verfahren zur Portänderung.
RDP auf eine IP oder IP-Bereich beschränken.
Wenn Sie eine feste IP haben, ist dies die effektivste Maßnahme. Wenn sich Ihre IP ändert, verwenden Sie ein VPN und erlauben Sie nur den VPN-Bereich.
Deaktivieren Sie nicht verwendete Regeln.
Entfernen Sie sie nicht: Deaktivieren Sie sie. Sie können sie bei Bedarf wieder aktivieren. Überprüfen Sie die aktiven Regeln vierteljährlich.
Regelmäßige Überprüfung der Regeln.
# Monatlicher Export aktiver Regeln
Get-NetFirewallRule | Where-Object { $_.Enabled -eq "True" } |
Export-Csv "C:\Audit\firewall-rules-$(Get-Date -Format 'yyyy-MM').csv" -NoTypeInformation
📊 Zusammenfassung: Firewall-Checkliste für VPS Windows
Aktion | PowerShell-Befehl / GUI-Standort |
|---|---|
Überprüfen Sie den Status der Profile |
|
Firewall aktivieren (3 Profile) |
|
Standardmäßig gesamten eingehenden Verkehr blockieren |
|
Eingehende Regel erstellen (Port) |
|
Ausgehende Regel erstellen (Port) |
|
RDP auf eine IP beschränken |
|
Logs aktivieren |
|
Aktive Regeln auflisten |
|
Eine Regel deaktivieren |
|
Eine Regel löschen |
|
Regeln exportieren (Backup) |
|
Port testen |
|
❓ FAQ
Was ist der Unterschied zwischen Windows Defender Firewall und einer Netzwerkfirewall?
Die Netzwerkfirewall (Infrastruktur-Ebene, bei OuiHeberg) filtert den Verkehr, bevor er Ihr VPS erreicht. Windows Defender Firewall arbeitet auf der OS-Ebene: Sie kontrolliert die Verbindungen programmweise, portweise, mit Regeln pro Netzwerkprofil. Beide sind komplementär: die eine ersetzt nicht die andere.
Wie öffne ich einen Port auf einem VPS Windows Server?
In PowerShell (Administrator):
New-NetFirewallRule -DisplayName "Allow-Port-XXXX" -Direction Inbound -Protocol TCP -LocalPort XXXX -Action Allow -Profile Any
Ersetzen Sie XXXX durch die Portnummer. Wenn der Port von außen nicht erreichbar bleibt, überprüfen Sie auch die Netzwerkfirewall von OuiHeberg in Ihrem Kundenbereich.
Meine Anwendung reagiert nicht, obwohl eine Regel geöffnet ist: Was tun?
Überprüfen Sie in dieser Reihenfolge:
Test-NetConnection -ComputerName localhost -Port XXXX: Wird der Port abgehört?Entspricht das aktive Netzwerkprofil dem Profil der Regel?
Schreibt eine allgemeinere Block-Regel Ihre Allow-Regel nicht aus?
Kommt die Blockade von der Netzwerkfirewall von OuiHeberg (Test von außen)?
Überprüfen Sie die Logs:
Get-Content pfirewall.log | Where-Object { $_ -match "DROP" }
Sollte die Firewall auf allen Profilen (Domain, Privat, Öffentlich) aktiviert sein?
Ja, immer. Auf einem VPS ist das öffentliche Profil normalerweise aktiv. Wenn sich die Netzwerkkonfiguration ändert (Hinzufügen einer Schnittstelle, Beitritt zu einer Domäne), kann ein anderes Profil aktiviert werden. Die Aktivierung aller 3 Profile gewährleistet einen kontinuierlichen Schutz, unabhängig von der Situation.
Wie sichere ich meine Windows Server Firewall-Regeln?
netsh advfirewall export "C:\Backup\firewall-backup.wfw"
Um wiederherzustellen:
netsh advfirewall import "C:\Backup\firewall-backup.wfw"
Planen Sie diesen Export in einer Windows-Taskplanung vor jeder Wartung.
Welchen Port verwendet RDP standardmäßig und wie ändere ich ihn?
RDP verwendet standardmäßig den Port TCP 3389. Um ihn zu ändern:
Ändern Sie den Registrierungsschlüssel:
HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp→ WertPortNumber.Erstellen Sie eine neue Firewall-Regel, die den neuen Port von Ihrer IP erlaubt.
Deaktivieren (oder löschen) Sie die Regel für den Port 3389.
Starten Sie den Dienst
TermServiceneu.
Bitte konsultieren Sie unser RDP-Verbindungsleitfaden für das detaillierte Verfahren.



