Hoe Windows Server-firewall gebruiken

Voordat we direct verder gaan met het configureren van de firewall, een paar woorden over het standaard gedrag. In tegenstelling tot Ubuntu, waar de standaard UFW firewall in eerste instantie inactief is, is de firewall in Windows Server in eerste instantie ingeschakeld. De volgende logica is geïmplementeerd: blokkeer alle inkomende verbindingen, behalve degene die expliciet zijn toegestaan (RDP is bijvoorbeeld standaard toegestaan). Uitgaande verbindingen zijn toegestaan, behalve degene die expliciet verboden zijn.
Windows Firewall maakt het mogelijk om meerdere profielen met verschillende regels aan te maken en, indien nodig, snel tussen deze profielen te wisselen. Standaard worden er drie profielen aangemaakt:
- Domeinprofiel,
- Privé profiel,
- Publiek profiel,
Domeinprofiel is bedoeld voor computers en servers die binnen het AD-domein (Active Directory) werken. Private profile is geschikt voor systemen die zich in een beveiligd netwerksegment bevinden. Public-profiel is geschikt voor het werken in openbare netwerken met het maximale niveau van externe threads.
De systeembeheerder kan voor elk profiel een set regels vooraf selecteren die het meest effectief zijn voor elk van de genoemde scenario's. Dit helpt om de server te beschermen tegen aanvallen van buitenaf. Dit helpt om de server te beschermen tegen aanvallen door eenvoudigweg het firewallprofiel te wijzigen. Houd er rekening mee dat de set regels voor elk profiel anders kan zijn, afhankelijk van de huidige rol van de server.
Er zijn verschillende manieren om firewallregels te beheren. De eenvoudigste manier om dit te doen is door gebruik te maken van de WF (Windows Firewall met Geavanceerde Beveiliging) console. Beheer is ook mogelijk via GPMC (Group Policy Management Console) of via Powershell commando's. Laten we beginnen met de laatste methode.
Regels beheren via Powershell
Veel gidsen over het instellen van een firewall met behulp van PowerShell bevatten de opdrachten netsh firewall en netsh advfirewall firewall. Beide commando's hebben al lange tijd de status deprecated, dus we raden aan om een modernere methode te gebruiken. Powershell heeft vanaf versie 5.1 een ingebouwde NetSecurity-module die veel cmdlets (eigen Powershell-opdrachten) bevat. Je kunt ze opnoemen met het volgende commando:
Get-Command -Module NetSecurity
Elk van de genoemde cmdlets helpt je om alle parameters van de firewall flexibel te beheren. Laten we eerst eens kijken welk commando je kunt gebruiken om de firewall in of uit te schakelen:
Set-NetFirewallProfile -All -Enabled True
In dit commando betekent het -All argument dat alle beschikbare profielen worden toegepast. In plaats daarvan kun je een specifiek profiel instellen, bijvoorbeeld -Profile Private. Om de firewall volledig uit te schakelen, gebruik je hetzelfde commando; je verandert alleen de waarde -Enabled in False:
Set-NetFirewallProfile -All -Enabled False
Wanneer de firewall is ingeschakeld, zijn alle regels van toepassing op alle netwerkinterfaces in het systeem. In dit geval is het mogelijk om een profiel voor een specifieke interface uit te schakelen met het cmdlet Set-NetFirewallProfile:
Set-NetFirewallProfile -Name Public -DisabledInterfaceAliases "Ethernet0"
Hetzelfde cmdlet helpt je bij het wijzigen van andere profielinstellingen, in het bijzonder het inschakelen van logging en het configureren van de parameters, zoals de grootte en het pad naar het logbestand.
Cmdlets met NetFirewallRule in hun naam zijn verantwoordelijk voor het beheer van firewallregels. In dit geval werkt een apart cmdlet voor elke actie. Om bijvoorbeeld een nieuwe regel aan te maken, moet je het New-NetFirewallRule commando gebruiken, en om een regel te verwijderen, gebruik je Remove-NetFirewallRule. Het is gemakkelijk te onthouden en over het algemeen erg logisch.
Laten we aannemen dat je de mogelijkheid wilt beperken om RDP te verbinden met een server vanaf één specifiek IP-adres (bijvoorbeeld 10.0.0.2):
New-NetFirewallRule -DisplayName "AllowRDP" -RemoteAddress 10.0.0.2 -Direction Inbound -Protocol TCP -LocalPort 3389 -Action Allow
Maar wat als je verbindingen naar de server niet vanaf een specifiek adres moet toestaan, maar vanaf een reeks adressen? In dit geval moet je als volgt te werk gaan: definieer eerst een variabele en wijs deze de waarden van het adresbereik toe, en specificeer vervolgens een variabele in plaats van een specifiek adres. Laten we aan de variabele $allowedips het bereik 10.0.0.2-10.0.0.254 toewijzen:
$allowedips = @("10.0.0.2-10.0.0.254")
Nu kun je de regel toepassen:
New-NetFirewallRule -DisplayName "AllowRDP" -RemoteAddress $allowedips -Direction Inbound -Protocol TCP -LocalPort 3389 -Action Allow
Laat ons voorstellen dat je geen adresbereik hebt, maar een speciaal register van adressen die moeten worden voorzien van een ongehinderde RDP-verbinding met de server. Om te voorkomen dat je regels één voor één moet maken, kun je ze in een tekstbestand laden (één adres per regel) en dan alle waarden in een variabele stoppen. En ook, zoals in de vorige regel, specificeer je deze variabele als de waarde -RemoteAddress. Bijvoorbeeld, we hebben de lijst met adressen gedownload naar het bestand C:\Users\Administrator\Downloads\AllowedIPs.txt
Lees het bestand en zet de inhoud in de variabele $allowedlist:
$allowedlist = Get-Content C:\Users\Administrator\Downloads\AllowedIPs.txt
Maak een regel:
New-NetFirewallRule -DisplayName "AllowRDP" -RemoteAddress $allowedlist -Direction Inbound -Protocol TCP -LocalPort 3389 -Action Allow
Dit is een erg handige manier om de Windows firewall te automatiseren met andere systemen. Je kunt bijvoorbeeld automatisch een lijst met IP-adressen van legitieme gebruikers verzamelen en alleen verbindingen met bedrijfssystemen vanaf deze adressen toestaan. Dergelijke oplossingen maken het leven veel eenvoudiger en er wordt aanzienlijk minder tijd besteed aan het beheren van machtigingen.
Powershell heeft krachtige tools voor het eenvoudig weergeven van gegevens. Als je wilt zien welke firewallregels momenteel zijn ingeschakeld voor inkomende verbindingen, kun je dit commando gebruiken:
Get-NetFirewallRule -Action Allow -Enabled True -Direction Inbound |
Format-Table -Eigendom Naam,
@{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}},
Ingeschakeld,Profiel,Richting,Actie
Regels beheren via WF
De tweede manier om de firewall te configureren is de standaard Windows Defender Firewall met geavanceerde beveiligingsconsole. Om deze te gebruiken, druk je op de toetsencombinatie Win + R en voer je het commando wf.msc
in.Het consolevenster dat wordt geopend kan worden verdeeld in drie secties. In de linkersectie kan de systeembeheerder kiezen of hij de regels voor uitgaand of inkomend verkeer, de beveiligingsregels voor verbindingen en de bewakingsinstellingen wil bewerken. De middelste sectie toont de regels of instellingen zelf. De rechter sectie toont de beschikbare acties afhankelijk van welke regels of instellingen werden geselecteerd.

