Tcpdump - Linux Command - Unix Command

NAME

tcpdump - ნაგავსაყრელის ქსელი

სინოფსისი

tcpdump [ -adeflnNOpqRStuvxX ] [ -c რაოდენობა ]

[ -C file_size ] [ -F ფაილი ]

[ -i ინტერფეისი ] [ -m მოდული ] [ -r ფაილი ]

[ -s snaplen ] [ -T ტიპის ] [ -U მომხმარებელი ] [ -w file ]

[ -E algo: secret ] [ გამოხატვა ]

DESCRIPTION

Tcpdump იბეჭდება პაკეტების სათაურებს ქსელური ინტერფეისით, რომელიც შეესაბამება ლოგიკური გამოხატვას . მას ასევე შეუძლია აწარმოოს -w flag, რომელიც იწვევს პაკეტის მონაცემების შენახვას ფაილზე შემდგომი ანალიზისთვის და / ან- r დროით, რომელიც იწვევს შენახულ პაკეტ ფაილზე წაკითხვას, ვიდრე პაკეტების წაკითხვა ქსელის ინტერფეისიდან. ყველა შემთხვევაში, მხოლოდ პაკეტები, რომლებიც ემთხვევა გამოხატვას, დამუშავდება tcpdump- ით .

Tcpdump- ს , თუ არ აწარმოებს -c flag, გააგრძელეთ პაკეტები, სანამ შეუწყვეტდება SIGINT სიგნალს (გენერირებული, მაგალითად, აკრეფის ხასიათის აკრეფით, როგორც წესი კონტროლი- C) ან SIGTERM სიგნალი (როგორც წესი, (1) ბრძანება); თუ -c flag- თან ერთად აწარმოებს პაკეტებს, სანამ იგი არღვევს SIGINT ან SIGTERM სიგნალს ან პაკეტების გარკვეული რაოდენობა დამუშავებულია.

როდესაც tcpdump სრულდება პაკეტების აღებისას, ის ანგარიშს მოიცავს:

პაკეტები `` ფილტრის მიერ მიღებული '' (ამ მნიშვნელობის მნიშვნელობა დამოკიდებულია OS- ზე, რომელზეც ხორციელდება tcpdump- ს , და შესაძლოა, ოპერაციული სისტემა კონფიგურირებული იყოს - თუ ფილტრი მითითებულია ბრძანების ხაზში, პაკეტების მიუხედავად იმისა, რომ ისინი შეესაბამებდნენ ფილტრაციის გამოხატულებას და სხვა OS- ზე, ის აკმაყოფილებს მხოლოდ პაკეტებს, რომლებიც შეესაბამებოდა ფილტრის გამოხატულებას და დამუშავდა tcpdump- ით );

პაკეტები `` კერნელით '' (ეს არის პაკეტების რაოდენობა, რომლებიც დაეცა ბუფერული სივრცის ნაკლებობის გამო, პაკეტის გადაღების მექანიზმი OS- ზე, რომელზეც tcpdump იფუნქციონირებს , თუ OS განაცხადებს ამ პროგრამების შესახებ; თუ არა, ეს იქნება ცნობილი როგორც 0).

SIGINFO სიგნალის მხარდასაჭერად ისეთი პლატფორმების მხარდაჭერა, როგორიცაა BSDs- ის უმეტესობა, მოახდენს ანგარიშს, რომელიც იღებს SIGINFO სიგნალს (გენერირებული, მაგალითად, თქვენი `სტატუსის 'ხასიათის აკრეფით, როგორც წესი, კონტროლი- T) და გააგრძელებს პაკეტების აღებას .

ქსელის ინტერფეისიდან წაკითხვის პაკეტებმა შეიძლება მოითხოვონ სპეციალური პრივილეგიები:

ქვეშ SunOS 3.x ან 4.x ერთად NIT ან BPF:

თქვენ უნდა წაიკითხოთ წვდომა / dev / nit ან / dev / bpf * .

სოლარისის ქვეშ DLPI:

თქვენ უნდა წაიკითხოთ / ჩაწეროთ ქსელის ფსევდო მოწყობილობაზე წვდომა, მაგალითად, / dev / le . თუმცა Solaris- ის ზოგიერთ ვერსიასთან დაკავშირებით, ეს არ არის საკმარისი იმისათვის, რომ tcpdump- ის ხელში ჩაგდება გადაეწყვიტა. Solaris- ის იმ ვერსიებზე, თქვენ უნდა იყოთ root, ან tcpdump უნდა დაინსტალირდეს setuid რათა root, რათა ხელში promiscuous რეჟიმი. გაითვალისწინეთ, რომ ბევრ (ალბათ ყველა) ინტერფეისი, თუ არ გადაუჭერთ პროპაგანდისტულ რეჟიმს, არ გამოჩნდება რაიმე გამავალი პაკეტი, ასე რომ, არ მოხდება ჩამორჩენილი რეჟიმი, არ შეიძლება ძალიან სასარგებლო იყოს.

ქვეშ HP-UX ერთად DLPI:

თქვენ უნდა იყოთ root ან tcpdump უნდა იყოს ინსტალაციის დაყენება root.

ქვეშ IRIX ერთად snoop:

თქვენ უნდა იყოთ root ან tcpdump უნდა იყოს ინსტალაციის დაყენება root.

Linux- ში:

თქვენ უნდა იყოთ root ან tcpdump უნდა იყოს ინსტალაციის დაყენება root.

Under Ultrix და ციფრული UNIX / Tru64 UNIX:

ნებისმიერ მომხმარებელს შეუძლია დაიცვას ქსელის ტრაფიკი tcpdump- თან . თუმცა ინტერფეისი არ შეუძლია მომხმარებელზე (არც კი სუპერ მომხმარებელი) ინტერპრეტაციას, თუ სუპერ-მომხმარებელს საშუალებას აძლევს, რომ ინტერფეისი ჩართოთ pfconfig (8) -ის გამოყენებით, და არა მომხმარებლის (არა სუპერ მომხმარებელი ) შეიძლება ჩაირთოს ინტერფეისიდან მიღებული მანქანების მიერ გაგზავნილი ან გაგზავნილი უნიკალურ ტრაფიკი, თუ სუპერ-მომხმარებელს საშუალებას აძლევს , რომ ამ ინტერფეისზე ასლი ყველა რეჟიმი ჩართოს pfconfig- ის გამოყენებით, ამიტომ ინტერფეისიდან სასარგებლო პაკეტი ჩაირთვება , ალბათ მოითხოვს, რომ კონფიცარული რეჟიმი ან ასლი ოპერაციის ორივე რეჟიმი ან ოპერაციის ორივე რეჟიმი ჩართულია ამ ინტერფეისით.

ქვეშ BSD:

თქვენ უნდა წაიკითხოთ წვდომა / dev / bpf * .

შენახული პაკეტის ფაილის წაკითხვა არ საჭიროებს სპეციალურ პრივილეგიებს.

პარამეტრები

- ა

ქსელისა და სამაუწყებლო მისამართების სახელების სახელების შეცვლა.

-c

გასვლა პაკეტების მიღების შემდეგ.

-C

ნებართვის პაკეტის გადაწერაში შენახვისას , გადაამოწმეთ თუ არა ფაილი file_size- ზე უფრო დიდია და, თუ ასეა, ახლდება მიმდინარე შენახვის დახურვა და ახალი გახსნა. Savefiles- ის პირველი შენახვის შემდეგ ექნება სახელით მითითებული -w flag, რიცხვი მას შემდეგ, დაწყებული 2 და გაგრძელდება ზემოთ. File_size- ის ერთეული მილიონობით ბაიტია (1,000,000 ბაიტი, არა 1,048,576 ბაიტი).

-d

შეავსეთ შედგენილი პაკეტი-შესაბამისი კოდი ადამიანის რეგულირებადი ფორმაში სტანდარტული გამომავალი და შეჩერება.

- დაამატეთ

ნაგავსაყრელი პაკეტის კოპირება, როგორც C პროგრამის ფრაგმენტი.

-ddd

ნაგავსაყრელის შესატყვისი კოდი, როგორც ათობითი ციფრები (წინ უძღვის რაოდენობა).

-ე

ამობეჭდე ბმული დონის ჰედერი თითოეულ ნაგავსაყრელზე.

-E

გამოიყენეთ ალგო: საიდუმლო IPsec ESP პაკეტების გაშიფვრისათვის. ალგორითმები შეიძლება იყოს des-cbc , 3des-cbc , blowfish-cbc , rc3-cbc , cast128-cbc , ან არა . ნაგულისხმევი არის des-cbc . პაკეტის გაშიფვრის უნარი არის მხოლოდ იმ შემთხვევაში, თუ tcpdump შედგენილია კრიპტოგრაფიით. საიდუმლო გასაღები ESP საიდუმლო გასაღები for ascii ტექსტი. ამ ეტაპზე თვითნებური ორობითი ღირებულება არ შეგვიძლია. ვარიანტი იღებს RFC2406 ESP, არ RFC1827 ESP. ვარიანტი მხოლოდ გამართვის მიზნით, და ამ პარამეტრის გამოყენება მართლაც "საიდუმლო" გასაღებით არის მოტივირებული. IPsec საიდუმლო გასაღების ბრძანებათა სტრიქონის წარდგენით სხვებისთვის ხილული გახდება, როგორც PS (1) და სხვა შემთხვევები.

-f

ბეჭდვისთვის "უცხო" ინტერნეტ მისამართები სიმბოლურად, ვიდრე სიმბოლურად (ეს ვარიანტი მიზნად ისახავს მზის YP სერვერის სერიოზულ ტვინის დაზიანებას - ჩვეულებრივ, არასდროს უქმნის არა ადგილობრივ ინტერნეტ ნომრებს.

-F

გამოიყენეთ ფაილი, როგორც ფილტრი გამოხატვის შეყვანა. დამატებითი გამოხატვა მოცემულია ბრძანების ხაზით.

-მე

მოუსმინეთ ინტერფეისს . თუ დაუზუსტებელია, tcpdump ეძებს სისტემური ინტერფეისის სიას ყველაზე დაბალ რიცხვზე, კონფიგურირებული ინტერფეისით (გარდა loopback). კავშირები არღვევს ადრეული მატჩის არჩევის გზით.

Linux- ის 2.2 ან უფრო გვიან ბირთვულ სისტემებში, ინტერფეისის არგუმენტი შეიძლება გამოყენებულ იქნეს პაკეტების ყველა ინტერფეისიდან. გაითვალისწინეთ, რომ `` ნებისმიერი '' მოწყობილობის ხელში ჩაგდება არ მოხდება სიმულაციის რეჟიმში.

-l

ჩადება stdout ხაზი buffered. სასარგებლო თუ გინდა იხილოთ მონაცემები მასზე აღებისას. მაგალითად,
`` tcpdump -l | tee 'ან `` tcpdump -l> dat & კუდი-ის' '.

-m

ჩატვირთვა SMI MIB მოდული განმარტებები ფაილის მოდულიდან . ეს ვარიანტი შეიძლება გამოყენებულ იქნას რამდენჯერმე ჩატვირთვა რამდენიმე MIB მოდულის tcpdump- ში .

-ნ

არ დააკონვერტიროთ მასპინძელი მისამართები სახელები. ეს შეიძლება გამოყენებულ იქნას DNS lookups- ის თავიდან ასაცილებლად.

-nn

ნუ დააკონვერტირეთ პროტოკოლი და პორტის ნომრები და ა.შ.

-N

დომენური სახელების კვალიფიკაციის დომენური სახელების ბეჭდვითი არ არის. მაგალითად, თუ ამ დროშას აძლევენ, მაშინ tcpdump ატარებს `nic.ddn.mil '- ს ნაცვლად` nic'.

-O

ნუ პაკეტების შესატყვისი კოდი ოპტიმიზატორს არ ატარებთ. ეს სასარგებლოა მხოლოდ ოპტიმიზატორის შეცდომის შემთხვევაში.

-p

არ გამოიყენოთ ინტერფეისი პროკრედიტის რეჟიმში. გაითვალისწინეთ, რომ ინტერფეისი შეიძლება იყოს სხვაგვარი მიზეზის გამო, აქედან გამომდინარე, `-p 'არ შეიძლება გამოყენებულ იქნეს როგორც` ეტერის მასპინძელი {local-hw-addr} ან ეთერის სამაუწყებლო ".

-q

სწრაფი (წყნარი?) გამომავალი. დაბეჭდილ პროტოკოლის ნაკრები ისე, რომ გამომავალი ხაზები უფრო მოკლეა.

-რ

აიღეთ ESP / AH პაკეტები, რომლებიც ეფუძნება ძველი სპეციფიკაციას (RFC1825, რომ RFC1829). თუ მითითებულია, tcpdump არ იბეჭდება გამეორების პრევენციის სფეროში. რადგან არ არსებობს პროტოკოლის ვერსია ESP / AH სპეციფიკაციაში, tcpdump ვერ შეასრულა ESP / AH პროტოკოლის ვერსია.

-რ

წაიკითხეთ პაკეტი ფაილზე (რომელიც შეიქმნა -w პარამეტრით). სტანდარტული შეყვანა გამოიყენება, თუ ფაილი `` - ''.

-S

ბეჭდვითი აბსოლუტური, ვიდრე ნათესავი, TCP თანმიმდევრობით რიცხვები.

-გ

Snarf snaplen bytes მონაცემების თითოეული პაკეტი ვიდრე ნაგულისხმები 68 (ერთად SunOS ს NIT, მინიმუმ 96). 68 ბაიტი ადეკვატურია IP, ICMP, TCP და UDP- ისთვის, მაგრამ შეიძლება გაეცნოთ პროტოკოლის ინფორმაციას სახელი სერვერისა და NFS პაკეტებისგან (იხ. ქვემოთ). შეფუთვაში შეზღუდული პაკეტების გამონაკლისი პაკეტი გამოითვლება `` | პროტო ] '', სადაც პროტო არის ოქმის დონის სახელი, რომლის დროსაც მოხდა შტრიხი. გაითვალისწინეთ, რომ უფრო დიდი სნაფშების მიღება იზრდება პაკეტების დამუშავების დროის გაზრდაზე და ეფექტურად, ამცირებს პაკეტის ბუფერის მოცულობას. ეს შეიძლება გამოიწვიოს პაკეტების დაკარგვა. თქვენ უნდა შეზღუდოთ snaplen ყველაზე პატარა ნომერი, რომელიც დაიჭერს ოქმის ინფორმაცია თქვენ დაინტერესებული. Setup snaplen 0 ნიშნავს ნიშნავს საჭირო სიგრძის დაჭერა მთელი პაკეტი.

