WindowsVeröffentlicht am 22. Mai 20268 Min. Lesezeit

Port in der Windows Firewall freigeben

Um einen Port auf einem Windows-VPS freizugeben, arbeiten Sie direkt in der Firewall von Windows Server, der Windows Defender Firewall: Der Kundenbereich von OuiHeberg hat keine Netzwerk-Firewall für VPS. Diese Anleitung zeigt, wie Sie die Firewall prüfen, einen Port über die GUI oder mit PowerShell freigeben, Remotedesktop auf Ihre Adresse beschränken und die Protokolle lesen. Führen Sie die Befehle in PowerShell als Administrator in einer RDP-Sitzung aus.

Den Status der Windows-Server-Firewall prüfen

Windows wendet je nach Netzwerk eines von drei Profilen an. Auf einem VPS ist es meist das Profil Public.

ProfilWann es gilt
DomainMaschine ist Mitglied einer Active-Directory-Domäne
PrivateAls vertrauenswürdig eingestuftes Netzwerk
PublicUnbekanntes Netzwerk, der Fall eines VPS im Internet

Zeigen Sie den Status der drei Profile und ihre Standardaktion an.

Get-NetFirewallProfile | Select Name, Enabled, DefaultInboundAction, DefaultOutboundAction

Jedes Profil sollte Enabled auf True zeigen. Steht eines auf False, schalten Sie die Firewall für alle drei wieder ein.

Set-NetFirewallProfile -Profile Domain,Private,Public -Enabled True

Der richtige Ausgangspunkt: allen eingehenden Verkehr blockieren, außer dem, was Sie erlauben, und ausgehenden Verkehr durchlassen.

Set-NetFirewallProfile -Profile Domain,Private,Public `
  -DefaultInboundAction Block `
  -DefaultOutboundAction Allow

Die Bezeichnungen von Windows stehen hier auf Englisch, in der Sprache des gelieferten Systems. Die Firewall-Konsole öffnet sich mit wf.msc. Ihre Startseite fasst die drei Profile zusammen und zeigt das aktive an.

Konsole Windows Defender Firewall with Advanced Security mit den Profilen Domain, Private und Public


Einen Port über die GUI freigeben

  1. Drücken Sie die Windows-Taste, tippen Sie wf.msc und bestätigen Sie mit Enter.

  2. Klicken Sie mit der rechten Maustaste auf Inbound Rules und dann auf New Rule….

  3. Wählen Sie im Schritt Rule Type die Option Port und klicken Sie auf Next.

  4. Wählen Sie TCP oder UDP und tragen Sie den Port unter Specific local ports ein, zum Beispiel 443.

  5. Behalten Sie Allow the connection bei.

  6. Lassen Sie die drei Profile angehakt.

  7. Geben Sie der Regel einen eindeutigen Namen, zum Beispiel Allow-HTTPS-443-Inbound, und klicken Sie auf Finish.

Die Regel gilt sofort, ohne Neustart.

Assistent New Inbound Rule Wizard im Schritt Rule Type mit gewählter Option Port

Der Schritt Rule Type bietet vier Regeltypen.

TypVerwendung
ProgramEine ausführbare Datei (.exe) erlauben oder blockieren
PortEinen TCP- oder UDP-Port öffnen oder blockieren
PredefinedEine von Windows mitgelieferte Regelgruppe aktivieren (Remotedesktop, Dateifreigabe…)
CustomPort, Programm und Quell- oder Ziel-IP-Adressen kombinieren

Eine ausgehende Regel legen Sie genauso unter Outbound Rules an. Sie dient vor allem dazu, ein Programm oder den Server daran zu hindern, eine bestimmte Adresse oder einen bestimmten Port zu erreichen.

Liste Outbound Rules der Firewall mit der Aktion New Rule im Bereich Actions


Einen Port mit PowerShell freigeben

PowerShell ist schneller und lässt sich auf einem anderen Server unverändert wiederholen. Eine Zeile genügt, um einen TCP-Port zu öffnen. Ersetzen Sie 8080 durch Ihren Port.

New-NetFirewallRule -DisplayName "Allow-Port-8080" -Direction Inbound -Protocol TCP -LocalPort 8080 -Action Allow -Profile Any

Für eine ausgehende Regel ersetzen Sie Inbound durch Outbound. Zum Blockieren ersetzen Sie Allow durch Block. Hier derselbe Befehl über mehrere Zeilen, für die Webports 80 und 443.

New-NetFirewallRule `
  -DisplayName "Allow-HTTP-HTTPS-Inbound" `
  -Direction Inbound `
  -Protocol TCP `
  -LocalPort @(80, 443) `
  -Action Allow `
  -Profile Any

Einen Port auf bestimmte Adressen beschränken

Ein Verwaltungsdienst oder eine Datenbank sollte nicht für das ganze Internet offen sein. Der Parameter -RemoteAddress beschränkt die Regel auf eine Adresse oder einen Bereich. Beispiel: SQL Server (Port 1433) nur aus einem Subnetz, dann WinRM (5985 und 5986) nur von einer Verwaltungsadresse.