Standaard worden de globale firewallinstellingen weergegeven, in het bijzonder de actieve profielen en beknopte informatie over de huidige logica van de firewall. Als je een set instellingen één keer maakt, kun je deze eenvoudig klonen naar een andere server of zelfs toepassen op veel gecontroleerde servers tegelijk, bijvoorbeeld binnen een domein. Hiervoor kun je de opties voor het importeren en exporteren van instellingen gebruiken.
Als je op Beleid exporteren klikt, downloadt het systeem alle regels in een speciaal bestand met de extensie WFW. Dit bestand kan op een andere server in dezelfde console worden geïmporteerd. Ook kunnen de regels uit dit bestand worden samengevoegd met de huidige set regels als onderdeel van de instellingen voor Group Policy, via de bijbehorende systeemconsole. Maar laten we eerst eens kijken naar de interface en een enkele regel maken voor inkomend verkeer.
Rechtsklik op Inkomende regels en selecteer Nieuwe regel:

Volgende zijn er 4 mogelijke opties om de regel te laten werken. De Windows firewall kan worden geconfigureerd om met een specifieke toepassing te werken. Dit is erg handig wanneer een applicatie willekeurige poorten kan openen binnen een bepaald bereik. Dus in plaats van het verkeer te beperken tot poortbereiken, kun je een specifieke applicatie kiezen en de firewall zorgt ervoor dat de toegepaste regels worden gevolgd.
De tweede optie is geschikt voor het toestaan of weigeren van toegang op een specifieke poort of poortbereik. Dit is de eenvoudigste optie, maar er wordt geen rekening gehouden met welke toepassing de opgegeven poort zal gebruiken. De derde optie (Voorgedefinieerd) zal een vervolgkeuzelijst ontgrendelen met typische sets instellingen. Dit kan veel tijd besparen bij het uitvoeren van typische taken.
En tot slot geeft de laatste optie (Custom) de beheerder de mogelijkheid om een willekeurige regel te maken met elke combinatie van beschikbare parameters. Je moet echter heel voorzichtig zijn dat je niet per ongeluk je externe toegang tot de server blokkeert. Als voorbeeld laten we zien hoe je een regel maakt die verbindingen toestaat op poort 7777, waarop een vooraf gelanceerde service draait. Selecteer het item Port:

