
اگر با حوزه امنیت شبکه یا Kali Linux آشنا شده باشید، احتمالاً نام Nmap را بارها دیدهاید. اما Nmap دقیقاً چیست و چرا یکی از ابزارهای مهم در بررسی شبکه محسوب میشود؟
Nmap مخفف Network Mapper است و یک ابزار متنباز برای کشف و بررسی شبکه و ممیزی امنیتی محسوب میشود. این ابزار میتواند به متخصص شبکه کمک کند تا میزبانهای فعال، پورتهای در دسترس، سرویسهای در حال اجرا و در برخی شرایط اطلاعاتی درباره سیستمعامل یا نوع دستگاه مقصد را شناسایی کند.
به همین دلیل Nmap فقط یک «اسکنر پورت» ساده نیست؛ هرچند اسکن پورت همچنان یکی از مهمترین قابلیتهای آن است.
در این مقاله بررسی میکنیم Nmap چیست، در Kali Linux چه کاربردی دارد، اسکن پورت چگونه انجام میشود و خروجی Nmap چه اطلاعاتی در اختیار کاربر قرار میدهد.
Nmap چیست؟
Nmap یا Network Mapper ابزاری برای Network Discovery و Security Auditing است. این ابزار برای بررسی شبکههای کوچک و بزرگ طراحی شده و میتواند اطلاعات مختلفی درباره وضعیت میزبانها و سرویسهای شبکه جمعآوری کند.
یکی از کاربردهای اصلی Nmap این است که مشخص کند یک سیستم در شبکه چه پورتهایی را در دسترس قرار داده است. اما قابلیتهای آن به همین مورد محدود نمیشود.
Nmap میتواند در شرایط مناسب برای مواردی مانند موارد زیر نیز استفاده شود:
- شناسایی میزبانهای فعال در یک شبکه
- بررسی پورتهای TCP و UDP
- شناسایی سرویسهای در حال اجرا
- تشخیص نسخه برخی سرویسها
- کمک به شناسایی سیستمعامل
- بررسی وضعیت پورتها
- جمعآوری اطلاعات اولیه برای ارزیابی امنیت شبکه
- اجرای اسکریپتهای مشخص از طریق Nmap Scripting Engine یا NSE
مستندات رسمی Nmap نیز این ابزار را برای Network Exploration و Security Auditing معرفی میکنند.

