Dit artikel behandelt de basisprincipes van het beheren van de instellingen en regels van de ingebouwde Windows Defender Firewall met geavanceerde beveiliging vanaf de PowerShell-opdrachtregel. We zullen bekijken hoe u de firewall voor verschillende netwerkprofielen kunt in-/uitschakelen, firewallregels kunt maken of verwijderen en Windows Firewall-regels kunt importeren/exporteren met PowerShell.
Inhoud:
- Windows Defender Firewall in- of uitschakelen met PowerShell
- Maak Windows Firewall-regels met PowerShell
- Een bestaande Windows Firewall-regel wijzigen met PowerShell
- Windows Firewall-regel in-/uitschakelen/verwijderen met PowerShell
- PowerShell: Lijst met actieve regels in Windows Firewall
Windows Firewall-instellingen worden doorgaans beheerd met behulp van een afzonderlijke grafische MMC-modulewf.msc(Configuratiescherm -> Systeem en beveiliging -> Windows Defender Firewall -> Geavanceerde instellingen). U kunt de meeste Windows Firewall-configuratie- en instellingenbeheerbewerkingen uitvoeren vanaf de PowerShell-opdrachtregel. Je kunt de ingebouwde gebruikenNetSecuritymodule om dit te doen (die beschikbaar is in de versie van Windows PowerShell 5.1 of nieuwer).
U kunt de beschikbare cmdlets in de NetSecurity-module weergeven met behulp van de opdracht:
Get-Command -Module NetSecurity

Vroeger was denetsh advfirewall firewallopdracht werd gebruikt om de regels en instellingen van Windows Firewall te beheren.
Windows Defender Firewall in- of uitschakelen met PowerShell
De Windows Defender-firewall is standaard ingeschakeld.
Get-NetFirewallProfile | Format-Table Name, Enabled


Er zijn drie soorten netwerkprofielen in Windows Firewall:
- Domein– wordt toegepast op de computers die lid zijn van een Active Directory-domein;
- Privé– thuis-, SOHO- of werkgroepnetwerken;
- Openbaar– openbare netwerken.
Standaard staat Windows Firewall alle uitgaande verbindingen toe en blokkeert alle inkomende verbindingen (behalve de toegestane) voor elk netwerkprofiel.


De Network Location Awareness (NLA)-service slaat informatie over netwerktypen op in een database. U kunt het netwerkprofiel (locatie) in Windows handmatig wijzigen als dit niet correct wordt gedetecteerd.
Voor elk netwerkprofiel (locatie) kunnen verschillende firewallregels worden gebruikt. Standaard worden alle netwerkinterfaces van de computer beschermd door een firewall en worden alle drie de typen profielen daarop toegepast.
Voer de volgende opdracht uit om de Windows-firewall volledig uit te schakelen
Set-NetFirewallProfile -All -Enabled False
Of geef een specifieke profielnaam op in plaats vanAlle:
Set-NetFirewallProfile -Profile Public -Enabled False
Gebruik de volgende opdracht om Windows Firewall voor alle drie de netwerkprofielen in te schakelen
Set-NetFirewallProfile -All -Enabled True
Geeft het type profiel weer dat van toepassing is op de netwerkverbinding:
Get-NetConnectionProfile


In dit voorbeeld wordt het DomainAuthenticated-profiel toegepast op de Ethernet0-netwerkverbinding.
Als PowerShell Remoting (WinRM) is geconfigureerd op externe computers, kunt u Windows Firewall-regels op die computers beheren. In dit voorbeeld gebruiken we de cmdlet Invoke-Command om verbinding te maken met externe computers in de lijst en de firewall daarop uit te schakelen.
$computers = @('WKS01', 'WKS02', 'WKS03')
Invoke-Command -ComputerName $computers {Set-NetFirewallProfile -All -Enabled False}
U kunt de standaardactie voor het openbare profiel wijzigen om alle inkomende verbindingen te blokkeren.
Set-NetFirewallProfile –Name Public –DefaultInboundAction Block
De huidige profielinstellingen kunnen als volgt worden weergegeven:
Get-NetFirewallProfile -Name Public


Als u Windows Firewall-instellingen beheert met behulp van een GPO, kunt u de huidige resulterende profielinstellingen als volgt bekijken:
Get-NetFirewallProfile -policystore activestore
Zorg ervoor dat alle firewall-instellingen worden toegepast op alle netwerkinterfaces op de computer:
Get-NetFirewallProfile -Name Public | fl DisabledInterfaceAliases
Als alle interfaces beveiligd zijn, zou de opdracht moeten retourneren:
DisabledInterfaceAliases : {NotConfigured}

U kunt een bepaald profiel voor een netwerkinterface uitschakelen (u kunt netwerkadapters in Windows weergeven met behulp van de cmdlet Get-NetIPInterface):
Aanbevolen lees:Windows Firewall in- of uitschakelen in Windows 10
Set-NetFirewallProfile -Name Public -DisabledInterfaceAliases "Ethernet0"
Zoals u kunt zien, wordt het openbare profiel niet langer toegepast op de Ethernet0-interface::
DisabledInterfaceAliases : {Ethernet0}

