درگاه RDP که به کل اینترنت پاسخ میدهد، چند دقیقه پس از روشن شدن سرور شروع به دریافت حدس رمز میکند. رمز طولانی دوام میآورد، اما هر حدس باز هم یک تلاش ورود است، گزارش رویدادها را پر میکند و به ضعف بعدی RDP فرصت حمله میدهد. پنج گام این مشکل را حل میکند. هر گام یک فرمان PowerShell است و همه را پیش از انتشار روی ایمیج Windows Server 2022 خودمان اجرا کردیم.
از راه RDP PowerShell را بهعنوان مدیر باز کنید (چگونه وصل شویم) و به ترتیب پیش بروید. گام 4 را آخر انجام دهید: فقط همین گام ممکن است شما را پشت در بگذارد.
1. رمز طولانی و یکتا
اگر هنوز رمز نخستین ورود را به کار میبرید، در داشبورد آن را به رمزی طولانی (20 نویسه یا بیشتر، از مدیر رمز) تغییر دهید. همهٔ گامهای زیر فرض میکنند که خود رمز قابل حدس نیست.
2. احراز هویت در سطح شبکه (NLA) را روشن کنید
با NLA، ویندوز اعتبارنامههای شما را پیش از ساختن نشست و کشیدن صفحهٔ ورود بررسی میکند. اتصالهای احراز نشده هرگز به کد میزکار نمیرسند، و مشهورترین ضعفهای RDP درست همانجا بودند. وضعیت کنونی را ببینید:
(Get-CimInstance -Namespace root/cimv2/TerminalServices -ClassName Win32_TSGeneralSetting -Filter "TerminalName='RDP-tcp'").UserAuthenticationRequired
1 یعنی NLA روشن است. اگر 0 دیدید، روشنش کنید:
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp' -Name UserAuthentication -Value 1
کلاینتهای کنونی Remote Desktop برای ویندوز، macOS و لینوکس (xfreerdp) از NLA پشتیبانی میکنند. اتصال بعدی پیش از نمایش صفحهٔ دور، رمز را میپرسد.
3. پس از تلاشهای ناموفق، حساب را قفل کنید
نصب پیشفرض Windows Server 2022 هر چقدر هم رمز نادرست برسد، هیچ حسابی را قفل نمیکند. روی سرورهایی که از 24 اکتبر 2026 با ایمیج ما نصب شدهاند، حد زیر از قبل تنظیم شده است؛ روی سرورهای قدیمیتر خودتان آن را بگذارید:
net accounts /lockoutthreshold:5 /lockoutwindow:15 /lockoutduration:15
net accounts
پنج رمز نادرست در 15 دقیقه، حساب را 15 دقیقه قفل میکند. آزمودیم: پس از پنج تلاش ناموفق، هم کاربر عادی و هم Administrator داخلی قفل شدند. قفل خودبهخود باز میشود؛ پس صبحی پر از غلط تایپی فقط یک ربع از شما میگیرد، نه سرور را.
4. RDP را فقط از نشانی IP خودتان مجاز کنید
این گام تقریباً همهٔ نویز را از بین میبرد. قانونهای دیوارهٔ آتش ویندوز فهرستی از نشانیهای دور میپذیرند؛ نشانی خودتان را بگذارید. IP عمومی کنونیتان را در هر صفحهٔ «IP من چیست» ببینید، سپس:
$myIp = '203.0.113.10' # your public IP; several: '203.0.113.10','198.51.100.0/24'
Get-NetFirewallPortFilter | Where-Object LocalPort -eq 3389 | Get-NetFirewallRule | Set-NetFirewallRule -RemoteAddress $myIp
این فرمان همهٔ قانونهای ورودی درگاه 3389 را پیدا میکند، نه فقط گروه داخلی «Remote Desktop» را. این نکته مهم است: سرورهایی که پیش از 24 اکتبر 2026 با ایمیج ما نصب شدهاند قانونی اضافه به نام «EQVPS RDP 3389» دارند که درگاه را برای همه باز میکند، و نرمافزارهای دیگر هم میتوانند قانونهای خودشان را اضافه کنند. اگر فقط گروه داخلی را محدود کنید، چنین قانونی درگاه را باز نگه میدارد. ما خودمان هنگام آزمون دقیقاً همین اشتباه را کردیم. نتیجه را بررسی کنید:
Get-NetFirewallPortFilter | Where-Object LocalPort -eq 3389 | Get-NetFirewallRule |
Select-Object DisplayName, @{n='Remote';e={($_ | Get-NetFirewallAddressFilter).RemoteAddress}}
در هر سطر باید نشانی شما دیده شود. در آزمون ما اتصال از هر نشانی دیگری بیپاسخ ماند و نشانی مجاز وارد شد.
در پلن NAT هم همینطور کار میکند. هدایت از درگاه شخصی شما نشانی واقعیتان را نگه میدارد، پس IP عمومی خودتان را مجاز کنید.
اگر IP شما عوض شود، RDP به خود شما هم پاسخ نمیدهد. کنسول مرورگر را از داشبورد باز کنید (از RDP و دیوارهٔ آتش نمیگذرد)، وارد شوید و فرمان را با نشانی تازه اجرا کنید. برای برداشتن کامل فهرست، از -RemoteAddress Any استفاده کنید.
5. ببینید چه کسی برای ورود تلاش میکند
ورودهای ناموفق رویداد 4625 در گزارش Security هستند. این فرمان نام حساب و نشانی هر تلاش را نشان میدهد:
Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4625} -MaxEvents 20 |
Select-Object TimeCreated, @{n='User';e={$_.Properties[5].Value}}, @{n='SourceIP';e={$_.Properties[19].Value}}
پیش از فهرست IPهای مجاز، انتظار جریانی پیوسته از Administrator، admin و user از نشانیهای ناشناس را داشته باشید. پس از آن، فهرست باید آرام شود.
کارهایی که ارزش وقت ندارند
- عوض کردن درگاه RDP. در پلن با IPv4 اختصاصی فقط نویز گزارش را کم میکند؛ اسکنرها درگاه تازه را زود پیدا میکنند. در پلن NAT دسترسی شما را خراب میکند، چون هدایت به 3389 میرود.
- خاموش کردن دیوارهٔ آتش «تا کار کند». اگر پس از تغییر قانون RDP پاسخ نداد، قانون را از کنسول مرورگر درست کنید.
بهروز نگه دارید
جدیترین رخدادهای RDP از ضعفهای پروتکل آمدهاند، نه از رمزها. Windows Server 2022 تا 14 اکتبر 2031 بهروزرسانی امنیتی میگیرد؛ پس Windows Update را روشن نگه دارید و هر وقت خواست راهاندازی دوباره کنید.
ایمیج، Windows Server 2022 با مجوز خود شماست (BYOL چگونه کار میکند). پلنها از Windows-Small شروع میشوند: 4 vCPU، 4 GB حافظه، 50 GB، با NAT ماهانه $11. با IPv4 اختصاصی، Windows Small-IP ماهانه $28 است. هر چهار پلن در صفحهٔ Windows VPS هستند. برای SSH در کنار RDP، OpenSSH روی Windows Server را ببینید.
نظرات
هنوز نظری نیست. اولین نفر باشید.