4 دستور اصلی برای یافتن پورت های باز در اوبونتو
08 ژانویه 2023
خواندن 2 دقیقه
ترلان شاهماری

4 دستور اصلی برای یافتن پورت های باز در اوبونتو

4/5 - (5 امتیاز)

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

معرفی 4 دستور برای یافتن پورت های باز در اوبونتو

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

یافتن پورت های باز با استفاده از دستور nmap

network mapper یا همان nmap، یک ابزار متن باز و رایگان است که برای اسکن پورت های سیستم استفاده می شود. همچنین، برای یافتن آسیب پذیری ها و کشف شبکه ها نیز می توان از این ابزار استفاده کرد. در این بخش از nmap برای دریافت لیست پورت های باز استفاده می کنیم:

نکته: توجه داشته باشید که باید کش اوبونتو را قبل از نصب nmap پاک کنید. 

[email protected]:~$ sudo apt-get update -y

حال می توانید nmap را با استفاده از دستور زیر در ترمینال نصب کنید:

[email protected]:~$ sudo apt-get install nmap -y

پس از نصب nmap، نصب را بررسی نسخه nmap بررسی کنید:

[email protected]:~$ nmap --version

ابزار nmap گزینه های زیادی برای ارائه دارد که با استفاده از دستور زیر می توانید تمام این گزینه ها را مشاهده کنید:

[email protected]:~$ man nmap

برای اسکن localhost نیز می توانید دستور زیر را بکار گیرید: 

[email protected]:~$ sudo nmap localhost

یافتن پورت های باز با استفاده از دستور nmap

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

[email protected]:~$ sudo nmap 93.184.216.34

شما می توانید از ابزار nmap برای اسکن طیف وسیعی از آدرس های IP نیز استفاده کنید:

[email protected]:~$ sudo nmap 192.168.1.1-10

گاها شما می توانید پورت ها را روی هاست های تصادفی اسکن کنید. این پورت ها به صورت تصادفی و در subnet های مختلف قرار دارند. سپس بهترین راه حل این است که یک فایل میزبان با تمام نام هاست بنویسید که با درج فاصله یا خطوط و تب از هم جدا می شوند. این فایل را می توان با nmap به صورت زیر استفاده کرد:

[email protected]:~$ sudo nmap -iL hosts.txt

شما می توانید از nmap برای اسکن یک پورت واحد در سیستم، با تعیین پورت و با استفاده از flag -p به همراه nmap استفاده کنید:

[email protected]:~$ sudo nmap -p 80 localhost

سپس می توانید محدوده پورت ها را با استفاده از nmap روی یک سیستم اسکن کنید:

[email protected]:~$ sudo nmap -p 80-85 localhost

با دستور موجود در این قسمت نیز می توانید تمام پورت های سیستم را اسکن کنید:

[email protected]:~$ sudo nmap -p- localhost

حال برای دریافت لیستی از پورت های باز رایج در سیستم خود می توانید از دستور nmap با flag -f استفاده کنید:

[email protected]:~$ sudo nmap -F localhost

به ترتیب، پورت های TCP را می توان با استفاده از nmap روی سیستم اسکن کرده و با افزودن flag -t همراه دستور nmap به کار برد و به طور مشابه، پورت های UDP را با flag -u با دستور nmap استفاده کرد:

[email protected]:~$ sudo nmap -sT localhost
 [email protected]:~$ sudo nmap -sU localhost

فهرست کردن پورت های باز با استفاده از دستور lsof

دستور lsof اختصاری برای عبارت “list open files” می باشد و برای بدست آوردن اطلاعات مربوط به فایل های باز استفاده شده توسط فرآیندهای مختلف در یونکس و لینوکس استفاده می شود. در اکثر توزیع های لینوکس این ابزار از پیش نصب شده است. ما می توانیم نصب lsof را فقط با بررسی نسخه آن تایید کنیم:

[email protected]:~$ lsof -v

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

[email protected]:~$ sudo apt-get update -y
[email protected]:~$ sudo apt-get install lsof

می توانید از دستور lsof به همراه گزینه های دیگر استفاده کنید. لیست تمام گزینه های موجود را می توان با استفاده از دستور زیر در ترمینال نمایش داد: 

[email protected]:~$ man lsof

در این قسمت از دستور lsof برای نمایش پورت های یک سیستم به روش های مختلف استفاده کنید: 

[email protected]:~$ sudo lsof -i

فهرست کردن پورت های باز با استفاده از دستور lsof

همانطور که می بینید تصویر بالا تمام پورت های باز را به نمایش گذاشته است. ولی کارکرد lsof به این مورد محدود نمی شود، می توانید از این دستور برای نمایش سوکت های باز نیز استفاده کنید:

[email protected]:~$ sudo lsof -n -P | grep LISTEN

می توانورت های فیلتر شده را براساس یک پروتکل با استفاده از lsof لیست کرد. پس دستور زیر را اجرا کنید تا تمام اتصالات TCP فهرست شود:

[email protected]:~$ sudo lsof -i tcp
 
به همین روش شما می توانید اتصالات UDP را نیز با دستور lsof فهرست کنید:
[email protected]:~$ sudo lsof -i udp

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

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

[email protected]:~$ sudo apt-get update -y
[email protected]:~$ sudo apt-get install net-tools -y

پس از اجرای دستور بالا، می توانید فرآیند نصب را با بررسی نسخه netstat در سیستم بررسی کنید:

[email protected]:~$ netstat --version