U kunt gebruik maken van deSet-NetFirewallProfilecmdlet om de profielinstellingen te wijzigen (standaardactie, logboekinstellingen, pad en grootte van logbestand, meldingsinstellingen, enz.). U kunt de instellingen voor het loggen van netwerkverbindingen configureren voor elk netwerklocatieprofiel. Standaard worden Windows Firewall-logboeken opgeslagen in%systemroot%system32LogFilesFirewallen de bestandsgrootte is 4 MB. U kunt het loggen van verbindingen inschakelen en de maximale bestandsgrootte vergroten:
Set-NetFireWallProfile -Profile Domain -LogBlocked True -LogMaxSize 20000 -LogFileName ‘%systemroot%system32LogFilesFirewallpfirewall.log’
Er zijn 9 PowerShell-cmdlets om firewallregels op Windows te beheren:
- Nieuwe NetFirewallRule
- Kopieer-NetFirewallRule
- Schakel NetFirewallRule uit
- Schakel NetFirewallRule in
- Get-NetFirewallRule
- Verwijder NetFirewallRule
- Hernoem-NetFirewallRule
- Set-NetFirewallRule
- Show-NetFirewallRule
Laten we een paar eenvoudige voorbeelden bekijken van hoe u poorten opent in Windows Firewall.
Als u bijvoorbeeld binnenkomende TCP-verbindingen op TCP-poorten 80 en 443 wilt toestaan voor zowel het Domein- als het Privé-profiel, voert u de volgende opdracht uit:
New-NetFirewallRule -DisplayName 'HTTP-Inbound' -Profile @('Domain', 'Private') -Direction Inbound -Action Allow -Protocol TCP -LocalPort @('80', '443')


U kunt netwerktoegang toestaan of blokkeren voor een specifieke toepassing (uitvoerbaar programma). Mogelijk wilt u bijvoorbeeld uitgaande verbindingen voor de Firefox-browser blokkeren:
New-NetFirewallRule -Program “C:Program Files (x86)Mozilla Firefoxfirefox.exe” -Action Block -Profile Domain, Private -DisplayName “Block Firefox browser” -Description “Block Firefox browser” -Direction Outbound
Laten we een inkomende RDP-verbinding op de standaard TCP3389-poort toestaan vanaf slechts één IP-adres:
New-NetFirewallRule -DisplayName "AllowRDP" –RemoteAddress 192.168.2.200 -Direction Inbound -Protocol TCP –LocalPort 3389 -Action Allow
Om ICMP-pings toe te staan voor IP-adressen uit de opgegeven bereiken van IP-adressen en subnetten, maakt u de volgende regel:
$ips = @("192.168.2.15-192.168.2.40", "192.168.100.15-192.168.100.200", ”10.1.0.0/16”)
New-NetFirewallRule -DisplayName "Allow inbound ICMPv4" -Direction Inbound -Protocol ICMPv4 -IcmpType 8 -RemoteAddress $ips -Action Allow
New-NetFirewallRule -DisplayName "Allow inbound ICMPv6" -Direction Inbound -Protocol ICMPv6 -IcmpType 8 -RemoteAddress $ips -Action Allow
Voeg een lijst met IP-adressen uit een tekstbestand toe aan de firewallregel (één IP-adres per regel):
$ips=Get-Content C:tempip.txt
Get-NetFirewallrule -DisplayName 'AllowRDP'|Set-NetFirewallRule -RemoteAddress $ips
In het vorige artikel hebben we u laten zien hoe u PowerShell kunt gebruiken om de toegang tot een website te blokkeren, niet alleen op basis van het IP-adres, maar ook op basis van de DNS-naam van de site.
Sta alle inkomende verbindingen vanaf het opgegeven IP-adres toe. Hierdoor wordt het IP-adres toegevoegd aan de witte lijst van de firewall:
$IP = '192.168.1.20'
New-NetFirewallRule -DisplayName "Allow $IP" -Direction Inbound -Action Allow -RemoteAddress $IP
Een bestaande Windows Firewall-regel wijzigen met PowerShell
Als u een firewallregel wilt bewerken, gebruikt u deSet-NetFirewallRulecmdlet. Mogelijk wilt u bijvoorbeeld inkomende verbindingen vanaf een specifiek IP-adres toestaan voor een regel die u eerder heeft gemaakt:
Get-NetFirewallrule -DisplayName 'HTTP-Inbound' | Get-NetFirewallAddressFilter | Set-NetFirewallAddressFilter -RemoteAddress 192.168.1.10
Als u meerdere IP-adressen aan een firewallregel wilt toevoegen, gebruikt u het volgende PowerShell-script:
$ips = @("192.168.2.15", "192.168.2.17",”192.168.100.15”)
$current_ips = (Get-NetFirewallRule -DisplayName 'HTTP-Inbound'| Get-NetFirewallAddressFilter).RemoteAddress
$current_ips += $ips
Get-NetFirewallrule -DisplayName 'HTTP-Inbound'|Set-NetFirewallRule -RemoteAddress $current_ips
Lijst met alle IP-adressen in een firewallregel:
Get-NetFirewallrule -DisplayName 'Http_inbound'|Get-NetFirewallAddressFilter
Eén IP-adres verwijderen uit een firewallregel:
$removeip = "192.168.100.5"
$current_ips = (Get-NetFirewallRule -DisplayName 'HTTP-Inbound'| Get-NetFirewallAddressFilter).RemoteAddress
$filterIP = $current_ips | Where-Object{ $_ -notin $removeip }
Get-NetFirewallrule -DisplayName 'HTTP-Inbound'|Set-NetFirewallRule -RemoteAddress $filterIP


