• شنبه تا چهارشنبه 8:30-17 پنجشنبه 8:30-12:30
  • info@imennet.net
مشاوره رایگان 02188970170
پورت های باز چیست؟ آموزش شناسایی و بستن پورت‌ های باز برای افزایش امنیت شبکه

پورت‌ های باز (Open Ports) در سیستم‌ عامل ویندوز، یکی از مؤلفه‌ های اصلی «سطح حمله» (Attack Surface) یک سیستم محسوب می‌ شوند. هر پورت باز، یک درگاه ارتباطی است که در صورت عدم مدیریت صحیح، می‌ تواند بستری برای دسترسی‌ های غیرمجاز یا نفوذ بدافزارها باشد. چه یک سرویس بلا استفاده در حال اجرا باشد و چه یک پروسه‌ ی مشکوک که در پس‌ زمینه فعالیت می‌ کند، بستن پورت‌ های غیرضروری، گام نخست در «سخت‌ سازی امنیتی» (Security Hardening) میزبان شماست.

پورت‌ های TCP برای برقراری ارتباطات اتصال‌گرا (مانند سرویس‌ های وب) و پورت‌ های UDP برای ارسال داده‌ های سریع و بدون نیاز به تأییدیه (مانند استریمینگ) به کار می‌ روند. این آموزش طی ۷ مرحله‌ ی کاربردی، شما را از شناسایی تا مسدود سازی ایمن این پورت‌ ها همراهی می‌ کند. ما در این مسیر بر استفاده از ابزارهای بومی (Native) ویندوز تمرکز داریم تا بدون نیاز به نرم‌افزارهای جانبی، مدیریت شبکه خود را به دست بگیرید. جهت آشنایی کامل با انواع پورت می توانید به مقاله پورت شبکه چیست؟ مراجعه نمایید.

چک لیست فنی برای بستن پورت‌ های باز در ویندوز:

قبل از شروع مراحل، بهتر است مطمئن شوید به پیش‌ نیازهای فنی لازم برای شناسایی، بررسی و بستن پورت‌ های باز در ویندوز دسترسی دارید تا روند کار بدون خطا و وقفه انجام شود.

  • سیستم‌عامل: ویندوز ۱۰ یا نسخه‌ های بالاتر.
  • سطح دسترسی: دسترسی کامل مدیریتی (Administrator) بر روی سیستم.
  • ابزارهای مدیریت ویندوز:
  • خط فرمان (CMD) و پاورشل (PowerShell)
  • مدیریت پردازش‌ ها (Task Manager & Resource Monitor)
  • مدیریت سرویس‌ ها (Services.msc)
  • فایروال ویندوز دیفندر (Windows Defender Firewall)
  • ابزارهای کمکی (اختیاری):
  • ابزار PortQry مایکروسافت
  • سرویس‌ های اسکن آنلاین (مانند ShieldsUP!) جهت تست خارجی.
  • یادداشت‌ برداری: یک فایل متنی ساده (Notepad) برای یادداشت آدرس پورت‌ ها یا PID های مشکوک.

مرحله 1: شناسایی پورت‌ های باز (Open Ports)

نخستین گام، فهرست‌ کردن تمام اتصالات فعال شبکه است تا بتوانید پورتی را که قصد بستن آن را دارید، به‌ دقت شناسایی کنید. این فرآیند علاوه بر شماره پورت، شناسه پردازش (PID) مرتبط با آن را نیز در اختیار شما قرار می‌ دهد تا بتوانید برنامه یا سرویس استفاده‌ کننده را ردیابی کنید.

برای شروع، روی فایل اجرایی CMD.exe کلیک راست کرده و گزینه “Run as administrator” را انتخاب کنید، Command Prompt را با دسترسی Administrator (مدیر سیستم) اجرا کنید. سپس دستور زیر را تایپ کرده و کلید Enter را بزنید: netstat -ano 

این دستور فهرستی از تمامی اتصالات فعال را نمایش می‌ دهد. برای تحلیل خروجی، به ستون Local Address توجه کنید (برای مثال در آدرس 0.0.0.0:8080، عدد پس از دو نقطه، نشان‌ دهنده شماره پورت است).

