Belangrijkste punten
- Automatiseer poortaudits met PowerShell – gebruik Get-NetTCPConnection, Get-NetUDPEndpoint en Invoke-Command om open poorten lokaal of op afstand te scannen en logs naar CSV te exporteren.
- Centraliseer resultaten via het register – sla auditgegevens en tijdstempels op in HKLM:\SOFTWARE\<CompanyName>\PortAudit voor doorlopende monitoring en notificaties.
- Dwing beveiliging af met GPO – gebruik Groepsbeleid om firewallregels te standaardiseren en neem UDP-scans op voor volledig zicht op het netwerk.
- Beperk risico’s en vals-positieven – voer scripts uit met beheerdersrechten, filter loopbackadressen weg en leg de resultaten naast uw firewallregels.
Om open netwerkpoorten op Windows-devices te controleren, gebruikt u de PowerShell-cmdlets Get-NetTCPConnection en Get-NetUDPEndpoint om alle luisterende TCP- en UDP-poorten op te sommen. Exporteer de resultaten vervolgens naar een CSV-bestand of naar het register om ze bij te houden. Dit werkt lokaal of op externe clients via PowerShell Remoting (WinRM), zonder extra tooling. Voer de controle maandelijks uit of na elke nieuwe software-installatie, zodat u ongeautoriseerde of onverwachte open poorten opmerkt voordat ze een beveiligingsrisico worden.
Spoor risicovolle open netwerkpoorten op en beveilig externe endpoints.
Aanbevolen implementatiestrategieën:
|
Klik om een methode te kiezen |
Het beste voor individuele gebruikers | Het beste voor ondernemingen |
| Methode 1: PowerShell | ✓ | ✓ |
| Methode 2: register | ✓ | ✓ |
| Ondersteunende methode, optie 1: via GPO | ✓ | |
| Ondersteunende methode, optie 2: via Get-NetUDPEndpoint | ✓ | ✓ |
We raden u aan eerst Waar u op moet letten door te nemen voordat u verdergaat.
Methode om open netwerkpoorten te controleren met een PowerShell-audit
Een regelmatige audit van open poorten is een basisprincipe voor een veilig netwerk. U spoort er mogelijke kwetsbaarheden mee op en sluit ze voordat aanvallers er misbruik van maken.
Use case: voer deze controle uit in een aantal belangrijke situaties: bij het instellen van een nieuwe computer om de beveiliging te waarborgen, volgens een vast schema (bijvoorbeeld maandelijks), na de installatie van nieuwe software en wanneer u een beveiligingsprobleem vermoedt en naar sporen van een indringer zoekt.
Vereisten: om te controleren of TCP- en UDP-poorten in uw netwerk openstaan heeft u een paar eenvoudige zaken nodig:
- Moderne Windows-devices (Windows 10/11 of Windows Server).
- Beheerderstoegang op die machines.
- PowerShell Remoting (WinRM) ingeschakeld of een RMM-tool zoals NinjaOne om opdrachten uit te voeren.
- Opmerking over firewall en toegang: externe uitvoering via Invoke-Command vereist inkomende toegang op TCP-poort 5985 (HTTP) of 5986 (HTTPS). Zorg ervoor dat Enable-PSRemoting -Force op de doelsystemen is uitgevoerd of via GPO is uitgerold.
Bekijk Open netwerkpoorten controleren op externe clients met PowerShell en resultaten loggen – een handige naslag op het scherm.
Methode 1: open netwerkpoorten controleren met PowerShell
De eenvoudigste manier om te zien welke poorten openstaan op een Windows 11-machine is met de ingebouwde PowerShell-opdrachten. Die leveren duidelijke, bruikbare gegevens op.
Stapsgewijze procedure:
- Open PowerShell (Admin) of Windows Terminal (Admin).
- Voer deze opdracht uit om alle luisterende TCP-verbindingen op te halen en de uitvoer overzichtelijk op te maken:
Get-NetTCPConnection -State Listen | Select-Object LocalAddress, LocalPort, OwningProcess, @{Name="ProcessName"; Expression={(Get-Process -Id $_.OwningProcess).Name}} |
Deze opdracht filtert uitsluitend op poorten met de status Listen en toont het lokale IP-adres, het poortnummer, de proces-ID (PID) en de naam van het uitvoerbare bestand.
- Gebruik de cmdlet Get-NetUDPEndpoint om dezelfde informatie voor UDP-poorten (die verbindingsloos zijn) op te halen:
Get-NetUDPEndpoint | Select-Object LocalAddress, LocalPort, OwningProcess, @{Name="ProcessName"; Expression={(Get-Process -Id $_.OwningProcess).Name}} |
- Exporteer de gegevens naar een CSV-bestand om uw auditresultaten te bewaren voor rapportage. Deze opdracht voegt de TCP- en UDP-resultaten samen in één logbestand:
$Output = @()$Output += Get-NetTCPConnection -State Listen | Select-Object @{Name="Protocol"; Expression={"TCP"}}, LocalAddress, LocalPort, OwningProcess, @{Name="ProcessName"; Expression={(Get-Process -Id $_.OwningProcess -ErrorAction SilentlyContinue).Name}}$Output += Get-NetUDPEndpoint | Select-Object @{Name="Protocol"; Expression={"UDP"}}, LocalAddress, LocalPort, OwningProcess, @{Name="ProcessName"; Expression={(Get-Process -Id $_.OwningProcess -ErrorAction SilentlyContinue).Name}}$Output | Export-Csv -Path "C:\Audit\LocalPortAudit.csv" -NoTypeInformation |
Opmerking: deze opdracht maakt een bestand met de naam LocalPortAudit.csv aan in de map C:\Audit. Het portaal toont geen uitvoer, omdat alle resultaten rechtstreeks naar het CSV-bestand worden weggeschreven.
- Controleer met PowerShell Remoting (WinRM) of een netwerkpoort op een externe client openstaat.
Gebruik de cmdlet Invoke-Command om de audit op een of meer externe pc’s uit te voeren. In dit voorbeeld wordt een computer met de naam CLIENT-PC-01 gecontroleerd.
Invoke-Command -ComputerName CLIENT-PC-01 -ScriptBlock {Get-NetTCPConnection -State Listen | Select-Object LocalAddress, LocalPort, OwningProcess, @{Name="ProcessName"; Expression={(Get-Process -Id $_.OwningProcess).Name}}} | Export-Csv "\\YourServer\AuditLogs\CLIENT-PC-01-Ports.csv" -NoTypeInformation |
Na deze procedure beschikt u over een gedetailleerd logbestand (CSV) met elke open TCP- en UDP-poort op de doelmachine, inclusief de bijbehorende applicatie en proces-ID. Dit logbestand is uw hoofdlijst voor analyse.
Opmerking: vervang CLIENT-PC-01 door de werkelijke computernaam die u wilt controleren en pas het exportpad aan (bijvoorbeeld \\YourServer\AuditLogs\...) naar een map die bestaat en toegankelijk is in uw omgeving.
Methode 2: het register gebruiken voor logging en statusbewaking
Door auditresultaten in het Windows-register op te slaan, creëert u een permanent en eenvoudig toegankelijk overzicht voor gecentraliseerde monitoringtools.
Deze methode schrijft de belangrijkste bevindingen uit uw PowerShell-audit, zoals het tijdstempel en het aantal open poorten, naar een speciale locatie in het register (HKLM). Er worden geen systeemfuncties mee geconfigureerd; het register fungeert simpelweg als een eenvoudige database voor statusinformatie.
Stapsgewijze procedure:
- Maak een aangepaste registersleutel. Voer de volgende PowerShell-scripts uit op de Windows 11-doelmachine. Ze voeren de audit uit en slaan vervolgens een samenvatting op in het register.
Voer de poortaudit uit:
$OpenTCPPorts = Get-NetTCPConnection -State Listen | Where-Object { $_.LocalAddress -notin @('127.0.0.1', '::1') }$OpenUDPPorts = Get-NetUDPEndpoint | Where-Object { $_.LocalAddress -notin @('127.0.0.1', '::1') }$TotalOpenPorts = $OpenTCPPorts.Count + $OpenUDPPorts.Count |
- Maak een registersleutel om de resultaten op te slaan (de parameter -Force maakt ontbrekende bovenliggende mappen aan):
New-Item -Path "HKLM:\SOFTWARE\YourCompanyName\PortAudit" -Force
Opmerking: vervang YourCompanyName door een betekenisvolle naam voor uw organisatie voordat u de opdracht uitvoert.
- Sla de gegevens op:
Set-ItemProperty -Path "HKLM:\SOFTWARE\YourCompanyName\PortAudit" -Name "LastAuditTime" -Value (Get-Date -Format "yyyy-MM-dd HH:mm:ss")Set-ItemProperty -Path "HKLM:\SOFTWARE\YourCompanyName\PortAudit" -Name "OpenPortsCount" -Value $TotalOpenPorts |
- Valideer de gegevens. U kunt snel via de opdrachtprompt controleren of de gegevens correct zijn weggeschreven:
reg query "HKLM\SOFTWARE\YourCompanyName\PortAudit"
- Integreer met monitoringtools zoals NinjaOne of met een geplande taak. Zo kunt u via de waarde OpenPortsCount nagaan of een netwerkpoort openstaat.
- Een waarde die hoger ligt dan een vastgestelde basislijn kan automatisch een notificatie activeren waarna een technicus onderzoek doet.
Na deze procedure beschikken uw externe clients over een gestandaardiseerde registerlocatie met hun laatste auditresultaten. Zo kan uw centrale monitoringsysteem deze statusinformatie direct en efficiënt van duizenden machines verzamelen.
Ondersteunende methoden om beleid voor open poorten te standaardiseren
Gebruik Groepsbeleid om proactief te bepalen welke poorten open mogen staan, zodat de beveiliging op al uw Windows 11-devices consistent blijft.
Use case: rol deze instellingen uit bij het opzetten van een nieuwe beveiligingsbasislijn of om compliance-standaarden in uw netwerk af te dwingen. Dit is een preventieve maatregel, niet alleen detectie.
Vereisten: zorg voordat u verdergaat dat u beschikt over een Windows Active Directory-domein, Windows 10/11 Pro, Enterprise of Education op alle clients en rechten om Groepsbeleid te maken en te beheren.
Optie 1: GPO gebruiken om regels voor open poorten te verharden en te standaardiseren
Met Groepsbeleid bepaalt en handhaaft u proactief welke poorten open mogen staan, waarmee u een consistente en veilige configuratie in uw hele netwerk creëert.
Use case: deze methode duwt firewallregels centraal vanaf een domein controller naar alle Windows 11-clients en overschrijft daarbij lokale instellingen. Ze is effectief omdat ze het principe van minste voorrecht toepast: alleen goedgekeurde services mogen communiceren.
Stapsgewijze procedure:
- Ga naar de firewallinstellingen in GPO.
- Open op uw domein controller de Groepsbeleidsbeheer-console (gpmc.msc).
- Maak een nieuwe GPO of bewerk een bestaande.
- Ga naar Computerconfiguratie > Beleid > Windows-instellingen > Beveiligingsinstellingen > Windows Firewall met geavanceerde beveiliging > Regels voor binnenkomende verbindingen.
- Maak regels aan en configureer ze.
- Klik met de rechtermuisknop in het deelvenster Regels voor binnenkomende verbindingen en selecteer Nieuwe regel….
- Gebruik de wizard om regels te maken die:
- Binnenkomend RDP (poort 3389) blokkeren, tenzij er een specifieke regel is die dit toestaat vanaf een beveiligd beheer-VLAN of via een VPN.
- Toegang weigeren voor gastservices en verouderde, onveilige protocollen zoals SMBv1.
- Uitzonderingen op applicatieniveau afdwingen (bijvoorbeeld %ProgramFiles%\YourApp\yourapp.exe) toestaan in plaats van brede poortbereiken open te zetten).
- Waar mogelijk de optie “Alleen toestaan als de verbinding beveiligd is” gebruiken om verbindingen te beperken tot digitaal ondertekende programma’s.
Zodra u deze GPO aan uw OU koppelt, ontvangen en passen alle betrokken computers deze firewallregels automatisch toe.
Dat blokkeert direct ongeautoriseerde toegangspogingen op de opgegeven poorten en verkleint het aanvalsoppervlak aanzienlijk. Uw omgeving heeft dan een verharde, uniforme configuratie die veel beter bestand is tegen laterale beweging en misbruik.
Optie 2: Get-NetUDPEndpoint optioneel inzetten voor dekking van UDP-poorten
Een volledige poortaudit moet ook UDP-endpoints omvatten, omdat die vaak over het hoofd geziene beveiligingsrisico’s met zich meebrengen. Deze methode gebruikt de cmdlet Get-NetUDPEndpoint, die de netwerkstack van Windows bevraagt om alle actieve UDP-listeners op te sommen.
Use case: neem een UDP-audit altijd op in uw reguliere controles van de beveiligingsbasislijn en in elke uitgebreide poortaudit, zodat u een volledig beeld krijgt van alle netwerkgerichte services op een Windows 11-device.
Stapsgewijze procedure:
- Controleer de UDP-listeners.
Open een PowerShell-venster met verhoogde rechten en voer de volgende opdracht uit om alle open UDP-poorten en de bijbehorende processen te zien:
Get-NetUDPEndpoint | Select-Object LocalAddress, LocalPort, OwningProcess, @{Name="ProcessName"; Expression={(Get-Process -Id $_.OwningProcess -ErrorAction SilentlyContinue).Name}} |
- Voeg de TCP- en UDP-resultaten samen in één rapport.
Voor een volledige audit combineert u de resultaten van uw TCP- en UDP-scans in één rapport. Het onderstaande script doet dat en slaat alle informatie op in een CSV-bestand.
- Haal alle luisterende TCP-poorten op:
$tcp = Get-NetTCPConnection -State Listen | Where-Object { $_.LocalAddress -notin @('127.0.0.1', '::1') } | Select-Object @{Name="Protocol"; Expression={"TCP"}}, LocalAddress, LocalPort, OwningProcess, @{Name="ProcessName"; Expression={(Get-Process -Id $_.OwningProcess -ErrorAction SilentlyContinue).Name}} |
- Haal alle UDP-endpoints op:
$udp = Get-NetUDPEndpoint | Where-Object { $_.LocalAddress -notin @('127.0.0.1', '::1') } | Select-Object @{Name="Protocol"; Expression={"UDP"}}, LocalAddress, LocalPort, OwningProcess, @{Name="ProcessName"; Expression={(Get-Process -Id $_.OwningProcess -ErrorAction SilentlyContinue).Name}} |
- Voeg de resultaten samen en exporteer ze naar een CSV-bestand:
$tcp + $udp | Export-Csv -Path "C:\Audit\Full_Port_Audit_Report.csv" -NoTypeInformation |
Na deze procedure beschikt u over één samengevoegd logbestand met alle open TCP- en UDP-poorten op het systeem.
Dit totaalbeeld is cruciaal voor effectieve beveiligingsverharding. U kunt elke ongeautoriseerde UDP-listener net zo efficiënt opsporen en onderzoeken als een TCP-listener, waardoor uw audit van open poorten echt volledig is.
Waar u op moet letten
In dit gedeelte belichten we mogelijke uitdagingen waarmee u rekening moet houden als u deze handleiding volgt.
| Risico’s | Mogelijke gevolgen | Herstelacties |
| 1. WinRM is niet ingeschakeld of niet bereikbaar | Externe PowerShell-opdrachten kunnen niet worden uitgevoerd, waardoor geautomatiseerde audits in het netwerk stilvallen. | Schakel PSRemoting in via GPO of voer Enable-PSRemoting -Force uit op de doelclient. Zorg ervoor dat de Windows-firewall poort 5985 (HTTP) of 5986 (HTTPS) toestaat. |
| 2. Scripts uitvoeren zonder verhoogde rechten | Onvolledige auditgegevens: kritieke poorten worden mogelijk niet vastgelegd en processen laten zich niet herleiden, wat een vals gevoel van veiligheid geeft. | Voer PowerShell altijd als administrator uit. Zorg bij externe uitvoering dat uw context (bijvoorbeeld de RMM-agent) over SYSTEM- of beheerdersrechten beschikt. |
| 3. Te strenge GPO-firewallregels | Groepsbeleid loopt vast doordat essentiële poorten (RPC, SMB) worden geblokkeerd; grootschalig verlies van netwerkconnectiviteit en beheerderstoegang |
|
| 4. Foutmeldingen over geweigerde registertoegang | De samenvatting van de audit kan niet naar HKLM: worden weggeschreven, waardoor centrale monitoring en rapportage onmogelijk zijn | Zorg dat het script draait in een context met voldoende rechten (bijvoorbeeld het LocalSystem-account via een RMM-tool). Controleer de machtigingen op de registersleutel handmatig. |
| 5. Een proces beëindigen puur op basis van de poort | Uitval van een applicatie of een kritieke systeemservice, met uitvaltijd en mogelijk gegevensverlies tot gevolg | Start de beëindigde service opnieuw of voer een reboot van de machine uit. Onderzoek altijd eerst de naam en het doel van het proces voordat u ingrijpt. |
| 6. UDP-poorten negeren in de audit | Kritieke beveiligingsrisico’s blijven onopgemerkt, omdat malware en ongeautoriseerde services vaak UDP gebruiken voor communicatie en data-exfiltratie | Voer de audit opnieuw uit met de cmdlet Get-NetUDPEndpoint en neem deze op in al uw toekomstige basislijncontroles. |
Belangrijke overwegingen om uw poortauditstrategie te optimaliseren
Een succesvolle poortauditstrategie vraagt om zorgvuldige planning, en niet alleen om het uitvoeren van de opdrachten zelf.
Externe audits opschalen
Om te controleren welke poorten in uw hele netwerk openstaan, moet u het proces automatiseren. Gebruik Invoke-Command van PowerShell om de audit op een lijst met computers uit te voeren of zet een RMM-tool zoals NinjaOne in om het auditscript tegelijkertijd naar alle endpoints te sturen.
Zo verzamelt u binnen enkele minuten een centraal rapport van honderden devices, wat het praktisch maakt om open poorten regelmatig te controleren.
Vals-positieven beperken
Niet elke open poort is een kwetsbaarheid. Interne loopbackadressen (127.0.0.1, ::1) duiden op services die met de lokale machine communiceren en zijn vaak ongevaarlijk.
Filter deze in uw scripts weg, zodat uw rapport zich richt op poorten die gekoppeld zijn aan de fysieke IP-adressen van de machine. Die zijn namelijk zichtbaar vanaf het netwerk en vormen een relevanter beveiligingsrisico.
Rekening houden met afwijkende firewallinstellingen
Een open poort op een device betekent niet altijd dat die vanaf internet bereikbaar is. Een upstream-netwerkfirewall of de Windows Firewall van het device zelf kan externe toegang blokkeren.
Uw audit vertelt u wat er luistert; u moet dat koppelen aan de firewallregels om te begrijpen wat er werkelijk zichtbaar is. Verifieer kritieke bevindingen altijd.
Een vast ritme vastleggen
Eén audit is slechts een momentopname. Voer deze audits volgens een vast schema uit om de beveiliging op peil te houden, bijvoorbeeld maandelijks of gelijklopend met uw maandelijkse patchcyclus. Zo ontdekt u nieuwe, ongeautoriseerde services snel en kunt u controleren of recente software-uitrollen geen onverwachte blootstelling aan het netwerk hebben veroorzaakt.
Ontdek open poorten voordat aanvallers dat doen met de geautomatiseerde netwerkmonitoring van NinjaOne.
Zo vereenvoudigt NinjaOne het auditen van poorten
NinjaOne sluit rechtstreeks aan op uw workflow voor poortaudits en automatiseert en vereenvoudigt het proces.
- Eenvoudig scripts uitrollen: stuur aangepaste PowerShell-scripts vanuit één centraal dashboard naar alle endpoints om te controleren welke poorten openstaan.
- Resultaten centraliseren: sla auditbevindingen zoals poortaantallen automatisch op in een uniform register voor eenvoudige rapportage en beoordeling.
- Proactieve notificaties ontvangen: activeer directe meldingen zodra er ongeautoriseerde poorten (bijvoorbeeld SMBv1, Telnet) op een device worden ontdekt.
- Compliance-rapporten genereren: maak geplande rapporten over de status van open poorten voor klantbesprekingen en compliance-audits.
- Herstel prioriteren: markeer devices met risicovolle blootstellingen automatisch, zodat een technicus er direct mee aan de slag kan.
Quick-start guide
NinjaOne biedt verschillende manieren om open netwerkpoorten op externe clients te controleren:
1. Ingebouwd script voor poortmonitoring
Er is een ingebouwd script met de naam “Search for Listening and Established Ports” dat:
- Notificaties geeft over opgegeven poorten die luisteren of tot stand zijn gebracht
- De resultaten desgewenst opslaat in een aangepast veld
2. PowerShell-mogelijkheden
U kunt aangepaste PowerShell-scripts maken om:
netstatte gebruiken om open poorten te controleren- Resultaten vast te leggen in activiteitenlogs of aangepaste velden
- Audits van netwerkpoorten uit te voeren op meerdere externe clients
3. Functies van de Network Management Solution (NMS)
De Network Management Solution (NMS) van NinjaOne biedt:
- Controles van de poortstatus
- Monitoring van specifieke poorten
- De mogelijkheid om voorwaarden voor de poortstatus in beleidsregels op te nemen
Beveilig uw netwerk door open poorten te beheren
Het regelmatig controleren van open netwerkpoorten op uw clients is een cruciale verdediging tegen ongeautoriseerde toegang en mogelijke inbreuken. Deze handleiding biedt praktische methoden om open poorten te controleren en te beheren.
Door deze stappen uit te voeren, zet u onbekende risico’s om in beheerde assets, versterkt u uw beveiligingsbeleid aanzienlijk en waarborgt u compliance in uw hele omgeving.
Gerelateerde onderwerpen