CISCODUMP(1)   CISCODUMP(1)

ciscodump - فراهم آوردن رابط‌هایی برای ضبط ترافیک از یک دستگاه Cisco دوردست از طریق SSH

ciscodump [ --help ] [ --version ] [ --extcap-interfaces ] [ --extcap-dlts ] [ --extcap-interface=<interface> ] [ --extcap-config ] [ --extcap-capture-filter=<capture filter> ] [ --capture ] [ --fifo=<path to file or pipe> ] [ --remote-host=<IP address> ] [ --remote-port=<TCP port> ] [ --remote-username=<username> ] [ --remote-password=<password> ] [ --remote-filter=<filter> ] [ --sshkey=<public key path> ] [ --remote-interface=<interface> ] [ --remote-count=<count> ]

ciscodump --extcap-interfaces

ciscodump --extcap-interface=ciscodump --extcap-dlts

ciscodump --extcap-interface=ciscodump --extcap-config

ciscodump --extcap-interface=ciscodump --fifo=<path to file or pipe> --capture --remote-host=remotedevice --remote-port=22 --remote-username=user --remote-interface=<the device interface> --remote-count=<count>

ابزار ciscodump یک ابزار extcap است که با اتکا به Cisco EPC به کاربر امکان می‌دهد تا عملیات ضبط ترافیک را از راه دور روی یک دستگاه Cisco از طریق یک اتصال SSH اجرا کند. این ابزار از دستگاه‌های مبتنی بر IOS و IOS-XE و همچنین دستگاه‌های ASA پشتیبانی می‌کند.

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

هنگامی که ضبط آغاز می‌شود، بسته‌ها به محض دریافت از دستگاه تحویل داده می‌شوند. ضبط در شرایط زیر متوقف می‌شود:

•تعداد بسته‌های درخواستی برآورده شود (--remote-count الزامی است)
•ضبط روی دستگاه به پایان برسد (برای مثال، پر شدن بافر ضبط)
•ضبط توسط کاربر متوقف شود

کارایی ضبط به نوع دستگاه بستگی دارد. این ابزار تلاش می‌کند بسته‌ها را به محض دریافت بخواند، اما معمولاً کندتر از سرعت ضبط بسته‌ها توسط دستگاه است؛ بنابراین بسته‌ها به صورت دسته‌ای خوانده می‌شوند.

سامانه‌های IOS/IOS-XE تنها امکان دسترسی به همهٔ بسته‌های ضبط‌شده را از ابتدا فراهم می‌کنند. بنابراین خواندن دستهٔ دوم به معنای خواندن همهٔ بسته‌های دستهٔ اول، نادیده گرفتن آن‌ها و سپس خواندن بسته‌های جدید در دستهٔ دوم است.

سامانهٔ ASA امکان دسترسی به بسته‌ای مشخص را فراهم می‌کند، بنابراین ابزار هر بسته را تنها یک بار می‌خواند..SS "نرم‌افزارهای سیسکو پشتیبانی‌شده (SUPPORTED CISCO SOFTWARE)"

این برنامه از IOS نسخهٔ 12.4 و بالاتر پشتیبانی می‌کند. نسخهٔ IOS که از قابلیت ضبط پشتیبانی می‌کند 12.4(20)T و بالاتر است. جزئیات بیشتر را می‌توان در اینجا یافت: https://www.cisco.com/c/en/us/products/collateral/ios-nx-os-software/ios-embedded-packet-capture/datasheet_c78-502727.html

این برنامه از IOS-XE نسخهٔ 16.1 و بالاتر پشتیبانی می‌کند. برای دریافت جزئیات بیشتر عبارت “Embedded Packet Capture Configuration Guide, Cisco IOS XE” را جستجو کنید.

این برنامه از ASA نسخهٔ 8.4 و بالاتر پشتیبانی می‌کند. جزئیات بیشتر را می‌توان در اینجا یافت: https://community.cisco.com/t5/security-documents/asa-using-packet-capture-to-troubleshoot-asa-firewall/ta-p/3129889

