اسکن پورت های باز و آسیب‌ پذیر

https://negarnovin.com/docs/how-to-scan-for-open-ports-and-vulnerabilities/ · آخرین به‌روزرسانی: · نویسنده: نگارنوین · سایت: نگارنوین · 8 دقیقه مطالعه

📌 خلاصه (TL;DR)

نحوه آموزش نحوه اسکن پورت های باز و آسیب‌ پذیر How to Scan for Open Ports and Vulnerabilities Nmap (Network Mapper) یک ابزار کشف شبکه

📊 حقایق کلیدی

URLhttps://negarnovin.com/docs/how-to-scan-for-open-ports-and-vulnerabilities/
تاریخ انتشار2025-10-18
آخرین به‌روزرسانی2025-10-18
نویسندهنگارنوین
ناشرنگارنوین
زبانفارسی (fa-IR)
تعداد کلمات1472
نوع صفحهبرگه

📄 محتوای کامل

نحوه اسکن پورت‌ های باز و آسیب‌ پذیری‌ ها با Nmap Learn to scan hosts, detect open ports, and find vulnerabilities using Nmap on Linux systems.

Nmap (Network Mapper) یک ابزار کشف شبکه متن‌باز است که میزبان‌ها، سرویس‌ها و مشکلات امنیتی بالقوه را شناسایی می‌کند. این ابزار برای مدیران سیستم و توسعه‌دهندگان جهت نقشه‌برداری از شبکه سرورشان ضروری است. این ابزار به شما امکان می‌دهد ببینید کدام پورت‌ها باز هستند، چه سرویس‌هایی در حال اجرا هستند و از چه سیستم عاملی در سیستم هدف استفاده می‌شود.

در این مقاله، وظایف امنیتی کلیدی با Nmap، از جمله اسکن یک میزبان برای پورت‌های باز، شناسایی سرویس‌های در حال اجرا روی آن پورت‌ها و تشخیص آسیب‌پذیری‌ها با استفاده از موتور اسکریپت‌نویسی Nmap (NSE) را خواهید آموخت. همچنین یاد خواهید گرفت که چگونه خروجی را تفسیر کنید و اقدامات امنیتی اولیه را انجام دهید.

پیش‌ نیازها

قبل از شروع:

  • به عنوان یک کاربر غیر ریشه با امتیازات sudo به یک سرور مبتنی بر لینوکس دسترسی داشته باشید.

