۱. وضعیت پروفایلها
Get-NetFirewallProfile | Select-Object Name, Enabled, DefaultInboundAction, DefaultOutboundAction
Get-NetConnectionProfileسرور عضو دامین باید در پروفایل DomainAuthenticated باشد. اگر در Public است، معمولاً DNS یا ارتباط با DC مشکل دارد.
۲. قانون محدود به یک شبکه
بهجای باز کردن پورت برای همه، منبع را مشخص کنید:
New-NetFirewallRule -DisplayName "SQL Server from App Servers" -Direction Inbound -Protocol TCP -LocalPort 1433 -RemoteAddress 192.168.10.40,192.168.10.41 -Action Allow -Profile Domain۳. محدود کردن RDP به شبکهی مدیریت
Get-NetFirewallRule -DisplayGroup "Remote Desktop" | Set-NetFirewallRule -RemoteAddress 192.168.50.0/24۴. لاگ بستههای رد شده
Set-NetFirewallProfile -Profile Domain,Public,Private -LogBlocked True -LogMaxSizeKilobytes 16384 -LogFileName "%systemroot%\system32\LogFiles\Firewall\pfirewall.log"
Get-Content C:\Windows\System32\LogFiles\Firewall\pfirewall.log -Tail 20۵. فهرست قوانین فعال ورودی
Get-NetFirewallRule -Direction Inbound -Enabled True -Action Allow |
Get-NetFirewallPortFilter | Where-Object LocalPort -ne 'Any' |
Select-Object @{n='Rule';e={(Get-NetFirewallRule -AssociatedNetFirewallPortFilter $_).DisplayName}}, Protocol, LocalPort۶. پشتیبان و انتقال قوانین
netsh advfirewall export "C:\Temp\fw-FS01.wfw"
netsh advfirewall import "C:\Temp\fw-FS01.wfw"در محیط دامین، بهتر است قوانین مشترک را با Group Policy توزیع کنید تا روی همهی سرورها یکسان باشند.