-T

" გამოხატვის " მიერ შერჩეული ფორტექსტების ინტერპრეტაცია, რომლებიც მითითებულია მითითებულ ტიპზე . ამჟამად ცნობილი სახეები არიან cnfp (Cisco NetFlow პროტოკოლი), rpc (დისტანციური საპროცესო ზარი), rtp (რეალურ დროში განაცხადების პროტოკოლი), rtcp (რეალურ დროში განაცხადების საკონტროლო პროტოკოლი), snmp (მარტივი ქსელის მართვის პროტოკოლი), VAT (Visual Audio Tool ) და wb (განაწილებული თეთრი საბჭო).

-t

არ დააბეჭდოთ დროის ნიშნულს თითოეული ნაგავსაყრელზე.

- თ

ამობეჭდე დაუდგენელი დროის ნიშნულს თითოეული ნაგავსაყრელზე.

-U

Drops root პრივილეგიები და ცვლილებები მომხმარებლის ID მომხმარებლის და ჯგუფის ID პირველადი ჯგუფის მომხმარებელი .

შენიშვნა! Red Hat Linux ავტომატურად არღვევს პრივილეგიებს მომხმარებლის `` pcap '' - ს, თუ სხვა არაფერია მითითებული.

-

ბეჭდვის დელტა (მიკრო წამებში) მიმდინარე და წინა ხაზს შორის თითოეული ნაგავსაყრელი ხაზი.

- ტეტ

ამობეჭდე დროის სტანდარტული დრო, რომელიც ჩაიწერებოდა თარიღს თითოეული ნაგავსაყრელზე.

-u

ბეჭდვის undecoded NFS სახელურები.

-ვ

(ოდნავ მეტი) verbose გამომავალი. მაგალითად, დაიბეჭდება IP პაკეტის ცხოვრება, იდენტიფიკაცია, საერთო სიგრძე და პარამეტრები. ასევე საშუალებას აძლევს დამატებითი პაკეტის მთლიანობის შემოწმებას, როგორიცაა IP და ICMP სათაურების ჩეკის გადამოწმება.

-Vv

კიდევ უფრო მეტი verbose გამომავალი. მაგალითად, დამატებითი სფეროები იბეჭდება NFS საპასუხო პაკეტიდან და SMB პაკეტები სრულად დაიბლოკება.

-Vvv

კიდევ უფრო მეტი verbose გამომავალი. მაგალითად, telnet SB ... SE ვარიანტები დაბეჭდილია. With -X telnet პარამეტრები იბეჭდება hex ასევე.

-w

ჩაწერეთ ნედლეული პაკეტები, რომლებიც დაემატება და არ აკონკრეტებენ. მათ შეუძლიათ მოგვიანებით დაბეჭდეთ -r- ს ვარიანტი. სტანდარტული გამომავალი გამოიყენება, თუ ფაილი `` - ''.

-x

ამობეჭდეთ თითოეული პაკეტი (მინუს მისი ბმული დონე ჰედერი). დაბეჭდილი იქნება მთელი პაკეტის ან snaplen- ის ბაიტების მცირე რაოდენობა. გაითვალისწინეთ, რომ ეს არის მთელი ბმული ფენის პაკეტი, ასე რომ ბმული ფენებისთვის, რომ pad (მაგ. Ethernet), padding bytes ასევე დაიბეჭდება, როდესაც უმაღლესი ფენის პაკეტი უფრო მოკლეა, ვიდრე საჭირო padding.

-X

როდესაც ბეჭდვის hex, ბეჭდვითი ascii ძალიან. ამდენად, თუ -x ასევე არის მითითებული, პაკეტი იბეჭდება hex / ascii. ეს არის ძალიან მოსახერხებელი ახალი ოქმის ანალიზისთვის. მაშინაც კი, თუ -x არ არის დადგენილი, ზოგიერთი პაკეტის ზოგიერთი ნაწილი შეიძლება დაიბლოკოს hex / ascii.

გამოხატვა

შეარჩიოს პაკეტები, რომლებიც ამოღებულ იქნებიან. თუ არ გამოხატავს გამოხატვას , პაკეტში ყველა პაკეტი დუმს. წინააღმდეგ შემთხვევაში, მხოლოდ პაკეტები, რომელთა გამოხატვაც "ჭეშმარიტია", იქნება მოპარული.

გამოხატულება შედგება ერთი ან მეტი პრიმიტივისგან. პრიმიტივები, როგორც წესი, შედიან id (სახელი ან ნომერი) წინ უძღვის ერთი ან მეტი კვალიფიკაცია. არსებობს სამი სხვადასხვა კვალიფიკაცია:

ტიპი

კვალიფიკატორები ამბობენ, რა სახის ნიმუშია სახელი ან ნომერი. შესაძლო ტიპებია მასპინძელი , ქსელი და პორტი . მაგალითად, `მასპინძელი foo ',` net 128.3', `port 20 '. თუ არ არსებობს ტიპის კვალიფიკატორი, მასპინძელი მიიჩნევა.

რეჟ

საკვალიფიკაციო მონაცემები განსაზღვრავს კონკრეტული გადაცემის მიმართულებას და / ან იდენტურობას . შესაძლო მიმართულებებია src , dst , src ან dst, src და dst . ეგ, `src foo ',` dst net 128.3', `src ან dst port ftp- მონაცემები '. თუ არ არსებობს საკმარისი კვალიფიკაცია, src ან dst არის. `Null 'ბმული ფენისთვის (ანუ წერტილოვანი წერტილები, როგორიცაა slip) შემომავალი და გამავალი კვალიფიკაცია შეიძლება გამოყენებულ იქნას სასურველი მიმართულებით.

პროტო

კვალიფიკაცია ზღუდავს მატჩს კონკრეტულ ოქმში. შესაძლო პროტოსია: ეტერი , ფდდი , , ip , ip6 , arp , rarp , decnet , tcp და udp . ეგ, `ეთერი src foo ',` arp net 128.3', `tcp port 21 '. თუ არ არსებობს პროტომოლოგია, ყველა ოქმს შეესაბამება ამ ტიპის თანმიმდევრობა. ეგ, `src foo 'ნიშნავს` ipr ან arp ან rarp src foo' (ეს უკანასკნელი არ არის იურიდიული სინტაქსი), `net bar 'ნიშნავს (ip ან arp ან rarp) ქსელის ბარი და` port 53' `tcp ან udp პორტი 53 '.

