چگونه پورت های باز سرور را شناسایی کنیم؟

چگونه پورت های باز سرور را شناسایی کنیم؟

فرض کنید سرور را راه‌اندازی کرده‌اید و چند سرویس مختلف روی آن فعال است؛ از وب‌سایت و پنل مدیریت گرفته تا پایگاه داده یا سرویس انتقال فایل. همه‌چیز درست کار می‌کند، اما آیا می‌دانید در حال حاضر چه پورت‌هایی روی این سرور در دسترس هستند و هرکدام به کدام سرویس مربوط می‌شوند؟ پاسخ به این سؤال یکی از مراحل مهم در بررسی وضعیت امنیتی سرور است. هر سرویس شبکه‌ای برای برقراری ارتباط به یک یا چند پورت نیاز دارد. در نتیجه، هرچه تعداد سرویس‌های فعال و پورت‌های در دسترس بیشتر باشد، نقاط بیشتری برای برقراری ارتباط با سرور وجود دارد. البته این موضوع به خودی خود به معنی وجود آسیب‌پذیری نیست، اما پورت‌هایی که بدون نیاز فعال مانده‌اند یا سرویس‌های پشت آن‌ها به‌درستی ایمن نشده‌اند، می‌توانند سطح حمله سرور را افزایش دهند.

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

پورت باز سرور چیست و چرا باید آن را شناسایی کنیم؟

برای اینکه مفهوم پورت باز را ساده‌تر درک کنیم، ابتدا باید بدانیم سرور چگونه ارتباطات شبکه را دریافت می‌کند. هر سرور می‌تواند هم‌زمان چندین سرویس مختلف را اجرا کند و هر سرویس اغلب از یک شماره پورت مشخص برای دریافت یا برقراری ارتباط استفاده می‌کند. برای مثال، سرویس‌های وب اغلب از پورت‌های 80 و 443 استفاده می‌کنند و سرویس SSH به‌صورت پیش‌فرض از پورت 22 استفاده می‌کند.

پورت در واقع یک شماره منطقی برای شناسایی نقطه ارتباط یک سرویس در یک سیستم است. وقتی یک سرویس روی یک پورت در وضعیت Listening قرار دارد، سیستم‌عامل آماده دریافت ارتباط‌های ورودی برای آن سرویس است. از دید مدیریتی و امنیتی، چنین پورتی ممکن است به عنوان یک پورت باز شناخته شود. البته اینکه این پورت از خارج شبکه قابل دسترسی باشد یا نه، به فایروال، تنظیمات شبکه، NAT، ACL  و سایر کنترل‌های دسترسی نیز بستگی دارد.

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

آیا باز بودن پورت به معنی ناامن بودن سرور است؟

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

یک سرور مستقر در رک با پورت‌های باز
یک پورت باز زمانی ناامن است که به حال خود رها شده باشد و هیچ سرویسی از آن استفاده نکند.

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