# SQL Server, nur aus einem Subnetz
New-NetFirewallRule `
  -DisplayName "Allow-SQLServer-LAN" `
  -Direction Inbound `
  -Protocol TCP `
  -LocalPort 1433 `
  -RemoteAddress "10.0.0.0/24" `
  -Action Allow `
  -Profile Any
# WinRM HTTP (5985) und HTTPS (5986), nur von einer Adresse
New-NetFirewallRule `
  -DisplayName "Allow-WinRM-Management" `
  -Direction Inbound `
  -Protocol TCP `
  -LocalPort @(5985, 5986) `
  -RemoteAddress "203.0.113.10" `
  -Action Allow `
  -Profile Any

Um Ihre VPS untereinander ohne Umweg über das Internet zu verbinden, erklärt die Anleitung Zwei VPS über ein privates Netzwerk verbinden, wie Sie das private Netzwerk aktivieren.


Remotedesktop auf Ihre IP-Adresse beschränken

Port 3389 wird ständig von Bots abgesucht. Hat Ihr Anschluss eine feste Adresse, reservieren Sie Remotedesktop für sie.

  1. Legen Sie eine Regel an, die Port 3389 von Ihrer Adresse erlaubt. Ersetzen Sie 203.0.113.10 durch Ihre Adresse.

    New-NetFirewallRule `
      -DisplayName "Allow-RDP-MyIP" `
      -Direction Inbound `
      -Protocol TCP `
      -LocalPort 3389 `
      -RemoteAddress "203.0.113.10" `
      -Action Allow `
      -Profile Any
    
  2. Öffnen Sie eine zweite RDP-Sitzung, um zu prüfen, dass Sie weiterhin hineinkommen. Lassen Sie die erste offen.

  3. Deaktivieren Sie die ursprünglichen Remotedesktop-Regeln, die jede Adresse zulassen.

    Disable-NetFirewallRule -DisplayGroup "Remote Desktop"
    

Da eingehender Verkehr standardmäßig blockiert ist, kommt jetzt nur noch Ihre Adresse durch.

Legen Sie keine Block-Regel auf Port 3389 an. In Windows hat eine Blockierregel Vorrang vor einer Zulassungsregel und würde auch Ihre Adresse aussperren. Haben Sie den Zugang verloren, öffnen Sie die Konsole über die VPS-Seite im Kundenbereich und korrigieren Sie die Regel.

Ändert sich Ihre Adresse oft, gehen Sie über ein VPN und erlauben Sie dessen Bereich. Um den Remotedesktop-Port zu ändern, folgen Sie der Anleitung RDP-Port auf einem Windows Server VPS ändern.


Einen Port oder eine IP-Adresse blockieren

# Eingehenden Port blockieren
New-NetFirewallRule `
  -DisplayName "Block-Port-8080-Inbound" `
  -Direction Inbound `
  -Protocol TCP `
  -LocalPort 8080 `
  -Action Block `
  -Profile Any
# Quelladresse blockieren (eingehend)
New-NetFirewallRule `
  -DisplayName "Block-IP-Suspect" `
  -Direction Inbound `
  -RemoteAddress "198.51.100.42" `
  -Action Block `
  -Profile Any