[`fddi 'არის რეალურად alias for` ether'; პარკერი მათ იდენტურად ატარებს მათ შორის იდენტურად მნიშვნელობას, რაც გამოიყენება ქსელის ინტერფეისით გამოყენებულ მონაცემთა ბმულზე. "FDDI- ს სათაურები შეიცავს Ethernet- ს წყაროს და დანიშნულების მისამართებს და ხშირად შეიცავს Ethernet- ის მსგავსი პაკეტის ტიპებს, ასე რომ თქვენ შეგიძლიათ ამ FDDI ველი ისევე, როგორც ანალოგიური Ethernet სფეროებში. FDDI- ის სათაურებში ასევე შეიცავენ სხვა სფეროებს, მაგრამ ვერ ასახელებს მათ პირდაპირ ფილტრაციის გამოხატვაში.

ანალოგიურად, `ტ 'არის ალტერნატივა` ეტერისთვის`; FDDI- ის სათაურების შესახებ წინა პარაგრაფის განცხადებები ასევე ეხება ტოქს ბეჭვდის სათაურებს.]

გარდა ამისა, არსებობს სპეციალური "პრიმიტიული" საკვანძო სიტყვა, რომელიც არ შეესაბამება ნიმუში: კარიბჭე , სამაუწყებლო , ნაკლებად , უფრო დიდი და არითმეტიკული გამონათქვამები. ყოველივე ქვემოთ აღწერილია ქვემოთ.

უფრო რთული ფილტრი გამონათქვამები იქმნება სიტყვებისა და , ან არ შეუერთდეთ პრიმიტივებს. მაგალითად, `მასპინძელი foo და არა პორტი ftp და არა პორტი ftp- მონაცემები '. აკრეფის დასაფიქსირებლად, იდენტური კვალიფიკაციის სიები შეიძლება გამოტოვებული იყოს. მაგალითად, `tcp dst პორტი ftp ან ftp- მონაცემები ან დომენი 'ზუსტად იგივეა, რაც` tcp dst port ftp ან tcp dst პორტის ftp- მონაცემები ან tcp dst პორტის დომენი'.

დასაშვები პრიმიტივებია:

dst მასპინძელი მასპინძელი

მართალია, თუ პაკეტის IPv4 / v6 დანიშნულების ველი არის მასპინძელი , რომელიც შეიძლება იყოს მისამართი ან სახელი.

src მასპინძელი მასპინძელი

მართალია, თუ პაკეტის IPv4 / V6 წყარო სფერო მასპინძელია .

მასპინძელი მასპინძელი

მართალია, თუ IPv4 / v6 წყარო ან დანიშნულების პაკეტი მასპინძელია . ნებისმიერი მასპინძელი გამონათქვამები შეიძლება იყოს წინასწარმეტყველებენ საკვანძო სიტყვებით, ip , arp , rarp ან ip6, როგორც:

ip მასპინძელი მასპინძელი

რაც უდრის:

ეთერი პროტო \ IP და მასპინძელი მასპინძელი

თუ მასპინძელი მრავალ IP მისამართია, თითოეული მისამართი შეამოწმებს მატჩისთვის.

ესთეტი

მართალია, თუ ეთერნეტის დანიშნულების მისამართი არის ehost . Ehost შეიძლება იყოს სახელი / etc / ethers ან ნომერი (იხილეთ ეტლები (3N) რიცხვითი ფორმატისთვის).

ეთერი src ehost

მართალია, თუ ეთნარეთის წყაროს მისამართია ehost .

ethost მასპინძელი ehost

მართალია, თუ ეთნარეთის წყარო ან დანიშნულების მისამართია.

კარიბჭე მასპინძელი

მართალია, თუ პაკეტი გამოიყენება მასპინძლად , როგორც კარიბჭე. ე.ი., ეთერტის წყარო ან დანიშნულების მისამართი იყო მასპინძელი, მაგრამ არც IP წყარო და არც IP დანიშნულება იყო მასპინძელი . მასპინძელი უნდა იყოს სახელი და უნდა მოიძებნოს როგორც მანქანების მასპინძელი- IP- მისამართების რეზოლუციის მექანიზმები (მასპინძელი სახელის ფაილი, DNS, NIS და ა.შ.) და მანქანების მასპინძელი- მექანიზმი (/ etc / ethers და ა.შ.). (ეკვივალენტური გამოხატულებაა

ehost მასპინძელი ehost და არა მასპინძელი მასპინძელი

რომელიც შეიძლება გამოყენებულ იქნას მასპინძელი / ehost- სთან ერთად .) ეს სინტაქსი ამ მომენტში IPv6- ჩართულ კონფიგურაციაში არ მუშაობს.

dst net net

მართალია, თუ პაკეტის IPv4 / V6 დანიშნულების მისამართია ქსელის ქსელის ნომერი. ქსელი შეიძლება იყოს სახელი ან / და ა.შ. / ქსელიდან ან ქსელის ნომერი (იხილეთ ქსელები (4) დეტალებისთვის).

src net net

მართალია, თუ პაკეტის IPv4 / V6 წყაროს მისამართი აქვს ქსელის ქსელის ნომერი.

წმინდა ქსელი

მართალია, თუ პაკეტის IPv4 / V6 წყაროს ან დანიშნულების მისამართს აქვს ქსელის ქსელის ნომერი.

ქსელის ნიღაბი ნიღაბი

მართალია, თუ IP მისამართი ემთხვევა სპეციფიკურ ნიმუშით . შეიძლება კვალიფიცირებული იყოს src ან dst . გაითვალისწინეთ, რომ ეს სინტაქსი არ არის სწორი IPv6 ქსელისთვის .

net net / len

მართალია, თუ IPv4 / V6 მისამართი შეესაბამება ქსელს netmask len ბიტების ფართო. შეიძლება კვალიფიცირებული იყოს src ან dst .

dst პორტის პორტი

მართალია, თუ პაკეტი არის ip / tcp, ip / udp, ip6 / tcp ან ip6 / udp და აქვს პორტის პორტის დანიშნულება . პორტი შეიძლება იყოს ნომერი ან სახელი / etc / სერვისებში გამოყენებული სახელი (იხ. TCP (4P) და udp (4P)). თუ სახელი გამოიყენება, ორივე პორტის ნომერი და ოქმი შემოწმდება. თუ ნომერი ან ორაზროვანი სახელი გამოიყენება, მხოლოდ პორტის ნომერი შემოწმდება (მაგ., Dst პორტი 513 დაბეჭდება ორივე TCP / ლოკალიზაციის და udp / რომელიც მოძრაობს და პორტი დომენი ბეჭდვის ორივე დომენი / დომენი და udp / domain traffic).

src პორტის პორტი

მართალია, თუ პაკეტს პორტის პორტის წყარო აქვს.

პორტის პორტი

მართალია, თუ პაკეტის წყარო ან დანიშნულების პორტი პორტია . ნებისმიერი პორტის გამონათქვამები შეიძლება მომზადდეს საკვანძო სიტყვებით, TCP ან udp , როგორც:

tcp src პორტის პორტი

რომელიც შეესაბამება მხოლოდ TCP პაკეტებს, რომელთა პორტი პორტია .

ნაკლები სიგრძე

მართალია, თუ პაკეტი სიგრძეზე ნაკლებია ან სიგრძის სიგრძეა . ეს უდრის:

len <= სიგრძე .

დიდი სიგრძე

მართალია, თუ პაკეტი სიგრძეზე მეტია ან ტოლია სიგრძეზე . ეს უდრის:

len> = სიგრძე .

ip პროტო ოქმი

მართალია, თუ პაკეტი არის IP პაკეტი (იხ. IP (4P)) ოქმის ტიპის პროტოკოლის . ოქმი შეიძლება იყოს ნომერი ან ერთი სახელები icmp , icmp6 , igmp , igrp , pim , ah , esp , vrrp , udp , ან TCP . გაითვალისწინეთ, რომ ამოცანები tcp , udp და icmp ასევე სიტყვა და უნდა გაიქცნენ მეშვეობით backslash (\), რომელიც \\ in C-shell. გაითვალისწინეთ, რომ ეს პრიმიტიული არ აჩერებს პროტოკოლის სათაურების ჯაჭვს.

ip6 პროტო ოქმი

მართალია თუ პაკეტი არის ოქმის ტიპის პროტოკოლის IPv6 პაკეტი. გაითვალისწინეთ, რომ ეს პრიმიტიული არ აჩერებს პროტოკოლის სათაურების ჯაჭვს.

IP6 პროტოკონური ოქმი

მართალია, თუ პაკეტი არის IPv6 პაკეტი და შეიცავს პროტოკოლის პროტოკოლით პროტოკოლის ჰედარს თავის პროტოკოლის სათაურში. მაგალითად,

ip6 protochain 6

შეესაბამება TCP პროტოკოლის ნებისმიერ IPv6 პაკეტს პროტოკოლის სათაურში ჯაჭვში. პაკეტი შეიძლება მოიცავდეს მაგალითად, ავთენტიფიკაციის სათაურს, მარშრუტიზაციის სათაურს, ან ჰოპ-ჰოპ პარამეტრის სათაურს, IPv6- ს სათაურსა და TCP- ს სათაურებს შორის. BPF კოდი ამ პრიმიტივით გამოდის კომპლექსური და არ შეიძლება ოპტიმიზირებული იყოს BPF ოპტიმიზატორის კოდით tcpdump- ში , ამიტომ ეს შეიძლება გარკვეულწილად ნელი იყოს.

IP პროტოკონის პროტოკოლი

IP6 პროტოკოლის პროტოკოლის ექვივალენტი, მაგრამ ეს არის IPv4- ისთვის.

ეთერი ეთერში

მართალია, თუ პაკეტი არის ეთერნეტის სამაუწყებლო პაკეტი. ეთერის საკვანძო სიტყვა არის სურვილისამებრ.

IP მაუწყებლობა

მართალია თუ პაკეტი არის IP სამაუწყებლო პაკეტი. იგი ამოწმებს როგორც ყველა- zeroes და ყველა- ones სამაუწყებლო კონვენციები, და გამოიყურება up ადგილობრივი subnet ნიღაბი.

ეთერში მულტიკასტი

მართალია, თუ პაკეტი არის ეთერნეტის მულტისტური პაკეტი. ეთერის საკვანძო სიტყვა არის სურვილისამებრ. ეს არის სვეტი " ევეერი [0] და 1 = = 0 '.

ip multicast

მართალია, თუ პაკეტი IP მულტისტ პაკეტია.

ip6 multicast

მართალია, თუ პაკეტი არის IPv6 multicast პაკეტი.

პროტო ოქმი

მართალია, თუ პაკეტი არის ether ტიპის პროტოკოლი . პროტოკოლი შეიძლება იყოს ნომერი ან ერთი სახელები ip , ip6 , arp , rarp , atalk , aarp , decnet , sca , lat , mopdl , moprc , iso , stp , ipx , ან netbeui . გაითვალისწინეთ ეს იდენტიფიკატორები ასევე საკვანძო სიტყვები და უნდა გაიქცნენ backslash (\).

[FDDI პროტოკოლის arp ') და ტოქს ბეჭდის (მაგალითად, `` პროტოკოლის arp ' ') შემთხვევაში, ამ პროტოკოლების უმეტესობისთვის, ოქმის იდენტიფიკაცია 802.2 ლოგიკური ლინკის კონტროლი (LLC) სათაურისაგან შედგება ჩვეულებრივ ფრედ ან FDDI- ის ზედა ნაწილზე ტოლერანტებზე.

FDDI- ის ან Token Ring- ზე მეტი პროტოკოლის იდენტიფიკატორების ფილტრაცია, როდესაც tcpdump ე.წ. SNAP ფორმატში მხოლოდ ე.წ. SNAP ფორმატის პროტოკოლის ID ველში ამოწმებს 0x000000- ის ორგანიზაციული ერთეულის იდენტიფიკატორს, რომელიც encapsulated Ethernet- ისთვისაა; იგი არ შეამოწმებს თუ არა პაკეტი SNAP ფორმატში OUI 0x000000.

გამონაკლისები არის ისო , რისთვისაც ის ამოწმებს DSAP (დანიშნულების სერვისების წვდომის წერტილს) და SSAP (წყარო სერვისების წვდომის წერტილს) LLC- ის სათაო , STP და Netbeui- ის სფეროებს , სადაც ის ამოწმებს შპს " DSAP" - ის სათაურსა და Atalk- ს , სადაც ამოწმებს SNAP- ფორმატის პაკეტს OUI- ის 0x080007 და Appletalk etype- ით.

Ethernet- ის შემთხვევაში, tcpdump ამოწმებს Ethernet ტიპის ველს ამ პროტოკოლების უმრავლესობისთვის; გამონაკლისი არის ის, SAP და Netbeui , რომელიც ამოწმებს 802.3 ჩარჩოს და შემდეგ ამოწმებს შპს ჰედერს, როგორც ამას აკეთებს FDDI და Token Ring, Atalk , სადაც იგი ამოწმებს როგორც Appletalk etype- ში Ethernet ჩარჩოში SNAP- ფორმატის პაკეტი, როგორც ამას აკეთებს FDDI- ის და Token Ring- ისთვის , სადაც ის ამოწმებს Appletalk ARP Ethernet- ს Ethernet ჩარჩოში ან 802.2 SNAP ჩარჩოში 0x000000 OUI- თან და IPX- ით , სადაც იგი ინახავს IPX ტიპის Ethernet ჩარჩო, IPX DSAP LLC- ის სათაო ოფისში, 802.3, რომელსაც არ გააჩნია IPX- ის დაყადაღება და IPX etype SNAP ჩარჩოში.]

decnet src host

მართალია, თუ DECNET- ის წყაროს მისამართი მასპინძელია , რომელიც შეიძლება იყოს `10.123 '', ან DECNET მასპინძელი სახელის მისამართი. [DECNET მასპინძელი მხარდამჭერი მხარდაჭერა ხელმისაწვდომია მხოლოდ Ultrix სისტემებზე, რომლებიც კონფიგურირებულია DECNET- ის გასაშვებად.]

decnet dst მასპინძელი

მართალია, თუ DECNET დანიშნულების მისამართი არის მასპინძელი .

decnet მასპინძელი მასპინძელი

მართალია, თუ DECNET წყარო ან დანიშნულების მისამართი არის მასპინძელი .

ip , ip6 , arp , rarp , atalk , aarp , decnet , iso , stp , ipx , netbeui

აბრევიატურები:

ეთერი პროტო

სადაც p არის ერთ-ერთი ზემოაღნიშნული ოქმით.

lat , moprc , mopdl

აბრევიატურები:

ეთერი პროტო

სადაც p არის ერთ-ერთი ზემოაღნიშნული ოქმით. გაითვალისწინეთ, რომ tcpdump ამჟამად არ იცის, როგორ გავაანალიზოთ ეს ოქმები.

vlan [vlan_id]

მართალია, თუ პაკეტი არის IEEE 802.1Q VLAN პაკეტი. თუ [vlan_id] არის მითითებული, მხოლოდ ჭეშმარიტი არის პაკეტი მითითებული vlan_id . გაითვალისწინეთ, რომ გამოხატულებაში დაფიქსირებული პირველი vlan საკვანძო სიტყვა ცვლის დეკოდირების ოფსეტებს დანარჩენი გამოხატვისთვის , ვარაუდის შესახებ, რომ პაკეტი არის VLAN პაკეტი.

tcp , udp , icmp

აბრევიატურები:

ip proto p ან ip6 proto p

სადაც p არის ერთ-ერთი ზემოაღნიშნული ოქმით.

არის პროტოკოლური პროტოკოლი

მართალია, თუ პაკეტი არის ოქმის ტიპის პროტოკოლის OSI პაკეტი. პროტოკოლი შეიძლება იყოს რიცხვი ან ერთი სახელი CLNP , esis ან isis .

clnp , esis , isis

აბრევიატურები:

არის პროტო p

სადაც p არის ერთ-ერთი ზემოაღნიშნული ოქმით. გაითვალისწინეთ, რომ tcpdump აკეთებს ამ ოქმების გაანგარიშების არასრული სამუშაოს.

expr relop expr

მართალია, თუ კავშირი უკავშირდება, სადაც relop არის ერთ>> <,> =, <=, =, = = და expr არის არითმეტიკული გამოხატვა, რომელიც შედგება მთელი მუდმივი (გამოხატული C სინტაქსში), ნორმალური ორობითი ოპერატორები [ , -, *, /, და, |], სიგრძის ოპერატორი და სპეციალური პაკეტის მონაცემები. პაკეტის შიგნით წვდომისათვის გამოიყენეთ შემდეგი სინტაქსი:

პროტო [ expr : ზომა ]

პროტო არის ერთ-ერთი ეთერი, fddi, tr, ppp, slip, link, ip, arp, rarp, tcp, udp, icmp ან ip6 , და მიუთითებს პროტოკოლის ფენის ინდექსი ოპერაციისთვის. ( ether, fddi, tr, ppp, slip და ბმული ყველა ეხება ბმულის ფენას.) გაითვალისწინეთ, რომ TCP, udp და სხვა ზედაპირის პროტოკოლის ტიპები გამოიყენება მხოლოდ IPv4- ზე, არა IPv6- ით (ეს მომავალში დაფიქსირდება). აღნიშნული პროტოკოლის ფუძემდებულის მიერ ბიტიანი ოფსეტური მიღება იწურება . ზომა არის სურვილისამებრ და მიუთითებს ბაიტების რაოდენობა ინტერესის სფეროში; ეს შეიძლება იყოს ერთი, ორი, ან ოთხი, და უპირობოდ ერთი. სიგრძის ოპერატორი, რომელიც მითითებულია სიტყვით len- ის მიერ , აძლევს პაკეტის სიგრძე.

მაგალითად, ` ეტერი [0] და 1 = = 0 'იჭერს ყველა მულტიკასტრულ მოძრაობას. გამოხატვა ` ip [0] და 0xf! = 5 'იჭერს ყველა IP პაკეტს პარამეტრებით. გამოხატვა ` ip [6: 2] და 0x1fff = 0 'იჭერს მხოლოდ დაუმორჩილებელი datagrams და ფრაგმენტი ნულოვანი ფრაგმენტული datagrams. ეს შემოწმება მინიშნებით გამოიყენება TCP და UDP ინდექსით. მაგალითად, TCP [0] ყოველთვის გულისხმობს TCP- ის სათაურის პირველ ბაიტს და არ ნიშნავს, რომ ჩარევის პირველი ბაიტი არ ნიშნავს.

ზოგიერთი offsets და საველე ღირებულებების შეიძლება გამოიხატოს როგორც სახელები, ვიდრე რიცხვითი ღირებულებები. შემდეგი პროტოკოლის სათაურების ველი ხელმისაწვდომია: icmptype (ICMP ტიპის ველი), icmpcode (ICMP კოდის ველი) და tcpflags (TCP დროშების ველი).

შემდეგი ICMP ტიპის საველე ღირებულებები ხელმისაწვდომია: icmp-echoreply , icmp-unreach , icmp-sourcequench , icmp-redirect , icmp-echo , icmp-routeradvert , icmp-routersolic , icmp- -შემთხვევა , icmp-ireq , icmp-ireqreply , icmp-maskreq , icmp-maskreply .

TCP- ის დროშის ფლანგებზე ხელმისაწვდომია: tcp-fin , tcp-sync , tcp-rst , tcp-push , tcp-push , tcp-ack , tcp-urg .

პრიმიტივები შეიძლება კომბინირებული იყვნენ:

ფირმების და ოპერატორების ფრჩხილებული ჯგუფი (ფრჩხილები განსაკუთრებულია შელთან და უნდა გაიქცეს).

უარყოფა (` ! 'ან` არა ').

შენიშვნა (` && ' ან` და `).

ალტერნატივა (` || ან` ან ').

უარყოფა აქვს ყველაზე მაღალი უპირატესობა. ალტერნატივა და კონცენტრაცია თანაბარი პრეცენდენტისა და ასოცირებული მარცხნიდან მარჯვნივ. გაითვალისწინეთ, რომ თანხმობა და სიმბოლიკა, რომელიც არ არის საჭირო, ახლა საჭიროა თანხვედრაში.

თუ იდენტიფიკატორი მინიჭებულია სიტყვის გარეშე, უახლესი სიტყვით არის მიჩნეული. მაგალითად,

არა მასპინძელი vs და ace

არის მოკლე

არა მასპინძელი vs და მასპინძელი ace

რომელიც არ უნდა იყოს დაბნეული

არა (მასპინძელი vs ან ace)

გამოხატვის არგუმენტები შეიძლება გადაეცეს tcpdump როგორც ერთ არგუმენტს ან მრავალ არგუმენტს, რომელი უფრო მოსახერხებელია. ზოგადად, თუ გამოხატულება შელი მეტაჩარქტექტორს შეიცავს, უფრო მარტივია, რომ იგი ერთს, ციტირებულ არგუმენტს ჩააბარებს. მრავალი არგუმენტი ერთმანეთისაგან განსხვავდება სივრცეებთან ერთად.

მაგალითები

ბეჭდვის ყველა პაკეტის ბეჭდვა ან sundown :

tcpdump მასპინძელი sundown

ბეჭდვითი ტრანსპორტირება ჰელიოსებს შორის ან ცხელი ან ტუზი :

tcpdump მასპინძელი ჰელიოები და \ (ცხელი ან ace \)

ბეჭდვისა და მასპინძელი ჰოსტების გარდა ყველა IP პაკეტის დასაბეჭდად:

tcpdump ip მასპინძელი ace და არა helios

ბერკლის ადგილობრივ მასპინძლებსა და მასპინძლებს შორის ყველა ბეჭდვის ბეჭდვისთვის:

tcpdump net ucb-ether

დაბეჭდვის ყველა ftp ტრაფიკის მეშვეობით ინტერნეტის კვანძის snup : (გაითვალისწინეთ, რომ გამოხატვის ციტირებას ახდენს, რათა თავიდან იქნას აცილებული shell (mis-) ინტერპრეტაცია ფრჩხილებში):

tcpdump 'კარიბჭე snup და (port ftp ან ftp- მონაცემები)'

ტრანსპორტის ბეჭდვისთვის, რომელიც არ არის დაფუძნებული არც ადგილობრივ მასპინძლებზე და არ არის განკუთვნილი (თუ სხვა ქსელის შესასვლელად, ეს პერსონალი არასდროს არ უნდა გააკეთოთ ადგილობრივ ქსელში).

tcpdump ip და არა ქსელის ადგილობრივი ქსელი

თითოეული TCP საუბრის დაწყებისა და დასრულების პაკეტების (SYN და FIN პაკეტების) დასაბეჭდად, რომელიც მოიცავს ადგილობრივ მასპინძელს.

tcpdump 'tcp [tcpflags] & (tcp-syn | tcp-fin) = = 0 და არა src და dst net localnet '

IP პაკეტების დასაწერად 576 ბაიტებზე მეტი გაგზავნილია:

tcpdump 'gateway snup და ip [2: 2]> 576'

ბეჭდური IP სამაუწყებლო ან multicast პაკეტების დასაბეჭდად, რომლებიც ეთერით ეთერში ან მულტიკასტის საშუალებით არ გაიგზავნა:

tcpdump 'ether [0] & 1 = 0 და ip [16]> = 224'

ყველა ICMP პაკეტის დასაბეჭდად, რომლებიც არ არის მოთხოვნილი პასუხები / პასუხები (ანუ არა პინგ პაკეტი):

tcpdump 'icmp [icmptype]! = icmp-echo და icmp [icmptype]! = icmp-echoreply'

გამავალი ფორმატი

Tcpdump- ის გამომავალი პროტოკოლი დამოკიდებულია. ქვემოთ ჩამოთვლილია ფორმატების უმრავლესობის მოკლე აღწერა და მაგალითები.

ლინკები დონე ჰედერისა

თუ '-e' ვარიანტია მოცემული, ბმული დონის ჰედერი იბეჭდება. ეთერნეტებზე იბეჭდება წყარო და დანიშნულების მისამართები, პროტოკოლი და პაკეტის სიგრძე.

FDDI ქსელების შესახებ, '-e' ვარიანტი იწვევს tcpdump- ს დასაფინანსებლად "ჩარჩო კონტროლის" სფეროს, წყაროს და დანიშნულების მისამართებს და პაკეტის სიგრძე. ("ჩარჩო კონტროლის" ველი მართავს დანარჩენი პაკეტის ინტერპრეტაციას, ჩვეულებრივი პაკეტები (როგორიცაა IP ტეგთაგრამების შემცველი) არის `ასინკ" პაკეტები, პრიორიტეტული მნიშვნელობა 0-დან 7-მდე, მაგალითად, ` ასინკ -4` პაკეტები შეიძლება შეიცავდეს 802.2 ლოგიკური კავშირის საკონტროლო პაკეტის (LLC) პაკეტს, რომელიც დაიბეჭდება, თუ ეს არ არის ISO datagram ან ე.წ. SNAP პაკეტი.

ტოქს ბეჭდის ქსელებში, '-e' ვარიანტი იძლევა tcpdump- ს წვდომის კონტროლისა და `ჩარჩო კონტროლის ~ სფეროების, წყაროებისა და დანიშნულების მისამართების, და პაკეტის სიგრძის დასაბეჭდად. რაც შეეხება FDDI- ს ქსელებს, პაკეტები იკვებება LLC პაკეტში. მიუხედავად იმისა, არის თუ არა '-e' ვარიანტი მითითებული, არ არის წყარო მარშრუტიზაციის ინფორმაცია დაბეჭდილი წყაროების მიერ გადაცემული პაკეტებისთვის.

(NB: შემდეგი აღწერა იზიარებს RFC-1144- ში აღწერილ SLIP შეკუმშვის ალგორითმს.)

სტრიპ-ის კავშირების შესახებ მითითებულია ინდიკატორის მითითება (`I '', რომელიც შემოდის,` O '), პაკეტის ტიპი და შეკუმშვის ინფორმაცია. პაკეტის ტიპი დაბეჭდილია. სამი ტიპი არის ip , utcp და ctcp . დამატებითი ბმული ინფორმაცია დაბეჭდილია ip პაკეტებისთვის. TCP პაკეტებისთვის, კავშირის იდენტიფიკატორი იბეჭდება ტიპის მიხედვით. თუ პაკეტი შეკუმშულია, მისი კოდირებული ჰედერი იბეჭდება. განსაკუთრებულ შემთხვევებში იბეჭდება * S + n და * SA + n , სადაც n არის თანხა, რომლითაც შეიცვალა თანმიმდევრობა (ან თანმიმდევრობა ნომერი და ack). თუ ეს არ არის განსაკუთრებული შემთხვევა, ნაბეჭდი ან მეტი ცვლილებები იბეჭდება. ცვლილება მითითებულია U (გადაუდებელი მაჩვენებელი), W (ფანჯარა), A (ack), S (თანმიმდევრობა ნომერი) და I (პაკეტის ID), რომელსაც მოჰყვება დელტა (+ n ან -n) ან ახალი მნიშვნელობა (= n). დაბოლოს, პაკეტის მონაცემების რაოდენობა და შეკუმშული სათაურის სიგრძე იბეჭდება.

მაგალითად, შემდეგი ხაზი გვიჩვენებს გამავალი კომპრესირებული TCP პაკეტი, რომელზეც დაფარული კავშირის იდენტიფიკატორი; ack შეიცვალა 6, თანმიმდევრობა ნომერი 49 და პაკეტი ID 6 მიერ; არსებობს 3 ბაიტი მონაცემები და 6 ბაიტი შეკუმშული სათაურის:

O ctcp * A + 6 S + 49 I + 6 3 (6)

ARP / RARP პაკეტები

Arp / rarp output გვიჩვენებს ტიპის მოთხოვნა და მისი არგუმენტები. ფორმატი განკუთვნილია თვითმმართველობის განმარტებით. აქ არის მოკლე ნიმუში, რომელიც გადაღებულია მას შემდეგ, რაც "rlogin" - ის მასპინძელი rtsg- დან მასპინძელი csam :

arp- ს აქვს csam ვუთხრა rtsg arp პასუხი csam- ზე CSAM

პირველი ხაზი ამბობს, რომ rtsg გაგზავნილი arp პაკეტი ითხოვს Ethernet მისამართი ინტერნეტ მასპინძელი csam. Csam პასუხობს მისი ეთერნეტის მისამართით (ამ მაგალითში, ეთერნეტის მისამართები ქვესადგურებშია და ინტერნეტ მისამართებზეა).

ეს გამოიყურება ნაკლებად გადაჭარბებული თუ ჩვენ გავაკეთეთ tcpdump -n :

arp- ს აქვს 128.3.254.6-ით 128.3.254.68 პასუხი 128.3.254.6-ზე 02: 07: 01: 00: 01: 01: c4

თუ ჩვენ გავაკეთეთ tcpdump -e , ის ფაქტი, რომ პირველი პაკეტი ეთერშია, მეორე კი წერტილი-

RTSG Broadcast 0806 64: arp- ს აქვს csam ვუთხრა rtsg CSTS RTSG 0806 64: arp პასუხი csam- ზე CSAM- ზე

პირველი პაკეტისთვის ეს ეთერით არის მისამართი RTSG, დანიშნულების ადგილია ეთერნეტის სამაუწყებლო მისამართი, ტიპის საველე შეიცავს hex 0806 (ტიპის ETHER_ARP) და საერთო სიგრძე იყო 64 ბაიტი.

TCP პაკეტები

(NB: ქვემოთ მოყვანილი აღწერა იზიარებს TCP პროტოკოლს, რომელიც აღწერილია RFC-793- ში, თუ არ იცნობს პროტოკოლს, არც ეს აღწერილობა და არც tcpdump არ იქნება გამოყენებული.)

TCP პროტოკოლის ზოგადი ფორმატია:

src> dst: flags data-seqno ack window სასწრაფო პარამეტრები

Src და dst წყარო და დანიშნულების IP მისამართები და პორტები. დროშები არიან S (SYN), F (FIN), P (PUSH) ან R (RST) ან ერთი ". (არ flags). Data-seqno აღწერს ამ პაკეტის მონაცემებით გათვალისწინებულ თანმიმდევრობას (იხ. ქვემოთ). Ack არის მომდევნო მონაცემების თანმიმდევრობა ამ მიმართულებით სხვა მიმართულებით მოსალოდნელი. ფანჯარა არის ამ ბუფერში სხვა ბუფერული სივრცის ბაიტების რაოდენობა. Urg მიუთითებს, რომ არსებობს "გადაუდებელი" მონაცემები პაკეტში. პარამეტრები არის TCP პარამეტრების თანდართული კუთხე ფრჩხილებში (მაგალითად, ).

Src, dst და დროშები ყოველთვის იმყოფებიან. სხვა სფეროები დამოკიდებულია პაკეტის tcp პროტოკოლის სათაურის შინაარსზე და მხოლოდ გამოსაქვეყნებლად გამოდის.

აქ არის rlogin- ის გახსნის ნაწილი მასპინძელი rtsg- ს მასპინძელი csam- ზე .

rtsg.1023> csam.login: S 768512: 768512 (0) win 4096 csam.login> rtsg.1023: S 947648: 947648 (0) ack 768513 win 4096 rtsg.1023> csam. შესვლა: . ack 1 win 4096 rtsg.1023> csam.login: P 1: 2 (1) ack 1 win 4096 csam.login> rtsg.1023:. ack 2 win 4096 rtsg.1023> csam.login: P 2:21 (19) ack 1 win 4096 csam.login> rtsg.1023: P 1: 2 (1) ack 21 win 4077 csam.login> rtsg.1023: P 2: 3 (1) ack 21 win 4077 სასწრაფო 1 csam.login> rtsg.1023: P 3: 4 (1) ack 21 win 4077 სასწრაფოდ 1

პირველი ხაზი ამბობს, რომ TCP პორტს 1023 rtsg- მა პაკეტი გაუგზავნა csam- ზე. S მიუთითებს იმაზე, რომ SYN დროშა იყო მითითებული. პაკეტის თანმიმდევრობის რაოდენობა იყო 768512 და მასში არ იყო მონაცემები. (Notation არის `პირველი: ბოლო (nbytes) 'რაც ნიშნავს, რომ პირველი რიგის თანმიმდევრობით, მაგრამ არა მათ შორის ბოლო, რაც მომხმარებლის მონაცემების ბაიტებშია.) არ იყო piggy-backed ack, ხელმისაწვდომი მიღება window იყო 4096 bytes და იყო მაქსიმალური სეგმენტის ზომის ვარიანტი, რომელიც ითხოვდა 1024 ბაიტი.

Csam პასუხობს ანალოგიური პაკეტით, გარდა იმ შემთხვევისა, როდესაც იგი შეიცავს rggs SYN- ს პიგმენტურ მხარდაჭერას. Rtsg შემდეგ acks csam- ს SYN. ``. ნიშნავს, რომ არ იყო დროშები. პაკეტში არ არის მონაცემები, ასე რომ არ არის მონაცემები თანმიმდევრობა. გაითვალისწინეთ, რომ ack თანმიმდევრობა რიცხვი არის პატარა რიცხვი (1). პირველად tcpdump ხედავს tcp `საუბარს ', იგი იკავებს თანმიმდევრობას რიგითი პაკეტიდან. საუბრის შემდგომი პაკეტების შესახებ, მიმდინარე პაკეტის თანმიმდევრულობის რიცხვსა და ამ თავდაპირველ თანმიმდევრობას შორის განსხვავება იბეჭდება. ეს იმას ნიშნავს, რომ პირველი რიგის შემდეგ ნომრის გაანგარიშება შესაძლებელია როგორც საუბრის მონაცემთა ნაკადში შედარებით ჩამონტაჟებული პოზიციებით (პირველი მონაცემებით, თითოეული მიმართულებით, `1 '). `-S 'ამ ფუნქციის გადაფარვას გამოიწვევს, რის შედეგადაც ორიგინალური თანმიმდევრობის ნომრები გამოდის.

მე -6 ხაზიდან, rtsg აგზავნის csam 19 ბაიტი მონაცემები (bytes 2 გზით 20 rtsg -> csam მხარეს საუბარი). PUSH დროშა დაყენებულია პაკეტში. მე -7 ხაზი, csam აცხადებს, რომ მიღებული მონაცემები rtsg მდე, მაგრამ არა მათ შორის byte 21. ამ მონაცემების უმრავლესობა სავარაუდოდ ზის Socket ბუფერული წლიდან csam მიიღოს ფანჯარა მიღებული 19 ბაიტი პატარა. Csam ასევე აგზავნის ერთი ბაიტი მონაცემებს rtsg ამ პაკეტში. მე -8 და მე -9 ხაზებზე, csam აგზავნის ორი ბაიტი გადაუდებელი, მივიღებთ მონაცემებს rtsg.

იმ შემთხვევაში, თუ Snapshot იყო პატარა საკმარისი, რომ tcpdump არ ხელში სრული TCP header, ის განმარტავს იმდენად header როგორც მას შეუძლია და შემდეგ იუწყება `` | tcp ] '' მიუთითოს დანარჩენი ვერ მოხერხდა ინტერპრეტაცია. თუ სათაურს შეიცავს ყალბი ვარიანტი (ერთი სიგრძე, რომელიც ან ძალიან მცირეა ან თავდაპირველი დასასრული), tcpdump იუწყება, რომ ეს " ცუდი ვარიანტია" და არ ახდენს რაიმე შემდგომ ვარიანტს (რადგან შეუძლებელია ვთქვა სადაც ისინი დაიწყება). თუ სათაურის სიგრძე მიუთითებს პარამეტრები, მაგრამ IP datagram სიგრძე არ არის საკმარისი საკმარისი ვარიანტები იმისათვის, რომ რეალურად იყოს, tcpdump იუწყება, როგორც " ცუდი hdr სიგრძე ".

კონფიგურაცია TCP პაკეტები კონკრეტული დროშის კომბინაციები (SYN-ACK, URG-ACK და ა.შ.)

TCP- ის სათაურის კონტროლის ბიტების სექციაში 8 ბიტია:

CWR | ECE | URG | ACK | PSH | RST | SYN | FIN

მოდით ვივარაუდოთ, რომ ჩვენ გვინდა, რომ იხილოთ პაკეტები, რომლებიც გამოიყენება TCP კავშირის ჩამოყალიბებაში. შეგახსენებთ, რომ TCP იყენებს 3-გზა ხელის გადაბმულ პროტოკოლს, როდესაც ის ახორციელებს ახალ კავშირს; კავშირის თანმიმდევრობა TCP კონტროლის ბიტების მიმართ

1) Caller აგზავნის SYN

2) მიმღები პასუხობს SYN, ACK- ს