Nmap در Kali Linux چه کاربردی دارد؟
Kali Linux یکی از سیستمعاملهای شناختهشده در حوزه امنیت، ارزیابی امنیت و تست نفوذ است و مجموعهای از ابزارهای تخصصی را در اختیار کاربران قرار میدهد.
Nmap نیز یکی از ابزارهای موجود در Kali Linux است. صفحه رسمی Kali برای این ابزار، قابلیتهایی مانند Ping Scanning، Port Scanning، Version Detection و TCP/IP Fingerprinting را برای Nmap معرفی میکند.
قرار گرفتن Nmap در Kali Linux از این جهت اهمیت دارد که بررسی شبکه معمولاً یکی از مراحل اولیه شناخت یک محیط است.
برای مثال، تصور کنید یک متخصص امنیت در یک محیط آزمایشگاهی مجاز میخواهد وضعیت یک سیستم را بررسی کند. قبل از اینکه درباره سرویسهای موجود یا تنظیمات امنیتی آن نتیجهگیری کند، لازم است بداند چه میزبانهایی فعال هستند و چه سرویسهایی در دسترس قرار گرفتهاند.
Nmap میتواند برای جمعآوری بخشی از این اطلاعات مورد استفاده قرار گیرد.
اگر در حال یادگیری Kali Linux هستید، شناخت Nmap در کنار سایر مفاهیم پایه شبکه اهمیت زیادی دارد. در مسیر یادگیری دپارتمان امنیت شبکه نیز ابزارهایی مانند Nmap زمانی کاربرد واقعی خود را نشان میدهند که کاربر ابتدا مفاهیمی مانند IP، پورت، TCP، UDP و سرویس شبکه را بهخوبی بشناسد.
اسکن پورت چیست؟
برای درک بهتر Nmap ابتدا باید مفهوم Port یا پورت را بشناسیم.
پورت را میتوان یک نقطه منطقی برای ارتباط یک سرویس در یک سیستم در نظر گرفت. یک کامپیوتر میتواند همزمان سرویسهای مختلفی ارائه کند و هر سرویس ممکن است از یک پورت مشخص استفاده کند.
برای مثال، سرویسهای وب معمولاً با پورتهای شناختهشدهای مانند 80 و 443 مرتبط هستند؛ البته شماره پورت بهتنهایی ثابت نمیکند که دقیقاً چه سرویسی روی آن در حال اجراست.
اینجاست که اسکن پورت اهمیت پیدا میکند.
در یک اسکن، Nmap بستههایی را به سمت مقصد ارسال میکند و بر اساس پاسخهایی که دریافت میکند، درباره وضعیت پورتها نتیجهگیری میکند.
طبق مستندات رسمی Nmap، یک اسکن ساده Nmap بهصورت پیشفرض مجموعهای از پورتهای TCP رایج را بررسی میکند و نتیجه را در قالب وضعیتهایی مانند Open، Closed و Filtered نمایش میدهد.
معنی Open، Closed و Filtered در Nmap چیست؟
یکی از مهمترین بخشهای خروجی Nmap، ستون State است.
Open
وقتی یک پورت در وضعیت Open قرار دارد، یعنی Nmap شواهدی پیدا کرده که نشان میدهد یک برنامه یا سرویس در حال پذیرش ارتباط روی آن پورت است.
برای مثال ممکن است در خروجی با چیزی شبیه این مواجه شوید:
PORT STATE SERVICE
tcp/80 open http
در این حالت، Nmap پورت 80 را باز تشخیص داده و آن را با سرویس HTTP مرتبط کرده است.
البته Open بودن یک پورت به معنی آسیبپذیر بودن سیستم نیست. این نکته بسیار مهم است.
یک پورت باز میتواند کاملاً طبیعی و ضروری باشد؛ مثلاً یک سرور وب برای ارائه سرویس خود به پورتهای مربوط به وب نیاز دارد.
Closed
پورت Closed از دید Nmap قابل دسترسی است، اما در حال حاضر برنامهای روی آن پورت در حال پذیرش ارتباط نیست.
بنابراین Closed با Open تفاوت دارد و نباید این دو وضعیت را یکی دانست.
Filtered
در وضعیت Filtered، Nmap نمیتواند با اطمینان مشخص کند پورت باز است یا بسته، زیرا یک فیلتر شبکه، فایروال یا عامل دیگری مانع دریافت پاسخ واضح شده است.
این موضوع یکی از دلایلی است که نتیجه اسکن Nmap باید با دانش شبکه تفسیر شود و نباید صرفاً به یک کلمه در خروجی اکتفا کرد.
Nmap در مجموع وضعیتهای بیشتری مانند Unfiltered و Open|Filtered را نیز برای بیان شرایط مختلف در نظر میگیرد.