# Ausgehende Verbindungen zu einer Adresse blockieren
New-NetFirewallRule `
  -DisplayName "Block-Outbound-IP" `
  -Direction Outbound `
  -RemoteAddress "198.51.100.42" `
  -Action Block `
  -Profile Any

Eine Blockierregel hat Vorrang vor allen Zulassungsregeln für denselben Verkehr.


Vordefinierte Windows-Regeln aktivieren

Windows Server bringt fertige Regelgruppen mit. Aktivieren Sie sie gruppenweise statt einzeln.

GruppeVerwendung
Remote DesktopRemotedesktop-Verbindungen
File and Printer SharingSMB-Dateifreigabe
Windows Management Instrumentation (WMI)WMI-Fernverwaltung
Windows Remote ManagementPowerShell-Remoting (WinRM)
Core NetworkingGrundlegender Netzwerkverkehr (DNS, DHCP, ICMP)
Network DiscoveryNetzwerkerkennung

Mit netsh oder mit PowerShell, ganz wie Sie möchten.

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
Enable-NetFirewallRule -DisplayGroup "Remote Desktop"
Enable-NetFirewallRule -DisplayGroup "Windows Remote Management"

Um Ping zu erlauben, beschreibt die Anleitung Ping in der Windows Firewall erlauben die ICMP-Regeln.


Blockierten Verkehr protokollieren

Das Firewall-Protokoll zeigt, welche Verbindung abgewiesen wurde, und macht Portscans sichtbar. Aktivieren Sie es für alle drei Profile.

Set-NetFirewallProfile -Profile Domain,Private,Public `
  -LogFileName "%SystemRoot%\System32\LogFiles\Firewall\pfirewall.log" `
  -LogMaxSizeKilobytes 4096 `
  -LogAllowed True `
  -LogBlocked True

Dieselbe Einstellung geht auch mit netsh.

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

Das Protokoll liegt unter C:\Windows\System32\LogFiles\Firewall\pfirewall.log. Das sind seine nützlichen Spalten.

SpalteInhalt
date, timeDatum und Uhrzeit des Ereignisses
actionALLOW oder DROP
src-ip, dst-ipQuell- und Zieladresse
src-port, dst-portQuell- und Zielport
pathRECEIVE für eingehend, SEND für ausgehend

Dieser Befehl zeigt die letzten 50 Blockierungen.

Get-Content "C:\Windows\System32\LogFiles\Firewall\pfirewall.log" |
  Where-Object { $_ -match "DROP" } |
  Select-Object -Last 50

Regeln verwalten und sichern

Listen Sie die aktiven Regeln auf, sortiert nach Richtung.

Get-NetFirewallRule | Where-Object { $_.Enabled -eq "True" } |
  Select-Object DisplayName, Direction, Action, Profile |
  Sort-Object Direction

Dieselbe Übersicht kann Protokoll und Port jeder Regel anzeigen.

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

Deaktivieren Sie eine Regel lieber, statt sie zu löschen. So können Sie sie wieder aktivieren.

# Deaktivieren
Disable-NetFirewallRule -DisplayName "Allow-Port-8080"
# Wieder aktivieren
Enable-NetFirewallRule -DisplayName "Allow-Port-8080"
# Endgültig löschen
Remove-NetFirewallRule -DisplayName "Allow-Port-8080"

Exportieren Sie alle Regeln vor einer größeren Änderung. Der Import stellt die exportierte Konfiguration wieder her.

netsh advfirewall export "C:\Backup\firewall-backup.wfw"
netsh advfirewall import "C:\Backup\firewall-backup.wfw"

Für einen monatlichen Stand der aktiven Regeln exportieren Sie sie als CSV.

Get-NetFirewallRule | Where-Object { $_.Enabled -eq "True" } |
  Export-Csv "C:\Audit\firewall-rules-$(Get-Date -Format 'yyyy-MM').csv" -NoTypeInformation

Eine abgewiesene Verbindung untersuchen

Die Regel existiert und ist aktiv, aber die Verbindung scheitert? Prüfen Sie diese Punkte der Reihe nach.

Lauscht der Dienst auf dem Port?

# Auf dem Server: lauscht ein Programm auf Port 443?
Get-NetTCPConnection -LocalPort 443 -State Listen
Test-NetConnection -ComputerName localhost -Port 443
# Von Ihrem Windows-PC aus (Adresse durch die des VPS ersetzen)
Test-NetConnection -ComputerName 203.0.113.50 -Port 443 -InformationLevel Detailed

Ist TcpTestSucceeded auf dem Server True und von Ihrem PC aus False, blockiert die Firewall. Ist es auch auf dem Server False, lauscht der Dienst nicht und das Problem liegt bei der Anwendung.

Hat eine Blockierregel Vorrang?

Eine allgemeinere Block-Regel setzt sich gegen Ihre Allow-Regel durch. Listen Sie die aktiven Blockierregeln auf.

Get-NetFirewallRule -Direction Inbound -Action Block -Enabled True |
  Select-Object DisplayName, Profile

Gilt die Regel für das richtige Profil?

Eine Regel für das Profil Private greift nicht, wenn der VPS im Profil Public ist. Zeigen Sie das aktive Profil und den Namen der Schnittstelle an.

Get-NetConnectionProfile | Select-Object Name, InterfaceAlias, NetworkCategory

Am einfachsten erweitern Sie die Regel auf alle Profile. Die Schnittstelle auf das Profil Private umzustellen geht auch, wendet dann aber alle Regeln dieses Profils auf sie an.

# Regel auf alle Profile erweitern
Set-NetFirewallRule -DisplayName "Allow-Port-8080" -Profile Any
# Oder Schnittstelle auf Private umstellen (Name aus InterfaceAlias)
Set-NetConnectionProfile -InterfaceAlias "Ethernet" -NetworkCategory Private

Was sagt das Protokoll?

# Blockierungen auf Port 8080
Get-Content "C:\Windows\System32\LogFiles\Firewall\pfirewall.log" |
  Where-Object { $_ -match "DROP" -and $_ -match "8080" }

Die Spalte path bestätigt die Richtung der Blockierung, eingehend oder ausgehend.


Brauchen Sie Hilfe?

Eröffnen Sie ein Ticket über Tickets › Ticket öffnen oder über die Kachel Support kontaktieren unten auf der VPS-Seite. Wählen Sie im Feld Betreffender Dienst den VPS aus, das spart dem Team Zeit. Sie können Ihre Frage auch auf dem Discord von OuiHeberg stellen.

War dieser Artikel hilfreich?

323 Aufrufe
Diesen Artikel teilen
VPS Windows
Sie brauchen einen Windows-VPS?

Windows Server 2025 inklusive Lizenz, Remotedesktop-Zugang und Verwaltung im Kundenbereich.

Angebote ansehen →

Verwandte Artikel