3) Caller აგზავნის ACK

ახლა ჩვენ გვაინტერესებს პაკეტების აღება, რომელიც მხოლოდ SYN- ს ნაკრებია (ნაბიჯი 1). გაითვალისწინეთ, რომ ჩვენ არ გვინდა პაკეტები ნაბიჯი 2 (SYN-ACK), მხოლოდ ჩვეულებრივი საწყისი SYN. ჩვენ გვჭირდება სწორი ფილტრი გამოხატვა tcpdump- ისთვის.

გავიხსენოთ TCP- ის ჰედერის სტრუქტურა პარამეტრები:

0 15 31 ----------------------------------------------- ------------------ | წყარო პორტი | დანიშნულების პორტი | -------------------------------------------------- --------------- | რიგითი ნომერი | -------------------------------------------------- --------------- | აღიარება ნომერი | -------------------------------------------------- --------------- | HL | RSVd | C | E | U | A | P | R | S | F | ფანჯრის ზომა | -------------------------------------------------- --------------- | TCP საკონტროლო | გადაუდებელი მაჩვენებელი | -------------------------------------------------- ---------------

TCP- ს სათაურში ჩვეულებრივ ფლობს 20 octets მონაცემები, თუ ვარიანტი არ არის. გრაფის პირველი ხაზი შეიცავს octets 0 - 3, მეორე ხაზი გვიჩვენებს octets 4 - 7 და ა.შ.