مطالعه کنید: چک لیست سلامت شبکه در زمان اختلال اینترنت

در لیست ارائه‌ شده، بر روی ورودی‌ هایی که در وضعیت‌ های LISTENING (در حال شنود برای دریافت اتصال) و یا ESTABLISHED (در حال تبادل داده) هستند، تمرکز کنید؛ زیرا این وضعیت‌ ها بیانگر این است که پورت مذکور باز و در حال فعالیت است.

مرحله 2: اعتبارسنجی و تأیید هویت پردازش (Process Verification)

پس از استخراج شماره PID در مرحله قبل، اکنون باید ماهیت «پروسه» (Process) مربوطه را شناسایی کنید. این مرحله برای جلوگیری از توقف ناخواسته سرویس‌ های حیاتی ویندوز و تشخیص فعالیت‌ های مشکوک، بسیار حائز اهمیت است.

1. بررسی در Task Manager

برای شناسایی دقیق برنامه‌ ای که پورت را اشغال کرده است:

  • کلید ترکیبی Ctrl+Shift+Esc را فشار دهید تا Task Manager باز شود.
  • به تب Details بروید و ستون PID را پیدا کنید تا نام پروسه مرتبط را مشاهده نمایید.
  • روی پروسه مورد نظر کلیک راست کرده و گزینه Open file location را انتخاب کنید. مسیر فایل اجرایی، کلیدی‌ ترین مدرک شماست:
  • فایل‌ های سیستمی: معمولاً در مسیر C:\Windows\System32 قرار دارند.
  • فایل‌ های مشکوک: اگر فایلی در مسیرهای غیرمتعارفی مانند پوشه‌ های Downloads ،Temp یا AppData قرار دارد، زنگ خطری برای احتمال وجود بدافزار است.

2. تحلیل عمیق با Resource Monitor

برای بررسی دقیق‌ تر (Deep Analysis)، ابزار Resource Monitor را با جستجوی عبارت resmon در منوی استارت اجرا کنید:

  • به تب Network و بخش Listening Ports بروید.
  • در اینجا نمایی جامع از پورت‌ های فعال، PID، نام پروسه و وضعیت فایروال را مشاهده می‌ کنید. در این بخش می‌ توانید ماژول‌ های (DLLs) بارگذاری شده توسط پروسه را نیز تحلیل کنید.

مطالعه کنید: اصول کابل کشی ساخت یافته

3. تصمیم‌ گیری نهایی: بستن یا حفظ پورت؟

پیش از اقدام به بستن پورت، باید تحلیل کنید که آیا پردازش مورد نظر «مجاز» است یا «مخرب»:

  • تطبیق با پورت‌ های استاندارد: پورت‌ های شناخته‌ شده مانند ۸۰ (HTTP) یا ۴۴۳ (HTTPS) معمولاً توسط سرویس‌ های وب استفاده می‌شوند. پورت ۱۴۳۳ نیز اختصاصی برای SQL Server است. ارزیابی کنید که آیا سیستم شما به این سرویس‌ ها نیاز دارد یا خیر.
  • بررسی امنیت: اگر پروسه ناشناخته است و در مسیری غیرمعمول قرار دارد، احتمال فعالیت بدافزار وجود دارد. در چنین مواردی، حتماً از Windows Security برای اسکن فایل مشکوک استفاده کنید.

نکته: انجام این بررسی حدود ۱۰ دقیقه زمان می‌ برد، اما تضمین‌ کننده پایداری سیستم شماست و از بروز اختلالات ناخواسته در عملکرد ویندوز جلوگیری می‌ کند.

مرحله 3: خاتمه ایمن پردازش‌ های غیرضروری (Process Termination)

اگر پس از تحلیل، اطمینان حاصل کردید که پردازش (Process) شناسایی شده غیرضروری یا مشکوک است، باید آن را خاتمه دهید تا پورت اشغال‌ شده آزاد شود.