قبل از اینکه سراغ ابزارهای شناسایی پورت های باز سرور برویم، بهتر است چند مفهوم پایه را بشناسیم؛ زیرا خروجی ابزارهایی مانند netstat، ss  یا Nmap بدون درک این مفاهیم ممکن است برای کاربر گمراه‌کننده باشد.

  • درک تفاوت میان TCP و UDP: پروتکل TCP یک پروتکل اتصال‌گراست و قبل از انتقال داده، ارتباط مشخصی میان دو طرف ایجاد می‌کند. UDP برخلاف TCP برای ارسال داده به برقراری یک اتصال مشابه TCP نیاز ندارد.
  • آشنایی با مفهوم  Listening: وقتی یک سرویس روی یک پورت TCP در وضعیت Listening قرار دارد، سیستم‌عامل منتظر دریافت درخواست‌های ارتباطی برای آن سرویس است. ابزارهای داخلی سیستم‌عامل می‌توانند این اطلاعات را در اختیار مدیر قرار دهند و مشخص کنند چه پورت‌هایی توسط چه برنامه‌های در حال اجرایی مورد استفاده قرار گرفته‌اند.
  • اطلاع از آدرس IP و رابط شبکه‌ای است که سرویس روی آن گوش می‌دهد: ممکن است یک سرویس فقط روی 127.0.0.1 یا Loopback در دسترس باشد. در این حالت ارتباط فقط از داخل خود سرور امکان‌پذیر است. اما اگر سرویس روی یک IP شبکه یا تمام رابط‌های شبکه مانند 0.0.0.0 گوش دهد، بسته به تنظیمات فایروال و شبکه ممکن است از سیستم‌های دیگر نیز قابل دسترسی باشد.
  • تفاوت باز بودن پورت از دید خود سرور و از دید شبکه: ابزارهایی که مستقیم روی سرور اجرا می‌شوند اغلب وضعیت Socketها و سرویس‌های محلی را نشان می‌دهند، اما برای اینکه بفهمیم یک پورت از یک سیستم دیگر قابل دسترسی است یا خیر، باید آن را از همان شبکه یا مبدأ موردنظر نیز بررسی کنیم.
  • درک اینکه هر پورت معادل یک آسیب‌پذیری نیست: شماره پورت فقط یک نقطه ارتباطی منطقی است و میزان ریسک آن به سرویسی که روی پورت اجرا می‌شود، نسخه نرم‌افزار، تنظیمات سرویس، سطح دسترسی، روش احراز هویت و محدودیت‌های اعمال‌شده توسط فایروال بستگی دارد.
  • مشخص کردن محدوده دسترسی خود: برای جلوگیری از شناسایی پورت های باز سرور و اسکن کردن بدون مجوز سیستم‌های متعلق به دیگران.

مطالب مرتبط: افزایش امنیت سرور

چگونه پورت های باز سرور را در لینوکس شناسایی کنیم؟

در لینوکس ابزارهای مختلفی برای بررسی پورت‌ها و سرویس‌های در حال اجرا وجود دارد، اما برای یک بررسی اولیه اغلب ss و netstat از شناخته‌شده‌ترین گزینه‌ها هستند. این ابزارها مستقیم روی خود سرور اجرا می‌شوند و به شما نشان می‌دهند چه سوکت‌ها و پورت‌هایی در وضعیت Listening قرار دارند. توجه داشته باشید که مشاهده یک پورت در این ابزارها به معنی قابل دسترس بودن آن از اینترنت نیست و برای بررسی دسترسی واقعی از یک شبکه دیگر، باید وضعیت فایروال و مسیر شبکه نیز بررسی شود.

شناسایی پورت‌های در حال Listen با دستور ss

دستور ss یکی از ابزارهای استاندارد و سریع در توزیع‌های جدید لینوکس برای مشاهده Socketهای شبکه است و در بسیاری از سیستم‌ها جایگزین netstat شده است. برای مشاهده پورت‌های TCP در وضعیت Listening، می‌توانید در ترمینال سرور دستور زیر را اجرا کنید:

sudo ss -lnt

در این دستور:

  • -l فقط Socketهایی را نمایش می‌دهد که در وضعیت Listening هستند.
  • -n شماره پورت و آدرس‌ها را به‌صورت عددی نمایش می‌دهد و از تبدیل آن‌ها به نام سرویس جلوگیری می‌کند.
  • -t بررسی را به ارتباط‌های TCP محدود می‌کند.

برای مثال، ممکن است در خروجی چیزی شبیه این مشاهده کنید:

State   Local Address:Port   Peer Address:Port

LISTEN  0.0.0.0:22           0.0.0.0:*

LISTEN  0.0.0.0:80           0.0.0.0:*

LISTEN  0.0.0.0:443          0.0.0.0:*

در این مثال، سرویس‌هایی روی پورت‌های 22، 80 و 443 در وضعیت Listening قرار دارند. آدرس 0.0.0.0  نیز به این معناست که Socket روی تمام رابط‌های IPv4 سیستم گوش می‌دهد؛ البته اینکه از بیرون واقعاً قابل دسترسی باشد به تنظیمات فایروال و شبکه بستگی دارد.

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

بررسی پورت‌ها با  Netstat