0-ით დათვლა, შესაბამისი TCP კონტროლის ბიტი შეიცავს Oct.4-

0 | 7 | 15 | 23 | 31 ---------------- | --------------- | --------------- | ---------------- | HL | RSVd | C | E | U | A | P | R | S | F | ფანჯრის ზომა | ---------------- | --------------- | --------------- | - --------------- | | მე -13 octet | | |

მოდით უფრო ახლოს შევხედოთ ოქტეთს. 13:

| | | --------------- | | C | E | U | A | P | R | S | F | | --------------- | | 7 5 3 0 |

ეს არის TCP- ის კონტროლის ბიტი დაინტერესებული. ჩვენ გვაქვს ამ octet in bits 0-დან 7-მდე მარცხნივ მარჯვნივ, ასე რომ PSH ბიტი ცოტაა 3-ით, ხოლო URG- ის რიცხვი 5-ისაა.

შეგახსენებთ, რომ ჩვენ გვინდა, რომ პაკეტების აღება მხოლოდ SYN კომპლექტით. მოდით ვნახოთ, თუ რა ხდება Oct.10- ს, თუ TCP datagram ჩამოდის SYN- ს ნაკვეთთან თავის სათაურში:

| C | E | U | A | P | R | S | F | | --------------- | | 0 0 0 0 0 0 0 1 0 | | --------------- | | 7 6 5 4 3 2 1 0 |