هشدار امنیتی: قبل از هر اقدامی، نسبت به ماهیت پردازش اطمینان حاصل کنید. هرگز پردازش‌ های حیاتی سیستم (مانند explorer.exe) یا سرویس‌ های امنیتی (مانند آنتی‌ ویروس و فایروال) را متوقف نکنید؛ زیرا این کار می‌ تواند منجر به ناپایداری سیستم یا غیرفعال شدنِ لایه‌ های دفاعی ویندوز شود.

1. روش گرافیکی (Task Manager)

این روش برای خاتمه سریع و استانداردِ برنامه‌ ها مناسب است:

  • در Task Manager (تب Details)، روی پردازش مورد نظر راست‌ کلیک کنید.
  • گزینه End Task را انتخاب کرده و در صورت نمایش پنجره تأیید، آن را بپذیرید.

2. روش خط فرمان (Force Kill)

اگر پردازش در برابر بسته‌ شدن مقاومت می‌ کند یا به اصطلاح “سرسخت” (Stubborn) است، از دستور taskkill در محیط Command Prompt (با دسترسی Admin) استفاده کنید:

taskkill /PID <PID_Number> /F
  • به جای <PID_Number>، شماره PID واقعی (که در مرحله قبل یادداشت کردید) را وارد کنید (مثلاً: taskkill /PID 1234 /F).
  • سوئیچ /F مخفف Force است و به ویندوز دستور می‌ دهد که پردازش را به‌ صورت اجباری و بلافاصله متوقف کند.

3. اعتبارسنجی آزادسازی پورت

پس از متوقف کردن پردازش، بلافاصله وضعیت پورت را دوباره بررسی کنید تا از بسته شدن آن اطمینان حاصل کنید:

  • دستور netstat -ano را دوباره اجرا کنید.
  • اگر پورت دیگر در لیست وجود ندارد، هدف محقق شده است.

نکته فنی: اگر پس از پایان دادن به پردازش، پورت همچنان در وضعیت LISTENING باقی مانده است، به این معناست که پردازش متعلق به یک سرویس ویندوزی (Windows Service) است و توسط سیستم عامل مجدداً راه‌ اندازی شده است. در این صورت، باید به جای توقف پردازش، سرویس مربوطه را در بخش Services.msc به‌طور کامل غیرفعال کنید (که در مراحل بعدی به آن خواهیم پرداخت).

مرحله ۷: راه‌ اندازی پایش مستمر برای جلوگیری از باز شدن مجدد پورت‌ ها

بستن یک پورت، پایان کار نیست. در بسیاری از سیستم‌ ها، پورت‌ های شبکه ممکن است پس از به‌ روزرسانی ویندوز، نصب نرم‌افزار جدید، فعال شدن یک سرویس تازه یا تغییرات امنیتی دوباره باز شوند. به همین دلیل، برای حفظ امنیت سیستم باید یک مکانیزم مانیتورینگ مداوم پورت‌ های باز راه‌ اندازی کنید تا هر تغییر غیرمنتظره به‌ سرعت شناسایی شود.

1. ساخت اسکریپت PowerShell برای ثبت پورت‌ های Listening

برای ثبت دوره‌ ای پورت‌ های باز، یک اسکریپت ساده در PowerShell ایجاد کنید:

    • Notepad را باز کنید.
    • کد زیر را داخل آن قرار دهید:
      Get-NetTCPConnection |
      Where-Object {$_.State -eq ‘Listen’} |
      Select-Object LocalPort, OwningProcess |
      Out-File C:\Logs\ports_log.txt
    • فایل را با نام monitor.ps1 ذخیره کنید.

      این اسکریپت، تمام پورت‌ هایی را که در وضعیت Listen قرار دارند، به همراه شماره پورت و PID پردازش مالک در یک فایل لاگ ثبت می‌ کند. برای استفاده عملی‌ تر، بهتر است مسیر ذخیره‌ سازی لاگ را از قبل مشخص و پوشه‌ ای مانند C:\Logs ایجاد کنید.

      برای اینکه این بررسی به‌ صورت خودکار انجام شود، اسکریپت را در Task Scheduler زمان‌ بندی کنید:

      • در منوی Start عبارت Task Scheduler را جستجو و اجرا کنید.
      • یک Task جدید ایجاد کنید.
      • برای آن یک Trigger روزانه یا هفتگی تعریف کنید.
      • در بخش Action، اجرای powershell.exe را انتخاب کرده و این آرگومان را وارد کنید:
        -ExecutionPolicy Bypass -File "C:\Path\To\monitor.ps1"
        

        این تنظیم باعث می‌ شود اسکریپت بدون نیاز به اجرای دستی، در بازه‌ های زمانی مشخص اجرا شود و وضعیت پورت‌ های باز را ثبت کند.