اگر نسخه net-tool نمایش داده شد، نصب به درستی انجام شده است. در غیر این صورت دستورات نصب را باید دوباره اجرا کنید. برای دریافت نمای کلی از تمام گزینه های موجود، به همراه دستور netstat دستور زیر را اجرا کنید:

[email protected]:~$ man netstat

برای بدست آوردن تمام پورت های باز با ابزار netstat در اوبونتو می توانید دستور زیر را اجرا کنید:

[email protected]:~$ sudo netstat -l

 می توان از دستور netstat برای فیلتر کردن عمل گوش دادن به پورت های TCP و UDP به وسیله درج یک flag در دستور زیر، استفاده کرد:

[email protected]:~$ sudo nmap 93.184.216.34

شما می توانید از ابزار nmap برای اسکن طیف وسیعی از آدرس های IP نیز استفاده کنید:

[email protected]:~$ sudo nmap 192.168.1.1-10

گاها شما می توانید پورت ها را روی هاست های تصادفی اسکن کنید. این پورت ها به صورت تصادفی و در subnet های مختلف قرار دارند. سپس بهترین راه حل این است که یک فایل میزبان با تمام نام هاست بنویسید که با درج فاصله یا خطوط و تب از هم جدا می شوند. این فایل را می توان با nmap به صورت زیر استفاده کرد:

[email protected]:~$ sudo nmap -iL hosts.txt

شما می توانید از nmap برای اسکن یک پورت واحد در سیستم، با تعیین پورت و با استفاده از flag -p به همراه nmap استفاده کنید:

[email protected]:~$ sudo nmap -p 80 localhost

سپس می توانید محدوده پورت ها را با استفاده از nmap روی یک سیستم اسکن کنید:

[email protected]:~$ sudo nmap -p 80-85 localhost

با دستور موجود در این قسمت نیز می توانید تمام پورت های سیستم را اسکن کنید:

[email protected]:~$ sudo nmap -p- localhost

حال برای دریافت لیستی از پورت های باز رایج در سیستم خود می توانید از دستور nmap با flag -f استفاده کنید:

[email protected]:~$ sudo nmap -F localhost

به ترتیب، پورت های TCP را می توان با استفاده از nmap روی سیستم اسکن کرده و با افزودن flag -t همراه دستور nmap به کار برد و به طور مشابه، پورت های UDP را با flag -u با دستور nmap استفاده کرد:

[email protected]:~$ sudo nmap -sT localhost
[email protected]:~$ sudo nmap -sU localhost

فهرست کردن پورت های باز با استفاده از دستور ss

به طور معمول، دستور ss برای نمایش اطلاعات مربوط به سوکت ها در سیستم لینوکس استفاده می شود. این ابزار نسبت به netstat می تواند اطلاعات دقیق تری درباره سوکت ها ارائه بدهد. دستور  ss در اکثر توزیع های لینوکس از پیش نصب شده است، بنابراین نیازی به نصب آن نیست. با افزودن man در دستور ss می توانید فهرستی از تمام گزینه ها را دریافت کرد:

[email protected]:~$ man ss

برای بدست اوردن لیستی از تمام اتصالات بدون در نظر گرفتن وضعیت آنها، می توانید از دستور ss بدون flag استفاده کنید:

[email protected]:~$ sudo ss

سپس برای بدست آوردن لیست تمام پورت ها (listening ports) را بدست آورید. برای این کار از دستور ss با flag -l استفاده کنید. این flag فقط برای listening ports کاربرد دارد:

[email protected]:~$ sudo ss -l

حال برای لیست کردن تمام پورت های listening TCP از دستور ss همراه با flag -t و در کنار آن -l استفاده کنید:

[email protected]:~$ sudo ss -lt

به همان صورت می توانید از این دستور برای پورت های listening UDP نیز استفاده کنید. و flag های -u و -l را نیز به همراه آن استفاده کنید:

[email protected]:~$ sudo ss -lu

شما می توانید دستور ss را برای به دست آوردن لیست تمام اتصالات با منبع یا پورت مقصد استفاده کنید. در مثال زیر تمام اتصالات با مقصد یا پورت مبدا 22 دریافت می شود:

[email protected]:~$ sudo ss -at ‘( dport = :22 or sport = :22 )’

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

همانطور که میبینید سرورهای لینوکس غنی از ابزارهای مورد استفاده برای تشخیص شبکه ها می باشد. سرورهای لینوکس امروزه طرفداران زیادی یافته اند. سایت آذرسیس نیز در این راستا به ارائه سرور مجازی لینوکس پرداخته و شما کاربران عزیز می توانید با ارسال تیکت برای خرید و نصب از تمام خدمات و سرورهای ارائه شده در این سایت بهره مند شوید.

نتیجه گیری

مطلع بودن از پورت های باز در سیستم برای افرادی مانند مدیران سیستم، متخصصان امنیت و سایر افرادی که با فناوری اطلاعات سرو کار دارند، بسیار مهم است. در این میان سیستم لینوکس ابزارهای زیادی را ارائه می دهد که می تواند برای فعالیت های متعدد در شبکه مفید باشد. در این مقاله، ما به بررسی 4 دستور مهم یعنی ss ,lsof ,netstat و nmap برای یافتن پورت های باز شبکه در اوبونتو پرداختیم. با مطالعه این مقاله قادر خواهید بود تمام پورت های شنیداری سیستم خود را فهرست کنید.

لینک کوتاه مقاله
https://azarsys.com/?p=13441


نویسنده مقاله
مقالات مرتبط
دیدگاه بگذارید