نصب Nmap

  1. بسته به سیستم عامل خود، nmap را نصب کنید.
    • در سیستم‌های مبتنی بر دبیان/اوبونتو: consoleCopy
      $ sudo apt update && sudo apt install -y nmap
    • در راکی ​​لینوکس و سایر سیستم‌های مبتنی بر RHEL: consoleCopy
      $ sudo dnf install -y nmap
  2. پس از نصب، با استفاده از دستور زیر، نصب را تأیید کنید. consoleCopy
    $ nmap --version

    شما باید خروجی مشابه زیر را ببینید:

    Nmap version 7.94SVN ( https://nmap.org )
    Platform: x86_64-pc-linux-gnu
    Compiled with: liblua-5.4.6 openssl-3.0.13 libssh2-1.11.0 libz-1.3 libpcre2-10.42 libpcap-1.10.4 nmap-libdnet-1.12 ipv6
    Compiled without:
    Available nsock engines: epoll poll select

دستور nmap

این بخش، سینتکس دستورات nmap و گزینه‌های آن را توضیح می‌دهد.

Command Syntax

nmap [SCAN TYPES...] [OPTIONS] TARGET

کجا,

  • [SCAN TYPES...]: نحوه اسکن Nmap را تعریف می‌کند. این گروه کنترل می‌کند که آیا Nmap هدف را برای پورت‌های باز بررسی می‌کند یا خیر و چگونه این کار را انجام می‌دهد.
  • [OPTIONS]: یک یا چند پرچم و پارامتر اختیاری که رفتار Nmap را تغییر می‌دهند. آن‌ها دامنه، سرعت و حجم خروجی را کنترل می‌کنند.
  • TARGET: میزبان‌ها یا شبکه‌هایی که باید اسکن شوند. می‌توانید یک IP واحد، یک محدوده IP، یک نام میزبان یا یک زیرشبکه ارائه دهید.

انواع اسکن

در زیر رایج‌ ترین انواع اسکن آمده است. برخی از آنها نیاز به اجرای Nmap با دسترسی root دارند.

گزینه توضیحات
-sS اسکن TCP SYN (پیش‌فرض، ریشه)
-sT اسکن اتصال TCP
-sU اسکن UDP
-sn فقط کشف میزبان (بدون اسکن پورت)
-sV تشخیص نسخه‌ های سرویس
-O تشخیص سیستم عامل
-A اسکن تهاجمی (فعال‌سازی -sV، -O، -sC)

گزینه‌ های فرمان

در زیر برخی از گزینه‌هایی که می‌توانید با Nmap استفاده کنید، آورده شده است.

گزینه نماد توضیحات
Port Specification -p مشخص کنید کدام پورت‌ها را اسکن کنید، مانند -p 22,80,443.
Fast Scan -F به جای ۱۰۰۰ پورت پیش‌فرض، فقط ۱۰۰ پورت رایج را اسکن می‌کند.
Verbose Output -v خروجی دقیقی ارائه می‌دهد.

انجام اسکن پورت پایه

در این بخش، شما یک اسکن Nmap را برای شناسایی تمام پورت‌های باز TCP که نقاط ورود بالقوه به سرور هستند، اجرا خواهید کرد. این مقاله از localhost به عنوان هدف استفاده می‌کند. می‌توانید این را با یک آدرس IP یا نام میزبانی که مجوز صریح برای اسکن آن را دارید، جایگزین کنید.

یک اسکن اولیه، ۱۰۰۰ پورت رایج را بررسی می‌کند. با استفاده از دستور زیر، یک اسکن اولیه انجام دهید.

consoleCopy
$ sudo nmap localhost

خروجی نمونه:

Starting Nmap 7.94SVN ( https://nmap.org ) at 2025-10-03 21:49 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000011s latency).
Other addresses for localhost (not scanned): ::1
Not shown: 997 closed tcp ports (reset)
PORT     STATE SERVICE
22/tcp   open  ssh
3001/tcp open  nessus
5432/tcp open  postgresql

Nmap done: 1 IP address (1 host up) scanned in 0.07 seconds

درک خروجی:

  • نشان داده نشده: ۹۹۷ پورت‌های TCP بسته: این پورت‌ها بسته یا فیلتر شده‌اند.
  • پورت: شماره پورت و پروتکل.
  • وضعیت (STATE): مشخص می‌کند که آیا پورت باز، بسته یا فیلتر شده است.
  • سرویس: سرویسی که Nmap شناسایی کرده و روی پورت در حال اجرا است (در صورت شناسایی).

سرور مجازی آمریکا

در این مثال، پورت‌های باز شامل موارد زیر هستند:

  • 22 (SSH)
  • 3001 (reported as nessus)
  • 5432 (PostgreSQL)

اسکن نسخه‌های سرویس و سیستم عامل‌ ها

انمپ همچنین می‌تواند اطلاعات دقیقی از سرویس‌ها، از جمله شماره نسخه‌ها، را در مورد پورت‌های باز فاش کند. این به شناسایی سرویس‌های قدیمی یا آسیب‌پذیر کمک می‌کند.

از فلگ -sV برای بررسی پورت‌های باز برای سرویس‌های در حال اجرا استفاده کنید:

consoleCopy
$ sudo nmap -sV localhost

نمونه خروجی:

Starting Nmap 7.94SVN ( https://nmap.org ) at 2025-10-03 21:56 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000011s latency).
Other addresses for localhost (not scanned): ::1
Not shown: 997 closed tcp ports (reset)
PORT     STATE SERVICE    VERSION
22/tcp   open  ssh        OpenSSH 9.6p1 Ubuntu 3ubuntu13.13 (Ubuntu Linux; protocol 2.0)
3001/tcp open  nessus?
5432/tcp open  postgresql PostgreSQL DB 9.6.0 or later

این اسکن نسخه‌های خاصی را برای سرویس‌های شناسایی‌شده، مانند OpenSSH 9.6p1 و PostgreSQL 9.6.0 یا بالاتر، نشان می‌دهد. علامت سوال بعد از Nessus نشان می‌دهد که Nmap مطمئن نیست و شناسایی سرویس ممکن است نیاز به تأیید بیشتر داشته باشد.

اسکن آسیب‌ پذیری‌ ها با استفاده از موتور اسکریپت‌ نویسی Nmap (NSE)

موتور اسکریپت‌نویسی Nmap Scripting Engine (NSE) به Nmap اجازه می‌دهد تا از اسکریپت‌ها برای خودکارسازی وظایف مختلف شبکه، از جمله اسکن آسیب‌پذیری، استفاده کند. دسته vuln اسکریپت‌های آسیب‌پذیر، سرویس‌ها را برای یافتن آسیب‌پذیری‌های شناخته شده آزمایش می‌کند. این بخش نصب vsftpd، یک سرور FTP، ایجاد عمدی یک آسیب‌پذیری و سپس شناسایی و کاهش آن با استفاده از موتور اسکریپت‌نویسی Nmap را پوشش می‌دهد.

  1. vsftpd را نصب کنید.
    • در سیستم‌های مبتنی بر اوبونتو/دبیان. consoleCopy
      $ sudo apt install -y vsftpd
    • روی سیستم‌های مبتنی بر Rocky Linux/RHEL. consoleCopy
      $ sudo dnf install -y vsftpd
  2. فعال کردن ورود ناشناس برای vsftpd برای ایجاد آسیب‌پذیری.
    1. فایل پیکربندی vsftpd را ویرایش کنید. consoleCopy
      $ sudo nano /etc/vsftpd.conf
      
    2. خط anonymous_enable=NO را پیدا کنید و مقدار آن را از NO به YES تغییر دهید.
    3. فایل را ذخیره کنید و ببندید.
    4. را ریستارت کنید vsftpd. consoleCopy
      $ sudo systemctl restart vsftpd

    حالا که عمداً این مشکل را ایجاد کرده‌اید، می‌توانید از یک اسکریپت خاص ftp-anon برای تشخیص آن استفاده کنید. اسکریپت ftp-anon بخشی از NSE است و به طور خودکار بررسی می‌کند که آیا یک سرور FTP اجازه ورود ناشناس را می‌دهد یا خیر.

  3. با استفاده از ftp-anon روی پورت 21، پورتی که vsftpd از آن استفاده می‌کند، یک اسکن آسیب‌پذیری اجرا کنید. consoleCopy
    $ sudo nmap -p 21 --script ftp-anon localhost

    خروجی:

    Starting Nmap 7.94SVN ( https://nmap.org ) at 2025-08-22 11:04 UTC
    Nmap scan report for localhost (127.0.0.1)
    Host is up (0.00010s latency).
    Other addresses for localhost (not scanned): ::1
    
    PORT   STATE SERVICE
    21/tcp open  ftp
    |_ftp-anon: Anonymous FTP login allowed (FTP code 230)
    
    Nmap done: 1 IP address (1 host up) scanned in 0.14 seconds

    اسکن مشکلی را شناسایی کرد: Anonymous FTP login allowed (FTP code 230).

خلاصه مراحل

شما باید در مورد مشکلات شناسایی شده اقدام کنید. در این صورت، باید ورود ناشناس را غیرفعال کنید.

  1. فایل پیکربندی را ویرایش کنید. consoleCopy
    $ sudo nano /etc/vsftpd.conf
  2. خط anonymous_enable=YES را پیدا کنید و مقدار آن را از YESبه NOتغییر دهید.
  3. فایل را ذخیره کرده و از آن خارج شوید.
  4. برای اعمال تغییرات، سرویس را مجدداً راه‌اندازی کنید. consoleCopy
    $ sudo systemctl restart vsftpd
  5. دوباره اسکن Nmap را روی پورت 21 اجرا کنید. consoleCopy
    $ sudo nmap -p 21 --script ftp-anon localhost

    خروجی:

    Starting Nmap 7.94SVN ( https://nmap.org ) at 2025-08-22 11:19 UTC
    Nmap scan report for localhost (127.0.0.1)
    Host is up (0.00010s latency).
    Other addresses for localhost (not scanned): ::1
    
    PORT   STATE SERVICE
    21/tcp open  ftp
    
    Nmap done: 1 IP address (1 host up) scanned in 2.53 seconds

در نهایت

این مقاله نحوه استفاده از دستور Nmap برای اسکن پورت‌های باز و آسیب‌پذیری‌ها را توضیح داد. شما یک اسکن Nmap انجام دادید، آسیب‌پذیری‌ها را شناسایی کردید و آنها را برطرف کردید. برای اطلاعات بیشتر، به مستندات رسمی Nmap مراجعه کنید.

🏷️ کلمات کلیدی

اسکن پورت های باز و آسیب‌ پذیر، نحوه اسکن پورت‌ های باز و آسیب‌ پذیری‌ ها با Nmap، پیش‌ نیازها، نصب Nmap، خرید اسکن پورت های باز و آسیب‌ پذیر، قیمت اسکن پورت های باز و آسیب‌ پذیر، بهترین اسکن پورت های باز و آسیب‌ پذیر

🧩 JSON-LD

{"@context":"https://schema.org","@type":"WebPage","headline":"اسکن پورت های باز و آسیب‌ پذیر","url":"https://negarnovin.com/docs/how-to-scan-for-open-ports-and-vulnerabilities/","datePublished":"2025-10-18T07:33:07+03:30","dateModified":"2025-10-18T07:33:07+03:30","author":{"@type":"Person","name":"نگارنوین"},"publisher":{"@type":"Organization","name":"نگارنوین"},"inLanguage":"fa-IR","description":"نحوه آموزش نحوه اسکن پورت های باز و آسیب‌ پذیر How to Scan for Open Ports and Vulnerabilities Nmap (Network Mapper) یک ابزار کشف شبکه"}