--help

نمایش آرگومان‌های برنامه.

--version

نمایش نسخهٔ برنامه.

--extcap-interfaces

فهرست کردن رابط‌های موجود.

--extcap-interface=<interface>

استفاده از رابط‌های مشخص‌شده.

--extcap-dlts

فهرست کردن DLTهای رابط مشخص‌شده.

--extcap-config

فهرست کردن گزینه‌های پیکربندی رابط مشخص‌شده.

--capture

شروع ضبط از رابط مشخص‌شده و ذخیرهٔ آن در محل مشخص‌شده توسط --fifo.

--fifo=<path to file or pipe>;

ذخیرهٔ بستهٔ ضبط‌شده در فایل یا ارسال آن از طریق لوله (pipe).

--remote-host=<remote host>;

آدرس میزبان راه‌دور برای ضبط.

--remote-port=<remote port>;

پورت SSH میزبان راه‌دور.

--remote-username=<username>

نام کاربری برای احراز هویت ssh.

--remote-password=<password>

گذرواژه برای استفاده (در صورتی که ssh-agent و کلید عمومی استفاده نشوند). هشدار: گذرواژه‌ها به صورت متن ساده (plaintext) ذخیره شده و برای تمام کاربران این سیستم قابل مشاهده هستند. توصیه می‌شود از فایل‌های کلید همراه با یک کارگزار SSH (SSH agent) استفاده کنید.

--remote-filter=<filter>

فیلتر راه‌دور روی دستگاه. این یک فیلتر ضبط است که از استانداردهای Cisco پیروی می‌کند.

برای IOS/IOS-XE ببینید: https://www.cisco.com/c/en/us/support/docs/ip/access-lists/26448-ACLsamples.html.

برای ASA ببینید: https://www.cisco.com/c/en/us/td/docs/security/asa/asa96/configuration/firewall/asa-96-firewall-config/access-acls.html.

می‌توان چندین فیلتر را با قرار دادن ویرگول میان آن‌ها تعیین کرد. توجه: هنگام استفاده از یک فیلتر، رفتار پیش‌فرض دور ریختن (drop) تمام بسته‌ها به جز بسته‌های منطبق با فیلتر است.

مثال‌ها برای IOS/IOS-XE:

permit ip host MYHOST any, permit ip any host MYHOST (capture the traffic for MYHOST)
deny ip host MYHOST any, deny ip any host MYHOST, permit ip any any (capture all the traffic except MYHOST)

مثال‌ها برای ASA:

permit any4 host MYHOST, permit host MYHOST any4 (capture IPv4 traffic for MYHOST)

نکته

انواع مختلف ضبط ممکن است از کلیدواژه‌های خاص ACL پشتیبانی کنند یا نکنند. این ابزار قادر به بررسی آن نبوده و صرفاً برای پیکربندی آن تلاش می‌کند. در صورت بروز خطا، ابزار تنها آن را گزارش کرده و خاتمه می‌یابد. در این حالت، بقایایی در پیکربندی باقی خواهد ماند.

--sshkey=<SSH private key path>;

مسیر کلید خصوصی SSH برای احراز هویت.

--remote-interface=<remote interface>;

رابط شبکهٔ راه‌دور برای ضبط از آن. یک رابط یا فهرستی از نام‌های رابط‌ها می‌تواند استفاده شود. رابط‌ها با ویرگول جدا می‌شوند. نام‌های رابط باید توسط دستگاه پشتیبانی شوند.

نام‌هایی از رابط‌ها وجود دارند که باعث انواع متفاوتی از ضبط می‌شوند. این موارد مختص نرم‌افزار سیسکوی مورد استفاده هستند.

نام‌های ویژهٔ IOS

•process-switched - ضبط بسته‌های process switched در هر دو جهت
•from-us - ضبط بسته‌های process switched مبدأگرفته از دستگاه

نام‌های ویژهٔ IOS-XE