شناسایی سرویسها و نسخه آنها با Nmap
فرض کنید Nmap نشان دهد پورت مشخصی باز است. آیا همین اطلاعات کافی است؟
معمولاً نه.
شماره پورت میتواند سرنخ اولیهای درباره سرویس ارائه دهد، اما لزوماً مشخص نمیکند دقیقاً چه نرمافزاری روی آن پورت اجرا میشود.
اینجا قابلیت Service and Version Detection اهمیت پیدا میکند.
Nmap میتواند با استفاده از روشهای مخصوص خود تلاش کند نوع سرویس و نسخه نرمافزار در حال اجرا را شناسایی کند.
برای نمونه، ممکن است خروجی اطلاعاتی درباره یک سرویس وب، SSH یا DNS در اختیار کاربر قرار دهد.
شناخت نسخه سرویس در ارزیابی امنیت اهمیت دارد، زیرا نسخه نرمافزار میتواند به تحلیل وضعیت و بهروزرسانیهای امنیتی آن کمک کند.
البته خروجی Nmap همیشه صددرصد قطعی نیست و نباید هر اطلاعات شناساییشده را بدون بررسی بیشتر حقیقت نهایی در نظر گرفت.
تشخیص سیستمعامل با Nmap
یکی دیگر از قابلیتهای شناختهشده Nmap، تلاش برای تشخیص سیستمعامل یا OS Detection است.
Nmap با بررسی ویژگیهای پاسخهای شبکه میتواند در برخی شرایط درباره سیستمعامل یا خانواده سیستمعامل مقصد تخمینهایی ارائه کند.
این قابلیت برای شناخت اولیه یک محیط شبکه مفید است، اما مانند سایر قابلیتهای تشخیصی Nmap باید به عنوان یک نتیجه احتمالی در نظر گرفته شود.
شرایط شبکه، فایروالها، تنظیمات سیستم و نوع پاسخدهی دستگاه میتوانند روی نتیجه تأثیر بگذارند.
Nmap Scripting Engine یا NSE چیست؟
Nmap فقط مجموعهای از روشهای اسکن ساده نیست.
یکی از قابلیتهای مهم آن Nmap Scripting Engine یا NSE است.
NSE به Nmap اجازه میدهد از اسکریپتهای مختلف برای انجام بررسیهای تخصصیتر استفاده کند. این اسکریپتها میتوانند برای موارد مختلفی مانند شناسایی اطلاعات سرویسها، بررسی برخی تنظیمات و انجام بررسیهای مشخص روی شبکه مورد استفاده قرار گیرند.
به همین دلیل Nmap میتواند از یک ابزار ساده برای مشاهده وضعیت پورتها به یک ابزار انعطافپذیرتر برای بررسی شبکه تبدیل شود.
با این حال، استفاده از اسکریپتها باید در محیطهایی انجام شود که کاربر اجازه بررسی آنها را دارد. اسکن یا بررسی سیستمهای دیگران بدون مجوز میتواند مشکلساز باشد.
یک مثال ساده از کاربرد Nmap
برای یادگیری Nmap بهتر است از یک محیط آزمایشگاهی یا سیستمی استفاده کنید که اجازه بررسی آن را دارید.
برای مثال، میتوان یک سیستم آزمایشی در شبکه شخصی یا یک محیط آموزشی طراحی کرد و سپس وضعیت آن را با Nmap بررسی کرد.
هدف در مرحله اول این نیست که تعداد زیادی گزینه و دستور مختلف را حفظ کنید. بهتر است ابتدا یاد بگیرید خروجی Nmap چه معنایی دارد.
مثلاً اگر نتیجهای شبیه نمونه زیر مشاهده کنید:
PORT STATE SERVICE
tcp/22 open ssh
tcp/80 open http
tcp/443 open https
میتوانید این اطلاعات را به شکل ساده تفسیر کنید:
- پورت 22 در دسترس است و Nmap آن را با SSH مرتبط کرده است.
- پورت 80 باز است و با HTTP مرتبط شده است.
- پورت 443 باز است و با HTTPS مرتبط شده است.
اما از همین خروجی نمیتوان نتیجه گرفت که سیستم حتماً آسیبپذیر است.
برای رسیدن به چنین نتیجهای باید اطلاعات بیشتری درباره نرمافزار، نسخه، تنظیمات و آسیبپذیریهای احتمالی بررسی شود.
این تفاوت بین جمعآوری اطلاعات و تحلیل امنیتی یکی از نکات مهم در یادگیری امنیت شبکه است.
چرا Nmap یکی از ابزارهای مهم Kali Linux است؟
یکی از دلایل اهمیت Nmap این است که شناخت شبکه پیشنیاز بسیاری از فعالیتهای امنیتی است.
اگر ندانیم چه دستگاههایی در یک محیط وجود دارند یا چه سرویسهایی در دسترس هستند، ارزیابی دقیق وضعیت امنیتی دشوارتر خواهد بود.
Nmap میتواند به شکل ساختاریافتهای به این شناخت اولیه کمک کند.
از طرف دیگر، Nmap فقط مخصوص متخصصان امنیت نیست. مدیران شبکه نیز میتوانند از آن برای بررسی وضعیت شبکه، موجودی سرویسها و کنترل تغییرات استفاده کنند.
به همین دلیل بهتر است Nmap را صرفاً به عنوان «ابزار هک» معرفی نکنیم.
Nmap در اصل یک ابزار Network Discovery و Security Auditing است که در سناریوهای مختلف شبکه و امنیت کاربرد دارد.