Windows Firewall-regel in-/uitschakelen/verwijderen met PowerShell
U kunt gebruik maken van deSchakel NetFirewallRule uitEnSchakel NetFirewallRule incmdlets om firewallregels in en uit te schakelen.
Disable-NetFirewallRule –DisplayName 'HTTP-Inbound'
Voer deze opdracht uit om ICMP (ping) toe te staan:
Enable-NetFirewallRule -Name FPS-ICMP4-ERQ-In
Om een firewallregel te verwijderen, gebruikt u deVerwijder NetFirewallRulecmdlet.
Remove-NetFirewallRule -DisplayName 'HTTP-Inbound'
Voer de volgende opdracht uit om alle Microsoft Firewall-regels opnieuw in te stellen en de standaardinstellingen te herstellen
netsh advfirewall reset
of:
(New-Object -ComObject HNetCfg.FwPolicy2).RestoreLocalFirewallDefaults()
Hiermee worden alle door de gebruiker gedefinieerde instellingen verwijderd, evenals de firewallregels van Microsoft Defender. Alleen de netwerktoegangsregels die in Windows zijn ingebouwd, blijven behouden.
Voordat u de firewallregels opnieuw instelt, kunt u de huidige instellingen naar een bestand exporteren.
netsh advfirewall export "C:Backupfirewall-config.wfw"
Later kunt u de oude firewallinstellingen herstellen door het regelbestand te importeren:
netsh advfirewall import "C:Backupfirewall-config.wfw"
PowerShell: Lijst met actieve regels in Windows Firewall
De lijst met ingeschakelde firewallregels voor inkomend verkeer kan als volgt worden weergegeven
Get-NetFirewallRule | where {($_.enabled -eq $True) -and ($_.Direction -eq "Inbound")} |ft
U kunt alleen uitgaande blokkeringsregels weergeven:
Get-NetFirewallRule -Action Block -Enabled True -Direction Outbound
Als u de naam van het programma (uitvoerbaar bestand) in de regel wilt weergeven:
Get-NetFirewallRule -Action Block -Enabled True -Direction Outbound | %{$_.Name; $_ | Get-NetFirewallApplicationFilter}


Zoals u kunt zien, toont de cmdlet Get-NetFirewallRule geen netwerkpoorten en IP-adressen voor firewallregels. Gebruik het volgende PowerShell-script om de gedetailleerde informatie over toegestane inkomende (uitgaande) verbindingen op een gemakkelijkere manier weer te geven met de poortnummers:
Get-NetFirewallRule -Action Allow -Enabled True -Direction Inbound |
Format-Table -Property Name,
@{Name="Protocol";Expression={($PSItem | Get-NetFirewallPortFilter).Protocol}},
@{Name="LocalPort";Expression={($PSItem | Get-NetFirewallPortFilter).LocalPort}},
@{Name="RemotePort";Expression={($PSItem | Get-NetFirewallPortFilter).RemotePort}},
@{Name="RemoteAddress";Expression={($PSItem | Get-NetFirewallAddressFilter).RemoteAddress}},
Enabled,Profile,Direction,Action


PowerShell biedt een breed scala aan opties voor het beheren van Windows Firewall-regels vanaf de opdrachtprompt. U kunt automatisch PowerShell-scripts uitvoeren om poorten te openen/sluiten als bepaalde gebeurtenissen plaatsvinden. In het volgende artikel zullen we kijken naar eenvoudige op PowerShell en Windows Firewall gebaseerde oplossingen om RDP-brute-force-aanvallen op uw Windows VDS-host automatisch te blokkeren door het IP-adres van de aanvaller toe te voegen aan de firewallregel.



![Bekijk gratis "Tokyo Revengers" anime online [Ultimate Guide]](https://elsefix.com/tech/afton/wp-content/uploads/cache/2025/05/watch-tokyo-revengers-anime-online-for-free.jpg)









