Se vi bezonas analizi aŭ interkapti retajn pakaĵojn en Linukso, tiam plej bone estas uzi konzolan utilecon tcpdump. Sed la problemo ekestas per ĝia iom komplika administrado. Ŝajnas al la averaĝa uzanto, ke labori kun la utileco estas malkomforta, sed ĉi tio nur unuavide. La artikolo klarigos kiel tcpdump funkcias, kian sintakson ĝi havas, kiel uzi ĝin, kaj multnombraj ekzemploj de ĝia uzo estos donitaj.
Vidu ankaŭ: Gvidiloj por starigi interretan konekton en Ubuntu, Debian, Ubuntu-Servilo
Instalado
Plej multaj programistoj de Linukso-operaciaj sistemoj inkluzivas la tcpdump-utilecon en la listo de antaŭinstalitaj, sed se iu kialo ne estas en via distribuo, vi ĉiam povas elŝuti kaj instali ĝin per "Terminalo". Se via VIN baziĝas sur Debian, kaj ĉi tiuj estas Ubuntu, Linukso Mint, Kali Linukso kaj similaj, vi devas funkciigi ĉi tiun komandon:
sudo apt instali tcpdump
Kiam vi instalas, vi devas enigi pasvorton. Bonvolu noti, ke kiam oni markas, ĝi ne estas montrata, vi ankaŭ devas eniri D kaj alklaku Eniru.
Se vi havas Red Hat, Fedora aŭ CentOS, tiam la instala komando aspektos jene:
sudo yam instali tcpdump
Post kiam la utileco estas instalita, ĝi tuj povas esti uzata. Ĉi tio kaj multe pli estos diskutitaj poste en la teksto.
Vidu ankaŭ: PHP-Instala Gvidilo sur Ubuntu-Servilo
Sintakso
Kiel ajna alia ordono, tcpdump havas sian propran sintakson. Sciante lin, vi povas agordi ĉiujn necesajn parametrojn, kiujn oni atentos dum ekzekuto de la komando. La sintakso estas jena:
tcpdump-opcioj -i interfacaj filtriloj
Kiam vi uzas la komandon, vi devas specifi la interfacon por spurado. Filtriloj kaj elektoj estas laŭvolaj variabloj, sed ili permesas pli flekseblan agordadon.
Ebloj
Kvankam ne necesas indiki elekton, vi ankoraŭ bezonas listigi la disponeblajn. La tablo ne montras ilian tutan liston, sed nur la plej popularajn, sed ili pli ol sufiĉas por solvi la plej multajn taskojn.
Eblo | Difino |
---|---|
-A | Permesas ordigi pakojn kun formato ASCII |
-l | Aldonas rulan funkcion. |
-i | Post eniro, vi devas precizigi la retan interfacon, kiu estos kontrolata. Por komenci monitori ĉiujn interfacojn, enigu la vorton "ajn" post la opcio |
-c | Finas la spuran procezon post kontrolado de la specifita nombro da paketoj |
-w | Generas tekstodosieron kun konfirmraporto |
-e | Montras nivelon de interreta konekto de datumoj |
-L | Vidigas nur tiujn protokolojn, kiujn la specifita reto-interfaco subtenas. |
-C | Krei alian dosieron dum paka registrado se ĝia grandeco estas pli granda ol la specifita |
-r | Malfermas legodosieron kreitan per la opcio -w |
-j | Formato TimeStamp estos uzata por registri pakaĵojn |
-J | Permesas vin vidi ĉiujn disponeblajn formatojn de TimeStamp |
-G | Servas por krei protokolan dosieron. La opcio ankaŭ postulas provizoran valoron, post kiu nova ŝtipo estos kreita |
-v, -vv, -vvv | Depende de la nombro de signoj en la opcio, la eligo de la komando fariĝos pli detala (la kresko estas rekte proporcia al la nombro de signoj) |
-f | La eligo montras la domajnan nomon de IP-adresoj |
-F | Permesas legi informon ne de la reta interfaco, sed de la specifita dosiero |
-D | Pruvas ĉiujn retajn interfacojn uzeblajn. |
-n | Malaktivas la montradon de domaj nomoj |
-Z | Specifas la uzanton sub kies konto ĉiuj dosieroj estos kreitaj. |
-K | Salta Analizo de Ŝako |
-q | Resuma Spektaklo |
-H | Detektas kapojn de 802.11s |
-Mi | Uzita kiam kaptado de paketoj en monitora reĝimo |
Ekzameninte la elektojn, iom pli malaltaj ni iros rekte al iliaj aplikoj. Intertempe oni konsideros filtrilojn.
Filtriloj
Kiel dirite en la komenco de la artikolo, vi povas aldoni filtrilojn al la tcpdump-sintakso. Nun la plej populara el ili estos konsiderata:
Filtrilo | Difino |
---|---|
gastiganto | Specifas la gastigilon |
reto | Indikas IP-subretojn kaj retojn |
ip | Specifas la protokolan adreson |
src | Montras pakaĵojn kiuj estis senditaj de la specifita adreso |
dst | Montras pakaĵojn ricevitajn de la specifita adreso |
arp, udp, tcp | Filtrilo laŭ unu el la protokoloj |
haveno | Montras informojn rilatajn al specifa haveno |
kaj, aŭ | Kombinas plurajn filtrilojn komande. |
malpli granda | Ellasitaj pakaĵoj pli malgrandaj aŭ pli grandaj ol la specifita grandeco |
Ĉiuj ĉi-supraj filtriloj povas esti kombinitaj unu kun la alia, do en la eldono de la komando vi nur vidos la informojn, kiujn vi volas vidi. Por kompreni pli detale la uzon de la supraj filtriloj, indas doni ekzemplojn.
Vidu ankaŭ: Ofte Uzataj Komandoj en la Linuksa Terminalo
Uzaj Ekzemploj
Ofte uzataj sintakso por la komando tcpdump nun estos montritaj. Ĉiuj ili ne povas esti listigitaj, ĉar povas esti senfina nombro de iliaj variaĵoj.
Vidu liston de interfacoj
Estas rekomendinde, ke ĉiu uzanto komence kontrolu la liston de ĉiuj siaj retaj interfacoj, kiujn oni povas spuri. El la supra tabelo ni scias, ke por tio vi devas uzi la opcion -D, do en la fina stacio, ekzekutu la jenan komandon:
sudo tcpdump -D
Ekzemplo:
Kiel vi povas vidi, la ekzemplo havas ok interfacojn videblajn per la komando tcpdump. La artikolo provizos ekzemplojn per ppp0Vi povas uzi iun alian.
Normala kaptado de trafiko
Se vi bezonas spuri unu retan interfacon, vi povas fari tion per la opcio -i. Ne forgesu enmeti la nomon de la interfaco post eniri ĝin. Jen ekzemplo de tia ordono:
sudo tcpdump -i ppp0
Bonvolu noti: antaŭ la komando vi devas eniri "sudo", ĉar ĝi postulas rajtojn de superusanto.
Ekzemplo:
Noto: post premi Enter en la "Terminalo", interkaptitaj pakaĵoj aperos konstante. Por ĉesigi ilian fluon, vi devas premi la klavkombinon Ctrl + C.
Se vi ekzekutas la komandon sen aldonaj opcioj kaj filtriloj, vi vidos la sekvan formaton por montri monitoritajn pakaĵojn:
22: 18: 52.597573 IP vrrp-topf2.p.mail.ru.https> 10.0.6.67.35482: flagoj [P.], sek. 1: 595, ack 1118, gajnu 6494, opcioj [nop, nop, TS val 257060077 ecr 697597623], longeco 594
Kie la koloro estas emfazita:
- blua - la tempo por ricevi la pakaĵon;
- oranĝa - protokola versio;
- verda - sendanto-adreso;
- violo - la adreso de la adresato;
- griza - aldonaj informoj pri tcp;
- ruĝa - grandeco de paketoj (montrita en bajtoj).
Ĉi tiu sintakso havas la eblecon montri en fenestro. "Terminalo" sen uzi aldonajn eblojn.
Trafika kaptado kun la opcio -v
Kiel oni scias de la tablo, la opcio -v permesas pliigi la kvanton da informoj. Ni prenu ekzemplon. Kontrolu la saman interfacon:
sudo tcpdump -v -i ppp0
Ekzemplo:
Jen vi povas vidi, ke la sekva linio aperis en la eligo:
IP (tos 0x0, ttl 58, id 30675, kompensas 0, flagoj [DF], proto TCP (6), longeco 52
Kie la koloro estas emfazita:
- oranĝa - protokola versio;
- blua - protokola vivdaŭro;
- verda - la longo de la kampa kaplinio;
- purpura - tcp-paka versio;
- ruĝa - grandeco de paketo.
Ankaŭ en la komanda sintakso vi povas skribi opcion -vv aŭ -vvv, kiu plue pliigos la kvanton da informoj montritaj sur la ekrano.
Eblo -w kaj -r
La tabelo pri opcioj menciis la eblon konservi la tutan eliron en apartan dosieron, por ke vi povu poste vidi ĝin. La opcio respondecas pri ĉi tio. -w. Uzi ĝin estas sufiĉe simpla, nur specifu ĝin en la komando, kaj tiam enigu la nomon de la estonta dosiero kun la etendo ".pcap". Ni rigardu ekzemplon:
sudo tcpdump -i ppp0 -w file.pcap
Ekzemplo:
Bonvolu noti: dum skribado de ŝtipoj al dosiero, neniu teksto aperas sur la ekrano "Terminalo".
Kiam vi volas vidi la registritan eliron, vi devas uzi la opcion -r, post kio skribu la nomon de la antaŭe registrita dosiero. Ĝi estas uzata sen aliaj opcioj kaj filtriloj:
sudo tcpdump -r file.pcap
Ekzemplo:
Ambaŭ ĉi tiuj elektoj bonas en kazoj, kie vi devas ŝpari grandajn kvantojn de teksto por posta analizado.
IP-Filtrado
El la filtrila tablo ni scias tion dst permesas al vi aperigi sur la konzola ekrano nur tiujn pakaĵojn ricevitajn de la adreso specifita en la komanda sintakso. Tiel, estas tre oportune vidi la pakaĵojn ricevitajn de via komputilo. Por fari tion, la teamo nur bezonas precizigi sian IP-adreson:
sudo tcpdump -i ppp0 ip dst 10.0.6.67
Ekzemplo:
Kiel vi povas vidi, krom dst, ni ankaŭ registris filtrilon en la teamo ip. Alivorte, ni diris al la komputilo, ke elektinte pakaĵojn, ĝi atentos ilian IP-adreson, kaj ne al aliaj parametroj.
Per IP, vi ankaŭ povas filtri elirantajn pakaĵojn. Ni donos nian IP-on denove en la ekzemplo. Tio estas, nun ni spuros, kiuj pakaĵoj sendiĝas de nia komputilo al aliaj adresoj. Por fari tion, ekzekutu la jenan komandon:
sudo tcpdump -i ppp0 ip src 10.0.6.67
Ekzemplo:
Kiel vi povas vidi, en la komanda sintakso ni ŝanĝis la filtrilon dst sur src, tial diris al la maŝino serĉi sendilon super IP.
HOST Filtrado
Analogie kun IP en la komando, ni povas specifi filtrilon gastigantofiltri pakaĵojn kun la gastiganto. Tio estas, ke en la sintakso, anstataŭ la IP-adreso de la sendanto / ricevilo, vi bezonos precizigi ĝian gastiganton. Ĝi aspektas jene:
sudo tcpdump -i ppp0 dst host google-public-dns-a.google.com
Ekzemplo:
En la bildo vi povas vidi tion en "Terminalo" nur tiuj pakaĵoj senditaj de nia IP al google.com-gastiganto estas montritaj. Kiel vi povas kompreni, anstataŭ la google-gastiganto, vi povas eniri iun ajn alian.
Kiel ĉe IP-filtrado, la sintakso dst anstataŭeblas per srcPor vidi la pakojn senditajn al via komputilo:
sudo tcpdump -i ppp0 src host google-public-dns-a.google.com
Notu: la gastiganta filtrilo devas esti post dst aŭ src, alie la komando ĵetos eraron. Kaze de filtrado per IP, kontraŭe, dst kaj src estas antaŭ la ip-filtrilo.
Aplikante la kaj kaj aŭ filtrilon
Se vi bezonas uzi plurajn filtrilojn samtempe, tiam vi devas apliki filtrilon kaj aŭ aŭ (dependas de la kazo) Specifante filtrilojn en la sintakso kaj disigante ilin kun ĉi tiuj telefonistoj, vi igos ilin funkcii kiel unu. Ekzemple, ĝi aspektas tiel:
sudo tcpdump -i ppp0 ip dst 95.47.144.254 aŭ ip src 95.47.144.254
Ekzemplo:
La komanda sintakso montras tion, kion ni volas aperigi "Terminalo" ĉiuj pakaĵoj, kiuj estis senditaj al la adreso 95.47.144.254 kaj pakaĵoj ricevitaj de la sama adreso. Vi ankaŭ povas ŝanĝi iujn variablojn en ĉi tiu esprimo. Ekzemple, anstataŭ IP, indiku HOST aŭ rekte anstataŭigu la adresojn mem.
Haveno kaj aranĝa filtrilo
Filtrilo haveno perfekta en kazoj, kie vi bezonas akiri informojn pri pakaĵoj kun specifa haveno. Do, se vi nur bezonas vidi respondojn aŭ demandojn pri DNS, vi devas precizigi la havenon 53:
sudo tcpdump -vv -i ppp0 haveno 53
Ekzemplo:
Se vi volas vidi http-pakaĵojn, vi devas eniri la havenon 80:
sudo tcpdump -vv -i ppp0 haveno 80
Ekzemplo:
Inter aliaj eblas tuj spuri la gamon de havenoj. Filtro aplikas ĉi tion. aranĝi:
sudo tcpdump portrange 50-80
Kiel vi povas vidi, kune kun la filtrilo aranĝi laŭvolaj opcioj estas bezonataj. Nur agordi la intervalon.
Protokola Filtrado
Vi ankaŭ povas montri nur trafikon kiu kongruas kun iu ajn protokolo. Por fari tion, uzu la nomon de ĉi tiu protokolo kiel filtrilon. Ni rigardu ekzemplon udp:
sudo tcpdump -vvv -i ppp0 udp
Ekzemplo:
Kiel vi povas vidi en la bildo, post ekzekuto de la komando en "Terminalo" nur pakaĵoj kun la protokolo estis montritaj udp. Laŭe vi povas filtri laŭ aliaj, ekzemple, arp:
sudo tcpdump -vvv -i ppp0 arp
aŭ ĉp:
sudo tcpdump -vvv -i ppp0 tcp
Neta filtrilo
Funkciigisto reto helpas filtri pakaĵojn surbaze de ilia reta nomado. Uzado de ĝi estas tiel simpla kiel la resto - vi devas precizigi atributon en la sintakso reto, tiam enigu la retan adreson. Jen ekzemplo de tia ordono:
sudo tcpdump -i ppp0 net 192.168.1.1
Ekzemplo:
Filtrilo de pakaĵoj
Ni ne konsideris du pli interesajn filtrilojn: malpli kaj pli granda. De la tablo kun filtriloj, ni scias, ke ili utilas por elsendi datumajn pakaĵojn pli (malpli) aŭ malpli (pli granda) la grandeco specifita post eniro de la atributo.
Supozu, ke ni volas monitori nur pakaĵojn, kiuj ne superas la 50-bitan markon, tiam la komando aspektos jene:
sudo tcpdump -i ppp0 malpli 50
Ekzemplo:
Nun ni montru "Terminalo" pakaĵoj pli grandaj ol 50 bitoj:
sudo tcpdump -i ppp0 pli granda 50
Ekzemplo:
Kiel vi povas vidi, ili aplikas same, la sola diferenco estas en la nomo de la filtrilo.
Konkludo
Je la fino de la artikolo, ni povas konkludi, ke la teamo tcpdump - Ĉi tio estas bonega ilo per kiu vi povas spuri ajnajn datumajn pakaĵojn transdonitajn per interreto. Sed por tio ne sufiĉas nur enmeti la komandon mem "Terminalo". La dezirata rezulto estos akirita nur se vi uzas ĉiuspecajn eblojn kaj filtrilojn, kaj ankaŭ iliajn kombinaĵojn.