من اغلب این عقیده را خوانده ام که باز نگه داشتن پورت RDP (پروتکل دسکتاپ از راه دور) برای اینترنت بسیار ناامن است و نباید انجام شود. اما شما باید از طریق VPN یا فقط از آدرس های IP "سفید" خاصی به RDP دسترسی داشته باشید.
من چندین سرور ویندوز را برای شرکتهای کوچک مدیریت میکنم که در آنها وظیفه فراهم کردن دسترسی از راه دور به Windows Server برای حسابداران را بر عهده دارم. این روند مدرن است - کار از خانه. خیلی سریع متوجه شدم که عذاب حسابداران VPN یک کار ناسپاس است و جمع آوری تمام IP ها برای لیست سفید کار نخواهد کرد، زیرا آدرس های IP افراد پویا هستند.
بنابراین، من ساده ترین مسیر را انتخاب کردم - پورت RDP را به خارج منتقل کردم. برای دسترسی، حسابداران اکنون باید RDP را اجرا کرده و نام میزبان (شامل پورت)، نام کاربری و رمز عبور را وارد کنند.
در این مقاله تجربیات (مثبت و نه چندان مثبت) و توصیه های خود را به اشتراک می گذارم.
خطرات
با باز کردن پورت RDP چه چیزی را به خطر می اندازید؟
1) دسترسی غیرمجاز به داده های حساس
اگر شخصی رمز عبور RDP را حدس بزند، میتواند دادههایی را که میخواهید خصوصی نگه دارید به دست آورد: وضعیت حساب، موجودی، دادههای مشتری، ...
2) از دست دادن اطلاعات
به عنوان مثال، در نتیجه یک ویروس باج افزار.
یا اقدام عمدی توسط مهاجم.
3) از دست دادن ایستگاه کاری
کارگران باید کار کنند، اما سیستم به خطر افتاده است و باید دوباره نصب/بازیابی/پیکربندی شود.
4) به خطر افتادن شبکه محلی
اگر یک مهاجم به یک رایانه ویندوزی دسترسی پیدا کرده باشد، از این رایانه می تواند به سیستم هایی دسترسی پیدا کند که از خارج، از اینترنت، غیرقابل دسترسی هستند. به عنوان مثال، به اشتراک گذاری فایل، به چاپگرهای شبکه و غیره.
من موردی داشتم که ویندوز سرور یک باج افزار را گرفت
و این باج افزار ابتدا بیشتر فایل های موجود در درایو C: را رمزگذاری کرد و سپس شروع به رمزگذاری فایل های NAS از طریق شبکه کرد. از آنجایی که NAS Synology بود، با پیکربندی عکس های فوری، NAS را در 5 دقیقه بازیابی کردم و ویندوز سرور را دوباره از ابتدا نصب کردم.
مشاهدات و توصیه ها
من با استفاده از سرورهای ویندوز نظارت می کنم
نظارت به خودی خود محافظت نمی کند، اما به تعیین اقدامات لازم کمک می کند.
در اینجا برخی از مشاهدات وجود دارد:
الف) RDP بی رحمانه خواهد بود.
در یکی از سرورها، من RDP را نه در پورت استاندارد 3389، بلکه در 443 نصب کردم - خوب، من خودم را به عنوان HTTPS پنهان می کنم. احتمالا ارزش تعویض پورت را از پورت استاندارد دارد، اما فایده چندانی نخواهد داشت. در اینجا آمار این سرور آمده است:
می توان مشاهده کرد که در یک هفته تقریباً 400 تلاش ناموفق برای ورود از طریق RDP انجام شد.
مشاهده می شود که تلاش هایی برای ورود از 55 آدرس IP صورت گرفته است (بعضی از آدرس های IP قبلاً توسط من مسدود شده بودند).
این به طور مستقیم نتیجه گیری را نشان می دهد که شما باید fail2ban را تنظیم کنید، اما
چنین ابزاری برای ویندوز وجود ندارد.
چند پروژه رها شده در Github وجود دارد که به نظر می رسد این کار را انجام می دهند، اما من حتی سعی نکرده ام آنها را نصب کنم:
آب و برق پولی نیز وجود دارد، اما من آنها را در نظر نگرفته ام.
اگر یک ابزار منبع باز برای این منظور می شناسید، لطفاً آن را در نظرات به اشتراک بگذارید.
بروزرسانی: در نظرات پیشنهاد شد که پورت 443 انتخاب بدی است و بهتر است پورت های بالا (32000+) را انتخاب کنید زیرا 443 بیشتر اسکن می شود و تشخیص RDP روی این پورت مشکلی ندارد.
ب) نام های کاربری خاصی وجود دارد که مهاجمان ترجیح می دهند
مشاهده می شود که جستجو در فرهنگ لغت با نام های مختلف انجام شده است.
اما این چیزی است که من متوجه شدم: تعداد قابل توجهی از تلاش ها از نام سرور به عنوان ورود استفاده می کنند. توصیه: از یک نام برای رایانه و کاربر استفاده نکنید. علاوه بر این، گاهی اوقات به نظر می رسد که آنها سعی می کنند نام سرور را به نحوی تجزیه کنند: به عنوان مثال، برای سیستمی با نام DESKTOP-DFTHD7C، بیشترین تلاش برای ورود به سیستم با نام DFTHD7C انجام می شود:
بر این اساس، اگر یک رایانه DESKTOP-MARIA دارید، احتمالاً سعی خواهید کرد به عنوان کاربر MARIA وارد شوید.
نکته دیگری که از لاگها متوجه شدم: در اکثر سیستمها، بیشتر تلاشها برای ورود به سیستم با نام "administrator" انجام میشود. و این بی دلیل نیست، زیرا در بسیاری از نسخه های ویندوز، این کاربر وجود دارد. علاوه بر این، نمی توان آن را حذف کرد. این کار را برای مهاجمان ساده می کند: به جای حدس زدن نام و رمز عبور، فقط باید رمز عبور را حدس بزنید.
به هر حال، سیستمی که باج افزار را گرفتار کاربر Administrator و رمز عبور Murmansk#9 بود. من هنوز مطمئن نیستم که این سیستم چگونه هک شده است، زیرا من دقیقاً پس از آن حادثه نظارت را شروع کردم، اما فکر می کنم که بیش از حد ممکن است.
بنابراین اگر کاربر Administrator قابل حذف نیست، پس چه باید کرد؟ می توانید نام آن را تغییر دهید!
توصیه های این بند:
- از نام کاربری در نام کامپیوتر استفاده نکنید
- اطمینان حاصل کنید که هیچ کاربر Administrator در سیستم وجود ندارد
- از رمزهای عبور قوی استفاده کنید
بنابراین، من حدود چند سال است که چندین سرور ویندوز تحت کنترل خود را تماشا میکنم که به صورت brute-force انجام میشوند و موفقیتی هم نداشته است.
از کجا بفهمم ناموفق است؟
زیرا در اسکرین شات های بالا مشاهده می کنید که گزارش هایی از تماس های موفق RDP وجود دارد که حاوی اطلاعات زیر است:
- از کدام آی پی
- از کدام کامپیوتر (نام میزبان)
- نام کاربری
- اطلاعات GeoIP
و من مرتباً آنجا را بررسی می کنم - هیچ ناهنجاری پیدا نشده است.
به هر حال، اگر یک IP خاص بهشدت سخت تحت فشار قرار میگیرد، میتوانید IPها (یا زیرشبکهها) را مانند این در PowerShell مسدود کنید:
New-NetFirewallRule -Direction Inbound -DisplayName "fail2ban" -Name "fail2ban" -RemoteAddress ("185.143.0.0/16", "185.153.0.0/16", "193.188.0.0/16") -Action Block
در ضمن الاستیک علاوه بر Winlogbeat هم داره
خوب، توصیه های نهایی:
- بک آپ گیری خودکار به طور منظم.
- به روز رسانی های امنیتی را به موقع نصب کنید
پاداش: لیستی از 50 کاربر که اغلب برای تلاش برای ورود به سیستم RDP استفاده می شدند
"user.name: نزولی"
شمردن
dfthd7c (نام میزبان)
842941
winsrv1 (نام میزبان)
266525
مدیر
180678
مدیر
163842
مدیر
53541
مایکل
23101
سرور
21983
استیو
21936
جان
21927
پل
21913
پذیرش
21909
مخفف کلمه میکروفون
21899
دفتر
21888
اسکنر
21887
اسکن
21867
داود
21865
کریس
21860
مالک
21855
مدیر
21852
مدیر
21841
برایان
21839
مدیر
21837
علامت
21824
کارکنان
21806
مدیر
12748
ریشه
7772
مدیر
7325
پشتیبانی
5577
متوسط
5418
USER
4558
مدیر سایت
2832
تست
1928
خروجی
1664
مدیر سایت
1652
مهمان
1322
USER1
1179
اسکنر
1121
SCAN
1032
مدیر
842
ADMIN1
525
پشتیبان گیری
518
MySqlAdmin
518
پذیرش
490
USER2
466
TEMP
452
SQLADMIN
450
USER3
441
1
422
مدیر
418
OWNER
410
منبع: www.habr.com