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

لیست محتوا

اینستاگرام آسمان هاست

زمان مطالعه: 5 دقیقه

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

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

پورتهای اینترنت
پورتهای اینترنت

پورت چیست

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

ویژگی‌های کلیدی پورت

شماره‌گذاری:

پورت­‌ها از اعداد صحیح بین 0 تا 65535 شماره­‌گذاری می‌­شوند. بعضی از این پورت­‌ها که از عدد 0 تا 1023 هستند، به عنوان پورت رزرو (Well-known Ports) شناخته می­‌شوند. پورت­‌های بین 1024 تا 49151 پورت­‌های ثبت شده هستند (registered ports) و پورت­‌های بین 49152 تا 65535 پورت­‌های داینامیک هستند (dynamic ports).

  • پورت‌های رزرو (Well-known Ports)مجموعه‌ای از پورت‌ها هستند که به صورت استاندارد و با شماره‌های ثابت برای خدمات مشخصی اختصاص یافته‌اند. این پورت‌ها معمولا از عدد 0 تا 1023 شماره‌گذاری می‌شوند. استفاده از پورت‌های رزرو برای تسهیل شناسایی خدمات مختلف در شبکه صورت می‌گیرد.
  • پورت‌های ثبت شده (registered ports)مجموعه‌ای از پورت‌ها هستند که به صورت استاندارد برای برنامه‌ها و خدمات مختلف در شبکه مورد استفاده قرار می‌گیرند. این پورت‌ها معمولا بین اعداد 1024 تا 49151 شماره‌گذاری می‌شوند و برای مدیریت منابع شبکه توسط سازمان‌ها مورد استفاده قرار می‌گیرند.
  • پورت‌های داینامیک (dynamic ports)پورت‌های داینامیک یا پورت‌های پیش‌فرض، پورت‌هایی هستند که به صورت داینامیک توسط سیستم‌عامل یا برنامه‌ها برای برقرای اتصالات انتخاب می‌شوند. این پورت‌ها برخلاف پورت‌های رزرو که شماره‌گذاری ثابتی دارند، به صورت پویا و اتفاقی برای ارتباطات مختلف استفاده می‌شوند. محدوده پورت‌های داینامیک بین 49152 تا 65535 است. برنامه‌های کلاینت معمولا از این پورت‌ها برای برقراری ارتباط با سرورها استفاده می‌کنند. زمانی که یک برنامه یا سرویس جدید شروع به فعالیت می‌کند و نیاز به ارتباط شبکه دارد، معمولا یک پورت داینامیک از محدوده پورت‌ها به صورت تصادفی به آن برنامه اختصاص داده می‌شود. این پردازش برای پیشگیری از تداخل در استفاده از پورت‌ها توسط برنامه‌های دیگر است.

پروتکل­‌های مختلف:

هر پروتکل در شبکه مانند TCP یا UDP برای ارتباطات مختلف از پورت‌ها استفاده می‌کند. این پورت‌ها به انواع ارتباطات مختلف، مانند ارسال ایمیل، مرور وب، ارتباط با دیتابیس و ... اختصاص دارند. برای مثال، پورت 80 برای پروتکل http و پورت 443 برای پروتکل https استفاده می‌شوند.

مشاهده پورتهای باز
مشاهده پورتهای باز

ارتباطات دو سویه:

ارتباطات در دو سمت (درخواست و پاسخ) از طریق پورت­‌ها امکان­پذیر است. یک پورت ممکن است برای ارسال درخواست و دیگری برای دریافت پاسخ استفاده شود.

امنیت:

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

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

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

برای مشاهده پورت‌های باز در لینوکس می­‌توان از چندین روش مختلف استفاده کرد. این روش­‌ها عبارتند از:

  • Netstat
  • ss (socket statistics)
  • lsof (list open files)
  • nmap
  • netcat
  • grep

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

توجه داشته باشید که برای اجرای همه دستورات گفته شده در این مطلب، باید دسترسی روت (root) داشته باشید و قبل از هر دستور نیاز به نوشتن sudo است تا بتوانید به اطلاعات پورت­‌ها دسترسی پیدا کنید.

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

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

به منظور مشاهده پورت‌های باز در لینوکس با استفاده از netstat می‌­توانید از دستورات زیر استفاده کنید:

				
					netstat -tulpn
				
			

دستور با تمام اتصالات را با جزئیات نمایش می­‌دهد. با استفاده از آپشن­‌هایی که این دستور دارد می­‌توانید خروجی مورد نظر خود را مشاهده کنید:

  • a (all)- نمایش تمام اتصالات فعال حتی اتصالات در حال شنود (LISTEN)
  • t (TCP)- نمایش اطلاعات مربوط به پروتکل TCP
  • u (UPD)- نمایش اطلاعات مربوط به پروتکل UDP
  • l (LISTENING)- نمایش پورت‌های در حال شنود (LISTEN)
  • p (program)- نمایش برنامه‌ها و PID مربوط به هر اتصال
  • n (numeric)- نمایش اطلاعات به صورت عددی برای آدرس‌ها و پورت‌ها
  • r (route)- نمایش جدول مسیریابی

با استفاده از دستور زیر می­‌توانید پورت­‌هایی که در حال گوش دادن هستند را مشاهده کنید:

				
					netstat -tulpn | grep LISTEN
				
			

نمایش اطلاعات یک پورت خاص:

				
					netstat -tulpn | grep :<port_number>
				
			

<port_number> باید با شماره پورت مورد نظر جایگزین شود.

نمایش اطلاعات مربوط به یک پورت خاص:

				
					netstat -an | grep :<port_number>
				
			

<port_number> باید با شماره پورت مورد نظر جایگزین شود.

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

				
					netstat -tulpn | grep <program_name>
				
			

به جای <program_name> باید نام برنامه‌­ای که از پورت مورد نظر استفاده می‌کند را بنویسید.

نمایش اطلاعات یک پروتکل در حال گوش دادن:

				
					Netstat -tulpn | grep LISTEN | grep <protocol>
				
			

<protocol> باید با udp یا tcp جایگزین شود.

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

دستورات بالا همه پروسه­‌ها، پورت­‌ها و اتصالات باز در سیستم را به شما نمایش می­‌دهد، که با استفاده از آن­ها می­‌توانید وضعیت پورت­‌های باز در لینوکس را بررسی کنید.

به عنوان مثال، دستور زیر به شما نشان می­‌دهد که پورت 443 که پورت پیش­‌فرض https است، باز است یا نه.

				
					netstat -tulpn |  grep LISTEN | grep :80
				
			

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

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

				
					ss [options][ FILTER ]
				
			

بدون دیدگاه

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

هاستvpsسرور اختصاصی