2. بررسی لاگ‌ های فایروال و رویدادهای امنیتی

  1. علاوه بر ثبت پورت‌ ها، باید لاگ‌ های امنیتی ویندوز را نیز بررسی کنید تا از تلاش‌ های مسدود شده یا رفتارهای غیرعادی مطلع شوید:

    • برای مشاهده وضعیت قوانین و ترافیک مسدود شده، به مسیرWindows Defender Firewall with Advanced Security > Monitoringمراجعه کنید.
    • برای تحلیل رویدادهای امنیتی و فعالیت‌ های مشکوک شبکه، از Event Viewer استفاده کنید:
      • دستور eventvwr.msc را اجرا کنید.
      • به مسیر Windows Logs > Security بروید.

    این بخش می‌تواند اطلاعات مفیدی درباره تلاش برای دسترسی غیرمجاز، اجرای سرویس‌ های جدید یا تغییرات مرتبط با امنیت شبکه در اختیار شما قرار دهد.

3. اعتبارسنجی دوره‌ای از بیرون سیستم

اگر می‌ خواهید مطمئن شوید پورت‌ ها از دید خارجی نیز دوباره باز نشده‌ اند، بهتر است هر چند وقت یک‌ بار اسکن شبکه انجام دهید. در محیط‌ های حرفه‌ ای، این کار معمولاً با ابزارهایی مانند Nmap انجام می‌ شود. برای مثال:

nmap -p <port> localhost

در سناریوهای واقعی، بهتر است این اسکن از یک سیستم دیگر در همان شبکه یا از یک نقطه خارجی انجام شود تا وضعیت واقعی دسترسی به پورت مشخص شود.

جمع بندی

با اجرای این هفت مرحله بستن پورت‌ های باز در ویندوز، شما یک مسیر استاندارد و ایمن را از شناسایی پورت‌ های Listening/Active تا تأیید مالکیت پورت (PID و Process)، متوقف‌ سازی یا غیرفعال‌ سازی سرویس‌ های غیرضروری، ایجاد قانون در Windows Defender Firewall و در نهایت اعتبارسنجی و مانیتورینگ مستمر طی می‌کنید. نتیجه این رویکرد مرحله‌ ای، کاهش سطح حمله (Attack Surface)، جلوگیری از باز شدن مجدد پورت‌ ها بعد از آپدیت‌ ها یا نصب برنامه‌ های جدید، و افزایش پایداری و کنترل امنیت شبکه در ویندوز ۱۰/۱۱ است.

نکته کلیدی این است که مدیریت پورت‌ ها یک اقدام یک‌ باره نیست؛ یک فرآیند مداوم برای حفظ امنیت سیستم است. پیشنهاد می‌ شود علاوه بر بستن پورت‌ های غیرضروری، به‌صورت دوره‌ ای لاگ‌ های فایروال و رویدادهای امنیتی را بررسی کنید و با اسکریپت مانیتورینگ، هر تغییر در پورت‌ های Listening را ثبت و پیگیری کنید.

منبع: https://www.cbtnuggets.com/tutorials/close-used-port-windows

نظرات کاربران
گروه‌های مقالات
اطلاعات تماس

میدان فاطمی خیابان گمنام بین ششم و هفتم پلاک ۳۴ واحد ۳

02188970170 09128581120 info@imennet.net