In het volgende dialoogvenster kun je selecteren welk protocol de regel zal gebruiken en ook de nummers van zowel individuele poorten als bereiken specificeren:

Na dit punt moet je het systeem vertellen wat het moet doen met verbindingen die naar de eerder gespecificeerde poorten komen. Je kunt de verbinding toestaan of weigeren. Apart is het mogelijk om de verbinding toe te staan als deze wordt beschermd door IPsec:

Daarna moet je selecteren aan welk beveiligingsprofiel de regel die je maakt moet worden toegevoegd. Je kunt een of meerdere profielen selecteren:

Er resteert nog een laatste stap waarin je een specifieke naam en beschrijving voor de nieuwe regel kunt instellen, waarna je op de knop Voltooien moet klikken:

De aangemaakte regel kan in het rechtergedeelte worden in- of uitgeschakeld met de elementen Regel inschakelen en Regel uitschakelen:

Regels beheren via GPMC
Deze methode werkt goed als dezelfde firewallinstellingen over meerdere servers moeten worden verdeeld. In dit geval moet je er natuurlijk rekening mee houden dat de server als domeincontroller moet fungeren. Om te beginnen moet je de Group Policy Management Console openen door op de toetscombinatie Win + R te drukken en het commando gpmc.msc in te voeren. Open een domeinstructuur en klik met de rechtermuisknop op Default Domain Policy > Edit

In het gedeelte aan de linkerkant selecteert u Computerconfiguratie > Beleid > Administratieve sjablonen > Netwerk > Netwerkverbindingen > Windows Defender > Firewall > Domeinprofiel

Stel het beleid Windows Defender Firewall: Bescherm alle netwerkverbindingen op de status Geschikt:

Ga naar Computerconfiguratie > Windows-instellingen > Beveiligingsinstellingen en open de eigenschappen van Windows Firewall met geavanceerde beveiliging:

Voor elk van de drie standaardprofieltabbladen (Domein, Privé en Openbaar) wijzigt u de Firewall-status in Aan (aanbevolen). Daar kunt u de logica van de profielen wijzigen in de gewenste:

In hetzelfde dialoogvenster kun je de logboekoptie inschakelen, die standaard is uitgeschakeld. Hierdoor kun je bijhouden welke pakketten zijn afgewezen door de firewall of bijvoorbeeld welke verbindingen zijn toegestaan door de firewallregels en met succes tot stand zijn gebracht. Tenzij anders aangegeven, wordt het logbestand hier opgeslagen:
%SYSTEMROOT%System32\logfiles\firewall\pfirewall.log

Als je de lijst met beschikbare opties in de Windows Defender Firewall met geavanceerde beveiliging hebt uitgebreid, zie je de al bekende structuur van de hierboven beschreven console. Hier kunt u regels voor inkomend en uitgaand verkeer beheren en regels importeren en exporteren in WFW-indeling:

Zie ook:
Bijgewerkt: 28.03.2025
Gepubliceerd: 22.07.2024