•control-plane - ضبط بسته‌های ورودی/خروجی درگیر با control plane نام‌های ویژه ASA
•asp-drop - ضبط بسته‌های دور انداخته‌شده توسط تمام دسته‌های asp
•TYPE---ifname - ساختار نحوی ارجاع به انواع ضبط ASA، ببینید: https://www.cisco.com/c/en/us/td/docs/security/asa/asa-cli-reference/A-H/asa-command-ref-A-H/ca-cld-commands.html#wp2435483314
•isakmp---ifname - ضبط بسته‌های isakmp
•lacp---ifname - ضبط بسته‌های lacp (تنها رابط‌های فیزیکی پشتیبانی می‌شوند)
•tls-proxy---ifname - ضبط بسته‌های tls-proxy
•inline-tag---ifname - ضبط تمام بسته‌های دارای برچسب SGT
•raw-data---ifname - همانند ifname
•ساختار نحوی برای ضبط ترافیک رمزگشایی‌شده برای برخی از انواع ضبط:
•isakmp/decrypted---ifname - ضبط بسته‌های isakmp به همراه بار داده رمزگشایی‌شده
•tls-proxy/decrypted---ifname - ضبط بسته‌های tls-proxy به همراه بار داده رمزگشایی‌شده
•inline-tag/decrypted---ifname - ضبط بسته‌های inline-tag به همراه بار داده رمزگشایی‌شده
•raw-data/decrypted---ifname - ضبط بسته‌های raw-data به همراه بار داده رمزگشایی‌شده

برای مثال از isakmp/decrypted---outside جهت ضبط ترافیک رمزشده و رمزگشایی‌شدهٔ isakmp روی رابط outside استفاده کنید.

--remote-count=<count>

تعداد بسته‌ها برای ضبط. فرایند ضبط پس از رسیدن به این تعداد متوقف می‌شود.

--extcap-capture-filter=<capture filter>;

استفاده‌نشده (فقط برای سازگاری).

برای مشاهده آرگومان‌های برنامه:

ciscodump --help

برای مشاهده نسخه برنامه:

ciscodump --version

برای مشاهده رابط‌ها:

ciscodump --extcap-interfaces

تنها از یک رابط (ciscodump) پشتیبانی می‌شود.

نمونه خروجی

interface {value=ciscodump}{display=SSH remote capture}

برای مشاهده DLTهای رابط:

ciscodump --extcap-interface=ciscodump --extcap-dlts

نمونه خروجی

dlt {number=147}{name=ciscodump}{display=Remote capture dependent DLT}

برای مشاهده گزینه‌های پیکربندی رابط:

ciscodump --extcap-interface=ciscodump --extcap-config

نمونه خروجی

ciscodump --extcap-interface=ciscodump --extcap-config
arg {number=0}{call=--remote-host}{display=Remote SSH server address}
    {type=string}{tooltip=The remote SSH host. It can be both an IP address or a hostname}
    {required=true}{group=Server}
arg {number=1}{call=--remote-port}{display=Remote SSH server port}
    {type=unsigned}{default=22}{tooltip=The remote SSH host port (1-65535)}
    {range=1,65535}{group=Server}
arg {number=2}{call=--remote-username}{display=Remote SSH server username}
    {type=string}{default=<current user>}{tooltip=The remote SSH username. If not provided, the current user will be used}
    {group=Authentication}
arg {number=3}{call=--remote-password}{display=Remote SSH server password}
    {type=password}{tooltip=The SSH password, used when other methods (SSH agent or key files) are unavailable.}
    {group=Authentication}
arg {number=4}{call=--sshkey}{display=Path to SSH private key}
    {type=fileselect}{tooltip=The path on the local filesystem of the private ssh key}
    {group=Authentication}
arg {number=5}{call=--proxycommand}{display=ProxyCommand}
    {type=string}{tooltip=The command to use as proxy for the SSH connection}{group=Authentication}