Netstat یکی از ابزارهای قدیمی و شناخته‌شده برای بررسی وضعیت اتصالات و پورت‌های شبکه در لینوکس و شناسایی پورت های باز سرور است. اگر این ابزار روی سیستم نصب شده باشد، برای مشاهده پورت‌های TCP در وضعیت Listening می‌توانید از دستور زیر استفاده کنید:

sudo netstat -tuln

در این دستور، -t پورت‌های TCP، گزینه -u پورت‌های UDP، گزینه -l پورت‌های Listening و -n آدرس‌ها و شماره پورت‌ها را به شکل عددی نمایش می‌دهد.

نکته مهم: ممکن است در سیستم‌های جدید لینوکس هنگام اجرای netstat با خطایی مانند command not found مواجه شوید. دلیل آن این است که netstat در بسیاری از توزیع‌های جدید به‌صورت پیش‌فرض نصب نیست و ابزار ss جایگزین مدرن‌تری برای آن محسوب می‌شود. بنابراین اگر هدف شما بررسی پورت‌های Listening و شناسایی پورت های باز سرور است، بهتر است ابتدا ss را امتحان کنید.

مطالب مرتبط: Netstat چیست

چگونه پورت های باز سرور را در ویندوز پیدا کنیم؟

در Windows Server نیز می‌توانید بدون نصب ابزارهای جانبی، از ابزارهای داخلی سیستم‌عامل برای بررسی پورت‌های در حال استفاده و اتصالات شبکه استفاده کنید. یکی از ساده‌ترین روش‌ها استفاده از netstat در Command Prompt یا PowerShell است.

استفاده از Netstat در ویندوز

برای اجرای netstat ابتدا Command Prompt یا PowerShell را باز کنید. برای مشاهده پورت‌هایی که در وضعیت Listening قرار دارند، دستور زیر را اجرا کنید:

netstat -ano

گزینه‌های این دستور اطلاعاتی مانند پروتکل، آدرس محلی، آدرس مقصد، وضعیت اتصال و PID برنامه در حال اجرا را نمایش می‌دهند. در خروجی، به دنبال وضعیت LISTENING بگردید. برای مثال:

Proto  Local Address    Foreign Address    State       PID

TCP    0.0.0.0:80       0.0.0.0:0          LISTENING   1540

TCP    0.0.0.0:443      0.0.0.0:0          LISTENING   2184

در این مثال، پورت‌های 80 و 443 روی سرور در وضعیت Listening قرار دارند و به‌ترتیب با PIDهای 1540 و 2184 مرتبط هستند. اگر فقط بخواهید پورت‌های Listening را مشاهده کنید، می‌توانید از طریق وارد کردن دستور زیر، خروجی را با findstr فیلتر کنید:

netstat -ano | findstr LISTENING

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

نکته مهم: netstat وضعیت پورت‌ها را روی خود سیستم نشان می‌دهد. بنابراین برای اینکه مشخص شود یک پورت از یک سیستم دیگر یا از اینترنت نیز قابل دسترسی است، باید قوانین Windows Firewall، فایروال شبکه و سایر کنترل‌های دسترسی سازمان خود را نیز بررسی کنید.

چگونه بفهمیم کدام برنامه از یک پورت استفاده می‌کند؟

یکی از مزیت‌های دستور netstat -ano در ویندوز این است که Process ID را در اختیار شما قرار می‌دهد. برای مثال، اگر در خروجی ببینید پورت 443 با PID شماره 2184 در وضعیت LISTENING قرار دارد، می‌توانید با استفاده از PID مشخص کنید کدام برنامه مسئول آن اتصال است. برای مشاهده نام برنامه، در Command Prompt دستور زیر را اجرا کنید و عدد PID را با مقدار موردنظر جایگزین کنید:

tasklist /FI “PID eq 2184”

در نتیجه، ویندوز نام Process مرتبط با PID یا همان نام برنامه‌ای را که در حال استفاده از آن پورت است، نمایش می‌دهد.

روش دیگر برای پیدا کردن نام این برنامه، استفاده از PowerShell است. برای مشاهده اطلاعات بیشتری درباره ارتباط میان برنامه‌های در حال اجرا و پورت‌های TCP می‌توانید از دستور زیر استفاده کنید:

