| STRATO(1) | STRATO(1) |
نام (NAME)
strato - تخلیه و تحلیل فراخوانهای سیستمی و گزارشهای رویداد
خلاصه دستور (SYNOPSIS)
strato [ -i <capture source>|- ] [ -f <capture filter> ] [ -2 ] [ -r <infile> ] [ -w <outfile>|- ] [ options ] [ <filter> ]
strato -h|--help
strato -v|--version
توضیحات (DESCRIPTION)
دستور strato یک تحلیلگر فراخوانهای سیستمی و لاگ است. این ابزار به شما امکان میدهد تا رویدادهای فراخوانهای سیستمی و لاگها را از یک منبع زنده ضبط کنید، یا رویدادها را از یک فایل ضبط قبلی بخوانید، و سپس شکل رمزگشاییشده آن رویدادها را در خروجی استاندارد چاپ کرده یا بستهها را در یک فایل بنویسید. قالب بومی فایلهای ضبطشده strato قالب scap است، که قالبی یکسان با فرمت مورد استفاده توسط Stratoshark، Falco، sysdig و ابزارهای متنوع دیگر میباشد.
بدون تنظیم هیچ گزینهای، strato تا حد زیادی شبیه به sysdig کار خواهد کرد. این برنامه از libscap و libsinsp برای ضبط ترافیک از نخستین منبع دردسترس استفاده میکند و برای هر بسته دریافتی، یک خط خلاصه در خروجی استاندارد نمایش میدهد.
هنگامی که با گزینه -r اجرا شود و فایل ضبطی را برای خواندن مشخص کند، strato مجدداً بسیار شبیه به sysdig عمل خواهد کرد، بستهها را از فایل میخواند و برای هر بسته خواندهشده یک خط خلاصه در خروجی استاندارد نمایش میدهد. ابزار strato قادر به تشخیص، خواندن و نوشتن همان فایلهای ضبطی است که توسط Stratoshark پشتیبانی میشوند. فایل ورودی نیازی به پسوند فایل بخصوصی ندارد؛ قالب فایل و فشردهسازی اختیاری gzip، Zstandard یا LZ4 به طور خودکار شناسایی خواهند شد. در نزدیکی آغاز بخش DESCRIPTION از wireshark(1) یا https://www.wireshark.org/docs/man-pages/wireshark.html توضیحات دقیقی درباره روش مدیریت این موضوع توسط Wireshark آمده است، که همان روش مورد استفاده توسط strato میباشد.
پشتیبانی از فایلهای فشرده از کتابخانه zlib استفاده میکند (و در نتیجه به آن نیاز دارد). اگر کتابخانه zlib هنگام کامپایل strato موجود نباشد، کامپایل برنامه ممکن خواهد بود، اما برنامه حاصل قادر به خواندن فایلهای فشرده نخواهد بود. به همین ترتیب، LZ4 و ZStandard نیز به کتابخانههای مربوط به خود نیاز دارند.
هنگام نمایش رویدادها در خروجی استاندارد، strato به طور پیشفرض یک خط خلاصه شامل فیلدهای مشخصشده در فایل ترجیحات (preferences) مینویسد (که همان فیلدهای نمایشیافته در قاب فهرست بستهها در Wireshark هستند)، اگرچه چنانچه به جای نوشتن بستهها از یک فایل ضبط ذخیرهشده، بستهها را همگام با ضبط کردن آنها بنویسد، فیلد "frame number" را نمایش نخواهد داد. اگر گزینه -V مشخص شود، در عوض نمایی از جزئیات بسته را مینویسد و تمام فیلدهای همه پروتکلهای موجود در بسته را نشان میدهد. اگر گزینه -O مشخص شود، تنها جزئیات کامل پروتکلهای مشخصشده را نشان میدهد و برای تمام پروتکلهای دیگر صرفاً خط جزئیات بالاترین سطح را نمایش میدهد. از خروجی «strato -G protocols» برای یافتن اختصارات پروتکلهایی که میتوانید مشخص کنید استفاده نمایید. اگر گزینه -P همراه با هر یک از گزینههای -V یا -O مشخص شود، هم خط خلاصه برای کل بسته و هم جزئیات نمایش داده خواهند شد.
ضبط بستهها با استفاده از کتابخانه pcap انجام میشود. آن کتابخانه از تعیین یک عبارت فیلتر پشتیبانی میکند؛ بستههایی که با آن فیلتر مطابقت نداشته باشند دور ریخته میشوند. گزینه -f برای مشخص کردن فیلتر ضبط به کار میرود. نحو فیلتر ضبط توسط کتابخانه pcap تعریف میشود؛ این نحو با نحو فیلتر نمایش که در زیر توضیح داده شده متفاوت است، و سازوکار پالایش در قابلیتهای خود محدودتر است.
فیلترهای نمایش در strato، که به شما اجازه میدهند بستههایی را که باید رمزگشایی شوند یا در یک فایل نوشته شوند انتخاب کنید، بسیار قدرتمند هستند؛ فیلدهای بیشتری در strato نسبت به سایر تحلیلگرهای پروتکل قابل پالایش هستند، و نحوی که میتوانید برای ایجاد فیلترهای خود استفاده کنید غنیتر است. با پیشرفت strato، انتظار میرود فیلدهای پروتکل بیشتر و بیشتری در فیلترهای نمایش مجاز شوند. فیلترهای نمایش از همان نحوِ فیلترهای نمایش و رنگآمیزی در Wireshark استفاده میکنند؛ یک فیلتر نمایش با گزینه -Y مشخص میشود.
فیلترهای نمایش را میتوان هنگام ضبط یا هنگام خواندن از یک فایل ضبط مشخص کرد. توجه داشته باشید که فیلترهای ضبط بسیار کارآمدتر از فیلترهای نمایش هستند، و چنانچه برای یک ضبط زنده فیلتر نمایش تعیین شود، ممکن است همگامماندن با یک شبکه شلوغ برای strato دشوارتر باشد؛ بنابراین در صورت استفاده از فیلتر نمایش احتمال از دست رفتن بستهها بیشتر خواهد بود.
یک فیلتر ضبط یا نمایش را میتوان به ترتیب با گزینههای -f یا -Y مشخص کرد، که در این حالت کل عبارت فیلتر باید به عنوان یک آرگومان واحد تعیین شود (به این معنی که اگر حاوی فاصله باشد، باید داخل نقلقول قرار گیرد)، یا میتوان آن را با آرگومانهای خط فرمان پس از آرگومانهای گزینهها مشخص کرد، که در این صورت تمام آرگومانهای پس از آرگومانهای فیلتر به عنوان عبارت فیلتر در نظر گرفته میشوند. اگر فیلتر با آرگومانهای خط فرمان پس از آرگومانهای گزینه مشخص شود، در صورتی که ضبط در حال انجام باشد (یعنی هیچ گزینه -r مشخص نشده باشد) به عنوان فیلتر ضبط، و در صورتی که یک فایل ضبط در حال خوانده شدن باشد (یعنی اگر گزینه -r مشخص شده باشد) به عنوان فیلتر نمایش در نظر گرفته میشود.
اگر هنگام ضبط بستهها یا خواندن از یک فایل ضبط گزینه -w مشخص شود، strato بستهها را در خروجی استاندارد نمایش نمیدهد. در عوض، بستهها را در یک فایل ضبط با نام مشخصشده توسط گزینه -w مینویسد. توجه داشته باشید که فیلترهای نمایش در حال حاضر هنگام ضبط و ذخیره بستههای ضبطشده پشتیبانی نمیشوند.
اگر میخواهید شکل رمزگشاییشده بستهها را در یک فایل بنویسید، strato را بدون گزینه -w اجرا کرده و خروجی استاندارد آن را به فایل هدایت کنید (از گزینه -w استفاده نکنید).
اگر میخواهید بستهها در خروجی استاندارد نمایش داده شوند و همزمان در یک فایل نیز ذخیره گردند، علاوه بر گزینه -w گزینه -P را مشخص کنید تا خط خلاصه نمایش یابد، علاوه بر گزینه -w گزینه -V را مشخص کنید تا جزئیات بسته نمایش یابد، و گزینه -O را همراه با فهرستی از پروتکلها مشخص کنید تا جزئیات کامل پروتکلهای مشخصشده و خط جزئیات بالاترین سطح برای تمام پروتکلهای دیگر نمایش داده شود. اگر گزینه -P همراه با گزینه -V یا -O استفاده شود، خط خلاصه به همراه خطوط جزئیات نمایش داده خواهد شد.
هنگام نوشتن بستهها در یک فایل، strato به طور پیشفرض فایل را در قالب pcapng مینویسد، و تمام بستههای دریافتی را در فایل خروجی مینویسد. گزینه -F میتواند برای تعیین قالبی که فایل با آن نوشته میشود استفاده شود. فهرست قالبهای فایل دردسترس با اجرای گزینه -F بدون مقدار نمایش داده میشود. با این حال، برای یک ضبط زنده، تنها میتوانید قالب فایلی را مشخص کنید که توسط dumpcap(1) پشتیبانی میشود، یعنی pcapng یا pcap. گزینه --compress نیز میتواند برای تعیین یک روش فشردهسازی استفاده شود؛ فهرست روشهای فشردهسازی پشتیبانیشده برای نوشتن را میتوان با گزینه --compress بدون آرگومان نمایش داد. اگر گزینه --compress داده نشود، روش فشردهسازی مدنظر (در صورت وجود) از پسوند نام فایل ارائهشده به عنوان آرگومان به گزینه -w استنباط میشود.
هنگام ضبط بستهها، strato یک خط آغازین در خروجی استاندارد خطا مینویسد که رابطهایی را که بستهها از آنها ضبط میشوند فهرست میکند و در صورتی که اطلاعات بستهها در ترمینال نمایش داده نشود، شمارش مداومی از بستههای ضبطشده را در خروجی استاندارد مینویسد. اگر گزینه -q مشخص شود، نه شمارش مداوم و نه اطلاعات بسته نمایش داده نخواهند شد؛ در عوض، در پایان فرایند ضبط، تعداد بستههای ضبطشده نمایش داده خواهد شد. اگر گزینه -Q مشخص شود، نه خط آغازین، نه اطلاعات بسته و نه هیچ شمارشی از بستهها نمایش داده نخواهد شد. اگر گزینه -q یا -Q استفاده شود، میتوان از گزینههای -P، -V یا -O استفاده کرد تا با وجود فرونشانی سایر خروجیها، خروجی متناظر نمایش یابد.
هنگام خواندن بستهها، گزینههای -q و -Q نمایش خلاصه یا جزئیات بسته را فرونشانی خواهند کرد؛ این قابلیت زمانی استفاده میشود که گزینههای -z برای نمایش آمارها مشخص شده باشند، به طوری که فقط آمارها، و نه اطلاعات بستهها، نمایش داده شوند.
گزینه -G یک حالت ویژه است که صرفاً باعث میشود strato یکی از چندین نوع واژهنامه درونی را تخلیه (dump) کرده و سپس خارج شود..SH "گزینهها (OPTIONS)"
-2
تحلیل دو-گذره (two-pass) را انجام میدهد. این امر باعث میشود strato خروجی را تا زمان تکمیل کامل گذر اول بافر کند، اما امکان پر کردن فیلدهایی را که نیازمند آگاهی از آینده هستند، مانند فیلدهای 'response in frame #'، فراهم میسازد. همچنین امکان محاسبه صحیح وابستگیهای فریم برای بازترکیب (reassembly) را میدهد. این گزینه به قابلیت جستجوی رو به عقب در ورودی نیاز دارد و بنابراین نمیتوان از آن برای دریافتهای زنده یا هنگام خواندن از لوله (pipe) یا FIFO استفاده کرد.
-a|--autostop <capture autostop condition>
معیاری را مشخص میکند که تعیین میکند چه زمانی strato نوشتن در فایل دریافت را متوقف کند. این معیار به صورت test:value است، که در آن test یکی از موارد زیر است:
duration:value پس از سپری شدن value ثانیه، نوشتن در فایل دریافت متوقف میشود. مقادیر ممیز شناور (مانند 0.5) مجاز هستند.
files:value پس از نوشته شدن تعداد value فایل، نوشتن در فایلهای دریافت متوقف میشود.
filesize:value پس از رسیدن حجم فایل دریافت به value کیلوبایت، نوشتن در آن متوقف میشود. اگر این گزینه همراه با گزینه -b استفاده شود، با رسیدن به این اندازه فایل، strato نوشتن در فایل دریافت فعلی را متوقف کرده و به فایل بعدی جابهجا میشود. هنگام خواندن یک فایل دریافت، strato پس از اینکه تعداد بایتهای خواندهشده از این مقدار فراتر رفت، خواندن فایل را متوقف میکند (بسته کامل خوانده خواهد شد، بنابراین ممکن است بایتهای بیشتری نسبت به این مقدار خوانده شود). توجه داشته باشید که اندازه فایل به حداکثر ۲ ترابایت محدود است، هرچند اگر تعداد بستهها از ۲۳۲ (۴۲۹۴۹۶۷۲۹۶) فراتر رود ممکن است پیش از آن نیز با مشکلاتی مواجه شوید.
packets:value پس از اینکه فایل شامل value بسته شد، به فایل بعدی جابهجا میشود. این مقدار شامل بستههایی که از فیلتر نمایش عبور نمیکنند نمیشود، بنابراین ممکن است با -c<capture packet count> متفاوت باشد.
-A <user>:<password>
مشخص کردن یک کاربر و گذرواژه هنگامی که strato از یک رابط rpcap:// که نیازمند احراز هویت است، دریافت بسته را انجام میدهد.
این گزینه در libpcap با پشتیبانی راه دور فعال در دسترس است.
-b|--ring-buffer <capture ring buffer option>
باعث اجرای strato در حالت «چند فایلی» (multiple files) میشود. در حالت «چند فایلی»، strato در چندین فایل دریافت مینویسد. هنگامی که اولین فایل دریافت پر شد، strato نوشتن را به فایل بعدی منتقل میکند و به همین ترتیب ادامه میدهد.
نام فایلهای ایجادشده بر اساس نام فایل مشخصشده با گزینه -w، شماره فایل و تاریخ و زمان ایجاد آن است، مانند outfile_00001_20260714120117.pcap، outfile_00002_20260714120523.pcap، ...
با گزینه files همچنین میتوان یک «بافر حلقهای» تشکیل داد. این کار فایلهای جدید را تا رسیدن به تعداد فایلهای مشخصشده پر میکند، و در آن نقطه strato دادههای اولین فایل را دور ریخته و شروع به نوشتن در آن فایل میکند و به همین ترتیب. اگر گزینه files تنظیم نشده باشد، فایلهای جدید تا زمانی که یکی از شرایط توقف دریافت برقرار شود (یا دیسک پر شود) پر میشوند.
معیار به صورت key:value است، که در آن key یکی از موارد زیر است:
duration:value پس از سپری شدن value ثانیه، به فایل بعدی جابهجا میشود، حتی اگر فایل فعلی کاملاً پر نشده باشد. مقادیر ممیز شناور (مانند 0.5) مجاز هستند.
files:value پس از نوشته شدن تعداد value فایل، دوباره از فایل اول شروع میکند (تشکیل یک بافر حلقهای). این مقدار باید کمتر از ۱۰۰۰۰۰ باشد. هنگام استفاده از تعداد زیادی فایل باید احتیاط کرد: برخی سیستمهای فایل با فایلهای زیاد در یک دایرکتوری منفرد به خوبی عمل نمیکنند. معیار files نیازمند تعیین یکی از معیارهای duration، interval یا filesize برای کنترل زمان رفتن به فایل بعدی است. باید توجه داشت که هر پارامتر -b دقیقاً یک معیار را میپذیرد؛ برای مشخص کردن دو معیار، هر یک باید با گزینه -b همراه شوند.
filesize:value پس از رسیدن حجم فایل به value کیلوبایت، به فایل بعدی جابهجا میشود. توجه داشته باشید که اندازه فایل به حداکثر مقدار ۲ ترابایت محدود است، هرچند اگر تعداد بستهها از ۲۳۲ (۴۲۹۴۹۶۷۲۹۶) بیشتر شود ممکن است پیش از آن نیز با مشکلاتی مواجه شوید.
interval:value هنگامی که زمان مضرب دقیقی از value ثانیه باشد به فایل بعدی جابهجا میشود. برای مثال، برای جابهجایی به یک فایل جدید در رأس هر ساعت، از ۳۶۰۰ استفاده کنید.
packets:value پس از اینکه فایل شامل value بسته شد، به فایل بعدی جابهجا میشود.
printname:filename پس از بسته شدن فایل، نام جدیدترین فایل نوشتهشده را در filename چاپ میکند. filename میتواند stdout یا - برای خروجی استاندارد، یا stderr برای خطای استاندارد باشد.
nametimenum:value انتخاب بین دو الگوی نامگذاری فایل ذخیرهسازی. اگر value برابر ۱ باشد، بخش شماره ترتیبی فایل قبل از بخش زمان شروع قرار میگیرد؛ این رفتار اصلی و پیشفرض است (مانند log_00001_20260714164426.pcap). اگر value بزرگتر از ۱ باشد، بخش زمان شروع قبل از بخش شماره ترتیبی قرار میگیرد (مانند log_20210828164426_00001.pcap). مورد دوم باعث میشود ترتیب مرتبسازی الفبایی معادل ترتیب زمان ایجاد باشد و مجموعههای فایلی چندگانه مرتبط را در یک دایرکتوری در کنار هم نگه میدارد.
مثال: دستور strato -b filesize:1000 -b files:5 منجر به یک بافر حلقهای متشکل از پنج فایل با حجم هر کدام یک مگابایت میشود.
-B|--buffer-size <capture buffer size>
تنظیم اندازه بافر دریافت (بر حسب مبیبایت، پیشفرض ۲ مبیبایت است). این اندازه توسط راهانداز دریافت برای بافر کردن دادههای بسته تا زمان نوشتن آن دادهها روی دیسک استفاده میشود. اگر در حین دریافت با ریزش بسته (packet drop) مواجه شدید، سعی کنید این اندازه را افزایش دهید. توجه داشته باشید، در حالی که strato به طور پیشفرض سعی میکند اندازه بافر را روی ۲ مبیبایت تنظیم کند و میتوان مقدار بزرگتری نیز برای آن تعیین کرد، سیستم یا رابطی که دریافت را روی آن انجام میدهید ممکن است اندازه بافر دریافت را بدون اطلاع به مقدار کمتری محدود کرده یا آن را افزایش دهد.
این گزینه در سیستمهای سازگار با یونیکس، مانند Linux، macOS، \*BSD، Solaris، و AIX به همراه libpcap نسخه 1.0.0 یا بالاتر، و در Windows در دسترس است. در سیستمهای سازگار با یونیکس با نسخههای قدیمیتر libpcap در دسترس نیست.
این گزینه میتواند چندین بار تکرار شود. اگر پیش از اولین رخداد گزینه -i استفاده شود، اندازه بافر دریافت پیشفرض را تنظیم میکند. اگر پس از گزینه -i استفاده شود، اندازه بافر دریافت را برای رابط مشخصشده توسط آخرین گزینه -i قبل از این گزینه تنظیم میکند. اگر اندازه بافر دریافت به طور مشخص تعیین نشود، اندازه بافر دریافت پیشفرض به جای آن استفاده میشود.
-c <capture packet count>
تنظیم حداکثر تعداد بستهها برای خواندن هنگام دریافت دادههای زنده. در صورت خواندن یک فایل دریافت، حداکثر تعداد بستهها برای خواندن را تعیین میکند. این شامل تمام بستههایی که از فیلتر نمایش عبور نمیکنند نیز میشود، بنابراین ممکن است با -a packets:<capture packet count> متفاوت باشد.
-C <configuration profile>
اجرا با نمایه پیکربندی (configuration profile) دادهشده. اگر در ترکیب با --global-profile استفاده شود، نمایه سراسری با نام مرتبط استفاده خواهد شد.
-D|--list-interfaces
چاپ فهرستی از رابطهایی که strato میتواند روی آنها دریافت را انجام دهد و خروج. برای هر رابط شبکه، یک شماره و یک نام رابط، که احتمالاً با شرح متنی رابط دنبال میشود، چاپ میگردد. نام رابط یا شماره را میتوان به پرچم -i برای مشخص کردن رابط مورد نظر جهت دریافت داد. استفاده از شماره میتواند در سیستمهای Windows مفید باشد، که در آنها رابطها نامهای طولانی دارند و معمولاً شامل یک GUID هستند.
-e <field>
افزودن یک فیلد به فهرست فیلدهای نمایشی در صورتی که -T ek|fields|json|pdml انتخاب شده باشد. این گزینه میتواند چندین بار در خط فرمان استفاده شود. اگر گزینه -T fields انتخاب شده باشد، باید حداقل یک فیلد ارائه شود. انواع ستونها میتوانند با پیشوند «_ws.col.» استفاده شوند. پیشوند کردن نام فیلد با علامت اتساین (@) دادهها را به صورت بایتهای هگزادسیمال نمایش میدهد.
مثال: strato -T fields -e frame.number -e ip.addr -e udp -e _ws.col.info
فیلدها به طور پیشفرض با نویسههای تب جدا میشوند. گزینه -E قالب فیلدهای چاپشده را کنترل میکند. دادن یک پروتکل به جای یک فیلد منفرد، خلاصه پروتکل (برچسب زیردرخت) را از جزئیات بسته به عنوان یک فیلد واحد چاپ میکند. اگر خلاصه پروتکل فقط شامل نام پروتکل باشد (مانند «Hypertext Transfer Protocol»)، آنگاه نام فیلتر پروتکل («http») چاپ خواهد شد.
-E <field print option>
تنظیم گزینهای برای کنترل چاپ فیلدها هنگامی که -T fields انتخاب شده است.
گزینهها عبارتند از:
bom=y|n اگر y باشد، نشانگر ترتیب بایت (BOM) مربوط به UTF-8 (هگزادسیمال ef, bb, bf) را به ابتدای خروجی اضافه میکند. پیشفرض n است.
header=y|n اگر y باشد، فهرستی از نامهای فیلدهای مشخصشده با استفاده از -e را در اولین خط خروجی چاپ میکند؛ نام فیلدها با استفاده از همان نویسهای که مقادیر فیلدها جدا میشوند تفکیک خواهد شد. پیشفرض n است.
separator=/t|/s|<character> تعیین نویسه جداکننده برای فیلدها. اگر /t باشد از تب استفاده میشود (پیشفرض است)، اگر /s باشد از یک فاصله منفرد استفاده خواهد شد. در غیر این صورت هر نویسهای که بتواند توسط خط فرمان به عنوان بخشی از گزینه پذیرفته شود، میتواند استفاده شود.
occurrence=f|l|a انتخاب اینکه کدام رخداد برای فیلدهایی که چندین رخداد دارند استفاده شود. اگر f باشد اولین رخداد، اگر l باشد آخرین رخداد و اگر a باشد تمام رخدادها استفاده خواهند شد (پیشفرض).
aggregator=,|/s|<character> تنظیم نویسه تجمیعکننده برای فیلدهایی که دارای چندین رخداد هستند. اگر , باشد از ویرگول استفاده میشود (پیشفرض)، اگر /s باشد از یک فاصله منفرد استفاده خواهد شد. در غیر این صورت هر نویسهای که بتواند توسط خط فرمان به عنوان بخشی از گزینه پذیرفته شود ممکن است استفاده گردد.
quote=d|s|n تنظیم نویسه نقلقول برای احاطه کردن فیلدها. d از نقلقول دوتایی، s از نقلقول تکی، و n از بدون نقلقول (پیشفرض) استفاده میکند. اگر نویسه نقلقول در مقدار یک فیلد ظاهر شود، با دو بار تکرار شدن گریز داده میشود.
escape=y|n اگر y باشد، نویسههای کنترلی فاصله خالی (تب، line feed، بازگشت مکاننما carriage return، form feed و تب عمودی)، پسبر (backspace) و بکاسلش در مقادیر فیلد با نویسههای گریز به سبک C جایگزین میشوند، مانند «\n» برای line feed. اگر n باشد، رشتههای مقدار فیلد همانطور که هستند چاپ میشوند. پیشفرض y است.
escape_formulas=y|n اگر y باشد، پیشوند هر مقدار فیلدی را که یک برنامه صفحهگسترده ممکن است آن را به عنوان یک فرمول ارزیابی کند با یک آپوستروف قرار میدهد تا دادههای بسته نتوانند فرمولی را به فایل CSV که بعداً در یک صفحهگسترده باز میشود تزریق کنند. مقادیری که با =، +، - یا @ شروع میشوند (که به صورت اختیاری با فاصله پیش از آنها همراه است) تحت تأثیر قرار میگیرند. توجه داشته باشید که این گزینه مقادیر صادرشده را تغییر میدهد و به ویژه برای اعداد منفی موجه نیز اعمال میشود، بنابراین به طور پیشفرض غیرفعال است؛ زمانی که خروجی برای یک صفحهگسترده و نه برای پردازش ماشینی بیشتر در نظر گرفته شده است، آن را فعال کنید. پیشفرض n است.
-f <capture filter>
تنظیم عبارت فیلتر دریافت.
این گزینه میتواند چندین بار تکرار شود. اگر پیش از اولین رخداد گزینه -i استفاده شود، عبارت فیلتر دریافت پیشفرض را تعیین میکند. اگر پس از یک گزینه -i استفاده شود، عبارت فیلتر دریافت را برای رابط مشخصشده توسط آخرین گزینه -i قبل از این گزینه تنظیم میکند. اگر عبارت فیلتر دریافت به طور خاص مشخص نشده باشد، در صورت ارائه از عبارت فیلتر دریافت پیشفرض استفاده میشود.
نام فیلترهای دریافت از پیش تعریفشده، همانطور که در گزینه منوی گرافیکی Capture→Capture Filters نشان داده شده است، میتوانند با افزودن پیشوند «predef:» به آرگومان استفاده شوند. مثال: strato -f "predef:MyPredefinedHostOnlyFilter"
-F <file format>
-g
-G <report type>
گزینه -G باعث میشود strato یکی از انواع واژهنامهها را برونریزی کرده و سپس خارج شود. نوع واژهنامه اکنون اجباری است؛ نسخههای قبلی هنگامی که هیچ نوعی داده نمیشد گزارش fields را به صورت پیشفرض تولید میکردند. به استثنای یک مورد، گزارشها بازتابدهنده پیکربندی فعلی هستند، از جمله آنچه با گزینه -C داده شده یا توسط سایر گزینههای خط فرمان تغییر یافته است. استفاده از نوع گزارش help تمام انواع گزارشهای فعلی را فهرست میکند.
انواع گزارشهای موجود عبارتند از:
column-formats قالبهای ستونی شناختهشده توسط strato را برونریزی میکند. در هر خط یک رکورد وجود دارد. فیلدها با تب جدا شدهاند.
فیلد ۱
فیلد ۲
فیلد ۳
این گزارش با یک مثال کاربردی دنبال میشود که نحوه تغییر ستونها را با بازنویسی مقدار ترجیح gui.column.format با استفاده از -o نشان میدهد.
currentprefs یک رونوشت از فایل ترجیحات فعلی را در stdout برونریزی میکند.
decodes پیوندهای «layer type»/«decode as» را در stdout برونریزی میکند. در هر خط یک رکورد وجود دارد. فیلدها با تب جدا شدهاند.
فیلد ۱
فیلد ۲
فیلد ۳
defaultprefs یک فایل ترجیحات پیشفرض را در stdout برونریزی میکند. این گزارش تحت تأثیر سایر آرگومانهای خط فرمان قرار نمیگیرد.
dissectors فهرستی از تشریحکنندههای ثبتشده را در stdout برونریزی میکند. در هر خط یک رکورد وجود دارد. فیلدها با تب جدا شدهاند.
فیلد ۱
فیلد ۲
dissector-tables فهرستی از جدولهای تشریحکننده را در stdout برونریزی میکند. در هر خط یک رکورد وجود دارد. فیلدها با تب جدا شدهاند.
فیلد ۱
فیلد ۲
فیلد ۳
فیلد ۴
فیلد ۵
فیلد ۶
elastic-mapping[,filter] فایل نگاشت ElasticSearch را در stdout برونریزی میکند. فیلدهایی که در حالت پیشفرض (رشته) قرار دارند نگاشت نخواهند شد.
filter یک فهرست اختیاری از نامهای فیلتر پروتکل جداشده با ویرگول است که فایل نگاشت تولیدشده را به پروتکلهای مشخص محدود میکند، تا از ایجاد یک فایل نگاشت حجیم که ممکن است برخی نرمافزارها (مانند Kibana) را با اختلال مواجه کند جلوگیری شود. برای مثال،
strago -G elastic-mapping,ip,udp,dns
enterprises جدول شماره سازمانی خصوصی (PEN) مربوط به IANA را برونریزی میکند.
fieldcount تعداد فیلدهای سرآیند را در stdout برونریزی میکند.
fields[,prefix] محتویات پایگاهداده ثبت را در stdout برونریزی میکند. یک برنامه مستقل میتواند این خروجی را گرفته و آن را در قالب جدولهای مناسب، HTML یا هر چیز دیگری قالببندی کند. در هر خط یک رکورد وجود دارد. هر رکورد یا یک پروتکل است یا یک فیلد سرآیند که با اولین فیلد متمایز میشود. فیلدها با تب جدا شدهاند.
پروتکلها (Protocols)
فیلد ۱
فیلد ۲
فیلد ۳
فیلدهای سرآیند (Header Fields)
فیلد ۱
فیلد ۲
فیلد ۳
فیلد ۴
فیلد ۵
فیلد ۶
فیلد ۷
فیلد ۸
یک آرگومان پیشوند جستجوی اختیاری را میتوان به fields داد که در این صورت خروجی به پروتکلها و فیلدهایی محدود میشود که مخفف آنها با پیشوند جستجو شروع میشود.
خروجی جستجو (Search Output)
فیلد ۱
فیلد ۲
folders پوشههای مختلف مورد استفاده توسط strato را برونریزی میکند. این اساساً همان دادههای گزارششده در برگه About | Folders در Wireshark است. در هر خط یک رکورد وجود دارد. فیلدها با تب جدا شدهاند.
فیلد ۱
فیلد ۲
ftypes انواع بنیادی («ftypes») شناختهشده توسط strato را برونریزی میکند. در هر خط یک رکورد وجود دارد. فیلدها با تب جدا شدهاند.
فیلد ۱
فیلد ۲
heuristic-decodes رمزگشاییهای اکتشافی نصبشده فعلی را برونریزی میکند. در هر خط یک رکورد وجود دارد. فیلدها با تب جدا شدهاند.
فیلد ۱
فیلد ۲
فیلد ۳
فیلد ۴
فیلد ۵
فیلد ۶
help انواع گزارشهای موجود را نمایش میدهد.
manuf جدول جستجوی آدرس MAC را در قالب manuf برونریزی میکند.
plugins افزونههای نصبشده فعلی را برونریزی میکند. در هر خط یک رکورد وجود دارد. فیلدها با تب جدا شدهاند.
فیلد ۱
فیلد ۲
فیلد ۳
فیلد ۴
profiles[,filter] فهرستی از نمایهها را برونریزی میکند. انواع خاص نمایه را میتوان با فیلترهای "global"، "personal" یا "all" فهرست کرد. به صورت پیشفرض، "all" نمایش داده میشود.
فیلد ۱
فیلد ۲
protocols پروتکلهای موجود در پایگاهداده ثبت را در stdout برونریزی میکند. یک برنامه مستقل میتواند این خروجی را گرفته و آن را در قالب جدولهای مناسب، HTML یا هر چیز دیگری قالببندی کند. در هر خط یک رکورد وجود دارد. فیلدها با تب جدا شدهاند.
فیلد ۱
فیلد ۲
فیلد ۳
فیلد ۴
فیلد ۵
فیلد ۶
services جدول خدمات انتقال (درگاههای) TCP، UDP و SCTP را برونریزی میکند.
values مقادیر value_strings، range_strings یا رشتههای true/false را برای فیلدهایی که دارای آنها هستند برونریزی میکند. در هر خط یک رکورد وجود دارد. فیلدها با تب جدا شدهاند. سه نوع رکورد وجود دارد: Value String، Range String و True/False String. اولین فیلد، 'V'، 'R' یا 'T'، نوع رکورد را مشخص میکند.
رشتههای مقدار (Value Strings)
فیلد ۱
فیلد ۲
فیلد ۳
فیلد ۴
رشتههای بازه (Range Strings)
فیلد ۱
فیلد ۲
فیلد ۳
فیلد ۴
فیلد ۵
رشتههای درست/نادرست (True/False Strings)
فیلد ۱
فیلد ۲
فیلد ۳
فیلد ۴
-h|--help
-H <input hosts file>
خواندن فهرستی از مدخلها از یک فایل «hosts»، که سپس در یک فایل دریافت نوشته خواهد شد. متضمن -W n است. میتواند چندین بار فراخوانی شود.
قالب فایل «hosts» در نشانی زیر مستند شده است: <https://en.wikipedia.org/wiki/Hosts_(file)>.
-i|--interface <capture interface> | -
تنظیم نام رابط شبکه یا لولهای که برای دریافت زنده بستهها استفاده میشود.
نام رابطهای شبکه باید با یکی از نامهای فهرستشده در «strato -D» (توضیح داده شده در بالا) مطابقت داشته باشد؛ همچنین یک شماره، همانطور که توسط «strato -D» گزارش شده است، میتواند استفاده شود.
اگر هیچ رابطی مشخص نشده باشد، strato در فهرست رابطها جستجو میکند، و اگر رابطهای غیر loopback وجود داشته باشد اولین آنها را، و در صورت نبودن رابط غیر loopback، اولین رابط loopback را انتخاب میکند. اگر اصلاً هیچ رابطی وجود نداشته باشد، strato خطایی گزارش کرده و دریافت را شروع نمیکند.
نامهای لوله باید یا نام یک FIFO (لوله نامگذاری شده) باشد یا «-» برای خواندن دادهها از ورودی استاندارد. در سیستمهای Windows، نام لولهها باید به فرم «\\.\pipe\pipename» باشد. دادههای خواندهشده از لولهها باید در قالب استاندارد pcapng یا pcap باشند. دادههای pcapng باید همان ترتیب بایت (endianness) میزبان دریافتکننده را داشته باشند.
این گزینه میتواند چندین بار تکرار شود. هنگام دریافت از چندین رابط، فایل دریافت در قالب pcapng ذخیره خواهد شد.
-j <protocol match filter>
فیلتر تطبیق پروتکل مورد استفاده برای انواع فایل خروجی ek|json|jsonraw|pdml. تنها گره والد پروتکل گنجانده میشود. گرههای فرزند تنها در صورتی گنجانده میشوند که به صراحت در فیلتر مشخص شده باشند.
مثال: strato -T json -j "ip ip.flags http"
-J <protocol match filter>
فیلتر سطح بالای پروتکل برای انواع فایل خروجی ek|json|jsonraw|pdml. گره والد پروتکل و تمام گرههای فرزند گنجانده میشوند. پروتکلهای سطح پایینتر باید به صراحت در فیلتر مشخص شوند.
مثال: strato -T pdml -J "tcp http"
-l
تخلیه کردن (flush) خروجی استاندارد پس از چاپ اطلاعات هر بسته. (این کار، اگر بخواهیم دقیق بگوییم، در صورت تعیین -V بافربندی سطری نیست؛ با این حال، اگر -V مشخص نشده باشد همانند بافربندی سطری است، زیرا برای هر بسته تنها یک خط چاپ میشود، و از آنجا که -l معمولاً هنگام هدایت با لوله دریافت زنده به یک برنامه یا اسکریپت استفاده میشود تا خروجی یک بسته به محض مشاهده و تشریح بسته ظاهر شود، باید به همان خوبی بافربندی سطری واقعی عمل کند. ما این کار را به عنوان یک راهکار برای نقصی در کتابخانه مایکروسافت ویژوال سی++ سی انجام میدهیم.) این کار همچنین --update-interval را روی 0 میلیثانیه تنظیم میکند.
این ویژگی ممکن است هنگام هدایت خروجی strato با لوله به برنامهای دیگر مفید باشد، زیرا به این معنی است که برنامهای که خروجی به آن هدایت شده است، به محض اینکه strato بسته را مشاهده کرده و آن خروجی را تولید کند، دادههای تشریحشده بسته را خواهد دید، نه فقط زمانی که بافر خروجی استاندارد حاوی آن دادهها پر شود.
-L|--list-data-link-types
-o <preference>:<value>
تنظیم مقدار یک ترجیح، که مقدار پیشفرض و هر مقدار خواندهشده از فایل ترجیحات را بازنویسی میکند. آرگومان این گزینه رشتهای به فرم prefname:value است که در آن prefname نام ترجیح (همان نامی که در فایل ترجیحات ظاهر میشود) و value مقداری است که باید روی آن تنظیم شود.
نکته
strato ترجیحات را ذخیره نمیکند، بنابراین از این گزینه برای تغییرات موقت در یک بار اجرا استفاده کنید. برای تنظیم دائمی یک ترجیح، آن را در رابط گرافیکی Wireshark تغییر دهید یا فایل ترجیحات را مستقیماً ویرایش کنید، و در صورتی که برای موقعیتهای مختلف به مجموعههای متفاوتی از ترجیحات نیاز دارید، چندین نمایه پیکربندی بسازید.
-O <protocols>
مشابه گزینه -V، اما باعث میشود strato تنها نمای تفصیلی از فهرست جداشده با ویرگولِ protocols مشخصشده را نشان دهد، و برای همه پروتکلهای دیگر فقط خط تفصیلی سطح بالا را به جای نمای تفصیلی تمام پروتکلها نمایش دهد. از خروجی «strato -G protocols» برای یافتن مخففهای پروتکلهایی که میتوانید مشخص کنید استفاده نمایید.
-P|--print
رمزگشایی و نمایش خلاصه یا جزئیات بسته، حتی در صورت نوشتن داده خام بسته با استفاده از گزینه -w، و حتی در صورتی که خروجی بسته به روش دیگری با -Q سرکوب شده باشد.
-q
هنگام دریافت بستهها، شمارش مداوم بستههای دریافت شده را که معمولاً هنگام ذخیره دریافت در یک فایل نشان داده میشود، نمایش نده؛ در عوض، فقط در پایان دریافت، تعداد بستههای دریافتشده را نمایش بده. در سیستمهایی که از سیگنال SIGINFO پشتیبانی میکنند، مانند BSDهای مختلف، میتوانید با فشردن نویسه «وضعیت» خود (معمولاً کنترل-T، اگرچه ممکن است حداقل در برخی BSDها به طور پیشفرض روی "disabled" تنظیم شده باشد، بنابراین برای استفاده از آن باید صراحتاً آن را تنظیم کنید) کاری کنید که شمارش فعلی نمایش داده شود.
هنگام خواندن یک فایل دریافت، یا هنگام دریافت و عدم ذخیره در فایل، اطلاعات بسته را چاپ نکن؛ این مورد در صورتی مفید است که از گزینه -z برای محاسبه آمار استفاده میکنید و نمیخواهید اطلاعات بسته چاپ شود، بلکه فقط آمار چاپ شود.
-Q
هنگام دریافت بستهها، پیام اولیه که نشان میدهد دریافت روی کدام رابطها در حال انجام است، شمارش مداوم بستههای دریافت شده هنگام ذخیره دریافت در یک فایل، و پیام نهایی که تعداد بستههای دریافتشده را نشان میدهد در خطای استاندارد نمایش نده. تنها خطاهای واقعی در خطای استاندارد نمایش داده میشوند.
این گزینه خروجی کمتری نسبت به گزینه -q تولید میکند، بنابراین نام رابط و تعداد کل بستهها در پایان دریافت به stderr ارسال نمیشود.
هنگام خواندن یک فایل دریافت، یا هنگام دریافت و عدم ذخیره در فایل، اطلاعات بسته را چاپ نکن؛ این مورد در صورتی مفید است که از گزینه -z برای محاسبه آمار استفاده میکنید و میخواهید به جای اطلاعات بسته، فقط آمار چاپ شود.
-r|--read-file <infile>
خواندن دادههای بسته از infile، که میتواند هر قالب فایل دریافت پشتیبانیشدهای باشد (از جمله فایلهای فشرده). امکان استفاده از لولههای نامگذاریشده یا stdin (-) در اینجا وجود دارد اما فقط با قالبهای فایل دریافت خاصی (به ویژه: آنهایی که میتوانند بدون جستجوی رو به عقب خوانده شوند).
راهنمایی
خواندن یک دریافت زنده از خروجی استاندارد یک فرایند دیگر از طریق لوله میتواند محدودیتهایی را که در حین دریافت زنده بر strato اعمال میشود، مانند قالبهای فایل یا فشردهسازی، دور بزند.
-R|--read-filter <Read filter>
باعث میشود فیلتر مشخصشده (که از نحو فیلترهای خواندن/نمایش استفاده میکند، نه فیلترهای دریافت) در طول گذر اول تحلیل اعمال شود. بستههایی که با فیلتر مطابقت ندارند برای گذرهای بعدی در نظر گرفته نمیشوند. تنها با گذرهای چندگانه معنی پیدا میکند، -2 را ببینید. برای فیلترسازی عادی در تشریح تکگذره در عوض -Y را ببینید.
توجه داشته باشید که فیلدهای رو به آینده مانند 'response in frame #' را نمیتوان با این فیلتر استفاده کرد، زیرا هنگام اعمال این فیلتر هنوز محاسبه نشدهاند.
-s|--snapshot-length <capture snaplen>
تنظیم طول پیشفرض عکسبرداری جهت استفاده هنگام دریافت دادههای زنده. حداکثر snaplen بایت از هر بسته شبکه در حافظه خوانده شده یا روی دیسک ذخیره خواهد شد. مقدار 0 طول عکسبرداری را روی 262144 تنظیم میکند تا بسته کامل دریافت شود؛ این مقدار پیشفرض است.
این گزینه میتواند چندین بار تکرار شود. اگر پیش از اولین رخداد گزینه -i استفاده شود، طول عکسبرداری پیشفرض را تنظیم میکند. اگر پس از یک گزینه -i استفاده شود، طول عکسبرداری را برای رابط مشخصشده توسط آخرین گزینه -i قبل از این گزینه تنظیم میکند. اگر طول عکسبرداری به طور خاص مشخص نشده باشد، در صورت ارائه از طول عکسبرداری پیشفرض استفاده میشود.
-S <separator>
-T ek|fields|json|jsonraw|pdml|ps|psml|tabs|text
تنظیم قالب خروجی هنگام مشاهده دادههای رمزگشاییشده بسته. گزینهها یکی از موارد زیر است:
ek قالب JSON جداشده با خط جدید برای وارد کردن دستهای به Elasticsearch. میتوان از آن با -j یا -J برای مشخص کردن پروتکلهای مشمول یا با -x برای گنجاندن دادههای خام بستهها با کدگذاری هگز استفاده کرد. اگر -P مشخص شود تنها خلاصه بسته چاپ میشود، با هر دوی -P و -V خلاصه بسته و جزئیات بسته چاپ خواهد شد. اگر هیچکدام از -P یا -V استفاده نشوند تنها جزئیات بسته چاپ میشود. مثال استفاده برای وارد کردن دادهها به Elasticsearch:
strato -T ek -j "http tcp ip" -P -V -x -r file.pcap > file.json curl -H "Content-Type: application/x-ndjson" -XPOST http://elasticsearch:9200/_bulk --data-binary "@file.json"
Elastic برای تبدیل انواع Wireshark به انواع elastic نیازمند بارگذاری یک فایل نگاشت به عنوان الگو برای نمایه *-packets است. این فایل میتواند با دستور «strato -G elastic-mapping» به طور خودکار تولید شود. از آنجا که فایل نگاشت میتواند بسیار حجیم باشد، پروتکلها را میتوان با استفاده از گزینه --elastic-mapping-filter انتخاب کرد:
strato -G elastic-mapping --elastic-mapping-filter ip,udp,dns
یا با افزودن مستقیم فیلتر به گزینه -G elastic-mapping:
strato -G elastic-mapping,ip,udp,dns
fields مقادیر فیلدهای مشخصشده با گزینه -e، در قالبی که با گزینه -E مشخص شده است. برای مثال،
strato -T fields -E separator=, -E quote=d
یک خروجی مقادیر جداشده با ویرگول (CSV) مناسب برای وارد کردن به برنامه صفحهگسترده دلخواه شما تولید خواهد کرد.
json قالب فایل JSON. میتوان از آن با -j یا -J برای مشخص کردن پروتکلهای مشمول یا با گزینه -x برای گنجاندن دادههای خام بسته با کدگذاری هگز استفاده کرد. مثال استفاده:
strato -T json -r file.pcap strato -T json -j "http tcp ip" -x -r file.pcap
jsonraw قالب فایل JSON شامل فقط دادههای خام بسته با کدگذاری هگز. میتوان از آن با -j یا -J برای مشخص کردن پروتکلهای مشمول استفاده کرد. مثال استفاده:
strato -T jsonraw -r file.pcap strato -T jsonraw -j "http tcp ip" -x -r file.pcap
pdml زبان نشانهگذاری جزئیات بسته (Packet Details Markup Language)، یک قالب مبتنی بر XML برای جزئیات یک بسته رمزگشاییشده. این اطلاعات معادل جزئیات بسته چاپشده با گزینه -V است. استفاده از گزینه --color ویژگیهای رنگی را به خروجی pdml اضافه میکند. این ویژگیها غیراستاندارد هستند.
ps خروجی PostScript برای خلاصه تکخطی قابل خواندن برای انسان از هر بسته، یا نمای چندخطی از جزئیات هر یک از بستهها، بسته به اینکه آیا گزینه -V مشخص شده است یا خیر.
psml زبان نشانهگذاری خلاصه بسته (Packet Summary Markup Language)، یک قالب مبتنی بر XML برای اطلاعات خلاصه یک بسته رمزگشاییشده. این اطلاعات معادل اطلاعات نشان داده شده در خلاصه تکخطی چاپشده به صورت پیشفرض است. استفاده از گزینه --color ویژگیهای رنگی را به خروجی pdml اضافه میکند. این ویژگیها غیراستاندارد هستند.
tabs مشابه گزارش پیشفرض text، با این تفاوت که خلاصه تکخطی قابل خواندن برای انسان برای هر بسته شامل یک نویسه تب افقی ASCII (0x09) به عنوان جداکننده بین هر ستون خواهد بود.
text متن یک خلاصه تکخطی قابل خواندن برای انسان از هر بسته، یا نمای چندخطی از جزئیات هر یک از بستهها، بسته به اینکه آیا گزینه -V مشخص شده است یا خیر. این گزینه پیشفرض است.
--temp-dir <directory>
دایرکتوریای را مشخص میکند که فایلهای موقت (از جمله فایلهای دریافت) باید در آن نوشته شوند. رفتار پیشفرض در سیستمهای سازگار با یونیکس، مانند Linux، macOS، \*BSD، Solaris، و AIX، استفاده از متغیر محیطی $TMPDIR در صورت تنظیم بودن، و پیشفرض سیستم، معمولاً /tmp، در صورت عدم تنظیم است. در Windows، متغیر محیطی %TEMP% استفاده میشود که معمولاً به صورت پیشفرض %USERPROFILE%\AppData\Local\Temp است.
-U <tap name>
صادر کردن PDUها؛ PDUها را با توجه به نام tap دادهشده از infile به outfile صادر میکند. از -Y برای فیلتر کردن استفاده کنید.
برای دریافت فهرستی از نامهای در دسترس، یک نام tap خالی "" یا یک نام tap برابر ? وارد کنید.
-v|--version
-V
-w <outfile> | -
نوشتن داده خام بسته در outfile یا در خروجی استاندارد اگر outfile برابر '-' باشد. گزینههای -F و --compress میتوانند برای کنترل قالب فایل و روش فشردهسازی استفاده شوند. اگر مورد اخیر مشخص نشده باشد، پسوند ممکن است برای استنتاج الگوریتم فشردهسازی مورد نظر (در صورت پشتیبانی) استفاده شود، مانند یک آرشیو gzip برای '.gz'.
نکته
گزینه -w داده خام بسته را ارائه میدهد، نه متن. اگر خواهان خروجی متنی هستید باید stdout را تغییر مسیر دهید (مثلاً با استفاده از '>')، برای این کار از گزینه -w استفاده نکنید.
-W <file format option>
ذخیره اطلاعات اضافی در فایل در صورتی که قالب از آن پشتیبانی کند. برای مثال،
strato -F pcapng -W n
رکوردهای تحلیل نام میزبان را همراه با بستههای دریافت شده ذخیره خواهد کرد.
نسخههای آینده strato ممکن است در صورت نیاز به طور خودکار قالب دریافت را به pcapng تغییر دهند.
آرگومان رشتهای است که میتواند شامل حرف زیر باشد:
n نوشتن اطلاعات تحلیل آدرس شبکه (فقط در pcapng)
-x
--hexdump <hexoption>
باعث میشود strato یک رونوشت هگز و ASCII از دادههای بسته را چاپ کند، با قابلیت انتخاب منابع دادهای که باید برونریزی شوند، نحوه قالببندی یا حذف متن رونوشت ASCII، و اینکه آیا برچسب زمانی فریم به عنوان دیباچه چاپ شود یا خیر.
این گزینه (و -x) میتوانند چندین بار در خط فرمان تکرار شوند، و رونوشت هگز تنها یک بار چاپ خواهد شد. در صورت وجود گزینههای متناقض، آخرین گزینههای دادهشده استفاده خواهند شد. مقادیر ممکن <hexoption> عبارتند از:
all
frames
ascii
delimit
noascii
time
notime
help
استفاده از --hexdump <hexoption> به ویژه برای تولید خروجیای مفید است که بتوان از آن برای ایجاد یک فایل pcap یا pcapng از نوع فایل دریافت مانند Microsoft NetMon 2.x استفاده کرد؛ نوعی که strato و Wireshark میتوانند آن را بخوانند اما نمیتوانند مستقیماً بستهها را از آن ذخیره («Save as») یا صادر کنند.
مثالها:
تولید خروجی hexdump، فقط با منبع داده فریم، با متن رونوشت ASCII جداشده، و در حالی که قبل از هر بلوک هگز فریم یک برچسب زمانی قابل خواندن برای انسان در منطقه زمانی محلی قرار دارد که مستقیماً توسط ابزار text2pcap قابل استفاده است:
strato ... --hexdump frames --hexdump delimit --hexdump time -t ad \
| text2pcap -t 'ISO' - MYNEWPCAPNG
تولید خروجی hexdump، فقط با منبع داده فریم، با متن رونوشت ASCII پیشفرض بدون جداکننده، و در حالی که قبل از هر بلوک هگز فریم یک برچسب زمانی قابل خواندن برای انسان بر حسب UTC قرار دارد که مستقیماً توسط ابزار text2pcap با گزینه -a قابل استفاده است:
strato ... --hexdump frames --hexdump time -t ud \
| text2pcap -a -t 'ISO' - MYNEWPCAPNG
تولید خروجی hexdump، فقط با منبع داده فریم، بدون متن رونوشت ASCII، و در حالی که قبل از هر بلوک هگز فریم یک برچسب زمانی مبدأ زمان (epoch) قرار دارد که مستقیماً توسط ابزار text2pcap قابل استفاده است:
strato ... --hexdump frames --hexdump noascii --hexdump time -t e \
| text2pcap -t %s.%f - MYNEWPCAPNG
-X <eXtension options>
مشخص کردن گزینهای برای ارسال به یک ماژول strato. گزینه افزونه (eXtension) به صورت extension_key:value است که در آن extension_key میتواند یکی از موارد زیر باشد:
lua_script:lua_script_filename به strato اعلام میکند علاوه بر اسکریپتهای پیشفرض Lua، اسکریپت دادهشده را نیز بارگذاری کند.
lua_scriptnum:argument به strato میگوید آرگومان دادهشده را به اسکریپت lua مشخصشده با 'num' ارسال کند، که ترتیب شماره نمایهگذاریشده دستور 'lua_script' است. برای مثال، اگر تنها یک اسکریپت با '-X lua_script:my.lua' بارگذاری شده باشد، آنگاه '-X lua_script1:foo' رشته 'foo' را به اسکریپت 'my.lua' ارسال خواهد کرد. اگر دو اسکریپت بارگذاری شده باشد، مانند '-X lua_script:my.lua' و '-X lua_script:other.lua' به همان ترتیب، آنگاه یک '-X lua_script2:bar' رشته 'bar' را به اسکریپت دوم lua یعنی 'other.lua' ارسال میکند.
read_format:file_format به strato میگوید از قالب فایل دادهشده برای خواندن فایل (فایل دادهشده در گزینه دستور -r) استفاده کند. ارائه ندادن آرگومان file_format، یا ارائه یک مقدار نامعتبر، فهرستی از قالبهای فایل در دسترس برای استفاده را تولید خواهد کرد. برای مثال،
strato -r rtcp_broken.pcapng -X read_format:"MIME Files Format" -V
ساختار داخلی فایل را نمایش میدهد و دسترسی به فیلدهای file-pcapng را امکانپذیر میسازد.
-Y|--display-filter <displaY filter>
باعث میشود فیلتر مشخصشده (که از نحو فیلترهای خواندن/نمایش، به جای فیلترهای دریافت استفاده میکند) قبل از چاپ شکل رمزگشاییشده بستهها یا نوشتن بستهها در یک فایل اعمال شود. بستههای منطبق با فیلتر چاپ شده یا در فایل نوشته میشوند؛ بستههایی که بستههای منطبق به آنها وابستهاند (مثلاً قطعات)، چاپ نمیشوند اما در فایل نوشته میشوند؛ بستههایی که نه با فیلتر مطابقت دارند و نه وابستگی به آنها وجود دارد، به جای چاپ یا نوشته شدن، نادیده گرفته میشوند.
برای فیلترسازی با استفاده از تحلیل تکگذره از این گزینه به جای -R استفاده کنید. در صورت انجام تحلیل دوگذره (-2 را ببینید)، تنها بستههای منطبق با فیلتر خواندن (در صورت وجود) در برابر این فیلتر بررسی خواهند شد.
-M <auto session reset>
بازنشانی خودکار نشست داخلی با رسیدن به تعداد بستههای مشخصشده. برای مثال،
strato -M 100000
نشست را هر ۱۰۰۰۰۰ بسته بازنشانی خواهد کرد.
این ویژگی از تحلیل دوگذره -2 پشتیبانی نمیکند.
-z <statistics>
واداشتن strato به جمعآوری انواع مختلفی از آمارها و نمایش نتیجه پس از پایان خواندن فایل دریافت. اگر در حال خواندن یک فایل دریافت هستید و فقط میخواهید آمار چاپ شود و اطلاعات مربوط به هر بسته چاپ نشود، از گزینه -q استفاده کنید.
آمارها مستقل از خروجی عادی تکتک بستهها محاسبه میشوند و تحت تأثیر فیلتر نمایش اصلی قرار نمیگیرند. با این حال، بیشتر آنها پارامتر filter اختیاری خود را دارند و تنها بستههایی که با آن فیلتر (و هرگونه فیلتر دریافت یا فیلتر خواندن) مطابقت دارند در محاسبات استفاده خواهند شد.
توجه داشته باشید که گزینه -z proto متفاوت است - این گزینه باعث جمعآوری و چاپ آمار پس از تکمیل دریافت نمیشود، بلکه خروجی خلاصه بسته عادی را تغییر میدهد تا شامل مقادیر فیلدهای مشخصشده با این گزینه باشد. بنابراین نباید از گزینه -q استفاده کنید، زیرا این گزینه مانع چاپ خروجی خلاصه بسته عادی میشود، و همچنین نباید از گزینه -V استفاده کنید، زیرا باعث میشود اطلاعات جزئیات بسته به جای اطلاعات خلاصه بسته چاپ شود.
برخی از آمارهای پیادهسازیشده فعلی عبارتند از:
-z help
-z container_io,tree[,filter]
-z expert[,error|,warn|,note|,chat|,comment][,filter]
اطلاعات مربوط به تمام هشدارهای کارشناسی را جمعآوری کرده و آنها را به ترتیب، گروهبندیشده بر اساس سطح اهمیت نمایش میدهد.
مثال: -z expert,sip موارد کارشناسی را در تمام سطوح اهمیت برای فریمهایی که با پروتکل sip مطابقت دارند نشان میدهد.
این گزینه میتواند چندین بار در خط فرمان استفاده شود.
مثال: -z "expert,note,tcp" فقط موارد کارشناسی را برای فریمهایی جمعآوری میکند که شامل پروتکل tcp با سطح اهمیت note یا بالاتر باشند.
--capture-comment <comment>
افزودن یک یادداشت دریافت به فایل خروجی، در صورتی که توسط قالب فایل خروجی پشتیبانی شود.
این گزینه میتواند چندین بار مشخص شود. توجه داشته باشید که Wireshark در حال حاضر فقط اولین یادداشت یک فایل دریافت را نمایش میدهد.
--list-time-stamp-types
--no-optimize
این گزینه میتواند چندین بار تکرار شود. اگر پیش از اولین رخداد گزینه -i استفاده شود، فیلترهای دریافت برای تمام رابطها بهینهسازی نمیشوند. اگر پس از یک گزینه -i استفاده شود، فیلتر دریافت برای رابط مشخصشده توسط آخرین گزینه -i قبل از این گزینه بهینهسازی نخواهد شد.
--time-stamp-type <type>
--update-interval <interval>
--color
--no-duplicate-keys
--elastic-mapping-filter <protocol>,<protocol>,...
هنگام تولید فایل نگاشت ElasticSearch، فقط پروتکلهای مشخصشده را در آن قرار بده تا از ایجاد یک فایل نگاشت بسیار بزرگ که ممکن است برخی نرمافزارها (مانند Kibana) را با اختلال مواجه کند جلوگیری شود. این گزینه فهرستی از مخففهای پروتکلهای مورد نظر را که با ویرگول جدا شدهاند میپذیرد.
مثال: ip,udp,dns تنها این سه پروتکل را در فایل نگاشت قرار میدهد.
--export-objects <protocol>,<destdir>
صادر کردن تمام اشیاء درون یک پروتکل به دایرکتوری destdir. مقادیر در دسترس برای protocol را میتوان با --export-objects help فهرست کرد.
اشیاء مستقیماً در دایرکتوری دادهشده ذخیره میشوند. نام فایلها به تشریحکننده بستگی دارد، اما معمولاً بر اساس نام پایه یک فایل نامگذاری میشود. روی فایلهای تکراری بازنویسی انجام نمیشود، بلکه یک شماره افزایشی پیش از پسوند فایل اضافه میگردد.
این رابط ممکن است تغییر کند و امکان فیلتر کردن بر روی فایلها به آن افزوده شود.
--print-timers
--compress <type>
فشردهسازی فایل خروجی با استفاده از قالب فشردهسازی type. گزینه --compress بدون آرگومان، فهرستی از قالبهای فشردهسازی پشتیبانیشده برای نوشتن را ارائه میدهد. type دادهشده نسبت به پسوند outfile اولویت دارد.
-d <layer type>==<selector>,<decode-as protocol>
همانند قابلیت Decode As... در Wireshark، این گزینه به شما امکان میدهد مشخص کنید که یک نوع لایه چگونه باید تشریح شود. اگر نوع لایه مورد نظر (برای مثال، tcp.port یا udp.port برای شماره درگاه TCP یا UDP) دارای مقدار گزینشگر (selector) مشخصشده باشد، بستهها باید به عنوان پروتکل تعیینشده تشریح شوند.
مثال ۱. Decode As
برای
درگاه
دستور -d tcp.port==8888,http هر ترافیکی را که روی درگاه TCP شماره 8888 در حال اجرا باشد به عنوان HTTP رمزگشایی میکند.
مثال ۲. Decode As
برای
محدوده
درگاه
دستور -d tcp.port==8888-8890,http هر ترافیکی را که روی درگاههای TCP شماره 8888، 8889 یا 8890 در حال اجرا باشد به عنوان HTTP رمزگشایی میکند.
مثال ۳. Decode As
برای
محدوده
درگاه بر
اساس طول
دستور -d tcp.port==8888:3,http هر ترافیکی را که روی سه درگاه TCP شماره 8888، 8889 یا 8890 در حال اجرا باشد به عنوان HTTP رمزگشایی میکند.
استفاده از یک گزینشگر یا پروتکل نامعتبر، به ترتیب فهرستی از گزینشگرها و نام پروتکلهای معتبر را چاپ خواهد کرد.
مثال ۴. Decode As
برای فهرست
گزینشگرها
دستور -d . یک روش سریع برای دریافت فهرستی از گزینشگرهای معتبر است.
مثال ۵. Decode As
برای فهرست
مقادیر یک
گزینشگر
دستور -d ethertype==0x0800,. یک روش سریع برای دریافت فهرستی از پروتکلهایی است که میتوان با یک ethertype انتخاب کرد.
--disable-all-protocols
--disable-protocol <proto_name>[,<proto_name>,...]
--disable-heuristic <short_name>
--enable-protocol <proto_name>[,<proto_name>,...]
فعال کردن تشریح proto_name. استفاده از ALL به عنوان proto_name، فهرست پروتکلهای غیرفعال پیشفرض نمایه انتخابی را نادیده گرفته و تمام پروتکلهایی را که به طور پیشفرض فعال هستند موقتاً فعال میکند.
اگر پروتکلی هم در --disable-protocol و هم در --enable-protocol آورده شود، آن پروتکل فعال خواهد شد. این ویژگی امکان میدهد تا تمام پروتکلها را به جز فهرستی از استثناها موقتاً غیرفعال کنید. مثال: --disable-protocol ALL --enable-protocol eth,ip
--enable-heuristic <short_name>
-K <keytab>
بارگذاری کلیدهای رمزنگاری kerberos از فایل keytab مشخصشده. این گزینه میتواند چندین بار برای بارگذاری کلیدها از چند فایل استفاده شود.
مثال: -K krb5.keytab
-n
-N <name resolving flags>
فعال کردن تحلیل نام تنها برای انواع خاصی از آدرسها و شماره درگاهها، در حالی که تحلیل نام برای سایر انواع آدرسها و شماره درگاهها غیرفعال باقی میماند. این گزینه (همراه با -n) میتواند چندین بار مشخص شود؛ آخرین مقدار تعیینشده مقادیر پیشین را لغو میکند. این گزینه و -n گزینههای برگرفته از ترجیحات (preferences) را بازنویسی میکنند، از جمله ترجیحاتی که از طریق گزینه -o تنظیم شدهاند. اگر هیچیک از گزینههای -N و -n مشخص نشده باشند، مقادیر حاصل از ترجیحات استفاده میشوند که مقدار پیشفرض آن -N dmN است.
آرگومان رشتهای است که میتواند شامل این حروف باشد:
d برای فعال کردن تحلیل از بستههای DNS ضبطشده
g برای فعال کردن جستجوی اطلاعات موقعیت جغرافیایی نشانی IP از پایگاههای داده پیکربندیشده MaxMind
m برای فعال کردن تحلیل نشانی MAC
n برای فعال کردن تحلیل نشانی شبکه
N برای فعال کردن استفاده از تحلیلکنندههای خارجی (مانند DNS) برای تحلیل نشانی شبکه؛ بدون فعال بودن n هیچ اثری ندارد.
s برای فعال کردن تحلیل نشانی با استفاده از اطلاعات SNI موجود در بستههای دستتکانی (handshake) ضبطشده
t برای فعال کردن تحلیل شماره درگاه لایه انتقال
v برای فعال کردن تحلیل شناسه VLAN به نامها
هشدار
در حالت تکگذره (single-pass mode) ابزار tshark، تحلیل خارجی و جستجوی موقعیت جغرافیایی بهصورت همگام (synchronous) انجام میشود. برای ضبطهای زنده، که همیشه در حالت تکگذره هستند، این مسئله همگام ماندن تشریح با یک شبکه شلوغ را دشوارتر ساخته و احتمالاً منجر به از دست رفتن بستهها (dropped packets) میشود.
--only-protocols <protocols>
-t (a|ad|adoy|d|dd|e|r|rc|u|ud|udoy)[.[N]]|.[N]
تعیین قالب برچسب زمانی (timestamp) بسته که در ستون زمان پیشفرض نمایش داده میشود. قالب میتواند یکی از موارد زیر باشد:
a مطلق (absolute): زمان مطلق، به عنوان زمان محلی در منطقه زمانی شما، زمان واقعی ضبط بسته بدون نمایش تاریخ است
ad مطلق با تاریخ (absolute with date): تاریخ مطلق، نمایشیافته به صورت YYYY-MM-DD، و زمان، به عنوان زمان محلی در منطقه زمانی شما، تاریخ و زمان واقعی ضبط بسته است
adoy مطلق با تاریخ با استفاده از روز در سال (absolute with date using day of year): تاریخ مطلق، نمایشیافته به صورت YYYY/DOY، و زمان، به عنوان زمان محلی در منطقه زمانی شما، تاریخ و زمان واقعی ضبط بسته است
d دلتا (delta): زمان دلتا، زمان سپریشده از هنگام ضبط بسته پیشین است
dd delta_displayed: زمان delta_displayed، زمان سپریشده از هنگام ضبط بسته نمایشیافته پیشین است
e مبدأ زمانی (epoch): زمان بر حسب ثانیه از مبدأ زمانی یونیکس (Jan 1, 1970 00:00:00)
r نسبی (relative): زمان نسبی، زمان سپریشده میان اولین بسته و بسته فعلی است
rc نسبی نسبت به شروع ضبط (relative to capture start): زمان نسبی نسبت به شروع ضبط، زمان سپریشده میان شروع فرایند ضبط و بسته فعلی است
u ساعت هماهنگ جهانی (UTC): زمان مطلق، به صورت UTC با پسوند "Z"، زمان واقعی ضبط بسته است بدون آنکه تاریخی نمایش داده شود
ud ساعت هماهنگ جهانی با تاریخ (UTC with date): تاریخ مطلق، نمایشیافته به صورت YYYY-MM-DD، و زمان، به صورت UTC با پسوند "Z"، تاریخ و زمان واقعی ضبط بسته است
udoy ساعت هماهنگ جهانی با تاریخ با استفاده از روز در سال (UTC with date using day of year): تاریخ مطلق، نمایشیافته به صورت YYYY/DOY، و زمان، به صورت UTC با پسوند "Z"، تاریخ و زمان واقعی ضبط بسته است
.[N] تنظیم میزان دقت: N تعداد ارقام اعشار است (۰ تا ۹). در صورت استفاده از "." بدون N، دقت بهطور خودکار از روی ردگیری (trace) تعیین میشود.
قالب پیشفرض نسبی (relative) بوده و دقت آن بر اساس قالب ضبط بسته تعیین میشود.
-u <s|hms>
مشخص میکند که قالبهای برچسب زمانی بسته در -t که زمانهای نسبی هستند (یعنی relative، delta و delta_displayed) چگونه نمایش داده شوند. گزینههای معتبر عبارتند از:
s برای ثانیه
hms برای ساعت، دقیقه و ثانیه
قالب پیشفرض ثانیه است.
--log-level <level>
--log-fatal <level>
--log-fatal-count <count>
--log-domains <list>
--log-debug <list>
--log-noisy <list>
--log-fatal-domains <list>
--log-file <path>
فایلها (FILES)
این فایلها شامل تنظیمات پیکربندی گوناگون Wireshark هستند.
ترجیحات (Preferences)
فایلهای preferences شامل تنظیمات ترجیحات سراسری (در سطح سیستم) و شخصی هستند. اگر فایل ترجیحات سراسری سیستم وجود داشته باشد، ابتدا خوانده میشود و تنظیمات پیشفرض را بازنویسی میکند. اگر فایل ترجیحات شخصی وجود داشته باشد، در مرحلهٔ بعد خوانده شده و هر مقدار قبلی را بازنویسی خواهد کرد. نکته: اگر پرچم خط فرمان -o (احتمالاً بیش از یک بار) استفاده شود، به نوبهٔ خود مقادیر فایلهای ترجیحات را بازنویسی میکند.
تنظیمات ترجیحات به شکل prefname:value هستند، هر خط یک تنظیم، که در آن prefname نام ترجیح و value مقداری است که باید به آن اختصاص یابد؛ فاصله (white space) بین : و value مجاز است. یک تنظیم ترجیح میتواند با ایجاد تورفتگی با فاصله در خطوط بعدی، در چند خط ادامه یابد. نویسهٔ # آغازگر یک توضیح است که تا انتهای خط ادامه مییابد:
# Vertical scrollbars should be on right side? # TRUE or FALSE (case-insensitive). gui.scrollbar_on_right: TRUE
فایل ترجیحات سراسری در دایرکتوری wireshark زیر دایرکتوری فرعی share از دایرکتوری اصلی نصب جستجو میشود. در macOS، این مسیر معمولاً /Application/Wireshark.app/Contents/Resources/share خواهد بود؛ در سایر سیستمهای سازگار با UNIX مانند Linux، \*BSD، Solaris و AIX، این مسیر برای بستههای نصبشده توسط سیستم معمولاً /usr/share/wireshark/preferences و برای بستههای نصبشده به صورت محلی /usr/local/share/wireshark/preferences خواهد بود؛ در Windows این مسیر معمولاً C:\Program Files\Wireshark\preferences است.
در سیستمهای سازگار با UNIX، فایل ترجیحات شخصی در $XDG_CONFIG_HOME/wireshark/preferences جستجو میشود (یا در صورتی که $XDG_CONFIG_HOME/wireshark وجود نداشته باشد اما $HOME/.wireshark موجود باشد، در $HOME/.wireshark/preferences)؛ این مسیر معمولاً $HOME/.config/wireshark/preferences است. در Windows، فایل ترجیحات شخصی در %APPDATA%\Wireshark\preferences (یا اگر %APPDATA% تعریف نشده باشد، در %USERPROFILE%\Application Data\Wireshark\preferences) جستجو میشود.
پروتکلهای غیرفعال (فعال) (Disabled (Enabled) Protocols)
فایلهای disabled_protos شامل فهرستهای سراسری سیستم و شخصی از پروتکلهایی هستند که غیرفعال شدهاند، به طوری که تجزیهکنندههای (dissectors) آنها هرگز فراخوانی نمیشوند. این فایلها شامل نام پروتکلها در هر خط هستند، به گونهای که نام پروتکل همان نامی است که در فیلتر نمایش برای آن پروتکل استفاده میشود:
http tcp # a comment
اگر پروتکلی در فایل سراسری disabled_protos فهرست شده باشد، توسط کاربر قابل فعالسازی نیست.
فایل سراسری disabled_protos از همان دایرکتوری فایل ترجیحات سراسری استفاده میکند.
فایل شخصی disabled_protos از همان دایرکتوری فایل ترجیحات شخصی استفاده میکند.
فایلهای disabled_protos تنها پروتکلهایی را فهرست میکنند که به طور پیشفرض فعال بودهاند اما غیرفعال شدهاند؛ پروتکلهایی که به صورت پیشفرض غیرفعال هستند (مانند برخی پستجزیهکنندهها) فهرست نمیشوند. فایلهای مشابه enabled_protos برای پروتکلهایی که به طور پیشفرض غیرفعال بوده اما فعال شدهاند، وجود دارند.
تجزیهکنندههای اکتشافی (Heuristic Dissectors)
فایلهای heuristic_protos شامل فهرستهای سراسری و شخصی از تجزیهکنندههای اکتشافی بوده و نشاندهندهٔ فعال یا غیرفعال بودن آنها هستند. این فایلها شامل نامهای کوتاه یکتای تجزیهکنندهٔ اکتشافی در هر خط هستند که پس از آن یک کاما و عدد 0 برای غیرفعال و 1 برای فعال قرار میگیرد:
quic,1 rtcp_stun,1 rtcp_udp,1 rtp_stun,0 rtp_udp,0 tls_tcp,1
فایل سراسری heuristic_protos از همان دایرکتوری فایل ترجیحات سراسری استفاده میکند.
فایل شخصی heuristic_protos از همان دایرکتوری فایل ترجیحات شخصی استفاده میکند.
تفکیک نام (hosts)
ورودیهای موجود در فایلهای hosts در دایرکتوری ترجیحات سراسری و شخصی برای تفکیک نشانیهای IPv4 و IPv6 پیش از هر تلاش دیگری برای تفکیک آنها استفاده میشوند. این فایل ساختار نگارشی استاندارد فایل hosts را دارد؛ هر خط شامل یک نشانی IP و نام است که با فاصله از هم جدا شدهاند. فایل شخصی hosts در صورت وجود، فایل موجود در دایرکتوری سراسری را بازنویسی میکند.
تفکیک نام برای فیلتر ضبط توسط libpcap در سیستمهای سازگار با UNIX مانند Linux، macOS، \*BSD، Solaris و AIX، و توسط Npcap در Windows انجام میشود. از این رو برای تفکیک نام در فیلتر ضبط، به فایل شخصی hosts وایرشارک رجوع نخواهد شد.
تفکیک نام (subnets)
اگر نشانی IPv4 از طریق تفکیک نام قابل ترجمه نباشد (هیچ تطابق دقیقی یافت نشود)، یک تطابق جزئی از طریق فایل subnets امتحان میشود. در صورت وجود، از هر دو فایل سراسری subnets و فایل شخصی subnets استفاده میشود.
هر خط از این فایل از یک نشانی IPv4، طول ماسک زیرشبکه که تنها با یک / جدا شده است، و یک نام که با فاصله جدا شده، تشکیل شده است. با اینکه نشانی باید یک نشانی کامل IPv4 باشد، هر مقداری فراتر از طول ماسک در ادامه نادیده گرفته میشود.
یک مثال عبارت است از:
# Comments must be prepended by the # sign! 192.168.0.0/24 ws_test_network
نامی که به طور جزئی مطابقت داده شده باشد به صورت "subnet-name.remaining-address" چاپ خواهد شد. برای مثال، نشانی "192.168.0.1" در زیرشبکهٔ بالا به صورت "ws_test_network.1" چاپ میشود؛ اگر طول ماسک بالا به جای 24 برابر 16 بود، نشانی چاپشده "ws_test_network.0.1" میبود.
تفکیک نام (ethers)
فایلهای ethers برای مرتبط ساختن نشانیهای سختافزاری ۶ بایتی EUI-48 و ۸ بایتی EUI-64 با نامها مورد بررسی قرار میگیرند. ابتدا فایل شخصی ethers بررسی میشود و اگر نشانی در آنجا پیدا نشود، سپس فایل سراسری ethers بررسی خواهد شد.
این فایل قالبی شبیه به آنچه توسط ethers(5) در برخی سیستمهای شبهیونیکس تعریف شده دارد. هر خط شامل یک نشانی سختافزاری و نام است که با فاصله (تب یا فاصله) از یکدیگر جدا شدهاند. ارقام هگزادسیمال نشانی سختافزاری با دونقطه (:)، خط تیره (-) یا نقطه (.) از هم جدا میشوند. باید از همان نویسهٔ جداساز به طور یکدست در یک نشانی استفاده شود. یک # نشاندهندهٔ توضیحی است که تا انتهای خط ادامه دارد. هر دو نشانی ۶ بایتی MAC و ۸ بایتی EUI-64 پشتیبانی میشوند. چهار خط زیر خطوط معتبری از یک فایل ethers هستند:
ff:ff:ff:ff:ff:ff Broadcast c0-00-ff-ff-ff-ff TR_broadcast 00.00.00.00.00.00 Zero_broadcast 00:00:00:00:00:00:00:00 EUI64_zero_broadcast
توجه داشته باشید که این فرمت، تنوع بیشتری از قالبها را نسبت به فایل تعریفشده توسط ethers(5) در بیشتر سیستمهای UN*X میپذیرد.
فایل سراسری ethers در دایرکتوری /etc در سیستمهای سازگار با UNIX مانند Linux، macOS، \*BSD، Solaris و AIX، و در دایرکتوری اصلی نصب (به عنوان مثال، C:\Program Files\Wireshark) در سیستمهای Windows جستجو میشود.
فایل شخصی ethers در همان دایرکتوری فایل ترجیحات شخصی جستجو میشود.
تفکیک نام برای فیلتر ضبط توسط libpcap در سیستمهای سازگار با UNIX و Npcap در Windows انجام میشود. از این رو برای تفکیک نام فیلتر ضبط به فایل شخصی ethers وایرشارک رجوع نخواهد شد.
تفکیک نام (manuf)
فایل manuf برای تطبیق بخش ۳ بایتی سازنده از یک نشانی سختافزاری ۶ بایتی با نام سازنده استفاده میشود؛ این فایل همچنین میتواند حاوی نشانیهای شناختهشدهٔ MAC و محدودههای نشانی مشخصشده با ماسک شبکه باشد. قالب این فایل شبیه به فایلهای ethers است، با این تفاوت که ورودیهایی مانند:
00:00:0C Cisco Cisco Systems, Inc
میتوانند ارائه شوند که شامل شناسه ۳ بایتی OUI و هر دو نام اختصاری و طولانی سازنده هستند، و ورودیهایی مانند:
00-00-0C-07-AC/40 All-HSRP-routers
میتوانند مشخص شوند که دارای یک نشانی MAC و ماسکی هستند که مشخص میکند چند بیت از نشانی باید تطابق داشته باشد. ورودی بالا، برای نمونه، دارای ۴۰ بیت معنادار یا ۵ بایت است و با نشانیهای بین 00-00-0C-07-AC-00 تا 00-00-0C-07-AC-FF تطابق دارد. نیازی نیست که ماسک مضربی از ۸ باشد.
فایل سراسری manuf در همان دایرکتوری فایل ترجیحات سراسری جستجو میشود، و فایل شخصی manuf در همان دایرکتوری فایل ترجیحات شخصی جستجو میشود.
در نسخههای قبلی Wireshark، اطلاعات رسمی از مرجع ثبت IEEE در این قالب به عنوان فایل سراسری manuf توزیع میشد. اکنون این اطلاعات برای افزایش سرعت راهاندازی برنامه درون آن کامپایل شده است، اما اطلاعات داخلی را میتوان با دستور tshark -G manuf در این قالب استخراج کرد.
علاوه بر فایل manuf، فایل دیگری با همین قالب، wka، در دایرکتوری سراسری جستجو میشود. این فایل همراه با Wireshark توزیع میشود و حاوی دادههایی دربارهٔ نشانیهای MAC شناختهشده و محدودههای نشانی گردآوریشده از منابع مختلف غیر از IEEE ولی معتبر است.
تفکیک نام (services)
فایل services برای ترجمه شماره پورتها به نامها استفاده میشود. در صورت وجود، هم از فایل سراسری services و هم از فایل شخصی services استفاده میشود.
این فایل دارای نحو استاندارد فایل services است؛ هر خط شامل یک نام (سرویس) و یک شناسهٔ انتقال است که با فاصله از هم جدا شدهاند. شناسهٔ انتقال شامل یک شماره پورت و یک نام پروتکل انتقال (معمولاً tcp، udp یا sctp) است که با یک / از هم جدا شدهاند.
یک مثال عبارت است از:
mydns 5045/udp # My own Domain Name Server mydns 5045/tcp # My own Domain Name Server
در نسخههای قبلی Wireshark، اطلاعات رسمی از رجیستری IANA در این قالب به عنوان فایل سراسری services توزیع میشد. اکنون این اطلاعات برای بالا بردن سرعت شروع برنامه درون آن کامپایل شده است، اما اطلاعات داخلی را میتوان با دستور tshark -G services در این قالب استخراج نمود.
تفکیک نام (ipxnets)
فایلهای ipxnets برای مرتبط ساختن شمارههای شبکهٔ ۴ بایتی IPX به نامها استفاده میشوند. ابتدا فایل سراسری ipxnets بررسی میشود و اگر آن نشانی در آنجا پیدا نشود، در مرحله بعد فایل شخصی بررسی خواهد شد.
قالب آن مشابه فایل ethers است، با این تفاوت که هر نشانی به جای شش بایت، چهار بایت است. علاوه بر این، نشانی میتواند به صورت یک عدد هگزادسیمال منفرد نشان داده شود (همانطور که در دنیای IPX متداولتر است) تا چهار هشتبایتی هگزادسیمال. برای مثال، این چهار خط، خطوط معتبری از یک فایل ipxnets هستند:
C0.A8.2C.00 HR c0-a8-1c-00 CEO 00:00:BE:EF IT_Server1 110f FileServer3
فایل سراسری ipxnets در دایرکتوری /etc در سیستمهای سازگار با UNIX مانند Linux، macOS، \*BSD، Solaris و AIX، و در دایرکتوری اصلی نصب (برای مثال، C:\Program Files\Wireshark) در سیستمهای Windows جستجو میشود.
فایل شخصی ipxnets در همان دایرکتوری فایل ترجیحات شخصی جستجو میشود.
تفکیک نام (ss7pcs)
فایل ss7pcs برای ترجمهٔ کدهای نقطه در SS7 به نامها استفاده میشود. این فایل از دایرکتوری پیکربندی شخصی خوانده میشود.
هر خط در این فایل شامل یک شناسهٔ شبکه و به دنبال آن یک خط تیره و سپس یک کد نقطه در مبنای ده و یک نام گره است که با فاصله جدا شدهاند. یک مثال عبارت است از:
2-1234 MyPointCode1
تفکیک نام (vlans)
فایل vlans برای ترجمهٔ شناسههای برچسب VLAN به نامها به کار میرود. این فایل از دایرکتوری پیکربندی شخصی خوانده میشود.
هر خط در این فایل از یک شناسهٔ برچسب VLAN تشکیل شده که با فاصله از نام جدا شده است. یک مثال عبارت است از:
123 Server-Lan 2049 HR-Client-LAN
فیلترهای رنگی (قواعد رنگآمیزی) (Color Filters (Coloring Rules))
فایلهای colorfilters حاوی فیلترهای رنگی سراسری سیستم و شخصی هستند. هر خط شامل یک فیلتر است که با رشتهٔ نمایشدادهشده در کادر محاوره آغاز میشود و به دنبال آن فیلتر نمایش متناظر میآید. سپس رنگهای پسزمینه و پیشزمینه پیوست میشوند:
# a comment @tcp@tcp@[59345,58980,65534][0,0,0] @udp@udp@[28834,57427,65533][0,0,0]
فایل سراسری colorfilters از همان دایرکتوری فایل ترجیحات سراسری استفاده میکند.
فایل شخصی colorfilters از همان دایرکتوری فایل ترجیحات شخصی استفاده میکند. این فایل از طریق کادر محاورهای View:Coloring Rules نوشته میشود.
اگر فایل سراسری colorfilters موجود باشد، تنها در صورتی استفاده میشود که فایل شخصی colorfilters وجود نداشته باشد؛ فیلترهای رنگی سراسری و شخصی با یکدیگر ادغام نمیشوند.
افزونهها (Plugins)
برنامهٔ Wireshark افزونهها را هم در پوشهٔ افزونههای شخصی و هم در پوشهٔ افزونههای سراسری جستجو میکند.
در سیستمهای سازگار با UNIX مانند Linux، macOS، \*BSD، Solaris و AIX، دایرکتوری سراسری افزونهها lib/wireshark/plugins/ (در برخی سیستمها lib64 به جای lib) زیر دایرکتوری اصلی نصب است (به عنوان مثال، /usr/local/lib/wireshark/plugins/). دایرکتوری شخصی افزونهها $HOME/.local/lib/wireshark/plugins است.
در macOS، اگر Wireshark به عنوان یک بستهٔ برنامهای نصب شده باشد، پوشهٔ سراسری افزونهها در عوض %APPDIR%/Contents/PlugIns/wireshark خواهد بود.
در Windows، پوشهٔ سراسری افزونهها plugins/ در زیر دایرکتوری اصلی نصب است (برای مثال، C:\Program Files\Wireshark\plugins\). پوشهٔ شخصی افزونهها %APPDATA%\Wireshark\plugins است (یا اگر %APPDATA% تعریف نشده باشد، %USERPROFILE%\Application Data\Wireshark\plugins).
افزونههای Lua در پوشههای افزونه ذخیره میشوند؛ افزونههای کامپایلشده در زیرپوشههایی از پوشههای افزونه ذخیره میشوند که نام زیرپوشه شمارهٔ نگارش فرعی (X.Y) وایرشارک است. یک سطح سلسلهمراتبی دیگر برای هر نوع افزونهٔ Wireshark وجود دارد (libwireshark، libwiretap و codecs). برای نمونه، مکان یک افزونهٔ libwireshark با نام foo.so (در Windows با نام foo.dll) مسیر PLUGINDIR/X.Y/epan خواهد بود (libwireshark قبلاً libepan نامیده میشد؛ نام سایر پوشهها codecs و wiretap است).
نکته
در سیستمهای سازگار با UNIX، افزونههای Lua (نه افزونههای باینری) ممکن است در $XDG_CONFIG_HOME/wireshark/plugins نیز قرار گیرند (یا اگر $XDG_CONFIG_HOME/wireshark وجود نداشته باشد در حالی که $HOME/.wireshark موجود باشد، در $HOME/.wireshark/plugins.)
توجه داشته باشید که یک ماژول افزونهٔ تجزیهکننده ممکن است بیش از یک پروتکل را پشتیبانی کند؛ لزوماً یک تناظر یکبهیک میان ماژولهای افزونهٔ تجزیهکننده و پروتکلها وجود ندارد. پروتکلهای پشتیبانیشده توسط یک ماژول افزونهٔ تجزیهکننده به همان روش پروتکلهای داخلی Wireshark فعال و غیرفعال میشوند.
دستور strato به صورت داخلی از UTF-8 برای نمایش رشتهها استفاده میکند. در برخی موارد ممکن است خروجی معتبر نباشد؛ به عنوان مثال، ممکن است یک dissector توالیهای نویسهای نامعتبر در UTF-8 ایجاد کند. برنامههایی که خروجی strato را میخوانند باید انتظار UTF-8 داشته باشند و برای خروجیهای نامعتبر آماده باشند.
اگر strato تشخیص دهد که در حال نوشتن روی یک TTY در یک سیستم سازگار با UNIX (مانند Linux، macOS، \*BSD، Solaris و AIX) است و لوکال (locale) از UTF-8 پشتیبانی نمیکند، خروجی برای تطابق با لوکال فعلی مجدداً کدگذاری خواهد شد.
اگر strato تشخیص دهد که در حال نوشتن در کنسول ویندوز است، خروجی تحلیل (dissection) با کدگذاری UTF-16LE خواهد بود. سایر خروجیها UTF-8 خواهند بود. اگر نویسههای گسترشیافته به درستی در ترمینال شما نمایش داده نمیشوند، میتوانید صفحه کد کنسول خود را روی UTF-8 تنظیم کنید (chcp 65001) و در صورت امکان از یک برنامه ترمینال مدرنتر استفاده نمایید.
متغیرهای محیطی (ENVIRONMENT VARIABLES)
WIRESHARK_CONFIG_DIR
WIRESHARK_DEBUG_WMEM_OVERRIDE
WIRESHARK_RUN_FROM_BUILD_DIRECTORY
WIRESHARK_DATA_DIR
WIRESHARK_EXTCAP_DIR
WIRESHARK_PLUGIN_DIR
ERF_RECORDS_TO_CHECK
IPFIX_RECORDS_TO_CHECK
WIRESHARK_ABORT_ON_DISSECTOR_BUG
WIRESHARK_ABORT_ON_TOO_MANY_ITEMS
WIRESHARK_LOG_LEVEL
WIRESHARK_LOG_FATAL
WIRESHARK_LOG_DOMAINS
WIRESHARK_LOG_DEBUG
WIRESHARK_LOG_NOISY
wireshark-filter(4), stratoshark(1), editcap(1), dumpcap(1)
نکات (NOTES)
این صفحهٔ راهنما برای strato نسخهٔ 0.10.3 است. strato بخشی از توزیع Stratoshark است. آخرین نسخهٔ Stratoshark را میتوان در این نشانی یافت: https://stratoshark.org.
نسخههای HTML صفحات راهنمای پروژهٔ Wireshark در این نشانی در دسترس هستند: https://www.wireshark.org/docs/man-pages.
نویسندگان (AUTHORS)
strato از همان کد تجزیهٔ (dissection) Stratoshark و Wireshark استفاده میکند، و همچنین از بسیاری ماژولهای دیگر Stratoshark و Wireshark بهره میبرد؛ برای فهرست نویسندگان آن کد، فهرست نویسندگان در صفحهٔ راهنمای Wireshark را ببینید.
| 2026-09-03 |