Ez a cikk a beágyazott Windows tűzfal beállításainak és szabályainak a PowerShell parancssorból történő kezelésének alapjait tartalmazza. Megvizsgáljuk, hogyan lehet engedélyezni / letiltani a különféle profilok tűzfalait, létrehozni és törölni a tűzfalszabályokat, és megvizsgáljuk egy kis szkriptet, amely lehetővé teszi kényelmes tábla létrehozását az aktív tűzfalszabályok jelenlegi készletével.
Tartalom:
- A Windows tűzfal hálózati profiljainak kezelése a PowerShell segítségével
- Hozzon létre, szerkeszthet és törölhet Windows tűzfalszabályokat a PowerShellből
- A Windows tűzfalszabályok felsorolása a PowerShell segítségével
A Windows tűzfal beállításait a grafikus konzol Vezérlőpultja -> Rendszer és biztonság -> segítségével kezelheti Windows Defender tűzfal. A Windows 8.1-től (Windows Server 2012R2) kezdve azonban egy beépített PowerShell modult adtak a rendszerhez a beépített tűzfal vezérléséhez. NetSecurity.
Korábban a parancs a Windows tűzfal szabályainak és beállításainak kezelésére szolgáltnetsh advfirewall tűzfal
. A Windows 10 NetSecurity moduljában 85 parancs érhető el. Felsorolhatja őket:
Get-Command -modul NetSecurity
A Windows tűzfal hálózati profiljainak kezelése a PowerShell segítségével
A Windows tűzfalban háromféle hálózati profil létezik:
- Tartomány - az Active Directory tartományba tartozó számítógépekre vonatkozik;
- Magán (magán) - otthoni vagy munkahelyi hálózatok;
- Nyilvános - nyilvános hálózatok.
Az egyes profilok különbözhetnek a használt tűzfalszabályok között. Alapértelmezés szerint a számítógép összes hálózati felületét tűzfal védi, és mindhárom típusú profil alkalmazandó rájuk..
A tartomány, a nyilvános és a magánhálózat mindhárom hálózati profiljának engedélyezéséhez használja a következő parancsot:
Set-NetFirewallProfile -All -Enabled True
Vagy adjon meg egy adott profilt az Összes helyett:
Set-NetFirewallProfile -Profile Public - Ennabled True
A tűzfalak letiltásához mindhárom hálózati profilhoz használja a következő parancsot:
Set-NetFirewallProfile -All -Enabled False
A parancsmag használata Set-NetFirewallProfile
megváltoztathatja a profilbeállításokat (alapértelmezett művelet, naplózás, a naplófájl elérési útja és mérete, riasztási beállítások stb.).
Mint valószínűleg tudja, alapértelmezés szerint a Windows tűzfala minden profil modern operációs rendszerében található. A profilbeállításokban minden kimenő kapcsolat megengedett és a bejövő kapcsolatok blokkolva vannak (kivéve az engedélyezett).
Változtassa meg a nyilvános profil alapértelmezett műveletét - blokkolja az összes bejövő kapcsolatot.
Set-NetFirewallProfile -Name nyilvános -DefaultInboundAction Block
Az aktuális profilbeállítások az alábbiak szerint jeleníthetők meg:
Get-NetFirewallProfile -Name Nyilvános
Ha a Windows tűzfal beállításait csoportházirend-objektummal kezeli, akkor az aktuális eredményül kapott profilbeállításokat az alábbiak szerint jelenítheti meg:
Get-NetFirewallProfile -policystore aktív áruház
Ellenőrizze, hogy az összes tűzfal-beállítás vonatkozik-e a számítógép minden hálózati felületére.
Get-NetFirewallProfile -Name Nyilvános | fl DisabledInterfaceAliases
Ha az összes interfész védett, akkor a parancsnak vissza kell térnie:
DisabledInterfaceAliases: NotConfigured
Letilthat egy interfész adott profilját (a felületneveket a Get-NetIPInterface parancsmag segítségével felsorolhatja).
Set-NetFirewallProfile -Name Public --DisabledInterfaceAliases "Ethernet0"
Mint láthatja, a nyilvános profil nem vonatkozik az Ethernet0-ra:
DisabledInterfaceAliases: Ethernet0
Az egyes profilok szintjén konfigurálhatja a hálózati kapcsolatok naplózási beállításait. Alapértelmezés szerint a Windows tűzfal naplóit a% systemroot% \ system32 \ LogFiles \ tűzfal könyvtárban tárolja, a fájl mérete 4 MB. Megváltoztathatja az összeköttetés naplózásának engedélyezését és a maximális fájlméret növelését:
Set-NetFireWallProfile -Profile Domain -LogBlocked True -LogMaxSize 20000 -LogFileName '% systemroot% \ system32 \ LogFiles \ Firewall \ pfirewall.log'
Hozzon létre, szerkeszthet és törölhet Windows tűzfalszabályokat a PowerShellből
A tűzfalszabályok kezelésére 9 cmdlet van:
- Új-NetFirewallRule
- Copy-NetFirewallRule
- Disable-NetFirewallRule
- Engedélyezze-NetFirewallRule
- Get-NetFirewallRule
- Remove-NetFirewallRule
- Rename-NetFirewallRule
- Set-NetFirewallRule
- Show-NetFirewallRule
Nézzünk néhány egyszerű példát a portok megnyitásához a Windows tűzfalon.
Például, ha engedélyezni kívánja a bejövő TCP-kapcsolatokat a Tartomány és a Privát profilok 80. és 443. portjához, használja ezt a parancsot:
New-NetFirewallRule -DisplayName 'WEB-Bejövő' -Profile @ ('Domain', 'Private') - Irányított bejövő -Action Engedélyezés -Protocol TCP -LocalPort @ ('80', '443')
Engedélyezheti vagy blokkolhatja egy adott program forgalmát. Például blokkolni szeretné a FireFox kimenő kapcsolatait:
New-NetFirewallRule - „C: \ Program Files (x86) \ Mozilla Firefox \ firefox.exe” program - Műveleti blokk - Profil domain, magán -DisplayName „Blokk Firefox” - Leírás „Blokk Firefox” - Irány Kimenő
Engedélyezze a bejövő RDP-kapcsolatot a 3389-es porton, csak egy IP-címmel:
New-NetFirewallRule -DisplayName "AllowRDP" -RemoteAddress 192.168.1.55 - Irányított bejövő -Protokoll TCP -LocalPort 3389 -Művezés engedélyezése
A megadott alhálózat címeinek ping engedélyezéséhez használja a következő parancsokat:
$ ips = @ ("192.168.1.50-192.168.1.60", "192.165.2.22-192.168.2.200", “10.10.0.0/16”)
New-NetFirewallRule -DisplayName "Bejövő ICMPv4 engedélyezése" - Irányított bejövő -Protokoll ICMPv4 -IcmpType 8 -RemoteAddress $ ips -Action Engedélyezés
New-NetFirewallRule -DisplayName "Bejövő ICMPv6 engedélyezése" - Irányított bejövő -Protokoll ICMPv6 -IcmpType 8 -RemoteAddress $ ips -Action
Meglévő tűzfalszabály szerkesztéséhez használja a Set-NetFirewallRule parancsmagot. Például engedélyeznie kell a bejövő kapcsolatok megadott IP-címét egy korábban létrehozott szabály számára:
Get-NetFirewallrule -DisplayName 'WEB-Inbound' | Get-NetFirewallAddressFilter | Set-NetFirewallAddressFilter -RemoteAddress 192.168.1.20
Ha több IP-címet kell hozzáadnia a tűzfalszabályhoz, akkor használja a következő szkriptet:
$ ips = @ ("192.168.1.50", "192.165.2.22", “192.168.1.20”)
Get-NetFirewallrule -DisplayName 'WEB-Inbound' | Set-NetFirewallRule -RemoteAddress $ ips
Nyomtassa ki az összes IP-címet, amely a tűzfalszabályban található:
Get-NetFirewallrule -DisplayName 'A bejövő ICMPv4 engedélyezése' | Get-NetFirewallAddressFilter
A tűzfalszabályokat engedélyezheti / letilthatja a Disable-NetFirewallRule és az Enable-NetFirewallRule parancsmagokkal.
Disable-NetFirewallRule -DisplayName 'WEB-Inbound'
Az ICMP (ping) engedélyezéséhez futtassa a következő parancsot:
Enable-NetFirewallRule -Name FPS-ICMP4-ERQ-In
A tűzfalszabály eltávolításához használja az Remove-NetFirewallRule parancsmagot..
A Windows tűzfalszabályok felsorolása a PowerShell segítségével
A bejövő forgalom aktív szabályainak listája az alábbiak szerint jeleníthető meg:
Get-NetFirewallRule | ahol ($ _. engedélyezett -eq $ True) -és ($ _. Irány -eq "Bejövő") | ft
Ha például fel kell sorolnunk a kimenő szabályokat:
Get-NetFirewallRule -Action Block -Enabled True -Direction Outbound
Ha a program nevét szeretné megjeleníteni a szabályban:
Get-NetFirewallRule - Akcióblokk - Engedélyezve Igaz -Kirányú kimenő | % $ _. Név; $ _ | Get-NetFirewallApplicationFilter
Mint láthatja, a Get-NetFirewallRule parancsmag nem sorolja fel a portokat és a tűzfalszabályok IP-címeit. Az engedélyezett bejövő (kimenő) kapcsolatokkal kapcsolatos információk kényelmesebb megjelenítéséhez a megjelenített portszámokkal, használja a következő szkriptet:
Get-NetFirewallRule - Akció engedélyezése - Engedélyezve True - Irányba bejövő |
Formátum-táblázat - Tulajdonság neve,
@ Név = 'Protokoll'; Kifejezés = ($ PSItem | Get-NetFirewallPortFilter) .Protocol,
@ Név = 'LocalPort'; Kifejezés = ($ PSItem | Get-NetFirewallPortFilter) .LocalPort,
@ Név = 'RemotePort'; Kifejezés = ($ PSItem | Get-NetFirewallPortFilter) .RemotePort,
@ Név = 'RemoteAddress'; Kifejezés = ($ PSItem | Get-NetFirewallAddressFilter) .RemoteAddress,
Engedélyezve, Profil, Irány, Művelet
A PowerShell széles körű parancssori kezelést biztosít a Windows tűzfalszabályokhoz. Automatikusan futtathatja a PowerShell szkripteket a portok megnyitásához / bezárásához bizonyos események bekövetkezésekor. A következő cikkben megvizsgálunk egy egyszerű rendszert, amely a PowerShell és a Windows tűzfal alapján automatikusan blokkolja azokat az IP-címeket, amelyekről a távoli jelszó kitalálása az RDP-n keresztül történik egy Windows VDS kiszolgálón.