Եթե ձեզ հարկավոր է վերլուծել կամ ընդհատել ցանցային փաթեթները Linux- ում, ապա լավագույնն է օգտագործել կոնսոլային կոմունալ tcpdump. Բայց խնդիրը ծագում է նրա բավականին բարդ կառավարման մեջ: Միջին օգտագործողին թվում է, որ կոմունալ ծառայության հետ աշխատելը անհարմար է, բայց սա միայն առաջին հայացքից է: Հոդվածում կբացատրվի, թե ինչպես է tcpdump- ն աշխատում, ինչ շարահյուսություն ունի, ինչպես օգտագործել այն, և տրվելու են դրա օգտագործման բազմաթիվ օրինակներ:
Տե՛ս նաև. Ubuntu, Debian, Ubuntu Server սերվերներում ինտերնետ կապ հաստատելու ուղեցույցներ
Տեղադրում
Linux- ի վրա հիմնված գործող համակարգերի մշակողների մեծ մասը tcpdump ծրագիրը պարունակում է նախապես տեղադրվածների ցանկում, բայց եթե ինչ-ինչ պատճառներով դա ձեր բաշխման մեջ չէ, միշտ կարող եք ներբեռնել և տեղադրել այն միջոցով «Տերմինալ». Եթե ձեր ՕՀ-ն հիմնված է Debian- ի վրա, և սրանք Ubuntu, Linux Mint, Kali Linux և այլն, ապա ձեզ հարկավոր է գործարկել այս հրամանը.
sudo apt տեղադրել tcpdump
Տեղադրելիս անհրաժեշտ է գաղտնաբառ մուտքագրել: Խնդրում ենք նկատի ունենալ, որ հավաքելիս այն չի ցուցադրվում, ինչպես նաև հաստատելու համար անհրաժեշտ պարամետրը `նշանը մուտքագրելու համար Դ և կտտացրեք Մտնեք.
Եթե ունեք Red Hat, Fedora կամ CentOS, ապա տեղադրման հրամանը նման կլինի.
sudo yam տեղադրել tcpdump
Կոմունալը տեղադրվելուց հետո այն անմիջապես կարող է օգտագործվել: Սա և շատ ավելին կքննարկվի ավելի ուշ ՝ տեքստում:
Տե՛ս նաև. PHP- ի տեղադրման ուղեցույց Ubuntu Server- ում
Շարահյուսություն
Anyանկացած այլ հրամանի նման, tcpdump- ն ունի իր շարահյուսությունը: Նրան իմանալով, կարող եք սահմանել բոլոր անհրաժեշտ պարամետրերը, որոնք հաշվի կառնվեն հրամանը կատարելիս: Շարահյուսությունը հետևյալն է.
tcpdump ընտրանքներ - ինտերֆեյսի ֆիլտրեր
Հրամանը գործածելիս պետք է նշեք ինտերֆեյսը հետևելու համար: Զտիչները և ընտրանքները ընտրովի փոփոխական են, բայց դրանք թույլ են տալիս ավելի ճկուն հարմարեցում:
Ընտրանքներ
Չնայած անհրաժեշտ չէ տարբերակ նշել, դուք դեռ պետք է թվարկեք առկաները: Աղյուսակը չի ցույց տալիս նրանց ամբողջ ցուցակը, բայց միայն ամենատարածվածները, բայց դրանք ավելին են, քան բավարար են առաջադրանքների մեծ մասը լուծելու համար:
Ընտրանք | Սահմանում |
---|---|
-Ա | Թույլ է տալիս տեսակավորել փաթեթները ASCII ձևաչափով |
-լ | Ավելացնում է ոլորման գործառույթ: |
-ի | Մտնելուց հետո անհրաժեշտ է նշել ցանցի միջերեսը, որը դիտարկվելու է: Բոլոր միջերեսների մոնիտորինգը սկսելու համար, ընտրանքից հետո մուտքագրեք «ցանկացած» բառը |
-կ | Ավարտում է հետևելու գործընթացը `փաթեթների նշված թիվը ստուգելուց հետո |
-վ | Ստեղծում է տեքստային ֆայլ հաստատման հաշվետվությամբ |
-ե | Shույց է տալիս տվյալների կապի ինտերնետ կապի մակարդակը |
-Լ | Plուցադրում է միայն այն արձանագրությունները, որոնք նշված ցանցի միջերեսը աջակցում է: |
-Գ | Փաթեթի ձայնագրման ընթացքում ստեղծում է մեկ այլ ֆայլ, եթե դրա չափը նշվածից ավելի մեծ է |
-ռ | Բացվում է կարդալու ֆայլ, որը ստեղծվել է ՝ -w տարբերակի միջոցով |
-j | Փաթեթները ձայնագրելու համար կօգտագործվի TimeStamp ձևաչափը |
-J | Թույլ է տալիս դիտել TimeStamp- ի հասանելի բոլոր ձևաչափերը |
-Գ | Ծառայում է տեղեկամատյան ֆայլ ստեղծելու համար: Ընտրանքն ունի նաև ժամանակավոր արժեք, որից հետո կստեղծվի նոր մատյան |
-v, -vv, -vvv | Կախված տարբերակի նիշերի քանակից, հրամանի ելքը կդառնա ավելի մանրամասն (բարձրացումը ուղղակիորեն համամասն է նիշերի քանակին) |
-f | Արդյունքը ցույց է տալիս IP հասցեների տիրույթի անվանումը |
-Ֆ | Թույլ է տալիս կարդալ տեղեկությունները ոչ թե ցանցի միջերեսից, այլ նշված ֆայլից |
-Դ | Ույց է տալիս ցանցային բոլոր միջերեսները, որոնք կարող են օգտագործվել: |
-ն | Կասեցնում է դոմենային անունների ցուցադրումը |
-Զ | Նշում է օգտագործողին, որի հաշվի ներքո կստեղծվեն բոլոր ֆայլերը: |
-Կ | Skipping Checksum- ի վերլուծություն |
-ք | Showուցահանդեսի ամփոփում |
-Հ | Հայտնաբերում է 802.11s վերնագիր |
-Ես | Օգտագործվում է մոնիտորի ռեժիմում փաթեթներ հավաքելիս |
Ուսումնասիրելով ընտրանքները, մի փոքր ավելի ցածր մենք կգնանք ուղղակիորեն դրանց դիմումներին: Այդ ընթացքում դիտարկվելու են ֆիլտրերը:
Զտիչներ
Ինչպես նշվեց հոդվածի հենց սկզբում, tcpdump- ի շարահյուսության մեջ կարող եք զտիչներ ավելացնել: Այժմ դրանցից ամենատարածվածը կհամարվի.
Զտիչ | Սահմանում |
---|---|
հյուրընկալող | Նշում է հյուրընկալողի անունը |
ցանց | Indույց է տալիս IP ենթահամակարգերը և ցանցերը |
ip | Նշում է արձանագրության հասցեն |
src | Plուցադրում է փաթեթներ, որոնք ուղարկվել են նշված հասցեից |
դստ | Disուցադրում է փաթեթներ, որոնք ստացվել են նշված հասցեով |
արփ, udp, tcp | Զտվում է արձանագրություններից մեկի միջոցով |
նավահանգիստ | Disույց է տալիս հատուկ նավահանգստի հետ կապված տեղեկատվությունը |
և, կամ | Միավորված է մի քանի ֆիլտր `հրամանի մեջ: |
պակաս մեծ | Արդյունքային փաթեթները նշված չափից փոքր կամ մեծ են |
Վերոնշյալ բոլոր ֆիլտրերը կարող են զուգակցվել միմյանց հետ, այնպես որ հրամանի թողարկման ժամանակ դուք կտեսնեք միայն այն տեղեկատվությունը, որը դուք ցանկանում եք տեսնել: Ավելի մանրամասն հասկանալու համար վերը նշված ֆիլտրերի օգտագործումը, արժե օրինակներ բերել:
Տե՛ս նաև `Linux Terminal- ում հաճախակի օգտագործվող հրամաններ
Օգտագործման օրինակներ
Հիմա tcpdump հրամանի համար հաճախակի օգտագործված սինթաքս ընտրանքները կցուցադրվեն: Նրանց բոլորը չեն կարող ցուցակվել, քանի որ դրանց տատանումների անսահման քանակ կարող է լինել:
Դիտեք միջերեսների ցուցակը
Առաջարկվում է, որ յուրաքանչյուր օգտվող նախապես ստուգի իր բոլոր ցանցային միջերեսների ցանկը, որոնք կարելի է հետևել: Վերոնշյալ աղյուսակից մենք գիտենք, որ դրա համար հարկավոր է օգտագործել տարբերակը -Դ, այնպես որ տերմինալում գործարկեք հետևյալ հրամանը.
սուդո tcpdump -D
Օրինակ:
Ինչպես տեսնում եք, օրինակը ունի ութ միջերես, որոնք կարելի է դիտել tcpdump հրամանի միջոցով: Հոդվածում կբերվեն օրինակներ ppp0Կարող եք օգտագործել ցանկացած այլ:
Նորմալ երթևեկության գրավում
Եթե Ձեզ անհրաժեշտ է հետևել մեկ ցանցային ինտերֆեյս, կարող եք դա անել ՝ օգտագործելով ընտրանքը -ի. Մի մոռացեք մուտքագրել այն միջերեսի անվանումը: Ահա նման հրամանի օրինակ.
sudo tcpdump -i ppp0
Խնդրում ենք նկատի ունենալ. Հրամանից առաջ անհրաժեշտ է մուտքագրել «սուդո», քանի որ այն պահանջում է գերտերությունների իրավունք:
Օրինակ:
Նշում. Enter- ը «Տերմինալում» սեղմելուց հետո, ընդհատվող տուփերը կցուցադրվեն անընդհատ: Դրանց հոսքը դադարեցնելու համար հարկավոր է սեղմել ստեղնաշարի համադրությունը Ctrl + C:
Եթե հրամանը կատարում եք առանց լրացուցիչ ընտրանքների և զտիչների, կտեսնեք հետևյալ ձևաչափը դիտարկված փաթեթները ցուցադրելու համար.
22: 18: 52.597573 IP vrrp-topf2.p.mail.ru.https> 10.0.6.67.35482: Դրոշներ [P.], sek 1: 595, Ack 1118, win 6494, ընտրանքներ [nop, nop, TS val 257060077 ecr 697597623], երկարությունը 594
Որտեղ գույնը կարևորվում է.
- կապույտ - փաթեթը ստանալու ժամանակը;
- նարնջագույն - արարողակարգային տարբերակ;
- կանաչ - ուղարկողի հասցեն;
- մանուշակ - ստացողի հասցեն;
- մոխրագույն - tcp- ի վերաբերյալ լրացուցիչ տեղեկատվություն;
- red - packet size (ցուցադրվում է բայթերով):
Այս շարահյուսությունը հնարավորություն ունի դրսևորել պատուհանում: «Տերմինալ» առանց օգտագործելու լրացուցիչ ընտրանքներ:
Տրաֆիկի գրավում -v տարբերակով
Ինչպես հայտնի է սեղանից, տարբերակը -վ թույլ է տալիս բարձրացնել տեղեկատվության քանակը: Եկեք մի օրինակ բերենք: Ստուգեք նույն ինտերֆեյսը.
sudo tcpdump -v -i ppp0
Օրինակ:
Այստեղ դուք կարող եք տեսնել, որ ելքի մեջ հայտնվել է հետևյալ տողը.
IP (tos 0x0, ttl 58, id 30675, օֆսեթ 0, դրոշներ [DF], պրոտո TCP (6), երկարություն 52
Որտեղ գույնը կարևորվում է.
- նարնջագույն - արարողակարգային տարբերակ;
- կապույտ - արարողակարգային տևողություն;
- կանաչ - դաշտի վերնագրի երկարությունը;
- մանուշակագույն - tcp փաթեթի տարբերակը;
- կարմիր - փաթեթի չափը:
Նաև հրամանի շարահյուսության մեջ կարող եք տարբերակ գրել -վվ կամ -վվվ, ինչը հետագայում կբարձրացնի էկրանին ցուցադրվող տեղեկատվության քանակը:
Տարբերակ -w և -r
Ընտրանքների աղյուսակում նշվեց ամբողջ արտադրանքը առանձին ֆայլում պահելու հնարավորությունը, որպեսզի այն դիտեք ավելի ուշ: Տարբերակը պատասխանատու է դրա համար: -վ. Օգտագործելով այն բավականին պարզ է, պարզապես նշեք այն հրամանի մեջ, ապա մուտքագրեք ապագա ֆայլի անունը `ընդարձակմամբ ".pcap". Եկեք մի օրինակ նայենք.
sudo tcpdump -i ppp0 -w file.pcap
Օրինակ:
Խնդրում ենք նկատի ունենալ. Տեղեկամատյանները ֆայլեր գրելիս «Տերմինալի» էկրանին ոչ մի տեքստ չի ցուցադրվում:
Երբ ցանկանում եք դիտել ձայնագրված ելքը, դուք պետք է օգտագործեք տարբերակը -ռ, որից հետո գրեք նախկինում գրանցված ֆայլի անունը: Այն օգտագործվում է առանց այլ ընտրանքների և ֆիլտրերի.
sudo tcpdump -r file.pcap
Օրինակ:
Այս երկու տարբերակները հիանալի են այն դեպքերում, երբ ավելի ուշ վերլուծելու համար անհրաժեշտ է մեծ քանակությամբ տեքստեր խնայել:
IP ֆիլտրում
Ֆիլտրի աղյուսակից մենք դա գիտենք դստ թույլ է տալիս վահանակի վահանակի էկրանին ցուցադրել միայն այն փաթեթները, որոնք ստացվել են այն հասցեով, որը նշված է հրամանի շարահյուսության մեջ: Այսպիսով, շատ հարմար է դիտել ձեր համակարգչի կողմից ստացված փաթեթները: Դա անելու համար թիմին անհրաժեշտ է միայն նշել իր IP հասցեն.
sudo tcpdump -i ppp0 ip dst 10.0.6.67
Օրինակ:
Ինչպես տեսնում եք, բացի այդ դստ, թիմում նաև գրանցեցինք ֆիլտր ip. Այլ կերպ ասած, մենք համակարգչին ասացինք, որ փաթեթներ ընտրելիս ուշադրություն կդարձնի դրանց IP հասցեին, այլ ոչ թե այլ պարամետրերի:
Ըստ IP- ի, կարող եք նաև զտել ելքային փաթեթները: Մենք նորից կտանք մեր IP- ն օրինակով: Այսինքն, հիմա մենք կհետևենք, թե որ փաթեթները ուղարկվում են մեր համակարգչից այլ հասցեներ: Դա անելու համար գործարկեք հետևյալ հրամանը.
sudo tcpdump -i ppp0 ip src 10.0.6.67
Օրինակ:
Ինչպես տեսնում եք, հրամանի շարահյուսության մեջ մենք փոխեցինք ֆիլտրը դստ վրա srcդրանով իսկ ասելով, որ մեքենան պետք է ուղարկող փնտրի IP- ով:
HOST ֆիլտրում
Ի հրամանում IP- ով անալոգիայի միջոցով մենք կարող ենք ֆիլտր սահմանել հյուրընկալողփաթեթները զտելու համար հետաքրքրություն հաղորդողի հետ: Այսինքն, շարահյուսության մեջ, ուղարկողի / ստացողի IP հասցեի փոխարեն, դուք պետք է նշեք դրա հոստը: Կարծես թե այսպիսին է.
sudo tcpdump -i ppp0 dst host google-public-dns-a.google.com
Օրինակ:
Պատկերում դուք կարող եք տեսնել, որ ներսում «Տերմինալ» ցուցադրվում են միայն այն փաթեթները, որոնք ուղարկվել են մեր IP- ից google.com հյուրընկալող: Ինչպես հասկանում եք, google- ի հոստի փոխարեն կարող եք մուտքագրել ցանկացած այլ:
Ինչպես IP զտման դեպքում, շարահյուսությունը դստ կարող է փոխարինվել դրանով srcՏեսնելու համար այն փաթեթները, որոնք ուղարկվում են ձեր համակարգիչ ՝
sudo tcpdump -i ppp0 src հյուրընկալող google-public-dns-a.google.com
Նշում. Հյուրընկալող ֆիլտրը պետք է լինի dst- ից կամ src- ից հետո, հակառակ դեպքում հրամանը սխալ է նետելու: IP- ի միջոցով զտման դեպքում, ընդհակառակը, dst- ը և src- ը ip ֆիլտրի դիմաց են:
Կիրառելով և (կամ) ֆիլտր
Եթե ձեզ հարկավոր է միանգամից մի հրամանով օգտագործել մի քանի ֆիլտր, ապա անհրաժեշտ է զտիչ կիրառել և կամ կամ (կախված է դեպքից): Նշելով շարահյուսության ֆիլտրերը և դրանք բաժանելով այս օպերատորներից, դուք կստիպեք, որ դրանք աշխատեն որպես մեկը: Օրինակ, այսպես է թվում.
sudo tcpdump -i ppp0 ip dst 95.47.144.254 կամ ip src 95.47.144.254
Օրինակ:
Հրամանի շարահյուսությունը ցույց է տալիս, թե ինչ ենք ուզում ցուցադրել «Տերմինալ» բոլոր փաթեթները, որոնք ուղարկվել են 95.47.144.254 հասցեին և նույն հասցեով ստացված փաթեթներին: Այս արտահայտության մեջ կարող եք փոխել նաև մի քանի փոփոխական: Օրինակ, IP- ի փոխարեն նշեք HOST- ը կամ ուղղակիորեն փոխարինեք դրանք հասցեներով:
Նավահանգիստ և զտիչ ֆիլտր
Զտիչ նավահանգիստ կատարյալ այն դեպքերում, երբ դուք պետք է տեղեկատվություն ստանաք փաթեթների վերաբերյալ որոշակի նավահանգստով: Այսպիսով, եթե ձեզ հարկավոր է միայն տեսնել պատասխաններ կամ DNS հարցում, ապա պետք է նշեք պորտ 53:
sudo tcpdump -vv -i ppp0 պորտ 53
Օրինակ:
Եթե ցանկանում եք դիտել http փաթեթները, ապա հարկ է մուտք գործել պորտ 80:
sudo tcpdump -vv -i ppp0 պորտ 80
Օրինակ:
Ի թիվս այլ բաների, հնարավոր է անմիջապես հետևել նավահանգիստների միջակայքին: Դրա համար կիրառվում է զտիչ: պատկերել:
sudo tcpdump portrange 50-80
Ինչպես տեսնում եք, զտիչի հետ միասին պատկերել պահանջվում են ընտրովի ընտրանքներ: Պարզապես սահմանեք միջակայքը:
Արձանագրության զտումը
Կարող եք ցուցադրել նաև ցանկացած տառատեսակին համապատասխանող երթևեկություն: Դա անելու համար օգտագործեք այս արձանագրության անունը `որպես զտիչ: Եկեք մի օրինակ նայենք udp:
sudo tcpdump -vvv -i ppp0 udp
Օրինակ:
Ինչպես տեսնում եք նկարում, հրամանը գործարկելուց հետո «Տերմինալ» ցուցադրվում էին միայն արձանագրություն ունեցող փաթեթները udp. Համապատասխանաբար, դուք կարող եք զտել ուրիշների կողմից, օրինակ, արփ:
sudo tcpdump -vvv -i ppp0 արմ
կամ տ.կ.:
sudo tcpdump -vvv -i ppp0 tcp
Զուտ զտիչ
Օպերատոր ցանց օգնում է զտել փաթեթները `հիմնվելով դրանց ցանցի նշանակման վրա: Օգտագործելով այն նույնքան պարզ է, որքան մնացածը. Հարկավոր է շարադրել շարահյուսական հատկանիշում ցանց, ապա մուտքագրեք ցանցի հասցեն: Ահա նման հրամանի օրինակ.
sudo tcpdump -i ppp0 զուտ 192.168.1.1
Օրինակ:
Փաթեթի չափի զտիչ
Մենք հաշվի չառնեցինք ևս երկու հետաքրքիր ֆիլտր. պակաս և ավելի մեծ. Զտիչներով սեղանից մենք գիտենք, որ դրանք ծառայում են տվյալների փաթեթների ավելի շատ արտադրանքին (պակաս) կամ ավելի քիչ (ավելի մեծ) հատկանիշը մուտքագրվելուց հետո նշված չափը:
Ենթադրենք, որ մենք ուզում ենք վերահսկել միայն այն փաթեթները, որոնք չեն գերազանցում 50-բիտանոց նշանը, այդ դեպքում հրամանը նման կլինի.
sudo tcpdump -i ppp0 պակաս 50
Օրինակ:
Հիմա եկեք ցուցադրենք «Տերմինալ» 50 բիտից ավելի մեծ փաթեթներ.
sudo tcpdump -i ppp0 ավելի մեծ 50
Օրինակ:
Ինչպես տեսնում եք, դրանք կիրառվում են նույն ձևով, միակ տարբերությունը զտիչի անվան մեջ է:
Եզրակացություն
Հոդվածի վերջում մենք կարող ենք եզրակացնել, որ թիմը tcpdump - Սա հիանալի գործիք է, որի միջոցով կարող եք հետևել ինտերնետում փոխանցված ցանկացած տվյալների փաթեթին: Բայց դրա համար բավարար չէ պարզապես հրամանը մտնել «Տերմինալ». Theանկալի արդյունքը կստացվի միայն այն դեպքում, եթե դուք օգտագործում եք բոլոր տեսակի ընտրանքներ և զտիչներ, ինչպես նաև դրանց համակցությունները: