
به اشتراک بگذارید

به اشتراک بگذارید
در دنیای میزبانی وب و مدیریت زیرساخت، پورتها مانند درهای ورود و خروج یک ساختمان بزرگ هستند؛ اگر شما ندانید کدام درها باز هستند، عملاً کنترلی بر امنیت و ترافیک ساختمان خود ندارید. مدیریت پورت های لینوکس یکی از حیاتیترین مهارتها برای هر مدیر سیستم یا توسعهدهندهای است که با سرورهای لینوکسی سروکار دارد. شناسایی پورت های باز در لینوکس به شما کمک میکند تا علاوه بر افزایش امنیت، دلیل اختلال در سرویسهای خود را پیدا کنید.
📌 چرا مانیتورینگ پورتها برای شما حیاتی است؟
تجربه ما نشان میدهد که اکثر اختلالات شبکه، از تداخل دیتابیس گرفته تا نفوذهای امنیتی، با یک بررسی دقیق در سطح CLI قابل شناسایی و حل هستند. در این مقاله از بلاگ وب داده، به دور از مباحث تئوریک، مستقیماً به سراغ ابزارهای عملیاتی میرویم تا یاد بگیرید چگونه وضعیت لحظهای پورتهای سرور خود را مانیتور کرده و کنترل کامل ترافیک ورودی را به دست بگیرید.
آنچه در این مقاله میخوانید:
در لینوکس، پورت یک نقطه انتهایی ارتباطی است. اگر سرور را یک مجتمع مسکونی در نظر بگیرید، آدرس IP ساختمان کل مجتمع است و شماره پورت، شماره هر واحد است؛ هر سرویس (مثل وبسرور یا دیتابیس) در یک واحد خاص مستقر میشود.
ساختار معماری ارتباطات:
اینترنت (کاربر)
⬇️
Gateway / Firewall
⬇️
[سرور لینوکس]
├─ پورت 22 (SSH)
├─ پورت 80 (HTTP)
└─ پورت 3306 (MySQL)
مدیریت پورت های لینوکس فقط یک وظیفه ادمینی نیست؛ بلکه یک ضرورت برای تداوم کسبوکار شماست:
برای اجرای بدون نقص دستورات مانیتورینگ شبکه، سیستم شما باید استانداردهای زیر را دارا باشد:
sudo یا کاربر root الزامی است. بدون این سطح دسترسی، سیستمعامل اجازه دسترسی به فایلسیستم /proc (جایی که اطلاعات سوکتها ذخیره میشود) را نمیدهد و شما نمیتوانید نام پردازشها (Process Names) یا PIDها را مشاهده کنید.sudo apt install lsof یا sudo yum install lsof آن را نصب کنید.uname -r استفاده کنید.برای اجرای دستورات این مقاله به یک سرور لینوکسی با دسترسی root نیاز دارید. سرورهای مجازی وبداده با دسترسی کامل root ارائه میشوند.
در این بخش همراه ما باشید تا به صورت عملی و با سناریوهای واقعی، قدرت ترمینال لینوکس را در مانیتورینگ شبکه ببینیم. ما در این آموزش از 3 منبع (وبسرور، دیتابیس و دسترسی راه دور) برای تست استفاده میکنیم و یاد می گیرید چگونه از طریق CLI بررسی کنید که پورتی در لینوکس استفاده می شود یا خیر .
نمودار سناریو:
WebDade-Server-IP
1🖥️ Nginx (Port 80)
[سرویس دهی وب]
2🗄️ MySQL (Port 3306)
[ذخیره سازی داده]
3💾 SSH (Port 22)
[دسترسی مدیریت]
دستور ss مخفف Socket Statistics است؛ این ابزار جایگزین مدرن و بسیار سریعتر برای netstat محسوب میشود. برتری فنی ss در این است که به جای پردازش فایلهای متنی سنگین در /proc/net (که در سرورهای با ترافیک بالا باعث کندی میشود)، مستقیماً از رابط Netlink هسته برای استخراج اطلاعات سوکتها استفاده میکند. این یعنی سرعت بیشتر و فشار کمتر به CPU.
دستور بررسی پورت در لینوکس:
sudo ss -tulpn | grep LISTEN 
t (TCP)-: نمایش پورتهایی که از پروتکل ا TCP استفاده میکنند.u (UDP)-: نمایش پورتهای پروتکل UDP (مناسب برای سرویسهایی مثل DNS یا VoIP).l (Listening)-: مهمترین سوئیچ برای ما؛ چون فقط پورتهایی را نشان میدهد که آماده دریافت اتصال هستند.p (Processes)-: شناسایی دقیق نام اپلیکیشن و PID فرآیندی که پورت را اشغال کرده است.n (Numeric)-: جلوگیری از ترجمه شماره پورت به نام سرویس (مثلاً نمایش 80 به جای http) که سرعت خروجی را افزایش میدهد.ss انتخاب اول حرفهایها است. این ابزار حتی وضعیت سوکتهای داخلی سیستم (Unix Domain Sockets) را هم به خوبی مانیتور میکند.دستور lsof مخفف List Open Files است. در معماری لینوکس/یونیکس، ارتباطات شبکه (Sockets) به عنوان فایل در نظر گرفته میشوند. این ابزار به شما اجازه میدهد “کالبدشکافی” کنید که دقیقاً کدام فایل یا پردازش در لایه شبکه فعال است.به عبارت ساده تر به شما میگوید دقیقاً “چه کسی” پشت پورت است.
مشاهده لیست پورت های باز در لینوکس با lsof:
sudo lsof -i -P -n | grep LISTEN i (Internet)-: فیلتر کردن خروجی برای نمایش فقط فایلهای مربوط به شبکه (Internet Files).P (Port Names)-: جلوگیری از تبدیل شماره پورتها به نام سرویس (مثلاً نمایش 80 به جای HTTP)؛ این کار سرعت اجرای دستور را بالا میبرد.n (Network Addresses)-: جلوگیری از تبدیل آدرسهای IP به Hostname (DNS Resolution)؛ این سوئیچ برای جلوگیری از تأخیر در شبکههای کند حیاتی است.
◀️ بررسی یک پورت خاص (مثلاً پورت 22):
اگر میخواهید بدانید چه پردازشی پورت SSH را اشغال کرده و چه فایلهایی توسط آن باز شده است یا شک دارید که چه کسی به SSH شما وصل است از دستور زیر استفاده کنید:
sudo lsof -i:22 برخلاف سایر ابزارها، lsof علاوه بر شماره پورت، نام کاربری (USER) مالک پردازش را هم نشان میدهد که برای شناسایی نفوذ یا دسترسیهای غیرمجاز فوقالعاده کاربردی است.
دستور netstat (Network Statistics) قدیمیترین و شناختهشدهترین ابزار برای مانیتورینگ شبکه است. اگرچه در توزیعهای مدرن لینوکس به نفع ss کنار گذاشته شده است، اما به دلیل حضور طولانی در سیستمهای یونیکس، همچنان در میان مدیران سیستم باسابقه محبوبیت دارد. این دستور بخشی از بسته net-tools است.
sudo netstat -tulpn | grep LISTEN 
net-tools (شامل دستور netstat) به صورت پیش فرض نصب نیست. در صورت نیاز آن را با دستور sudo apt install net-tools نصب کنید.ss استفاده کنید؛ این ابزار جایگزین مدرن netstat است، اطلاعات را مستقیماً از Kernel دریافت میکند و در سرورهای پرترافیک عملکرد بهتری دارد.گاهی لازم است بدانید از “بیرون” سرور، چه پورتهایی باز دیده میشوند. این کار برای شناسایی پورت های در حال استفاده لینوکس از نظر امنیتی عالی است.ابزار nmap به شما کمک میکند تا امنیت سرور خود را از دید یک ناظر خارجی یا یک نفوذگر بسنجید. برای اجرای آن کافای است یکی از دستورهای زیر را وارد کنید.
# اسکن پورتهای TCP
sudo nmap -sT -O [Server-IP]
# اسکن پورتهای UDP
sudo nmap -sU -O [Server-IP]
# اسکن هر دو (TCP و UDP)
sudo nmap -sT -sU -O [Server-IP] 
⚠️ عیبیابی نصب: اگر پس از اجرای دستور با خطای command not found مواجه شدید، به این معناست که این ابزار روی سرور شما نصب نشده است. برای رفع این مشکل و نصب ابزار و آپدیت آن، از دستورات زیر استفاده کنید:
نصب nmap:
sudo apt install nmap
sudo apt update پس از نصب، با دستور زیر آن را تست کنید و سپس دستور اصلی را اجرا کنید:
nmap --version در جدول زیر به مقایسه مختصر ابزارهای Listening Ports در لینوکس می پردازیم
| ویژگی | ss | lsof | netstat | nmap | netcat (nc) |
|---|---|---|---|---|---|
| سرعت | بسیار بالا | متوسط | متوسط | پایین | بالا |
| نمایش پردازش | بله | بله (دقیق) | بله | خیر | خیر |
| اسکن راه دور | خیر | خیر | خیر | بله | بله |
| نصب پیشفرض | بله | معمولاً بله | نیاز به net-tools | نیاز به نصب | معمولاً بله |
net-tools داشته باشند. همچنین، اسکن با nmap روی سرورهای دیگران بدون اجازه، میتواند منجر به مسدود شدن IP شما توسط فایروالهای هوشمند شود.در این مقاله آموختیم که پورتها نباید به حال خود رها شوند. مدیریت پورت های لینوکس به شما این قدرت را میدهد که هم امنیت را تضمین کنید و هم در زمان بروز اختلال، سریعترین واکنش را داشته باشید. همیشه به یاد داشته باشید که لیست پورت های باز لینوکس را داشته باشید؛ زیرا این اولین قدم در دیباگ کردن هر سروری است. با استفاده از ابزارهای معرفی شده مثل ss و lsof دیگر هیچ فعالیتی در سرور شما مخفی نخواهد ماند.
توصیههای امنیتی:
امیدوارم این مقاله از بلاگ وب داده برای شما مفید بوده باشد؛ در صورت داشتن هرگونه سوال فنی، در بخش نظرات با ما در ارتباط باشید.
بهترین و سریعترین گزینه برای مشاهده و مدیریت پورت های باز لینوکس، استفاده از دستور sudo ss -tulpn است.