ვეძებთ კონტროლის ბიტების სექციას, რომ ჩვენ ვხედავთ, რომ მხოლოდ რამდენიმე ნომერი (SYN) არის მითითებული.

ვთქვათ, რომ ოქტეთის ნომერი 13 არის 8-ბიტიანი ხელმოწერილი მთელი რიცხვი ქსელის ბაიტიდან, ამ ოქტტრის ორობითი ღირებულებაა

00000010

და მისი ათობითი წარმომადგენლობა

7 6 5 4 3 2 1 0 0 * 2 + 0 * 2 + 0 * 2 + 0 * 2 + 0 * 2 + 0 * 2 + 1 * 2 + 0 * 2 = 2

ჩვენ თითქმის გავაკეთეთ, რადგან ახლა ვიცით, რომ თუ მხოლოდ SYN არის მითითებული, TCP- ის მე -13 არტის ღირებულება, როდესაც ინტერპრეტირებულ იქნა როგორც 8-bit unsigned integer ქსელის byte წესრიგში, უნდა იყოს ზუსტად 2.

ეს ურთიერთობა შეიძლება გამოიხატოს

tcp [13] == 2

ჩვენ შეგვიძლია გამოვიყენოთ ეს გამოთქმა როგორც ფილტრი tcpdump- ისთვის, რათა იხილოთ პაკეტები, რომლებსაც მხოლოდ SYN კომპლექტი აქვთ:

tcpdump -i xl0 tcp [13] == 2

გამოხატვა ამბობს "TCP datagram- ს მე -13 octet აქვს ათობითი მნიშვნელობა 2", რაც ზუსტად გვსურს.

ახლა, ვივარაუდოთ, რომ ჩვენ უნდა გვქონდეს SYN პაკეტების გადაღება, მაგრამ ჩვენ არ გვაინტერესებს, თუ ACK ან სხვა TCP- ის კონტროლი ერთდროულად არის მითითებული. მოდით ვნახოთ რა მოხდება octet 13 როდესაც TCP datagram SYN-ACK კომპლექტი ჩამოდის:

| C | E | U | A | P | R | S | F | | --------------- | | 0 0 0 1 0 0 1 0 | | --------------- | | 7 6 5 4 3 2 1 0 |

ახლა ბიტი 1 და 4 არის მითითებული მე -13 octet. ოქტეთის 13-ის ორობითი ღირებულებაა


00010010

რომელიც ითარგმნება ათობითი

7 6 5 4 3 2 1 0 0 * 2 + 0 * 2 + 0 * 2 + 1 * 2 + 0 * 2 + 0 * 2 + 1 * 2 + 0 * 2 = 18

ახლა ჩვენ არ შეგვიძლია მხოლოდ tcp [13] == 18 "გამოიყენოთ tcpdump ფილტრის გამოხატულებაში, რადგან ის მხოლოდ იმ პაკეტებს შეარჩევს, რომლებიც SYN-ACK- ს შექმნიან, მაგრამ არა მხოლოდ SYN- ს ერთად. გახსოვდეთ, რომ ჩვენ არ მაინტერესებს, თუ ACK ან ნებისმიერი სხვა კონტროლის ნაკრები არის მითითებული, სანამ SYN არის მითითებული.

ჩვენი მიზნის მისაღწევად, საჭიროა ლოგიკურად და ოქტეთის 13-ის ორობითი ღირებულება, სხვა ღირებულებით, რათა შევინარჩუნოთ SYN ბიტი. ჩვენ ვიცით, რომ ჩვენ გვინდა, რომ SYN- ს ნებისმიერ შემთხვევაში შევქმნათ, ამიტომ ლოგიკურად და ღირებულებას გავაკეთებთ მე -13 octet- ში,

00010010 SYN-ACK 00000010 SYN და 00000010 (ჩვენ გვინდა SYN) და 00000010 (გვინდა SYN) -------- -------- = 00000010 = 00000010

ჩვენ ვხედავთ, რომ ეს და ოპერაცია ატარებს იგივე შედეგს, მიუხედავად იმისა, თუ არა ACK ან სხვა TCP კონტროლის ბიტი არის მითითებული. ამასთან, როგორც ოპერაციის შედეგი, ასევე ამ ოპერაციის შედეგია 2 (ბინარული 00000010), ამიტომ ჩვენ ვიცით, რომ SYN- თან პაკეტებისთვის უნდა შეიცავდეს შემდეგ ურთიერთობებს:

((ოქტეთის ღირებულება 13) და (2)) == (2)

ეს გვიჩვენებს tcpdump ფილტრის გამოხატვას

tcpdump -i xl0 'tcp [13] & 2 == 2'

გაითვალისწინეთ, რომ თქვენ უნდა გამოვიყენოთ ერთი შეთავაზებები ან უკუჩვენება გამოხატვისთვის, რათა დამალვა და ("&") სპეციალური ხასიათი შელიდან.

UDP პაკეტები

UDP ფორმატში ილუსტრირებულია ამ პაკეტის მიერ:

actinide.who> broadcast.who: udp 84

ეს აღნიშნავს, რომ პორტი, რომელიც მასპინძელ აქტინიდში გადაეგზავნა udp datagram- ს, რომელმაც მასპინძელი სამაუწყებლო , ინტერნეტ სამაუწყებლო მისამართი გაუგზავნა. პაკეტი შეიცავს მომხმარებლის მონაცემების 84 ბაიტს.

ზოგიერთი UDP მომსახურება აღიარებულია (წყაროს ან დანიშნულების პორტის ნომრიდან) და მაღალ დონეზე პროტოკოლის ინფორმაცია. კერძოდ, Domain Name Service მოითხოვს (RFC-1034/1035) და მზის RPC მოუწოდებს (RFC-1050) NFS.

UDP სახელი სერვერი მოითხოვს

