| SNIFFIT(8) | System Manager's Manual | SNIFFIT(8) |
نام (NAME)
sniffit - ابزار پایش و شنود بستههای شبکه
خلاصه دستور (SYNOPSIS)
sniffit [-xdabvnN] [-P proto ] [-A char ] [-p port ] [(-r|-R) recordfile ] [-l sniflen ] [-L logparam ] [-F snifdevice ] [-D tty ] [-M plugin ] [(-t Target-IP | -s Source-IP ) | (-i|-I) | -c config-file ]
توضیحات (DESCRIPTION)
برنامه sniffit یک شنودکننده بسته (packet sniffer) برای بستههای TCP/UDP/ICMP است. sniffit میتواند اطلاعات فنی بسیار دقیقی در مورد این بستهها (مانند SEQ، ACK، TTL، Window، ...) و همچنین محتوای بستهها در قالبهای گوناگون (هگزادسیمال یا متن ساده، ...) به شما ارائه دهد.
sniffit بهطور پیشفرض میتواند دستگاههای اترنت (ethernet) و PPP را مدیریت کند، اما بهسادگی میتوان آن را برای استفاده از دستگاههای دیگر نیز وادار کرد (برای این موضوع فایلهای README.FIRST و sn_config.h را بخوانید!)
این شنودکننده را میتوان بهراحتی پیکربندی کرد تا بستههای ورودی را «فیلتر» کند (تا مطالعه و بررسی نتایج شنود آسانتر شود). فایل پیکربندی (نگاه کنید به sniffit(5) ) به شما امکان میدهد در مورد بستههایی که باید پردازش شوند بسیار دقیق باشید.
همچنین sniffit دارای یک حالت تعاملی برای پایش فعال است و میتواند برای پایش مداوم در سطوح مختلف نیز مورد استفاده قرار گیرد.
نکته (NOTE)
این صفحه راهنما بهعنوان یک کتابچه راهنمای مرجع در نظر گرفته شده است. بنابراین لطفاً ابتدا README.FIRST را بخوانید و از این صفحه تنها برای درک بهتر یا بررسی سریع نحوه استفاده از sniffit استفاده کنید.
گزینهها (OPTIONS)
- -v
- نسخه در حال اجرای sniffit را نمایش میدهد و خارج میشود (بر همه گزینهها اولویت دارد)
- -t Target-IP
- فقط بستههای ارسالی به Target-IP (آدرس IP مقصد) را پردازش میکند. اگر Target-IP با نماد عددی نقطهدار باشد، استفاده از 'x' بهعنوان نویسه عام مجاز است (برای نمونه: '-t 157.193.x'، '-t x' و غیره). (ناسازگار با: '-s'، '-i'، '-I'، '-c'، '-v'، '-L')
- -s Source-IP
- مشابه '-t'، تنها بستههای ارسالی از Source-IP (آدرس IP مبدا) را پردازش میکند. (ناسازگار با: '-t'، '-i'، '-I'، '-c'، '-v'، '-L')
- -b
- حالت «هر دو» (both)، در کنار '-s' یا '-t'، تنها بستههای ارسالی از/به آدرس IP مشخصشده با '-s' یا '-t' را پردازش میکند. (ناسازگار با: '-t'، '-i'، '-I'، '-c'، '-v'، '-L')
- -c config-file
- استفاده از config-file (فایل پیکربندی) برای فیلتر کردن بستهها. این به شما امکان میدهد روی بستههایی که باید پردازش شوند بسیار دقیق عمل کنید (برای جزئیات قالب فایل به sniffit(5) مراجعه کنید). (ناسازگار با: '-t'، '-s'، '-i'، '-I'، '-v'، '-L')
- -i
- راهاندازی رابط کاربری ncurses برای پایش فعال («حالت تعاملی»). (اگر برنامه بدون پشتیبانی از INTERACTIVE کامپایل شده باشد در دسترس نیست؛ نگاه کنید به sn_config.h و README.FIRST ) (یکی از گزینههای '-t'، '-s'، '-i'، '-I'، '-c' الزامی است) (ناسازگار با: '-t'، '-s'، '-c'، '-v'، '-L')
- -I
- مشابه '-i'، اما اطلاعات بیشتری به شما میدهد. (یکی از گزینههای '-t'، '-s'، '-i'، '-I'، '-c' الزامی است) (ناسازگار با: '-t'، '-s'، '-c'، '-v'، '-L')
- -R <file>
- ضبط تمام ترافیک در <file> (فایل). سپس میتوان این فایل را با گزینه '-r' به Sniffit تحویل داد. (نیازمند یک پارامتر انتخابی مانند '-c'، '-t'، '-s' است) (ناسازگار با: '-i'، '-I'، '-v'، '-L'، '-r')
- -r <file>
- این گزینه، <file> ضبطشده را به sniffit ارائه میدهد. این گزینه به گزینه '-F' همراه با دستگاه صحیح نیاز دارد. فرض کنید فایلی را روی ماشینی با 'eth0' ثبت کردهاید. هنگام تحویل فایل ثبتشده به sniffit باید '-F eth0' یا '-F eth' را به خط فرمان اضافه کنید. نیازی به توضیح چندانی نیست که استفاده از '-i' یا '-I' در ترکیب با '-r' (در حال حاضر) هیچ معنایی ندارد. (نیازمند '-F'، ناسازگار با '-R'، '-i'، '-I')
- -n
- غیرفعال کردن بررسی چکسام (checksum) آیپی. این میتواند بستههای جعلی یا نامعتبر (bogus) را به شما نشان دهد. (توجه داشته باشید که ARP، RARP و سایر بستههای غیر IP نیز نامعتبر نشان داده خواهند شد) (سازگار با همه گزینهها)
- -N
- هیچیک از عملکردهای داخلی Sniffit را انجام ندهد. برای اجرای صرفاً یک افزونه (Plugin) کاربرد دارد. (سازگار با همه گزینهها)
- -x
- چاپ اطلاعات تفصیلی درباره بستههای TCP در خروجی استاندارد (stdout) (شامل SEQ، ACK، پرچمها و غیره). هنگام ردگیری جعل هویت (spoofing)، اتلاف بسته و سایر وظایف اشکالزدایی و بررسی شبکه واقعی بسیار کاربردی است. (اگر میخواهید این دادهها را ذخیره کنید، stdout را به یک فایل لوله کنید) (ناسازگار با: '-i'، '-I'، '-v')
- -d
- «حالت تخلیه» (dump mode)، بستهها را به جای ثبت در فایلها (حالت پیشفرض)، روی صفحه نمایش (stdout) نشان میدهد. دادهها بهصورت بایت (هگزادسیمال) چاپ میشوند. (ناسازگار با: '-i'، '-I'، '-v'، '-L')
- -a
- «حالت تخلیه»، مشابه '-d' است اما خروجی ASCII تولید میکند. نویسههای غیرقابلچاپ با '.' جایگزین میشوند. (ترکیب '-d' و '-a' بدون هیچ مشکلی انجام میشود) (ناسازگار با: '-i'، '-I'، '-v'، '-L')
- -P proto
- مشخص کردن پروتکلهایی که باید پردازش شوند (پیشفرض: TCP). گزینههای ممکن در حال حاضر عبارتند از: IP، TCP، ICMP، UDP. این گزینهها را میتوان با هم ترکیب کرد. اطلاعات IP، ICMP و UDP در خروجی استاندارد چاپ (dump) میشوند. پروتکل IP اطلاعات اضافی درباره بستهبندی IP در اطراف سایر بستهها ارائه میدهد؛ برای ثبت بستههای TCP نیازی به مشخص کردن IP نیست. بستههای IP و ICMP فیلتر نمیشوند (بستههای UDP از نسخه 0.3.4 به بعد فیلتر میشوند). (ناسازگار با: '-i'، '-I'، '-v'، '-L')
- -A char
- در «حالت عادی» (نه '-d'، '-a'، '-i'، '-I'، '-L')، تمام نویسههای غیرقابلچاپ با char جایگزین خواهند شد. (ناسازگار با: '-a'، '-d'، '-i'، '-I'، '-v'، '-L')
- -p port
- فقط بستههایی را بررسی میکند که به پورت (!!) port میروند؛ مقدار 0 به معنای همه پورتها است و مقدار پیشفرض 0 (همه) میباشد. (ناسازگار با: '-c'، '-i'، '-I'، '-v'، '-L')
- -l sniflen
- مقدار داده برای ثبت وقایع در «حالت عادی» (پیشفرض ۳۰۰ بایت). نخستین sniflen بایت از هر اتصال ثبت میشود. طول 0 به معنای ثبت همهچیز است (مراقب فضای دیسک باشید!). (ناسازگار با: '-i'، '-I'، '-v'، '-L')
- -F snifdevice
- وادار کردن sniffit به استفاده از یک دستگاه شبکه مشخص. snifdevice را میتوان با ifconfig پیدا کرد (نگاه کنید به ifconfig(8)). sniffit بهطور پیشفرض از اترنت و PPP پشتیبانی میکند. برای اطلاعات بیشتر درباره وادار کردن به استفاده از سایر دستگاهها، README.FIRST را بخوانید. (سازگار با همه گزینهها)
- -D tty
- تمام خروجی ثبت وقایع به آن دستگاه ارسال خواهد شد. (تنها با '-i' و '-I' کار میکند)
- -M plugin
- فعالسازی افزونه شماره plugin ؛ برای فهرستی از تمام افزونههای کامپایلشده در نسخه خود، کافی است دستور ' sniffit (ناسازگار با: '-i'، '-I'، '-v')
- -L logparam
- استفاده از sniffit بهعنوان یک ابزار پایش و فعالسازی حالتهای مختلف ثبت وقایع ( logparam ). فایل مورد استفاده برای ثبت وقایع را میتوان در فایل پیکربندی مشخص کرد (نگاه کنید به sniffit(5) )، اما بهطور پیشفرض sniffit.log است. پارامترهای مختلف logparam را میتوان ترکیب کرد. (تنها با '-c' کار میکند)
حالت عادی (NORMAL MODE)
تعدادی از بایتهای اولیه به میزان sniflen (پیشفرض ۳۰۰ بایت) از هر اتصال در فایلی با نام x.x.x.x.p-y.y.y.y.o ثبت میشود که در آن 'x.x.x.x' میزبان فرستنده (پورت 'p') و 'y.y.y.y' میزبان گیرنده (پورت 'o') است.
حالت تخلیه ('-d' و/یا '-a') (DUMP MODE ('-d' and/or '-a'))
خروجی به stdout هدایت میشود، محتوای بسته به شکل بستهبندینشده (بسته کامل IP) نمایش داده میشود.
حالت تعاملی ('-i' یا '-I') (INTERACTIVE MODE ('-i' or '-I'))
کلیدهای موجود در حالت تعاملی:
- 'UP' یا 'k'
- بدون نیاز به توضیح (حرکت به بالا)
- 'DOWN' یا 'j'
- بدون نیاز به توضیح (حرکت به پایین)
- F1 یا '1'
- ورود میزبان (برای بدون ماسک بودن 'all' را وارد کنید) برای فیلتر کردن بستهها (میزبانی که بستهها را ارسال میکند)
- F2 یا '2'
- ورود میزبان (برای بدون ماسک بودن 'all' را وارد کنید) برای فیلتر کردن بستهها (میزبانی که بستهها را دریافت میکند)
- F3 یا '3'
- ورود پورت (برای بدون ماسک بودن '0' را وارد کنید) برای فیلتر کردن بستهها (میزبانی که بستهها را ارسال میکند)
- F4 یا '4'
- ورود پورت (برای بدون ماسک بودن '0' را وارد کنید) برای فیلتر کردن بستهها (میزبانی که بستهها را دریافت میکند)
- F5 یا '5'
- اجرای برنامه 'sniffit_key5' با آرگومانهای <from IP> <from port> <to IP> <to port> اگر برنامه وجود نداشته باشد، هیچ کاری انجام نمیشود. برنامه باید در همان مسیری باشد که sniffit از آنجا اجرا شده است (نه لزوماً مسیری که sniffit در آن ذخیره شده است). این قابلیت برای قطع تعاملی اتصال یا پایش اضافی مفید است. یک اسکریپت شل کوچک همواره میتواند آرگومانهای ارائهشده را تبدیل کرده و به برنامههای دیگر ارسال کند.
- F6 یا '6'
- همانند F5 یا '5'، اما با برنامه 'sniffit_key6'
- F7 یا '7'
- همانند F5 یا '5'، اما با برنامه 'sniffit_key7'
- F8 یا '8'
- همانند F5 یا '5'، اما با برنامه 'sniffit_key8'
- ENTER
- پنجرهای باز شده و اتصال را ثبت میکند، یا اگر از گزینه '-D' استفاده کرده باشید، خروجی اتصال به دستگاه انتخابی ارسال خواهد شد.
- 'q'
- هنگامی که در حالت ثبت وقایع هستید، ثبت متوقف میشود؛ در غیر این صورت، از برنامه خارج میشود.
- 'n'
- تغییر وضعیت نمایش آمار شبکه (netstatistics). این آمار در فواصل ۳ ثانیهای نمونهبرداری میشوند؛ برای تغییر این مقدار به فایل sn_config.h مراجعه کنید.
- 'g'
- برنامه Sniffit اکنون قادر است مقداری بار ترافیکی ایجاد کند. در حال حاضر این یک قابلیت «توسعهنیافته» با گزینههای بسیار محدود است، اما گسترش خواهد یافت. در حال حاضر فقط بستههای UDP تولید میشوند. با فشردن کلید 'g'، از شما آدرسهای IP و پورت مبدا/مقصد و تعداد بستههایی که باید ارسال شوند پرسیده میشود. بستهها حاوی این خط هستند: "This Packet was fired with Sniffit!
- 'r'
- بازنشانی (Reset).. تمام اتصالات فعلی را از حافظه پاک کرده و برنامه را مجدداً راهاندازی میکند.
حالت ثبت وقایع ('-L') (LOGGING MODE ('-L'))
خروجی در فایل sniffit.log ذخیره میشود، مگر اینکه نام دیگری را در فایل پیکربندی مشخص کرده باشید (نگاه کنید به sniffit(5) ).
- raw
- ثبت تمام بستههای SYN، FIN، RST. این کار نمایی کلی از تمام ترافیک شبکه (TCP) را بهصورت خام ('RAW') به شما ارائه میدهد (شروع یک اتصال میتواند دستکم ۲ بسته SYN برای شما داشته باشد و غیره...).
- norm
- همانند raw، اما کمی هوشمندانهتر. مگر اینکه بستهها به دلیل اتلاف بسته چندین بار مخابره شوند، تنها ۱ اعلان از شروع یا پایان اتصال دریافت خواهید کرد (شناسه بسته، میزبانی را که ابتدا اتصال را آغاز کرده است مشخص میکند).
- telnet
- برنامه Sniffit تلاش خواهد کرد تا نامهای کاربری و گذرواژههای این برنامه را به دست آورد (نگاه کنید به telnet(1) ).
- ftp
- برنامه Sniffit تلاش خواهد کرد تا نامهای کاربری و گذرواژههای این برنامه را به دست آورد (نگاه کنید به ftp(1) ).
- برنامه Sniffit تلاش خواهد کرد تا تمام ایمیلهای ثبتشده را شناسایی کند.
ثبت وقایع IP ICMP UDP (IP ICMP UDP LOGGING)
اطلاعات این بستهها در stdout ریخته میشود. گزینههای فیلتر کردن بسته تنها به بستههای TCP و UDP مربوط میشوند. محتوای بستههای UDP تنها هنگام فعال کردن '-a' یا '-d' نشان داده میشود.
نویسنده (AUTHOR)
Brecht Claerhout <coder@reptile.rug.ac.be>