Get-NetTCPConnection -LocalPort 443

این دستور اتصال‌های TCP مرتبط با پورت 443 را نمایش می‌دهد. برای پیدا کردن برنامه مرتبط با یک اتصال (پورت) نیز می‌توانید PID موجود در خروجی را با اطلاعات Process نمایش داده شده مقایسه کنید.

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

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

شناسایی پورت های باز سرور با Nmap

یکی از بهترین ابزارها برای بررسی پورت‌های قابل دسترس یک سرور، Nmap  است. تفاوت مهم Nmap با ابزارهایی مثل ss و netstat این است که Nmap از دید یک سیستم دیگر در شبکه، وضعیت پورت‌ها را بررسی می‌کند. به همین دلیل می‌توانید با آن متوجه شوید کدام پورت‌ها از یک شبکه مشخص قابل دسترسی هستند. برای یک اسکن ساده با Nmap می‌توانید از دستور زیر استفاده کنید:

nmap 192.168.1.10

برای بررسی تمام پورت‌های TCP نیز می‌توان از -p- استفاده کنید:

nmap -p- 192.168.1.10

اگر علاوه بر وضعیت پورت، بخواهید سرویس فعال روی آن را نیز شناسایی کنید، گزینه -sV کاربرد دارد:

nmap -sV 192.168.1.10

Nmap  اغلب پورت‌ها را با وضعیت‌هایی مانند open، closed و filtered نمایش می‌دهد. وضعیت open یعنی از دید سیستم اسکن‌کننده، پورت قابل دسترسی است و یک سرویس روی آن پاسخ می‌دهد؛ closed یعنی پورت قابل دسترسی است اما سرویس فعالی روی آن وجود ندارد و filtered اغلب نشان می‌دهد فایروال یا مکانیزم دیگری مانع تشخیص وضعیت دقیق پورت شده است.

نکته مهم: نتیجه Nmap به محل اجرای اسکن و قوانین فایروال وابسته است. بنابراین ممکن است پورتی روی سرور در وضعیت Listening  باشد اما از اینترنت قابل دسترسی نباشد. همچنین اسکن Nmap باید فقط روی سرورها و شبکه‌هایی انجام شود که مجوز بررسی آن‌ها را دارید.

بیشتر بخوانید: Nmap چیست

تفاوت پورت باز با پورت Listen چیست؟

پورت Listen و پورت Open دو مفهوم نزدیک اما متفاوت هستند. پورت Listening یعنی یک سرویس در خود سیستم‌عامل روی یک آدرس و شماره پورت در حال گوش دادن و آماده دریافت ارتباط است. اما Open بودن پورت اغلب از دید یک سیستم دیگر در شبکه بررسی می‌شود. برای مثال، اگر یک سرویس روی پورت 443 در وضعیت Listening باشد و فایروال نیز اجازه دسترسی به آن را بدهد، Nmap می‌تواند این پورت را open گزارش کند. ممکن است پورت روی سرور Listening باشد اما فایروال دسترسی به آن را مسدود کرده باشد. در این شرایط سرویس همچنان فعال است، اما از شبکه موردنظر قابل دسترسی نیست و Nmap ممکن است آن را filtered نشان دهد.

چگونه بفهمیم هر پورت متعلق به کدام سرویس است؟

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

در لینوکس می‌توانید با استفاده از گزینه -p در دستور ss، برنامه در اجرای مرتبط با پورت را نیز مشاهده کنید:

sudo ss -lntp

در صورت داشتن دسترسی لازم، خروجی اغلب نام برنامه و PID مربوط به Socket را نمایش می‌دهد.

در ویندوز نیز netstat -ano  شماره PID مربوط به هر اتصال را نمایش می‌دهد و سپس می‌توانید با دستور tasklist مشخص کنید این PID متعلق به کدام برنامه در حال اجرا است:

tasklist /FI “PID eq 2184”

البته تشخیص برنامه تنها مرحله اول است. در ادامه باید مشخص شود آن برنامه چه کاری انجام می‌دهد، آیا اجرای آن ضروری است، چه کاربرانی باید به آن دسترسی داشته باشند و آیا نسخه و تنظیمات آن به‌روز و ایمن هستند یا خیر.

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

