مشاهده پورتهای باز در لینوکس یکی از مهمترین وظایف مدیران سیستم و شبکه است. پورتها، کانالهای ارتباطی بین دستگاهها در شبکه هستند که برای انتقال دادهها و ارتباط بین سرویسها استفاده میشوند.
هر پورت با فرآیند یا سرویس خاصی مرتبط است و به واسطه آن میتوان یک یا چندین شبکه را بهصورت همزمان بدون ایجاد اختلال در رایانه به اجرا درآورد.
در لینوکس، هر سرویس یا برنامهای که در حال اجرا است، به یک یا چند پورت متصل میشود تا بتواند درخواستها را دریافت و به آنها پاسخ دهد.
فرقی نمیکند در حال عیبیابی مشکلات اتصال به شبکه باشید یا پیکربندی فایروال، یکی از اولین مواردی که باید بررسی کنید این است که چه پورتهایی روی سیستم شما باز شده است.
در شبکه، پورت را میتوان راهی برای شناسایی اپلیکیشن یا سرویس مقصد توصیف کرد. هنگام نصب و پیکربندی برخی ابزارها، ممکن است برخی از پورتها را باز کنید.
مشاهده پورتهای باز در لینوکس به معنای تشخیص و نمایش پورتهایی است که در حال پاسخ دادن به درخواستها هستند و از طریق شبکه قابل دسترس میباشند.
برای مشاهده پورتهای باز در لینوکس، میتوان از ابزارهای مختلفی مانند ss و Nmap، netstat استفاده کرد. این ابزارها اطلاعاتی مانند شماره پورت، آدرس IP متصل و وضعیت اتصال را نمایش میدهند.
با استفاده از این اطلاعات، میتوانید پورتهای غیرضروری را شناسایی کرده و در صورت لزوم آنها را ببندید تا امنیت سیستم خود را تقویت کنید.
در این مقاله روشهای مختلف برای فهمیدن اینکه چه پورتهایی خارج از سیستم لینوکس شما باز میشوند را توضیح خواهیم داد.
پورتها چگونه کار میکنند
پورتها به سه دسته تقسیم میشوند. هر دسته به عنوان محدوده ارزش پورت برچسب گذاری میشود.
پورتهای 0 تا 1023: پورتهایی هستند که برای فرآیندهای سیستمی رزرو شدهاند و طیف گستردهای از خدمات شبکه را ارائه میدهند. لازم است برای استفاده از آنها امتیازات administrator داشته باشید.
پورتهای 1024 تا 49151: اینها محدوده پورتهای کاربر هستند که برای خدمات خاص تعیین شدهاند.
پورتهای 49152 تا 65535: اینها محدوده پورتهای خصوصی برای خدمات سفارشی هستند.
پورتهای موجود، در سیستم عامل لینوکس در فایل /etc/services قرار دارند که هر سرویس به پورتهای مختلف اشاره دارند.
بررسی پورتهای باز در لینوکس
شما میتوانید پورتهایی که برنامههای شما در سیستم عامل لینوکس مطابق آن عمل می کنند را با چند دستور کاربردی بررسی کنید.
دستور netstat
دستور netstat در سیستمعامل مبتنی بر Unix استفاده میشود تا اطلاعات مربوط به اتصالات شبکه، پورتها، آدرسهای IP و… را نمایش دهد که کدام پورتها باز هستند یا اتصال برقرار کردهاند.
این کار با بستههای net-tools ارائه میشود. اگر netstat در سیستم شما وجود ندارد، آن را با اجرای دستور زیر نصب کنید.
برای سیستمهای مبتنی بر دبیان دستور زیر را اجرا کنید.
sudo apt install net-tools
برای سیستمهای مبتنی بر CentOS یا RHEL دستور زیر را اجرا کنید.
yum install net-tools
با اجرای دستور زیر، میتوانید اطلاعات بیشتری دریافت کنید.
netstat
برای دریافت اطلاعات بیشتر میتوانید از پارامترهای زیر کمک بگیرید.
sudo netstat -plunt
پارامترهای کاربردی در netstat
در ادامه مطلب مشاهده پورتهای باز در لینوکس، شما را با دیگر پارامترهای کاربردی در netstat آشنا خواهیم کرد.
- p: نمایش نام PID/برنامه مربوط به یک اتصال خاص
- l: فقط پورت های ورودی را نشان دهید
- u: فهرست کردن پورت های UDP
- n: نمایش آدرس های عددی
- t: لیست پورت های TCP
دستور nmap
Nmap، یک ابزار اسکن شبکه است که عمدتا برای بررسیهای امنیتی و تست نفوذ استفاده میشود، زیرا میتواند پورتها و سرویسهای باز را کشف و آسیب پذیریها را شناسایی کند. اگر Nmap در سیستم شما وجود ندارد، آن را با اجرای دستور زیر نصب کنید.
برای سیستمهای مبتنی بر دبیان دستور زیر را اجرا کنید.
sudo apt install nmap
برای سیستمهای مبتنی بر CentOS یا RHEL دستور زیر را اجرا کنید.
yum install nmap
دستور nmap برای اهداف بسیاری استفاده میشود و برای استفاده از آن در اسکن پورت، باید از برخی پارامترها استفاده کنید.
اگر هیچ پارامتری در رابطه با پروتکل وجود نداشته باشد، فقط پورت TCP را اسکن میکند، بنابراین باید آن را برای UDP مشخص کنید.
پارامترهای کاربردری در nmap
دستور nmap دارای مجموعهای از پارامترها است که میتوانید برای تنظیمات مختلف استفاده کنید.
- sT: اسکن پورتهای TCP
- sU: اسکن پورتهای UDP
- p: اسکن تمام پورتها (۰ – ۶۵۵۳۵)
$ sudo nmap -sT -sU -p- localhost
دستور ss
خط فرمان ss را میتوان به عنوان جایگزینی برای دستور netstat در نظر گرفت. این دستور سادهتر و سریعتر از netstat میباشد.
بیشتر بدانید : نحوه فهرست کردن و حذف قوانین فایروال Iptables
همچنین بدون استفاده از هیچ پارامتری اطلاعات زیادی را ارائه میدهد.
ss
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
u_str ESTAB 0 0 * 3035735 * 3035736
u_str ESTAB 0 0 * 39874 * 39876
میتوانید نتیجه را با پارامترهایی مانند پارامترهای استفاده شده برای دستور netstat فیلتر کنید.
ss -lntup
دستور lsof
آخرین ابزاری که برای جستجو در پورتهای باز بررسی خواهیم کرد، دستور lsof است که برای فهرست کردن فایلهای باز در لینوکس استفاده میشود.
برای فهرست کردن تمام فایلهای اینترنت و شبکه، از دستور -i استفاده کنید. توجه داشته باشید که این دستور ترکیبی از نام سرویسها و پورتهای عددی را نشان میدهد.
sudo lsof -i
برای پیدا کردن اینکه کدام برنامه در یک پورت خاص پاسخ میدهد، lsof را در دستور زیر اجرا کنید.
sudo lsof -i :80
جمع بندی
در این مقاله، نحوه استفاده از دستورات netstat ،ss و lsof را برای مشاهده پورتهای باز در لینوکس مورد بررسی قرار دادهایم. پورتهای باز در لینوکس نقش حیاتی در ارتباطات شبکه دارند. باز بودن یک پورت میتواند به سرویسدهندهها اجازه دهد تا به درخواستها و ارتباطات شبکه پاسخ دهند. برای مدیریت و امنیت پورتهای باز در لینوکس، میتوان از ابزارها و تکنیکهای مختلفی استفاده کرد. دستورات ذکر شده در این مطلب میتواند برای مدیران شبکه که نیاز به شناسایی آسیب پذیریهای امنیتی احتمالی یا عیبیابی مشکلات اتصال شبکه دارند، موثر باشد.
[yasr_overall_rating]