آیا Nmap همان ابزار هک است؟
خیر.
این یکی از رایجترین برداشتهای اشتباه درباره Nmap است.
Nmap بهخودیخود یک ابزار برای «هک کردن» سیستمها نیست. وظیفه اصلی آن جمعآوری و تحلیل اطلاعات شبکه از طریق روشهای مختلف اسکن است.
برای مثال، پیدا کردن یک پورت باز به معنی نفوذ موفق به سیستم نیست.
حتی شناسایی نسخه یک سرویس نیز به معنی وجود آسیبپذیری قطعی نیست.
در یک فرآیند ارزیابی امنیتی، اطلاعات Nmap میتواند بخشی از دادههای موردنیاز برای تحلیل بیشتر باشد.
به همین دلیل، اگر قصد یادگیری امنیت شبکه دارید، بهتر است Nmap را در کنار مفاهیم پایه شبکه، سیستمعامل، سرویسهای شبکه و اصول امنیت یاد بگیرید.
Nmap برای چه کسانی مناسب است؟
یادگیری Nmap میتواند برای گروههای مختلفی مفید باشد:
- دانشجویان شبکه و امنیت
- علاقهمندان به Kali Linux
- مدیران شبکه
- متخصصان امنیت اطلاعات
- افرادی که تست نفوذ را در محیطهای مجاز یاد میگیرند
- افرادی که میخواهند با مفهوم Port Scanning آشنا شوند
البته برای استفاده حرفهای از Nmap، حفظ کردن چند دستور کافی نیست. درک مفاهیم شبکه اهمیت بسیار بیشتری دارد.
اگر هدف شما آشنایی با آموزش Kali Linux و ابزارهای امنیتی آن است، بهتر است Nmap را به عنوان بخشی از یک مسیر آموزشی گستردهتر ببینید، نه یک ابزار جدا از سایر مباحث.
جمعبندی
Nmap یکی از ابزارهای مهم برای کشف شبکه، اسکن پورت و ممیزی امنیتی است و به همین دلیل جایگاه مهمی در Kali Linux و آموزش امنیت شبکه دارد.
با استفاده از Nmap میتوان اطلاعاتی درباره میزبانهای فعال، پورتهای در دسترس، سرویسها و در برخی شرایط سیستمعامل مقصد به دست آورد. همچنین قابلیتهایی مانند Service Version Detection و Nmap Scripting Engine باعث شدهاند Nmap بسیار فراتر از یک اسکنر ساده پورت باشد.
با این حال، مهمترین نکته این است که خروجی Nmap بهتنهایی به معنی وجود آسیبپذیری یا نفوذپذیری نیست. این اطلاعات باید در کنار دانش شبکه و تحلیل امنیتی تفسیر شوند.
اگر قصد دارید کار با Kali Linux را به شکل اصولی یاد بگیرید، آشنایی با Nmap میتواند یکی از مراحل مهم مسیر یادگیری شما باشد؛ مخصوصاً زمانی که مفاهیم پایه شبکه را نیز همزمان یاد بگیرید.