(NB: RFC-1035- ში აღწერილი დომენური მომსახურების პროტოკოლის გაცნობა შემდეგია: თუ არ იცნობს პროტოკოლს, გამოჩნდება შემდეგი აღწერა ბერძნულ ენაზე.

სახელი სერვერის მოთხოვნები ფორმატშია

src> dst: id op? დროშები qtype qclass name (len) h2opolo.1538> helios.domain: 3+ ა? ucbvax.berkeley.edu. (37)

მასპინძელი h2opolo სთხოვა დომენის სერვერზე helios on მისამართი ჩანაწერი (qtype = ა) ასოცირდება სახელი ucbvax.berkeley.edu. შეკითხვის id იყო `3 '. `+" მიუთითებს, რომ საჭიროა რეკონსტრუქცია სასურველი დროშა. შეკითხვის სიგრძე 37 ბაიტი იყო, მათ შორის არ არის UDP და IP პროტოკოლის სათაურები. შეკითხვის ოპერაცია იყო ნორმალური ერთი, შეკითხვის , ამიტომ op ველი იყო გამოტოვებული. თუ Op იყო არაფერი, ეს იქნებოდა დაბეჭდილი "3" და `+". ანალოგიურად, qclass იყო ნორმალური, C_IN და გამოტოვებული. ნებისმიერი სხვა qclass იქნებოდა დაბეჭდილი მაშინვე `A '.

რამდენიმე ანომალიის შემოწმება და შეიძლება გამოიწვიოს კვადრატულ ფრჩხილებში თანდართული დამატებითი ფურცლები: თუ შეკითხვა შეიცავს პასუხს, ავტორიტეტული ჩანაწერები ან დამატებითი ჩანაწერი სექცია, აუქციონი , ნსუნტი ან არქუნდი იბეჭდება როგორც `[a]", [n] ] 'ან `[au]" სადაც n არის შესაბამისი რაოდენობა. თუ რომელიმე რეაგირების ბიტი არის კომპლექტი (AA, RA ან rcode) ან რომელიმე "უნდა იყოს ნულოვანი" ბიტი, რომლებიც ორ და სამსართულიან ბითლზებშია დაწერილი, ბეჭდურია, სადაც x არის hex სათავეში ორი და სამი.

UDP სახელი სერვერი რეაგირება

სახელი სერვერის რეაგირების ფორმატშია

src> dst: id op rcode flags a / n / au ტიპის კლასის მონაცემები (len) helios.domain> h2opolo.1538: 3 3/3/7 A 128.32.137.3 (273) helios.domain> h2opolo.1537: 2 NXDomain * 0/1/0 (97)

პირველ მაგალითში, ჰელიოსი პასუხობს შეკითხვას ID 3-ისგან h2opolo- ს 3 პასუხი ჩანაწერებით, 3 სახელი სერვერის ჩანაწერით და 7 დამატებითი ჩანაწერით. პირველი პასუხი ჩანაწერია A (მისამართი) და მისი მონაცემები ინტერნეტის მისამართია 128.32.137.3. პასუხების საერთო ზომა იყო 273 bytes, გარდა UDP და IP headers. Op (შეკითხვის) და რეაგირების კოდი (NoError) იყო გამოტოვებული, როგორც ეს იყო ჩანაწერის კლასი (C).

მეორე მაგალითში, ჰელიოსი პასუხობს შეკითხვის პასუხებს 2-ით არ პასუხობს არარსებულ დომენზე (NXDomain), პასუხი არ არის, ერთი სახელი სერვერი და არ გააჩნია ავტორიტეტული ჩანაწერები. `*" მიუთითებს, რომ ავტორიტეტული პასუხი ცოტა იყო მითითებული. მას შემდეგ, რაც არ იყო პასუხი, არ იყო ტიპი, კლასი ან მონაცემები დაიბეჭდა.

სხვა დროშა სიმბოლოები, რომლებიც შეიძლება გამოჩნდნენ, `- '(რეკურსია ხელმისაწვდომი, RA, არ არის დადგენილი) და` | (truncated გაგზავნა, TC, კომპლექტი). თუ `კითხვის 'მონაკვეთი არ შეიცავს ზუსტად ერთ შესასვლელს,` ' 'იბეჭდება.

გაითვალისწინეთ, რომ სახელი სერვერის მოთხოვნები და რეაგირება უფრო დიდია და 68 ბაიტის ნაგულისხმევი snaplen არ შეიძლება დაიჭიროს საკმარისი პაკეტის დასაბეჭდად. გამოიყენეთ -ის დროშა Snaplen- ის გაზრდის შემთხვევაში, საჭიროა სერიოზულად გამოიძიოს სახელი სერვერის ტრაფიკი. ` 128- ის ჩემთვის კარგად მუშაობს.

SMB / CIFS დეკოდირება

tcpdump ახლა მოიცავს საკმაოდ ფართო SMB / CIFS / NBT დეკოდირების მონაცემებს UDP / 137, UDP / 138 და TCP / 139. IPX- ის და NetBEUI SMB- ის ზოგიერთი პრიმიტიული დეკოდირება ასევე გაკეთებულია.

ჩვეულებრივ, მინიმალური decode კეთდება, უფრო დეტალურად დეკოდირებული კეთდება, თუ -v გამოიყენება. გააფრთხილეთ, რომ ერთ-ერთმა SMB პაკეტს შეიძლება ჰქონდეს გვერდი ან მეტი, ასე რომ მხოლოდ ისარგებლეთ - თუ ნამდვილად გსურთ გორის დეტალები.

თუ თქვენ ხართ დეკოდირების SMB სხდომები შემცველი უნიკოდის სიმები, მაშინ თქვენ შეგიძლიათ დააყენოთ გარემოს ცვლადი USE_UNICODE to 1. პაჩში ავტომატურად აღმოაჩინოს unicode წყაროები იქნება მისასალმებელი.

SMB პაკეტის ფორმატის შესახებ ინფორმაციისთვის და ყველა te სფეროს ნიშნავს www.cifs.org ან pub / samba / specs / დირექტორია თქვენი საყვარელი samba.org სარკეში. SMB- ის წილი ენდრიუ Tridgell (tridge@samba.org) იყო დაწერილი.

NFS ითხოვს და პასუხებს

Sun NFS (ქსელის ფაილური სისტემა) მოითხოვს და პასუხებს იბეჭდება:

src.xid> dst.nfs: len op args src.nfs> dst.xid: პასუხი stat len ​​op შედეგები სუში 6709> wrl.nfs: 112 readlink fh 21,24 / 10.73165 wrl.nfs> sushi.6709: პასუხის ok 40 readlink "../var" sushi201B> wrl.nfs: 144 lookup fh 9,74 / 4096.6878 "xcolors" wrl.nfs> sushi201B: პასუხი ok 128 lookup fh 9,74 / 4134.3150

პირველ რიგში, მასპინძელი სუშის აგზავნის გარიგებას ID 6709- ით wrl- ით (გაითვალისწინეთ, რომ src- ის მასპინძელი ნომერი არის გარიგების id, არა წყარო პორტი). მოთხოვნა იყო 112 ბაიტი, გარდა UDP და IP სათაურები. ოპერაცია იყო წაკითხვის ლინკი (წაიკითხა სიმბოლური ბმული) ფაილის სახელურზე ( fh ) 21,24 / 10.731657119. (თუ გაუმართლა, როგორც ამ შემთხვევაში, ფაილის სახელური შეიძლება განიმარტოს, როგორც ძირითადი, უმნიშვნელო მოწყობილობის ნომერი წყვილი, რასაც მოჰყვება ინტოდული ნომერი და თაობის ნომერი.) Wrl პასუხობს `OK 'ბმულს შინაარსით.

მესამე ხაზი, სუშის სთხოვს wrl გამოიყურებოდეს სახელი ` xcolors 'დირექტორიაში 9,74 / 4096.6878. გაითვალისწინეთ, რომ მონაცემები დაბეჭდილია ოპერაციის ტიპზე. ფორმატი განკუთვნილია თვითმმართველობის განმარტებითი, თუ წაიკითხა ერთად NFS პროტოკოლი სპეც.

იმ შემთხვევაში, თუ -v (verbose) დროშა მოცემულია, დამატებითი ინფორმაცია იბეჭდება. მაგალითად:

sushi.1372a> wrl.nfs: 148 read fh 21,11 / 12.195 8192 bytes @ 24576 wrl.nfs> sushi.1372a: პასუხი ok 1472 read REG 100664 ids 417/0 sz 29388

(-V ასევე იბეჭდება TTL, ID, სიგრძე და ფრაგმენტაციის სფეროები, რომლებიც ამ მაგალითში გამოტოვებულია). პირველი სტრიქონი სუსტ სთხოვს, რომ 8192 ბაიტი წაიკითხოს ფაილი 21,11 / 12.195, ბიტიანი ოფსეტურით 24576. Wrl პასუხობს `OK '; მეორე ხაზისთვის ნაჩვენები პაკეტი არის პირველი ფრაგმენტი პასუხი და, შესაბამისად, მხოლოდ 1472 ბაიტი გრძელია (მეორე ბაიტი შემდგომ ფრაგმენტებს მოჰყვება, მაგრამ ეს ფრაგმენტები NFS- ს ან თუნდაც UDP- ს სათაურებით და ა.შ. არ შეიძლება დაბეჭდილი, დამოკიდებულია ფილტრის გამოხატვის მიხედვით). იმის გამო, რომ -v დროშა მიენიჭა, ზოგიერთი ფაილის ატრიბუტი (რომლებიც დაბრუნებულია ფაილის მონაცემებთან ერთად) იბეჭდება: ფაილის ტიპი (`რეგ '', რეგულარული ფაილისთვის), ფაილის რეჟიმი (ოქტალური), uid და gid, და ფაილის ზომა.

თუ ვ-ს დროშა ერთხელ დაემატება, უფრო დეტალურად იბეჭდება.

გაითვალისწინეთ, რომ NFS მოთხოვნები ძალიან დიდია და დეტალი არ გაიზრდება დეტალურად, თუ snaplen არ გაიზრდება. სცადეთ NFS ტრაფიკის სანახავად ` -192 '.

NFS საპასუხო პაკეტი არ აშკარად იწონებს RPC ოპერაციას. ამის ნაცვლად, tcpdump ინახავს "ბოლო დროს" მოთხოვნებს და შეესაბამება მათ პასუხებს გარიგების ID- ის გამოყენებით. თუ პასუხი არ შეესაბამება შესაბამის თხოვნას, შეიძლება არ იყოს პარაზიტული.

AFS ითხოვს და პასუხობს

Transarc AFS (ენდრიუ ფაილური სისტემა) მოითხოვს და პასუხებს იბეჭდება:

src.sport> dst.dport: rx პაკეტი-ტიპის src.sport> dst.dport: rx პაკეტი-ტიპის მომსახურების ზარის ზარის სახელწოდება args src.sport> dst.dport: rx პაკეტი-ტიპის სერვისის პასუხი დარეკეთ-სახელი args ელვის . 7001> pike.afsfs: rx data fs დარეკეთ rename ძველი fid 536876964/1/1 ".newsrc.new" ახალი fid 536876964/1/1 ".newsrc" pike.afsfs> elvis.7001: rx მონაცემების fs პასუხი გადარქმევა

პირველ რიგში, მასპინძელი ელვის აგზავნის RX პაკეტი pike. ეს იყო RX მონაცემების პაკეტი fs (ფაილვერის) სერვისისთვის, და არის RPC- ის ზარის დაწყება. RPC დარეკეთ იყო გადარქმევა, ძველი სარეგისტრაციო ფაილის ID 536876964/1/1 და `.newsrc.new" - ის ძველი ფაილის სახელი და 536876964/1/1- ის ახალი საქაღალდის ფაილი ID და ახალი ფაილის სახელი. newsrc '. მასპინძელი Pike პასუხობს ერთად RPC პასუხი გადარქმევა ზარი (რომელიც წარმატებული იყო, რადგან ეს იყო მონაცემთა პაკეტი და არა შეწყვეტა პაკეტი).

ზოგადად, ყველა AFS- ს RPC- ები გაშიფრულია მინიმუმ RPC- ს მიერ. ყველაზე AFS RPC- ების უმრავლესობას აქვს სულ ცოტა არგუმენტირებული დეკოდირებული (ზოგადად მხოლოდ "საინტერესო" არგუმენტები, ზოგიერთი განსაზღვრება საინტერესო).

ფორმატი მიზნად ისახავს თვითმმართველობის აღწერისთვის, მაგრამ ეს ალბათ არ იქნება სასარგებლო ადამიანებისთვის, რომლებიც არ იცნობენ AFS- სა და RX- ის მუშაობას.

თუ -v (verbose) დროშა ორჯერ გადაეცემა, აღიარებული პაკეტები და დამატებითი ჰედერის ინფორმაცია დაიბეჭდება, როგორიცაა RX ზარის ID, ნომრის ნომერი, თანმიმდევრული ნომერი, სერიული ნომერი და RX პაკეტის დროშები.

თუ V- ის დროშა ორჯერ არის მოცემული, დამატებითი ინფორმაცია იბეჭდება, როგორიცაა RX ზარის ID, სერიული ნომერი და RX პაკეტის დროშები. MTU- ის მოლაპარაკებების ინფორმაცია ასევე იბეჭდება RX Ack პაკეტებისგან.

