جدول محتوایی
بررسی اینکه کدام پورت ها (TCP و UDP) باز هستند و گوش دادن به رابطهای شبکه یک سرور در هنگام امنیت سرور و همچنین عیبیابی مشکلات مربوط به سرویس بسیار مهم است. پورتهای باز آسیبپذیر میتوانند عامل نقضهای امنیتی شدید در سرور باشند. یافتن و بسته شدن/غیرفعال شدن چنین پورت هایی الزامی است.
در صورت بروز مشکلات مربوط به سرویس، بررسی اینکه کدام پورت ها در حال استفاده هستند می تواند به عنوان مکانیزم عیب یابی برای یافتن اینکه آیا چندین سرویس در یک پورت در حال گوش دادن هستند یا خیر استفاده می شود.
شماره پورت های رایج زیر هستند:
- پورت های 0 تا 1023 پورت های شناخته شده ای هستند
- پورت های 1024 تا 49151 پورت های ثبت شده هستند (*اغلب توسط یک توسعه دهنده نرم افزار ثبت می شود تا یک پورت خاص را برای برنامه خود تعیین کند)
- پورت های 49152 تا 65535 پورت های عمومی هستند
Port | Name of the Service | Transport protocol |
---|---|---|
20,21 | FTP | TCP |
22 | SSH | TCP and UDP |
23 | Telnet | TCP |
25 | SMTP | TCP |
50,51 | IPSec | / |
53 | DNS | TCP and UDP |
67,68 | DHCP | UDP |
69 | TFTP | UDP |
80 | HTTP | TCP |
110 | POP3 | TCP |
119 | NNTP | TCP |
123 | NTP | TCP |
135-139 | NetBIOS | TCP and UDP |
143 | IMAP | TCP and UDP |
161,162 | SNMP | TCP and UDP |
389 | Lightweight Directory Access | TCP and UDP |
443 | HTTPS | TCP and UDP |
465 | SMTP over SSL | TCP |
989 | FTP Protocol (data) over TLS/SSL | TCP and UDP |
990 | FTP Protocol (data) over TLS/SSL | TCP and UDP |
993 | IMAP over SSL | TCP |
995 | POP3 over SSL | TCP |
3389 | Remote Desktop | TCP and UDP |
Linux
یک مثال از این زمانی است که هر دو سرویس Apache و Nginx بر روی یک سرور اجرا می شوند.
1. استفاده از دستور lsof برای بررسی پورت tcp
lsof (فیلم های باز لیست) دستوری است که برای نمایش لیست تمام فایل های باز در یک سرور و سرویس هایی که آنها را باز کرده اند استفاده می شود.
# sudo lsof -i -P -n
با استفاده از دستورات pipe و grep می توان نتیجه دستور بالا را فیلتر کرد تا نتیجه فایل هایی که در پورت های مختلف سرور در حال گوش دادن هستند را نشان دهد.
# sudo lsof -i -P -n | grep LISTEN
# doas lsof -i -P -n | grep LISTEN (for OpenBSD systems)
3.با گرفتن آخرین خط از خروجی نمونه، نتیجه را می توان به صورت زیر توضیح داد:
named 812 named 23u IPv4 16018 0t0 TCP 123.123.123.12:53 (LISTEN)
- named: نام سرویس
- 123.123.123.12 : IP که سرویس نامگذاری شده به آن متصل است.
- 53 : پورت TCP سرویسی که در حال استفاده است.
- 812 : شناسه فرآیند سرویس
2. با استفاده از دستور netstat
netstat (آمار شبکه) یک ابزار خط فرمان است که می تواند برای نظارت بر اتصالات شبکه ورودی و خروجی در یک سرور استفاده شود.
1.دستور netstat به همراه دستور grep برای بررسی سرویس های شنیداری می تواند در دستور زیر استفاده شود.
# netstat -tulpn | grep LISTEN
# netstat -nat | grep LISTEN (for OpenBSD systems)
دستور netstat در آخرین نسخه های توزیع لینوکس منسوخ شده است. دستور ss جای خود را گرفته است.
syntax استفاده از دستور ss به شرح زیر است:
# sudo ss -tulpn
سوئیچ های دستور ss به شرح زیر است:
- t: فقط سوکت های TCP را نشان دهید.
- u: فقط سوکت های UDP را نشان دهید.
- l: نمایش سوکت های گوش دادن
- p: نام فرآیندی را که سوکت را باز کرده است نشان دهید.
- n: سعی نکنید نام سرویس ها را حل کنید.
3 – استفاده از دستور nmap
nmap (نقشهنگار شبکه) یک ابزار دستوری اسکنر شبکه است که میتوان از آن برای یافتن میزبانها و سرویسهای روی سرور استفاده کرد. این کار با ارسال بسته ها به سرور و تجزیه و تحلیل بیشتر نتایج انجام می شود.
سینتکس کلی دستور nmap که از داخل سرور قابل اجرا است به شرح زیر است:
# sudo nmap -sT -O localhost
# sudo nmap -sTU -O 123.123.123.12 (scan both TCP and UDP for server)
باز و بسته بودن پورت udp و tcp در Windows
در سرورهای ویندوز می توان از دستور netstat برای بررسی پورت هایی که در حال حاضر در سرور استفاده می شود استفاده کرد.
syntax دستور netstat که در سرورهای ویندوز استفاده می شود به شرح زیر است:
netstat -bano | more <
netstat -bano | findstr /R /C:"[LISTENING]" <
هر فیلد در نتیجه فوق به معنای زیر است:
- Proto : پروتکل مورد استفاده برای سوکت (TCP/UDP).
- Local address : منبع آدرس IP و پورتی که سرویس به آن گوش می دهد.
- State : وضعیت فعلی سرویس
- PID : شناسه فرآیند سرویس و به دنبال آن نام سرویس.