Ako trebate analizirati ili presresti mrežne pakete u Linuxu, onda je najbolje koristiti konzolu tcpdump . Ali problem nastaje u njegovu prilično složenom upravljanju. Obični korisnik će ustanoviti da je rad s uslužnim programom nezgodno, ali to je samo na prvi pogled. U članku će vam reći kako je tcpdump strukturiran, što ima sintaksu, kako ga koristiti, a također daje brojne primjere njegove uporabe.
Također pročitajte: Priručnici za postavljanje internetske veze u sustavu Windows Vista Ubuntu , Debian , Ubuntu poslužitelj
Većina programera Linux operacijskih sustava uključuje tcpdump program na unaprijed instaliranom popisu, ali ako iz nekog razloga nije u vašoj distribuciji, uvijek ga možete preuzeti i instalirati putem "Terminal" . Ako se vaš OS temelji na Debianu, a to je Ubuntu, Linux Mint, Kali Linux i slično, morate pokrenuti ovu naredbu:
sudo apt install tcpdump
Prilikom instalacije morate unijeti lozinku. Imajte na umu da se prilikom upisivanja ne prikazuje, i morate unijeti znak "D" i pritisnite Enter za potvrdu instalacije.
Ako imate Red Hat, Fedora ili CentOS, tada će naredba za instalaciju izgledati ovako:
sudo yam install tcpdump
Nakon što je uslužni program instaliran, može se odmah koristiti. O ovom i još mnogo toga razgovarat ćemo dalje u tekstu.
Pročitajte također: Vodič za instalaciju PHP za Ubuntu poslužitelj
Kao i svaka druga naredba, tcpdump ima svoju sintaksu. Znajući to, možete postaviti sve potrebne parametre koji će se uzeti u obzir pri izvršenju naredbe. Sintaksa je sljedeća:
tcpdump опции -i интерфейс фильтры
Kada koristite naredbu, morate odrediti sučelje za praćenje. Filteri i opcije nisu obvezne varijable, ali omogućuju fleksibilnije prilagodbe.
Iako ne morate navesti opciju, trebate navesti dostupne opcije. Tablica ne prikazuje sve svoje popise, već samo najpopularnije, ali je više nego dovoljno za rješavanje većine zadataka.
opcija | definicija |
---|---|
-A | Omogućuje sortiranje paketa s ASCII formatu |
-l | Dodaje funkciju pomicanja |
-i | Nakon ulaska morate odrediti mrežno sučelje koje će se pratiti. Za početak praćenja svih sučelja unesite riječ "bilo koji" nakon opcije |
c | Završava postupak praćenja nakon provjere određenog broja paketa |
-w | Generira tekstualnu datoteku s izvješćem o potvrdi |
-e | Označava razinu internetske veze podatkovnog paketa |
-L | Izlazi samo oni protokoli koji podržavaju navedeno mrežno sučelje |
-C | Izrađuje drugu datoteku tijekom pakiranja, ako je veličina veća od navedenog |
-r | Otvara pročitanu datoteku koja je stvorena pomoću opcije -w |
-j | Za snimanje paketa bit će upotrijebljen TimeStamp format |
-J | Omogućuje vam pregled svih dostupnih formata TimeStamp |
-G | Služi za stvaranje datoteke s zapisnicima. Opcija također zahtijeva privremenu vrijednost, nakon čega će se stvoriti novi dnevnik |
-v, -vv, -vvv | Ovisno o broju znakova u opciji, izlaz naredbe će postati detaljniji (povećanje je izravno proporcionalno broju znakova) |
f | Izlaz prikazuje naziv domene IP adrese |
-F | Omogućuje vam čitanje informacija ne iz mrežnog sučelja, već iz navedene datoteke |
-D | Pokazuje sve mrežna sučelja koja možete koristiti |
-n | Deaktivira prikaz imena domena |
-Z | Određuje korisnika čiji će račun izraditi sve datoteke |
-K | Nedostaje analiza čekova |
Q | Demonstracija kratkih informacija |
H | Otkriva zaglavlja 802.11s |
-I | Koristi se prilikom snimanja paketa u načinu rada za praćenje |
Nakon rastavljanja opcija, odmah ispod idemo izravno na njihove aplikacije. U međuvremenu će se razmotriti filteri.
Kao što je spomenuto na samom početku članka, možete dodati filtre u tcpdump sintaksu. Sada će se smatrati najpopularnija od njih:
filter | definicija |
---|---|
domaćin | Određuje naziv glavnog računala |
neto | Određuje IP subnet i mrežu |
IP | Poslužuje se za adresu protokola |
src | Prikazuje pakete koji su poslani s navedene adrese |
DST | Prikazuje pakete koji su primljeni navedenom adresom |
arp, udp, tcp | Filtriranje pomoću jednog od protokola |
luka | Prikazuje informacije povezane s određenim priključkom |
i, ili | Koristi se za spajanje više filtara u naredbu |
manje, veće | Izlaz paketa manji ili veći od navedene veličine |
Svi gore navedeni filtri mogu se međusobno kombinirati, tako da kod izdavanja naredbe vidjet ćete samo one informacije koje želite vidjeti. Da bismo detaljnije razumjeli upotrebu gore navedenih filtara, vrijedi dati primjere.
Pročitajte također: Često korištene naredbe u "Terminal" Linuxu
Najčešće korištene opcije sintakse za naredbu tcpdump sada su navedene. Nisu sve navedene, jer njihove varijacije mogu biti beskonačni broj.
Preporuča se da svaki korisnik u početku provjerava popis svih svojih mrežnih sučelja koja se mogu pratiti. Iz gornje tablice znamo da morate koristiti opciju -D , stoga pokrenite sljedeću naredbu na terminalu:
sudo tcpdump -D
primjer:
Kao što vidite, u primjeru postoji osam sučelja koja možete vidjeti s tcpdump naredbom. U članku će se dati primjeri s ppp0 , možete koristiti bilo koji drugi.
Ako trebate pratiti jedno mrežno sučelje, to možete učiniti s opcijom -i . Nemojte zaboraviti unijeti naziv sučelja nakon što ste ga unijeli. Evo primjera izvršavanja takve naredbe:
sudo tcpdump -i ppp0
Napomena: prije same naredbe, morate unijeti "sudo", jer to zahtijeva superuserovo pravo.
primjer:
Napomena: nakon što pritisnete Enter u "Terminalu", neprekidno će se prikazati presretni paketi. Da biste zaustavili njihov protok, trebate pritisnuti kombinaciju tipki Ctrl + C.
Ako pokrenete naredbu bez dodatnih opcija i filtara, vidjet ćete sljedeći format prikaza praćenih paketa:
22:18:52.597573 IP vrrp-topf2.p.mail.ru.https > 10.0.6.67.35482 : Flags [P.], seq 1:595, ack 1118, win 6494, options [nop,nop,TS val 257060077 ecr 697597623], length 594
Gdje je istaknuta boja:
Ova sintaksa ima mogućnost izlaziti u prozoru "Terminal" bez upotrebe dodatnih opcija.
Kao što znate iz tablice, opcija -v omogućuje povećanje količine podataka. Analizirat ćemo na primjeru. Provjerimo isto sučelje:
sudo tcpdump -v -i ppp0
primjer:
Ovdje možete vidjeti da se sljedeća retka pojavila u izlazu:
IP (tos 0x0, ttl 58 , id 30675, offset 0, flags [DF] , proto TCP (6) , length 52
Gdje je istaknuta boja:
Također, u sintaksi naredbe možete odrediti opciju -vv ili -vvv koja će dodatno povećati količinu informacija prikazanih na zaslonu.
Tablica opcija spomenula je mogućnost spremanja svih izlaznih podataka u zasebnu datoteku kako bi ih se kasnije moglo vidjeti. Za to je odgovorna opcija -w . Da biste ga koristili, jednostavno je uputite u naredbu, a zatim unesite naziv buduće datoteke s nastavkom ".pcap" . Razmotrimo sve na primjeru:
sudo tcpdump -i ppp0 -w file.pcap
primjer:
Imajte na umu: tijekom snimanja zapisa ne postoji tekst u datoteci na zaslonu "Terminal".
Kada želite vidjeti snimljeni izlaz, morate koristiti opciju -r , nakon čega napišite ime prethodno snimljene datoteke. Koristi se bez drugih opcija i filtara:
sudo tcpdump -r file.pcap
primjer:
Obje ove opcije su savršene kada trebate spremiti velike količine teksta za kasniju analizu.
Iz tablice filtra znamo da dst omogućuje prikazivanje samo onih paketa koje je primljena po adresi na zaslonu konzole, kako je navedeno u sintaksi naredbi. Stoga je vrlo prikladno gledati pakete koje je primio vaše računalo. Da biste to učinili, samo trebate navesti svoju IP adresu u timu:
sudo tcpdump -i ppp0 ip dst 10.0.6.67
primjer:
Kao što možete vidjeti, pored dst , u timu smo također napisali ip filter. Drugim riječima, rekli smo računalu da pri odabiru paketa obratiti pozornost na njihovu IP adresu, a ne na druge parametre.
IP-om možete filtrirati i slati pakete. U primjeru vratimo IP. To je sada ćemo pratiti koji paketi se šalju s našeg računala na druge adrese. Da biste to učinili, izvršite sljedeću naredbu:
sudo tcpdump -i ppp0 ip src 10.0.6.67
primjer:
Kao što vidite, u sintaksi naredbe promijenili smo filtar dst na src , tako da se stroj upozorava na pošiljatelja IP-om.
Analogno IP-u u naredbi možemo odrediti filtar domaćina kako bismo uklonili pakete s domaćinom interesa. To jest, u sintaksi, umjesto IP adrese pošiljatelja / prijemnika, bit će potrebno odrediti svoj host. Izgleda ovako:
sudo tcpdump -i ppp0 dst host google-public-dns-a.google.com
primjer:
Na slici možete vidjeti da su u "Terminalu" prikazani samo one pakete koji su poslani iz naše IP adrese za host google.com. Kao što možete vidjeti, umjesto google host-a možete unijeti bilo koji drugi.
Kao i kod IP filtriranja, sintaksu dst može se zamijeniti srcom kako bi vidjeli pakete koji se šalju na vaše računalo:
sudo tcpdump -i ppp0 src host google-public-dns-a.google.com
Napomena: filtar glavnog računala mora biti postavljen nakon dst ili src, inače će naredba generirati pogrešku. U slučaju IP filtriranja, naprotiv, dst i src nalaze se ispred IP filtar.
Ako trebate istodobno koristiti više filtara u istoj naredbi, trebate primijeniti i i ili ili filtar (ovisno o slučaju). Navodeći filtre u sintaksa i razdvajajući ih s ovim operatorom, "prisiljavate" ih da rade kao jedan. Na primjer, izgleda ovako:
sudo tcpdump -i ppp0 ip dst 95.47.144.254 or ip src 95.47.144.254
primjer:
Iz sintakse naredbe jasno je da na zaslonu "Terminal" želimo prikazati sve pakete koji su poslani na adresu 95.47.144.254 i pakete primljene na istoj adresi. Također možete promijeniti neke varijable u ovom izrazu. Na primjer, umjesto IP, navedite HOST ili sami zamijenite adrese.
Port filter je savršen kada trebate dobiti informacije o paketima s određenim priključkom. Dakle, ako samo trebate vidjeti odgovore ili DNS upite, morate odrediti priključak 53:
sudo tcpdump -vv -i ppp0 port 53
primjer:
Ako želite pregledati http pakete, morate unijeti priključak 80:
sudo tcpdump -vv -i ppp0 port 80
primjer:
Između ostalog, moguće je istodobno pratiti raspon luka. Za to se koristi filtar s rasporedom :
sudo tcpdump portrange 50-80
Kao što vidite, nije potrebno odrediti dodatne opcije u kombinaciji s filtrom za rasporedom . Dovoljno je samo postaviti raspon.
Također možete prikazati samo promet koji odgovara bilo kojem protokolu. Da biste to učinili, morate upotrijebiti naziv ovog protokola kao filtar. Pogledajmo primjer udpa :
sudo tcpdump -vvv -i ppp0 udp
primjer:
Kao što se vidi na slici, nakon izvršenja naredbe, samo su paketi s udp protokolom bili prikazani u "Terminalu" . Prema tome, filtriranje možete izvršiti na drugom, na primjer, arp :
sudo tcpdump -vvv -i ppp0 arp
ili tcp :
sudo tcpdump -vvv -i ppp0 tcp
Net operator pomaže filtrirati pakete, uzimajući kao temelj oznaku njihove mreže. Da biste ga koristili jednostavno kao ostatak - morate navesti neto atribut u sintaksi, a zatim unesite mrežnu adresu. Evo primjera takve naredbe:
sudo tcpdump -i ppp0 net 192.168.1.1
primjer:
Nismo uzeli u obzir još dva zanimljiva filtra: sve manje i više . Iz tablice s filtrima znamo da služe za izlaz paketa podataka veći ( manji ) ili manji ( veći ) veličina određena nakon ulaska u atribut.
Pretpostavimo da želimo slijediti samo pakete koji ne prelaze 50-bitnu oznaku, a zatim će naredba izgledati ovako:
sudo tcpdump -i ppp0 less 50
primjer:
Sada ćemo se prikazati u paketima "Terminal" koji su veći od 50 bitova:
sudo tcpdump -i ppp0 greater 50
primjer:
Kao što vidite, primjenjuju se jednako, razlika je samo u nazivu filtra.
Na kraju članka možete zaključiti da je tcpdump naredba izvrstan alat pomoću kojeg možete pratiti bilo koji paket podataka poslan preko Interneta. Ali za to nije dovoljno samo ulazak tima u "Terminal" . Za postizanje željenog rezultata dobit ćete samo ako koristite sve vrste opcija i filtara, kao i njihove kombinacije.