იმ შემთხვევაში, თუ -ვ დროში სამჯერ არის მოცემული, უსაფრთხოების ინდექსსა და სერვისი იდენტულად იბეჭდება.

შეცდომა კოდები იბეჭდება abort packets, გარდა Ubik შპრიცების პაკეტები (იმის გამო, რომ abort პაკეტები გამოიყენება იმისთვის, რომ დიახ ხმა Ubik პროტოკოლისთვის).

გაითვალისწინეთ, რომ AFS- ს მოთხოვნა ძალიან დიდია და ბევრი არგუმენტი არ იქნება დაბეჭდილი, თუ არ გაიზრდება snaplen . სცადეთ გამოიყენოთ ` s- ის 256 'AFS ტრაფიკის სანახავად.

AFS პასუხი პაკეტები არ აშკარად იწონებს RPC ოპერაციას. ამის ნაცვლად, tcpdump ინახავს "ბოლო დროს" მოთხოვნების კვალს და პასუხობს მათ პასუხებს ზარის ნომრისა და მომსახურების ID- ის გამოყენებით. თუ პასუხი არ შეესაბამება შესაბამის თხოვნას, შეიძლება არ იყოს პარაზიტული.

KIP აპსტალკი (DDP- ში UDP)

UDP datagrams- ში ჩამონტაჟებული Appletalk DDP პაკეტები დეკონსტრუქციაა და DDP პაკეტების სახით (ანუ ყველა UDP ჰედერის ინფორმაცია უგულებელყოფილია). ფაილი /etc/atalk.names გამოიყენება აპლეტკის ქსელისა და კვანძის ნომრებს სახელების თარგმნისთვის. ამ ფაილის ხაზები აქვს ფორმას

ნომრის დასახელება 1.254 და 16.1 icsd-net 1.254.110 ace

პირველი ორი ხაზი აძლევს appletalk ქსელების დასახელებას. მესამე ხაზი აძლევს სპეციალურ მასპინძელს (მასპინძელი გამოირჩევა ნომერზე მე -3 ოქტთ, რომელიც უნდა იყოს ორი ოქტეტი და მასპინძელი ნომერი უნდა ჰქონდეს სამი ოქტეტი.) რიცხვი და სახელი უნდა იყოს გამოყოფილი თეთრი (ბლანკები ან ჩანართები). /etc/atalk.names ფაილი შეიძლება შეიცავდეს ცარიელი ხაზების ან კომენტარის ხაზებს (ხაზები დაწყებული `# ').

Appletalk მისამართები იბეჭდება ფორმით:

net.host.port 144.1.209.2> icsd-net.112.220 office.2> icsd-net.112.220 jssmag.149.235> icsd-net.2

(თუ /etc/atalk.names არ არსებობს ან არ შეიცავს ჩანაწერს ზოგიერთი აპლეპტკას მასპინძელი / ქსელის ნომრისთვის, მისამართები იბეჭდება ციფრული ფორმით). პირველი მაგალითია NBP (DDP პორტი 2) ქსელში 144.1 node 209 იგზავნება რასაც ისმენს პორტის 220 პორტის net ixd node 112-ზე. მეორე ხაზი იგივეა, გარდა წყაროებიდან ცნობილია ("ოფისში"). მესამე ხაზი პორტი 235-ის ქსელიდან იგზავნება N109- ის ქსელის NXP პორტზე (შენიშვნა, რომ სამაუწყებლო მისამართი (255) მითითებულია ქსელის სახელით, მასპინძელი ნომრით, ამიტომ ეს კარგი იდეაა დაიცვას კვანძის სახელები და წმინდა სახელები მ / შ.

NBP (სახელი სავალდებულო ოქმი) და ATP (Appletalk გარიგების პროტოკოლი) პაკეტებს აქვთ მათი შინაარსი ინტერპრეტაცია. სხვა პროტოკოლები მხოლოდ პროტოკოლის სახელის ნაცვლად (ან ნომერი, თუ არ არის რეგისტრირებული სახელი ოქმი) და პაკეტის ზომა.

NBP პაკეტები ფორმატირებულია შემდეგნაირად:

icsd-net.112.220> jssmag.2: nbp-lkup 190: "=: LaserWriter @ *" jssmag.209.2> icsd-net.112.220: nbp- პასუხი 190: "RM1140: ლაზერუტრიტრი @ *" 250 techpit.2> icsd -net.112.220: nbp-reply 190: "techpit: LaserWriter @ *" 186

პირველი ხაზი არის სახელი საძიებო თხოვნა ლაზერუტერისთვის, რომელიც გამოგზავნილია net host.ge- ზე 112-ზე და ეთერში ჯსსამაგზე. საძიებო სისტემებისთვის Nbp ID 190. მეორე ხაზი გვიჩვენებს პასუხი ამ მოთხოვნის პასუხს (გაითვალისწინეთ, რომ მას აქვს იგივე იდენტიფიკატორი) მასპინძელი jssmag.209- სგან, რომელმაც განაცხადა, რომ მას აქვს პორტი 250-ზე დარეგისტრირებული ლაზერული ნედლეული "RM1140" ხაზი კიდევ ერთი პასუხი იმავე მოთხოვნით, რომ მასპინძელი techpit აქვს Laserwriter "techpit" რეგისტრირებული პორტი 186.

ATP პაკეტის ფორმატირება აჩვენა შემდეგი მაგალითით:

jsmag.209.165> helios.132: atp-req 12266 <0-7> 0xae030001 helios.132> jsmag.209.165: atp-resp 12266: 0 (512) 0xae040000 helios.132> jssmag.209.165: atp-resp 12266: 1 (512) 0xae040000 helios.132> jsmag.209.165: atp-resp 12266: 2 (512) 0xae040000 helios.132> jsmag.209.165: atp-resp 12266: 3 (512) 0xae040000 helios.132> jssmag.209.165: atp- resp 12266: 4 (512) 0xae040000 helios.132> jsmag.209.165: atp-resp 12266: 5 (512) 0xae040000 helios.132> jssmag.209.165: atp-resp 12266: 6 (512) 0xae040000 helios.132> jssmag. 209.165: atp-resp * 12266: 7 (512) 0xae040000 jssmag.209.165> helios.132: atp-req 12266 <3,5> 0xae030001 helios.132> jssmag.209.165: atp-resp 12266: 3 (512) 0xae040000 helios .132> jssmag.209.165: atp-resp 12266: 5 (512) 0xae040000 jssmag.209.165> helios.132: atp-rel 12266 <0-7> 0xae030001 jssmag.209.133> helios.132: atp-req * 12267 <0 -7> 0xae030002

Jssmag.209 იწყებს გარიგების ნიშნულს 12266 მასპინძელი ჰელიოსებით 8 პაკეტის მოთხოვნით (`0-7> '). ხაზის ბოლოს დასასრულს hex ნომერი არის `userdata 'ველის ღირებულება თხოვნით.

Helios პასუხობს 8 512-byte პაკეტი. გარიგების იდენტიფიკაციის შემდეგ, "გარიგების" იდენტიფიკაციის ნომერი იძლევა გარიგებებში პაკეტის თანმიმდევრობების ნომერს და რიცხვში რიცხვი არის პაკეტის მონაცემების რაოდენობა, გარდა ზედა თავით. `* 'პაკეტი 7-ში მიუთითებს იმაზე,

Jssmag.209 შემდეგ მოითხოვს, რომ პაკეტები 3 და 5 რეტრანსმირებული იყოს. ჰელიოსს მიმართავს, შემდეგ კი jssmag.209 ავრცელებს გარიგებას. საბოლოოდ, jssmag.209 იწყებს მომდევნო თხოვნას. `*" თხოვნაზე მიუთითებს, რომ XO ("ზუსტად") არ იყო მითითებული.

IP ფრაგმენტაცია

ფრაგმენტული ინტერნეტ datagrams იბეჭდება, როგორც

(ფრაგმენტი : ზომა @ offset +) (ფრაგმენტი : ზომა @ offset )

(პირველი ფორმა მიუთითებს, რომ უფრო მეტი ფრაგმენტია, მეორე კი ეს უკანასკნელია.)

Id არის ფრაგმენტი id. ზომა არის ფრაგმენტის ზომა (ბაიტებში), გარდა IP header. ოფსეტური არის ეს ფრაგმენტის ოფსეტური (ბაიტებში) თავდაპირველი datagram.

ფრაგმენტი ინფორმაცია თითოეული ფრაგმენტისთვის გამოდის. პირველი ფრაგმენტი შეიცავს უმაღლესი დონის პროტოკოლის სათაურს და ფრაგმენტური ინფორმაცია დაიბეჭდება პროტოკოლის ინფორმაციის შემდეგ. ფრაგმენტები შემდეგ პირველი არ შეიცავს უმაღლესი დონის პროტოკოლის თავით და ფრაგმენტი ინფორმაცია დაბეჭდილი შემდეგ წყარო და დანიშნულების მისამართები. მაგალითად, აქ არის ftp- ის arizona.edu- დან lbl-rtsg.arpa- ზე CSNET კავშირი, რომელიც არ ჩანს, 576 byt datagrams

arizona.ftp-data> rtsg.1170:. 1024: 1332 (308) ack 1 win 4096 (frag 595a: 328 @ 0 +) arizona> rtsg: (frag 595a: 204 @ 328) rtsg.1170> arizona.ftp-data:. ack 1536 გაიმარჯვა 2560

აქ არის რამოდენიმე რამ აღვნიშნოთ: პირველ რიგში, მე -2 ხაზი არ მოიცავს პორტის ნომრებს. ეს იმიტომ ხდება, რომ TCP პროტოკოლი ინფორმაცია ყველაფერთან პირველ ფრაგმენტშია და ჩვენ არ ვიცით რა პორტი ან თანმიმდევრული ციფრები, როდესაც მოგვიანებით დავწერეთ ფრაგმენტები. მეორე, TCP- ს თანმიმდევრობა პირველ რიგში იბეჭდება, თითქოს იყო 308 ბაიტი მომხმარებლის მონაცემები, როდესაც სინამდვილეში 512 ბაიტი (308 პირველი ფრაგმენტი და 204 მეორე). თუ თქვენ ეძებთ ხვრელებს თანმიმდევრობით სივრცეში ან ცდილობს შეავსოთ პაკეტების პაკეტები, ეს შეიძლება სიცრუეა.

პაკეტის IP არ ფრაგმენტი დროშა აღინიშნება გადმოკიდული (DF) .

Timestamps

ჩვეულებრივ, ყველა გამომავალი ხაზი წინ უსწრებს დროის ნიშნულს. დროის ამოწურვის დროა არსებული საათის დრო

hh: mm: ss.frac

და როგორც ზუსტი, როგორც ბირთვის საათი. ქრონომეტრაჟი ასახავს იმას, რომ კერნელი პირველად იხილა პაკეტი. არ არის მცდელობა ანგარიშის დროში, როდესაც ეთერი ინტერფეისი ამოიღო პაკეტი მავთულიდან და როდესაც კერნელი ემსახურებოდა "ახალ პაკეტს".

იხილეთ ასევე

მოძრაობა (1C), nit (4P), bpf (4), pcap (3)

მნიშვნელოვანია: გამოიყენეთ კაცი ბრძანება ( % man ), რათა ნახოთ თუ როგორ ბრძანება გამოიყენება თქვენს კომპიუტერში.