Offene Firewall-Ports ermitteln mit PowerShell
Windows Betriebssysteme haben eine integrierte Firewall um den ein- und ausgehenden Netzwerkverkehr zu steuern. Generell sollten bei einer Firewall alle Ports deaktiviert sein und somit nur die benötigten Ports geöffnet sein. Doch bei vielen Anwendungen verliert man schnell den Überblick. Mit PowerShell ist es möglich die offenen Ports der Firewall zu ermitteln.
Warum sollte man die Firewall richtig konfigurieren?
Damit Angreifer keine Daten abgreifen, oder Schadcode einschleusen können, sollte man die Ports der Firewall korrekt konfigurieren. Somit ist es auch wichtig, die offenen Ports der Firewall zu ermitteln um somit diese auf Korrektheit zu prüfen. Die einfachste Möglichkeit ist hierfür ein PowerShell Script um die Pfade zu den Programmen zu erhalten.
Offene Ports anzeigen mit PowerShell
Mit einem PowerShell Script lassen sich alle offenen Firewall-Ports anzeigen. Hierzu werden alle Firewall-Regeln abgefragt und auf offene Verbindungen geprüft.
$firewall = New-object -ComObject HNetCfg.FwPolicy2 $firewall.Rules | Where-Object {$_.Action -eq 0} | Select-Object Name, ApplicationName,LocalPorts
Als Ausgabe erhält man den Namen, den Pfad zur Datei und der Port-Status. Da wir in Zeile 2 des PowerShell-Scripts nur auf offene Ports selektieren, so werden auch nur diese ausgegeben.
So wie die Softwareprodukte im Bild hat jedes Programm seine Firewall Regeln. Vorausgesetzt das Programm verwendet Netzwerkverbindungen. Bei der Softwareverteilung-Software Baramundi gibt es beispielsweise spezielle Firewall-Regeln, welche auch per PowerShell gesetzt werden: https://www.itnator.net/firewall-regeln-einer-baramundi-installation/
Somit öffnet man nur die Ports, die auch wirklich verwendet werden. Das ist zwar oft viel Aufwand, bietet aber die meiste Sicherheit.