arg {number=6}{call--sshkey-passphrase}{display=SSH key passphrase}
    {type=password}{tooltip=Passphrase to unlock the SSH private key}{group=Authentication
arg {number=7}{call=--remote-interface}{display=Remote interface}
    {type=string}{tooltip=The remote network interface used for capture}
    {required=true}{group=Capture}
arg {number=8}{call=--remote-filter}{display=Remote capture filter}
    {type=string}{tooltip=The remote capture filter}{default=<filter to exclude current host>}
    {group=Capture}
arg {number=9}{call=--remote-count}{display=Packets to capture}
    {type=unsigned}{tooltip=The number of remote packets to capture.}
    {required=true}{group=Capture}
arg {number=10}{call=--debug}{display=Run in debug mode}
    {type=boolflag}{default=false}{tooltip=Print debug messages}
    {required=false}{group=Debug}
arg {number=11}{call=--debug-file}{display=Use a file for debug}
    {type=string}{tooltip=Set a file where the debug messages are written}
    {required=false}{group=Debug}

برای ضبط در IOS/IOS-XE:

ciscodump --extcap-interface ciscodump --fifo=/tmp/cisco.pcap --capture --remote-host 192.168.1.10
    --remote-username user --remote-interface gigabit0/0,gigabit0/1
    --remote-filter "permit ip host 192.168.1.1 any, permit ip any host 192.168.1.1"
    --remote-count=10

برای ضبط در IOS/IOS-XE:

ciscodump --extcap-interface ciscodump --fifo=/tmp/cisco.pcap --capture --remote-host 192.168.1.10
    --remote-username user --remote-interface outside,dmz
    --remote-filter "permit host 192.168.1.1 any4, permit any4 host 192.168.1.1"
    --remote-count=10
ciscodump --extcap-interface ciscodump --fifo=/tmp/cisco.pcap --capture --remote-host 192.168.1.10
    --remote-username user --remote-interface raw-data/decrypted---outside
    --remote-filter "permit host 192.168.1.1 any4, permit any4 host 192.168.1.1"

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

کارایی و سرعت خواندن در IOS/IOS-XE به دلیل بازخوانی مداوم و مکرر بافر ضبط ضعیف است.

پیکربندی ضبط روی دستگاه فرآیندی چندمرحله‌ای است. اگر اتصال SSH در حین این فرآیند قطع شود، ممکن است پیکربندی در وضعیتی ناهماهنگ و ناسازگار باقی بماند. همچنین اگر فرآیند ضبط متوقف شود و ciscodump نتواند پیکربندی را پاکسازی کند، ممکن است این حالت ایجاد شود. در این صورت، لازم است به دستگاه متصل شده و با حذف مؤلفه‌های پیکربندی زیر، آن را به‌صورت دستی پاکسازی کنید:

•IOS
•نقاط ضبط WSC_P_<number> (بسته به تعداد رابط‌های ضبط)
•بافر ضبط WSC_B
•فهرست کنترل دسترسی (ACL) ضبط WSC_ACL (در صورت استفاده از فیلتر)
•IOS-XE
•ضبط WSC
•فهرست کنترل دسترسی (ACL) ضبط WSC_ACL (در صورت استفاده از فیلتر)
•ASA
•ضبط WSC
•فهرست کنترل دسترسی (ACL) ضبط WSC_ACL (در صورت استفاده از فیلتر)

در پلتفرم‌های IOS، تنها دستورهای IPv4 صادر شده و فقط بسته‌های IPv4 ضبط می‌شوند..SH "همچنین ببینید (SEE ALSO)"

wireshark(1), tshark(1), dumpcap(1), extcap(4), sshdump(1)

دستور ciscodump بخشی از توزیع Wireshark است. آخرین نسخهٔ Wireshark را می‌توان در نشانی زیر یافت: https://www.wireshark.org.

نسخه‌های HTML صفحات راهنمای پروژهٔ Wireshark در نشانی زیر در دسترس هستند: https://www.wireshark.org/docs/man-pages.

نویسندهٔ اصلی
Dario Lombardo <lomato[AT]gmail.com>

2026-09-03