شناسایی PID پورت باز در ویندوز
شناسایی سرویس در حال استفاده از یک پورت باز، مانع از بروز مشکلات ناشی از بستن بدون برنامه یک پورت می‌شود.

چگونه پورت‌های غیرضروری سرور را شناسایی کنیم؟

شناسایی پورت های باز سرور به‌تنهایی کافی نیست؛ مرحله مهم‌تر این است که مشخص کنیم کدام‌یک از این پورت‌ها موردنیاز هستند. سرور ممکن است چندین سرویس فعال داشته باشد که همه آن‌ها برای عملکرد فعلی سیستم ضروری نیستند. هر سرویس اضافی می‌تواند یک نقطه دسترسی دیگر ایجاد کند و در صورت وجود پیکربندی ضعیف یا آسیب‌پذیری، سطح حمله سرور را افزایش دهد. برای شناسایی پورت‌های غیرضروری، ابتدا باید فهرست پورت‌های Listening و سرویس‌های مربوط به آن‌ها تهیه شود. سپس برای هر مورد چند سؤال ساده اما مهم مطرح کنید:

  • این پورت متعلق به چه سرویسی است؟
  • این سرویس برای چه کاری استفاده می‌شود؟
  • چه کاربران یا سیستم‌هایی به آن نیاز دارند؟
  • آیا این سرویس هنوز مورد استفاده است؟
  • آیا دسترسی آن باید از شبکه داخلی باشد یا از اینترنت نیز به آن نیاز داریم؟

بعد از شناسایی پورت های باز سرور چه کنیم؟

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

بستن سرویس‌های غیرضروری

اگر مشخص شد یک سرویس دیگر موردنیاز نیست، بهترین راهکار این است که خود سرویس غیرفعال یا در صورت امکان حذف شود. با این کار علاوه بر بسته شدن پورت مربوط به آن، خود سرویس نیز دیگر منابع سیستم را مصرف نمی‌کند و سطح حمله سرور کاهش پیدا می‌کند. با این حال، قبل از غیرفعال کردن هر سرویس باید وابستگی‌های آن بررسی شود و مطمئن شویم توقف سرویس باعث اختلال در عملکرد سرور یا نرم‌افزارهای وابسته نمی‌شود.

محدود کردن دسترسی با فایروال

اگر یک سرویس ضروری است اما لازم نیست همه کاربران یا شبکه‌ها به آن دسترسی داشته باشند، بهتر است به جای بستن کامل سرویس، محدوده دسترسی آن را با فایروال محدود کنیم. برای مثال، ممکن است یک سرویس مدیریتی فقط برای مدیران شبکه و از طریق یک شبکه داخلی یا محدوده مشخصی از IPها موردنیاز باشد. در این شرایط می‌توانید قوانین فایروال را طوری تنظیم کنید که فقط منابع مجاز بتوانند به پورت موردنظر دسترسی داشته باشند. هنگام خرید فایروال نیز باید قابلیت‌های کنترل دسترسی و تعریف قوانین امنیتی را متناسب با نیاز شبکه بررسی کنید.

محدود کردن دسترسی پورت باز با فایروال
استفاده از فایروال برای محدود کردن دسترسی یک پورت باز، بهتر از غیرفعال کردن آن است.

استفاده از رمزنگاری و احراز هویت مناسب

بسته بودن یا محدود بودن پورت به‌تنهایی امنیت سرویس را تضمین نمی‌کند. سرویس‌هایی که از طریق شبکه قابل دسترسی هستند باید از روش‌های مناسب احراز هویت و در صورت نیاز رمزنگاری استفاده کنند. برای مثال، در سرویس‌هایی که اطلاعات حساس یا اعتبارنامه‌های کاربران را منتقل می‌کنند، استفاده از ارتباطات رمزنگاری‌شده می‌تواند از افشای اطلاعات در مسیر جلوگیری کند. همچنین باید از گذرواژه‌های قوی، احراز هویت چندمرحله‌ای در صورت پشتیبانی و روش‌های امن احراز هویت استفاده شود.

