Windows Server با فایروال روشن عرضه میشود و این پیشفرض درستی است: هر چیزی که از بیرون بخواهد وصل شود رد میشود، مگر قانونی اجازهٔ عبورش را بدهد. وقتی چیزی از خودتان اجرا میکنید، مثل یک برنامهٔ وب روی پورت 8080 یا سرویسی که فقط دفترتان باید به آن برسد، باید این را تغییر دهید. این راهنما همهچیز را با PowerShell روی Windows Server 2022 انجام میدهد. هر قانون را روی ایمیج خودمان امتحان کردیم و از ماشین دوم آزمودیم، پس میدانید که واقعًا پورت را باز یا بسته میکند.
PowerShell را با دسترسی مدیر باز کنید. اگر هنوز نکردهاید، اول RDP را ایمن کنید: آن راهنما دربارهٔ محدود کردن خود Remote Desktop است.
1. ببینید چه چیزی روشن است
Get-NetFirewallProfile | Format-Table Name, Enabled, DefaultInboundAction, DefaultOutboundAction
Get-NetConnectionProfile | Format-Table InterfaceAlias, NetworkCategory
روی سرور تازهٔ ما هر سه پروفایل (Domain، Private، Public) روشن بودند و کارت شبکه در Public بود. DefaultInboundAction مقدار NotConfigured نشان میدهد، یعنی رفتار پیشفرض Windows: ورودی مسدود، خروجی مجاز. پس قوانین مهم، قوانین پروفایل Public هستند.
برای دیدن آنچه اجازهٔ ورود دارد:
Get-NetFirewallRule -Direction Inbound -Enabled True -Action Allow |
Group-Object DisplayGroup | Sort-Object Count -Descending |
Select-Object Count, Name -First 8
54 قانون ورودی فعال شمردیم. بیشترشان مال خود Windows هستند (Core Networking، Cast to Device، mDNS)، بهاضافهٔ سه قانون Remote Desktop. ping میان آنها نبود.
2. یک پورت باز کنید
فرض کنید برنامهتان روی پورت TCP 8080 گوش میدهد:
New-NetFirewallRule -DisplayName 'Web app 8080' -Direction Inbound `
-Protocol TCP -LocalPort 8080 -Action Allow
قانون همان لحظهای که ساخته شود کار میکند. از ماشین دوم ما پورت 8080 از مسدود به باز تغییر کرد، در حالی که پورت 8081، که برنامهای روی آن هم گوش میداد، مسدود ماند. قانونی که -Profile نداشته باشد روی همهٔ پروفایلها، از جمله Public، اعمال میشود.
برای یک بازه یا فهرست از -LocalPort 8000-8010 یا -LocalPort 80,443 استفاده کنید. برای UDP مقدار -Protocol را عوض کنید.
3. فقط به نشانیهای خاص اجازه دهید
بیشتر سرویسها لازم نیست کل اینترنت را بپذیرند. قانون را به نشانیهایی که باید وصل شوند محدود کنید:
Set-NetFirewallRule -DisplayName 'Web app 8080' -RemoteAddress 203.0.113.10
Set-NetFirewallRule -DisplayName 'Web app 8080' -RemoteAddress 203.0.113.10, 198.51.100.0/24
هر دو حالت را آزمودیم. با یک نشانی غریبه در -RemoteAddress، ماشین آزمایشی ما دیگر نتوانست وصل شود. وقتی نشانی خودش را افزودیم، توانست. همین پارامتر را روی قوانین Remote Desktop بگذارید تا RDP فقط برای دفترتان بماند. اگر IP خانهتان زیاد عوض میشود، پیش از این کار برای RDP دوباره فکر کنید.
4. ping را روشن کنید
Windows در حالت اولیه به ping پاسخ نمیدهد. قانون وجود دارد اما خاموش است:
Enable-NetFirewallRule -DisplayName 'File and Printer Sharing (Echo Request - ICMPv4-In)'
بعد از این، سرور ما بیدرنگ به ping پاسخ داد. ابزارهای پایشی که در دسترس بودن را با ping میسنجند به این نیاز دارند. برای خاموش کردن دوباره، Disable-NetFirewallRule را با همان نام به کار ببرید.
5. آنچه مسدود میشود را ثبت کنید
وقتی چیزی وصل نمیشود و نمیدانید چرا، از فایروال بخواهید آنچه را رد میکند یادداشت کند:
Set-NetFirewallProfile -Profile Public -LogBlocked True -LogMaxSizeKilobytes 4096
Get-Content C:\Windows\System32\LogFiles\Firewall\pfirewall.log -Tail 20
هر تلاش مسدودشده به سطری مثل این تبدیل میشود:
2026-10-25 02:07:25 DROP TCP 198.51.100.7 203.0.113.25 43386 445 60 S 2112839481 0 64240 - - - RECEIVE 4
اینطور خوانده میشود: تاریخ و زمان، اقدام، پروتکل، نشانی مبدأ، نشانی سرور شما، پورت مبدأ، پورت مقصد. صبور باشید: Windows لاگ را دستهای مینویسد و رکوردهای آزمایشی ما حدود یک دقیقه پس از تلاشها ظاهر شدند. سقف 4 MB نمیگذارد فایل بیپایان بزرگ شود.
6. پشتیبان بگیرید و مرتب کنید
پیش از یک تغییر بزرگ، همهٔ قوانین را در یک فایل ذخیره کنید:
netsh advfirewall export C:\fw-backup.wfw
خروجی ما 148 KB بود. netsh advfirewall import C:\fw-backup.wfw دقیقًا همان مجموعه را برمیگرداند و جایگزین آنچه هست میکند. قانونی را که دیگر لازم ندارید با نامش حذف کنید:
Remove-NetFirewallRule -DisplayName 'Web app 8080'
اگر خودتان را بیرون گذاشتید
اگر قانونی Remote Desktop خودتان را قطع کرد، کنسول پنل خود را باز کنید. از راه RDP نمیگذرد، پس میتوانید وارد شوید و با Remove-NetFirewallRule یا Set-NetFirewallRule آن را برگردانید.
NAT یا IP اختصاصی
در پلنهای NAT اینترنت از یک پورت اختصاصی به سرور شما میرسد که به Remote Desktop میرود. پورتهای دیگر از بیرون دستنیافتنی میمانند، هر چه در فایروال Windows اجازه دهید. برای ارائهٔ سایت یا پذیرش اتصال روی پورتهای دیگر به IPv4 اختصاصی نیاز دارید: Windows Small-IP (4 vCPU، 4 GB، 50 GB، ماهی $28) یکی با همهٔ پورتهای باز به شما میدهد و آنوقت تصمیم با فایروال Windows است. Windows-Small با NAT ماهی $11 است. هر چهار پلن Windows در صفحهٔ Windows VPS هستند و پرداخت با USDT، USDC یا ETH روی شبکههای Base، Ethereum یا Polygon انجام میشود.
نظرات
هنوز نظری نیست. اولین نفر باشید.