Linux ir aprīkots ar daudzām tīkla utilītprogrammām, no kurām izvēlēties. tcpdump ir viens no šādiem jaudīgiem tīkla rīkiem, kas var uztvert un analizēt tīkla trafiku, ja jums ir nepieciešams novērst tīkla kļūdas operētājsistēmā Linux.

Iepazīsimies ar komandu tcpdump un izpētīsim, kā to izmantot tīkla trafika uztveršanai.

Tcpdump instalēšana operētājsistēmā Linux

tcpdump parasti ir iepriekš instalēts ar visi galvenie Linux izplatījumi un uz drošību balstītas alternatīvas. Tāpēc jums vajadzētu būt iespējai to izmantot uzreiz, ierakstot tcpdump ar sudo priedēklis.

Ja nevarat palaist komandu tcpdump un esat iestrēdzis pie "tcpdump: komanda nav atrasta" kļūdu, uzzināsim, kā instalēt tcpdump jūsu Linux datorā.

Lai instalētu tcpdump, aktivizējiet termināli un palaidiet komandu, kas atbilst pašreiz izmantotajam Linux distributīvam:

Debian/Ubuntu atvasinājumiem palaidiet:

sudo apt-gūt instalējiet tcpdump

Ieslēgts Arku bāzes sistēmas, palaist:

sudo pacman -S tcpdump

Lai instalētu utilītu tcpdump Fedora, CentOS un RHEL, izdodiet šādu komandu:

sudo dnf uzstādīt tcpdump

Ņemiet vērā, ka, ja jums tiek lūgts instalēt libcap, ieraksti vai Y jo tā ir galvenā atkarība, bez kuras tcpdump atteiksies palaist. Tam vajadzētu instalēt utilītu tcpdump un atrisināt kļūdu "komanda nav atrasta".

Tagad, kad jūsu sistēmā ir instalēts tcpdump, izpētīsim dažādas tā piedāvātās iespējas un funkcijas.

Tīkla trafika tveršana, izmantojot tcpdump

tcpdump piedāvā daudz karodziņu, lai mainītu tā izpildi, taču to var palaist arī kā atsevišķu komandu. Tomēr tcpdump palaišana bez karodziņiem vai argumentiem nozīmētu novārtā pilnībā izmantot tā potenciālu. Vienmēr ir labāk izmantot dažus karodziņus, lai pēc vajadzības pielāgotu izpildi un izvadi.

Ievadiet šo komandu, lai pārraudzītu tīkla pārraidi ar tcpdump:

sudo tcpdump

Tagad tcpdump sāks automātiski tvert tīkla paketes līdz pārtraukuma signāls tiek nosūtīts ar Ctrl+Z lai manuāli pārtrauktu procesu. Lai ierobežotu kopējo uzņemto pakešu skaitu, izmantojiet -c karodziņš un blakus tam ierakstiet vajadzīgo pakešu limitu:

sudo tcpdump -c 5

Ja pašlaik nevarat saprast rezultātu, jums tas ir jādara iepazīstieties ar tcpdump izvades formātu vispirms.

Pārbaudiet pieejamos tīkla interfeisus, izmantojot tcpdump

Pēc noklusējuma tcpdump uztver trafiku no jebkuras pieejamās tīkla saskarnes. Ja tiek izmantotas vairākas aktīvas tīkla saskarnes, iespējams, vēlēsities definēt tīkla saskarni, no kuras tcpdump vajadzētu uztvert paketes. Lai palaistu tcpdump noteiktā interfeisā, vispirms ir jāiepazīstas ar saskarnes nosaukumu.

Lūk, kā uzskaitīt visas pieejamās tīkla saskarnes ar tcpdump:

sudo tcpdump -D

Vai arī varat pievienot -- saraksta saskarnes karodziņu komandai:

sudo tcpdump --sarakstu- saskarnes

Atgrieztajā izvadē ir saraksts ar visām aktīvajām tīkla saskarnēm, kuras tcpdump var klausīties. Lai konfigurētu tcpdump, lai uztvertu pārraides no noteikta tīkla interfeisa, ierakstiet šo komandu:

sudo tcpdump -i interfeisa_id

Vai arī varat pievienot -- interfeiss karodziņu komandai:

sudo tcpdump --saskarneinterfeisa_id

Tagad, kad esam tvēruši dažas paketes, rūpīgi izpētīsim tās un uzzināsim, kā varat pielāgot izvadi, lai tā būtu lasāmāka.

tcpdump filtru izpēte

tcpdump spēj uztvert milzīgu trafika daudzumu vienā piegājienā. Šāda informācijas pārslodze var novirzīt jūs no ceļa, izmeklējot vai novēršot problēmas ar noteiktu resursdatoru vai tīkla protokolu.

Šeit tiek izmantoti tcpdump filtri. Varat pievienot komandu tcpdump ar noteiktiem karodziņiem, lai filtrētu tīkla trafiku un tvertu noteiktas paketes. Pēc tam varat saglabāt šīs paketes un vēlāk tās analizēt, lai noskaidrotu ar tīklu saistīto problēmu sakni. Uzzināsim, kā lietot filtrus programmā tcpdump.

Filtrējiet paketes, pamatojoties uz izmantoto tīkla protokolu