بررسی دوره‌ای پورت‌ها

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

آنچه درباره پورت های باز سرور گفتیم

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

برای شناسایی پورت‌های در حال Listening در لینوکس می‌توانید از ابزارهایی مانند ss و netstat و در ویندوز از netstat استفاده کنید. پس از شناسایی پورت های باز سرور، مرحله مهم بعدی تعیین ضروری یا غیرضروری بودن سرویس‌ها است. پورت‌های مربوط به سرویس‌های بلااستفاده را می‌توانید پس از بررسی وابستگی‌ها غیرفعال یا حذف کنید. اگر یک سرویس ضروری باشد اما دسترسی عمومی به آن لازم نباشد، می‌توانید با استفاده از فایروال دسترسی را به شبکه‌ها یا IPهای مجاز محدود کنید.

در صورتی‌که برای شناسایی و بستن پورت‌ها نیاز به کارشناس فنی دارید کافیست با شماره 0218363 تماس بگیرید یا روی لینک زیر بزنید.

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

سوالات متداول پورت های باز سرور

پورت باز سرور چیست و آیا باز بودن پورت به معنی ناامن بودن سرور است؟

پورت باز به پورتی گفته می‌شود که از یک سیستم دیگر در شبکه قابل دسترسی است و یک سرویس روی آن پاسخ می‌دهد. باز بودن پورت به‌تنهایی به معنی ناامن بودن سرور نیست؛ نوع سرویس، تنظیمات امنیتی و محدوده دسترسی نیز اهمیت دارند.

چگونه پورت های باز سرور را در لینوکس شناسایی کنیم؟

در لینوکس می‌توانید از ابزارهایی مانند ss و netstat استفاده کنید. برای مشاهده پورت‌های TCP در وضعیت Listening، دستور sudo ss -lnt گزینه‌ای ساده و سریع است. برای بررسی دسترسی پورت از یک سیستم دیگر نیز می‌توانید از Nmap استفاده کنید.

چگونه پورت های باز سرور را در ویندوز پیدا کنیم؟

در Windows Server می‌توانید دستور netstat -ano را در Command Prompt یا PowerShell اجرا کنید. این دستور پورت‌های در حال استفاده و وضعیت آن‌ها را همراه با PID برنامه نمایش می‌دهد. سپس با استفاده از PID می‌توانید برنامه مرتبط با هر پورت را شناسایی کنید.

تفاوت پورت Open و Listening چیست؟

Listening یعنی یک سرویس روی خود سرور در حال گوش دادن به یک پورت است.Open  از دید یک سیستم دیگر بررسی می‌شود و نشان می‌دهد پورت از آن مبدأ قابل دسترسی است. بنابراین ممکن است پورتی روی سرور Listening باشد اما به دلیل قوانین فایروال از بیرون قابل دسترسی نباشد.

بعد از شناسایی پورت های باز سرور چه کاری باید انجام دهیم؟

ابتدا مشخص کنید هر پورت متعلق به چه سرویسی است و آیا آن سرویس ضروری است یا خیر. سرویس‌های غیرضروری را پس از بررسی وابستگی‌ها غیرفعال کنید و برای سرویس‌های ضروری، دسترسی را با فایروال به IPها یا شبکه‌های مجاز محدود کنید. همچنین به‌روزرسانی، احراز هویت و رمزنگاری مناسب را بررسی کنید.

5/5 - (1 امتیاز)
الهام بهمن پور
الهام بهمن‌پور هستم. کارشناس محتوا با بیش از ۱۳سال تجربه حرفه‌ای در تولید و مدیریت محتوا است. تاکنون بیش از ۲۰ هزار مقاله و خبر تخصصی در حوزه‌های فناوری اطلاعات، به‌ویژه شبکه، امنیت سایبری و سرور تألیف و منتشر کرده‌ام. علاقه و تخصص من در زمینه‌هایی همچون هک اخلاقی، تست نفوذ، پروتکل‌های شبکه و مفاهیم رمزنگاری است. تابحال با بسیاری از رسانه‌های معتبر فناوری فعالیت داشته ام.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا