انڈروئد

لینکس میں کھلی بندرگاہوں کی جانچ (اسکین) کیسے کریں

سوا - غابة المعمورة تواجه خطر الاندثار

سوا - غابة المعمورة تواجه خطر الاندثار

فہرست کا خانہ:

Anonim

چاہے آپ نیٹ ورک کنیکٹیویٹی کے مسائل حل کررہے ہو یا ایک فائر وال کو ترتیب دے رہے ہو جو چیک کرنے کے لئے سب سے پہلے چیزوں میں سے ہے وہ ہے جو آپ کے سسٹم پر در حقیقت بندرگاہوں کو کھولتی ہے۔

یہ مضمون آپ کے لینکس سسٹم میں باہر سے بندرگاہوں کو کیا کھولتا ہے اس کے بارے میں جاننے کے ل several کئی طریقوں کی وضاحت کرتا ہے۔

اوپن پورٹ کیا ہے؟

سننے والا بندرگاہ ایک نیٹ ورک پورٹ ہے جس پر ایک ایپلی کیشن سنتا ہے۔ آپ اپنے نظام پر سننے والے بندرگاہوں کی ایک فہرست کو ss ، نیٹ netstat یا ایل ss جیسے کمانڈوں کے ذریعہ نیٹ ورک اسٹیک پر lsof کرسکتے ہیں۔ ہر سننے والا بندرگاہ فائر وال کے استعمال سے کھلا یا بند (فلٹر) ہوسکتا ہے۔

عام اصطلاحات میں ، ایک کھلا بندرگاہ ایک نیٹ ورک پورٹ ہے جو دور دراز مقامات سے آنے والے پیکٹوں کو قبول کرتا ہے۔

مثال کے طور پر ، اگر آپ 80 اور 443 بندرگاہوں پر سننے والا ویب سرور چلا رہے ہیں اور وہ بندرگاہیں آپ کے فائر وال پر کھلی ہوئی ہیں تو کوئی بھی (بلاک شدہ آئی پی کے علاوہ) اپنے براؤزر کا استعمال کرکے آپ کے ویب سرور پر میزبانی شدہ ویب سائٹس تک رسائی حاصل کر سکے گا۔ اس معاملے میں ، 80 اور 443 دونوں کھلی بندرگاہیں ہیں۔

کھلی بندرگاہوں سے حفاظتی خطرہ لاحق ہوسکتا ہے کیونکہ حملہ آور ہر کھلی بندرگاہ کا استعمال خطرے کا استحصال کرنے یا کسی اور طرح کے حملے کرنے کے لئے کر سکتے ہیں۔ آپ کو اپنی درخواست کی فعالیت کے لئے درکار بندرگاہوں کو بے نقاب کرنا چاہئے اور دیگر تمام بندرگاہوں کو بند کرنا چاہئے۔

nmap ساتھ کھلی بندرگاہوں کو چیک کریں

Nmap ایک طاقتور نیٹ ورک اسکیننگ ٹول ہے جو سنگل میزبانوں اور بڑے نیٹ ورکس کو اسکین کرسکتا ہے۔ یہ بنیادی طور پر سیکیورٹی آڈٹ اور دخول جانچ کے لئے استعمال ہوتا ہے۔

اگر دستیاب ہو تو ، جب پورٹ اسکیننگ کی بات آتی ہے تو nmap آپ کا پہلا ٹول ہونا چاہئے۔ پورٹ اسکیننگ nmap علاوہ میک ایڈریس ، او ایس ٹائپ ، کرنل ورژن اور بہت کچھ کا پتہ nmap ۔

کنسول سے جاری مندرجہ ذیل کمانڈ میں یہ طے کیا جاتا ہے کہ کونسی بندرگاہیں نیٹ ورک سے ٹی سی پی کنیکشن کے لئے سن رہی ہیں:

sudo nmap -sT -p- 10.10.8.8

-sT نے -sT کو TCP بندرگاہوں کے لئے اسکین کرنے اور -p- کو 65535 بندرگاہوں کے لئے اسکین کرنے کا بتایا ہے۔ اگر -p- استعمال نہیں ہوا ہے تو -p- صرف 1000 بندرگاہوں کو اسکین کرے گا۔

Starting Nmap 7.60 (https://nmap.org) at 2019-07-09 23:10 CEST Nmap scan report for 10.10.8.8 Host is up (0.0012s latency). Not shown: 998 closed ports PORT STATE SERVICE 22/tcp open ssh 80/tcp open http MAC Address: 08:00:27:05:49:23 (Oracle VirtualBox virtual NIC) Nmap done: 1 IP address (1 host up) scanned in 0.41 seconds

مندرجہ بالا آؤٹ پٹ سے پتہ چلتا ہے کہ ہدف کے نظام پر صرف 22 ، 80 اور 8069 بندرگاہیں کھولی گئیں۔

UDP بندرگاہوں کو اسکین کرنے کے لئے -sU بجائے -sU استعمال کریں:

sudo nmap -sU -p- 10.10.8.8

مزید معلومات کے لئے ملاحظہ کریں اینیمپ مین پیج اور اس ٹول کے دوسرے تمام طاقتور اختیارات کے بارے میں پڑھیں۔

netcat کھلی بندرگاہوں کو چیک کریں

نیٹ کیٹ (یا nc ) ایک کمانڈ لائن ٹول ہے جو TCP یا UDP پروٹوکول کا استعمال کرتے ہوئے ، نیٹ ورک کنیکشنز میں ڈیٹا کو پڑھ اور لکھ سکتا ہے۔

netcat کے netcat آپ ایک ہی پورٹ یا پورٹ رینج اسکین کرسکتے ہیں۔

مثال کے طور پر 20-80 کی حد میں IP ایڈریس 10.10.8.8 والی ریموٹ مشین پر کھلی TCP بندرگاہوں کو اسکین کرنا آپ درج ذیل کمانڈ استعمال کریں گے۔

nc -z -v 10.10.8.8 20-80

-z کا اختیار nc کو صرف کھلی بندرگاہوں کے لئے اسکین کرنے کا بتاتا ہے ، بغیر کسی کوائف کو بھیجے اور -v مزید زبانی معلومات کے لئے ہے۔

آؤٹ پٹ کچھ اس طرح نظر آئے گی:

nc: connect to 10.10.8.8 port 20 (tcp) failed: Connection refused nc: connect to 10.10.8.8 port 21 (tcp) failed: Connection refused Connection to 10.10.8.8 22 port succeeded!… Connection to 10.10.8.8 80 port succeeded!

nc -z -v 10.10.8.8 20-80 2>&1 | grep succeeded

Connection to 10.10.8.8 22 port succeeded! Connection to 10.10.8.8 80 port succeeded!

UDP بندرگاہوں کو اسکین کرنے کے لئے nc کمانڈ پر آپشن کا اختیار پاس کریں:

nc -z -v -u 10.10.8.8 20-80 2>&1 | grep succeeded

بش سیڈو ڈیوائس کا استعمال کرتے ہوئے کھلی بندرگاہوں کو چیک کریں

باش شیل /dev/tcp/.. یا /dev/udp/.. سییوڈو ڈیوائس کا استعمال کرکے یہ معلوم کرنے کا ایک اور طریقہ ہے کہ آیا کوئی مخصوص بندرگاہ کھلی ہے یا بند ہے۔

جب کسی /dev/$PROTOCOL/$HOST/$IP pseudo-device پر کمانڈ پر عمل درآمد کرتے ہیں تو ، /dev/$PROTOCOL/$HOST/$IP مخصوص پورٹ پر مخصوص میزبان سے TCP یا UDP کنکشن کھولے گا۔

مندرجہ ذیل if..else بیان جانچے گا کہ آیا kernel.org پر پورٹ 443 کھلا ہے یا نہیں:

if timeout 5 bash -c ' /dev/null' then echo "Port is open" else echo "Port is closed" fi if timeout 5 bash -c ' /dev/null' then echo "Port is open" else echo "Port is closed" fi

Port is open

اوپر والا کوڈ کیسے کام کرتا ہے؟

جب کسی سیڈو ڈیوائس کا استعمال کرتے ہوئے کسی بندرگاہ سے رابطہ قائم کرنا ہو تو پہلے سے طے شدہ ٹائم آؤٹ بہت بڑا ہوتا ہے لہذا ہم timeout کمانڈ کو 5 سیکنڈ کے بعد ٹیسٹ کمانڈ کو مارنے کیلئے استعمال کر رہے ہیں۔ اگر kernel.org پورٹ 443 پر کنکشن قائم ہو گیا ہے تو ٹیسٹ کمانڈ درست ہو جائے گا۔

آپ پورٹ رینج کی جانچ پڑتال کے ل You فار لوپ کو بھی استعمال کرسکتے ہیں:

for PORT in {20..80}; do timeout 1 bash -c " /dev/null" && echo "port $PORT is open" done for PORT in {20..80}; do timeout 1 bash -c " /dev/null" && echo "port $PORT is open" done

آؤٹ پٹ کچھ اس طرح نظر آئے گی:

port 22 is open port 80 is open

نتیجہ اخذ کرنا

ہم نے آپ کو متعدد ٹولز دکھائے ہیں جن کی مدد سے آپ کھلی بندرگاہوں کو اسکین کرسکتے ہیں۔ کھلی بندرگاہوں کو چیک کرنے کے ل other دوسری افادیت اور طریقے بھی موجود ہیں ، مثال کے طور پر ، آپ ازگر socket ماڈیول ، curl ، telnet یا wget استعمال کرسکتے ہیں۔

ٹرمینل