Lai filtrētu paketes, kas tiek pārsūtītas, izmantojot noteiktu protokolu, ierakstiet protokola nosaukumu ar komandu tcpdump, un tas uztvers tikai paketes, kas ceļo, izmantojot definēto tīkla protokolu.

Piemēram, lai uzņemtu ICMP bāzes paketes, jums vienkārši jāpievieno icmp komandas tcpdump beigās. Process ir tāds pats, ja vēlaties tvert tikai UDP vai TCP paketes.

sudo tcpdump -c 5 icmp

Šī komanda atgriezīs izvadi tikai tad, ja notiek datu apmaiņa, izmantojot ICMP protokolu.

Filtrējiet paketes, pamatojoties uz resursdatoru

Varat konfigurēt tcpdump, lai tvertu paketes, kas saistītas ar vienu resursdatoru, izmantojot saimnieks parametrs. Tas ir īpaši noderīgi, ja darbojas visas jūsu tīkla sistēmas, izņemot vienu. Šis filtrs ļauj veikt mērķtiecīgu izmeklēšanu un paātrina vispārējo problēmu novēršanas darbplūsmu, jo jūs netraucē nevajadzīgi dati.

Lai tvertu ar konkrētu resursdatoru saistītas paketes, definējiet resursdatora tīkla adresi ar saimnieks parametrs:

sudotcpdump-c 5 saimnieks 192.168.2.1

Līdzīgi kā tīkla protokola filtram, šī komanda atgriezīs izvadi tikai tad, ja kāda notiekošā pārraide ir saistīta ar definēto resursdatoru.

Filtrējiet paketes, pamatojoties uz aktīvo portu

tcpdump ir aprīkots ar parametru, kas ļauj filtrēt tīkla trafiku un tvert tikai tās paketes, kas tiek pārsūtītas uz noteiktu portu vai no tās.

Lai tvertu paketes, kas nāk no noteikta porta, pievienojiet osta atzīmējiet karodziņu komandai tcpdump un definējiet tai blakus esošo porta numuru. Piemēram, lai tvertu ienākošo vai izejošo HTTP trafiku, definējiet 80. portu:

sudo tcpdump -c 5 ports 80

tcpdump klausīsies 80. portā, gaidot HTTP pārsūtīšanu. Tiklīdz tas tīklā konstatē HTTP paketes, tas tās uztvers.

Apvienojiet filtrus uzlabotai kārtošanai

Iepriekšējās sadaļās tika apspriests, kā varat filtrēt trafiku, pamatojoties uz portu, protokolu vai resursdatoru, bet kā būtu, ja jūs vēlējāties iegūt trafiku no viena konkrēta resursdatora porta, izmantojot noteiktu tīklu protokols? Jums ir paveicies, jo tas ir iespējams, attiecinot to uz spēju izmantot loģiskos operatorus ar komandu tcpdump.

Lai uztvertu paketes no atsevišķa resursdatora, izmantojot portu 443, izmantojiet šo komandu:

sudotcpdump-c 5 saimnieks 192.168.2.1unosta 443

Pārbaudiet uzņemto pakešu saturu

Pēc noklusējuma tcpdump izvadā parāda paketes galvenes. Lai gan vairumā gadījumu ar to ir vairāk nekā pietiekami, dažkārt, iespējams, vēlēsities vai vajadzēs padziļināti izpētīt uzņemtos datus. Varat nodot noteiktus parametrus ar komandu tcpdump, lai pārbaudītu uzņemtās pakotnes saturu.

Lūk, kā apskatīt pakešu saturu:

sudo tcpdump -c 5 -x

Šī komanda atgriež tvertās paketes satura hex versiju. Ja vēlaties skatīt datu ASCII formu, varat nodot -A parametrs ar:

sudo tcpdump -A

Saglabājiet tcpdump izvadi failā

Tāpat kā gandrīz jebkurš cits Linux komandrindas rīks, jūs varat saglabāt tcpdump radīto izvadi failā, uz kuru vēlāk atsaukties.

To var izdarīt, pievienojot -w karodziņu komandai. Pēc izpildes tcpdump saglabās uzņemtos datus a .pcap failu, ko vēlāk var analizēt, izmantojot tcpdump vai citus tīkla uzraudzības rīkus, piemēram, Wireshark.

Ierakstiet šo komandu, lai saglabātu komandas tcpdump izvadi failā:

sudotcpdump-wsagūstīt.pcap

Lai lasītu a .pcap failu, varat izmantot tcpdump ar -r parametrs:

sudotcpdump-rsagūstīt.pcap

Linux tiek piegādāts ar daudziem tīkla rīkiem, kas var atrisināt visas tīkla problēmas, ja vien tas attiecas uz programmatūras pusi. Zināt, kā izmantot dažus no labākajiem tīkla rīkiem operētājsistēmā Linux, noteikti noderēs neatkarīgi no tā, vai esat sistēmas administrators, kas pārvalda tīklus iztikai, vai vienkārši ikdienas Linux lietotājs.

Tā kā faktiskais pieejamo tīkla komandu saraksts var būt pārāk daudz aptverams, šeit ir saraksts ar dažiem svarīgākajiem Linux tīkla rīkiem, kas jums būtu jāzina.