Se vi bezonas analizi aŭ interkapti retajn pakaĵojn en Linukso, estas plej bone uzi la konzolan utilecon por ĉi tio. tcpdump. Sed la problemo ekestas pro ĝia iom komplika administrado. I ŝajnos malkonvena por ordinara uzanto labori kun la ilo, sed ĉi tio estas nur unuavide. La artikolo klarigos, kiel tcpdump estas organizita, kia sintakso ĝi havas, kiel uzi ĝin, kaj multaj ekzemploj de ĝia uzo estos donitaj.
Vidu ankaŭ: Instruo por agordi interretan konekton en Ubuntu, Debian, Ubuntu-servilo
Instalado
Plej multaj programistoj bazitaj en Linukso inkluzivas la ilon tcpdump en la listo de antaŭ-instalitaj, sed se pro iu kialo ĝi ne estas en via distribuo, vi ĉiam povas elŝuti kaj instali ĝin per "Terminalo". Se via OS estas bazita sur Debiano, kaj ĉi tio estas Ubuntu, Linukso Monfarejo, Kali Linukso kaj simile, vi bezonas funkciigi ĉi tiun komandon:
Sudo apt install tcpdump
Kiam vi instalas, vi devas enigi pasvorton. Bonvolu noti, ke tajpado de ĝi ne estas montrata, ankaŭ por konfirmi la instaladon, vi devas enigi la karakteron "D" kaj premu Eniru.
Se vi havas Red Hat, Fedora aŭ CentOS, la instalado komando aspektos tiel:
Sudo yam instalas tcpdump
Post kiam la ilo estas instalita, vi povas tuj uzi ĝin. Ĉi tio kaj multe pli diskutos poste en la teksto.
Vidu ankaŭ: PHP-instalado-Gvidilo por Ubuntu-servilo
Sintakso
Kiel ajna alia komando, tcpdump havas sian propran sintakson. Konante lin, vi povas agordi ĉiujn necesajn parametrojn, kiuj estos konsiderataj dum ekzekuto de la komando. La sintakso estas:
tcpdump-opcioj -i interfacaj filtriloj
Kiam vi uzas la komandon, vi devas specifi la interfacon por spuri. Filtriloj kaj opcioj ne estas devigaj variabloj, sed ili permesas pli flekseblan agordon.
Opcioj
Kvankam ne necesas specifi la opcion, ankoraŭ necesas listigi la disponeblajn. La tabelo ne montras sian tutan liston, sed nur la plej popularajn, sed ili estas pli ol sufiĉaj por solvi plej multajn taskojn.
Opcio | Difino |
---|---|
-A | Permesas ordigi pakaĵojn en ASCII-formato |
-l | Aldonas movan funkcion. |
-i | Post eniro vi devas specifi la retan interfacon, kiu estos kontrolata. Por komenci spuri ĉiujn interfacojn, tajpu la vorton "iu" post la opcio. |
-c | Finu la spuradon post kontrolado de la specifa nombro de pakaĵoj. |
-w | I generas tekstan dosieron kun konfirm-raporto. |
-e | Montras la reton interan nivelon de la datumaj pakaĵoj. |
-L | Montras nur tiujn protokolojn subtenitajn de la specifa reto interfaco. |
-C | Kreas alian dosieron dum skribado de pako se ĝia grandeco estas pli granda ol la specifita. |
-r | Malfermas dosieron por legado kreita per la opcio -w. |
-j | TimeStamp-formato estos uzata por registri pakojn. |
-J | Permesas vidi ĉiujn disponeblajn formatojn TimeStamp |
-G | Uzata por krei dosieron kun protokoloj. La opcio ankaŭ postulas provizoran valoron, post kiu kreiĝos nova protokolo |
-v, -vv, -vvv | Depende de la nombro de karakteroj en la opcio, la eligo de la komando fariĝos pli detala (pliiĝo estas rekte proporcia al la nombro de karakteroj) |
-f | La eligo montras la domajnan nomon de la IP-adreso |
-F | Permesas legi informojn ne de la reto-interfaco, sed de la specifita dosiero |
-D | Pruvas ĉiujn retajn interfacojn uzeblajn. |
-n | Malaktivigas la montradon de domajnaj nomoj |
-Z | Specifas la uzanton sub kiu konto ĉiuj dosieroj kreiĝos. |
-K | Preterlasi kontrolan analizon |
-q | Pruvo de mallongaj informoj |
-H | Detektas 802.11-aj titolojn |
-Mi | Uzata dum kaptado de pakaĵoj en monitora reĝimo. |
Ekzamenis la opciojn, malsupre ni turnas rekte al iliaj aplikoj. Dume, filtriloj estos konsiderataj.
Filtriloj
Kiel menciite ĉe la komenco mem de la artikolo, vi povas aldoni filtrilojn al la tcpdump-sintakso. Nun la plej populara el ili estos konsiderata:
Filtrilo | Difino |
---|---|
gastiganto | Specifas la gastigantan nomon. |
net | Specifas la IP-reton kaj reton |
ip | Specifas la protokolon adreson |
src | Montras la pakaĵojn senditajn de la specifita adreso |
dst | Montras la pakaĵojn ricevitajn de la specifita adreso. |
arp, udp, tcp | Filtrado de unu el la protokoloj |
haveno | Montras informojn ligitajn al specifa haveno. |
kaj, aŭ | Uzata por kombini plurajn filtrilojn en komando. |
malpli, pli granda | Eliraj pakaĵoj pli malgrandaj aŭ pli grandaj ol la specifa grandeco |
Ĉiuj supre menciitaj filtriloj povas esti kombinitaj unu kun la alia, do en ordono vi observos nur la informojn, kiujn vi volas vidi. Por pli detale kompreni la uzon de ĉi-supraj filtriloj, indas doni ekzemplojn.
Vidu ankaŭ: Oftaj Uzataj Komandoj en Linukso-Terminalo
Ekzemploj de uzo
Ofte uzataj opcioj pri sintaksoj tcpdump nun listiĝos. Ĉiuj ili ne povas esti listigitaj, ĉar iliaj variadoj povas esti senfinaj.
Vidu interfacan liston
Oni rekomendas ke ĉiu uzanto komence kontrolu la liston de ĉiuj siaj retaj interfacoj, kiuj povas esti spuritaj. El la supra tabelo ni scias, ke por ĉi tio vi devas uzi la opcion -D, do en la terminalo kuras la sekvan ordonon:
sudo tcpdump -D
Ekzemplo:
Kiel vi povas vidi, estas ok interfacoj en la ekzemplo, kiun oni povas vidi uzante la ordonon tcpdump. La artikolo provizos ekzemplojn de ppp0, vi povas uzi iun ajn alian.
Normala trafiko
Se vi bezonas spuri unu retan interfacon, vi povas fari tion per la eblo -i. Ne forgesu enigi la interfacon nomon post enigi ĝin. Jen ekzemplo de ekzekuto de ĉi tiu komando:
sudo tcpdump -i ppp0
Bonvolu noti: vi devas eniri "sudo" antaŭ la komando mem, ĉar ĝi bezonas la rajton de la superuzulo.
Ekzemplo:
Noto: post premado de Eniga en la "Fina stacio", la kaptitaj pakoj montriĝos konstante. Por haltigi ilian fluon, vi devas premi la klavan kombinon Ctrl + C.
Se vi plenumas la komandon sen aldonaj opcioj kaj filtriloj, vi vidos la sekvan formaton por montri spuritajn pakaĵojn:
22:18:18 ecr 697597623], longo 594
Kie koloron reliefigas:
- blua - la tempo de ricevo de la pakaĵo;
- oranĝa - protokola versio;
- verda - adreso de la sendinto;
- purpuro - la adreso de la ricevinto;
- griza - aldona informo pri tcp;
- ruĝa - pakaĵa grandeco (montrita en bitokoj).
Ĉi tiu sintakso havas la kapablon eligi en la fenestro "Terminalo" sen la uzo de aldonaj opcioj.
Kapti trafikon per la opcio -v
Kiel estas konata de la tabelo, la opcio -v permesas vin pliigi la kvanton de informo. Ni konsideru ekzemplon. Kontrolu la saman interfacon:
sudo tcpdump -v -i ppp0
Ekzemplo:
Ĉi tie vi povas vidi, ke la sekva linio aperis en la eligo:
IP (tos 0x0, ttl 58, id 30675, ofseto 0, flagoj [DF], proto TCP (6), longo 52
Kie koloron reliefigas:
- oranĝa - protokola versio;
- blua - la vivo de la protokolo;
- verda - la longo de la kampa kaploko;
- purpuro - versio de la pakaĵo tcp;
- ruĝa - pakaĵa grandeco.
Ankaŭ en la sintaksa komando vi povas skribi la opcion -vv aŭ -vvv, kiu plialtigos la kvanton da informoj montrataj sur la ekrano.
La -w kaj -r opcio
La elekta tabelo menciis la eblon konservi ĉiujn eligaĵajn datumojn en aparta dosiero tiel ke ili poste videblas. La opcio respondecas pri tio. -w. I estas tre simpla uzi, simple enigu ĝin en la komandon kaj poste enmetu la nomon de la estonta dosiero kun la etendaĵo ".pcap". Konsideru ĉiun ekzemplon:
sudo tcpdump -i ppp0 -w dosiero.pcap
Ekzemplo:
Bonvolu noti: dum skribado de protokoloj al dosiero, neniu teksto aperas sur la ekrano "Fina stacio".
Kiam vi volas vidi la registritan eliron, vi devas uzi la opcion -rsekvita de la nomo de la antaŭe registrita dosiero. Withouti aplikiĝas sen aliaj opcioj kaj filtriloj:
sudo tcpdump -r dosiero.pcap
Ekzemplo:
Ambaŭ ĉi tiuj opcioj estas perfektaj en kazoj kie vi bezonas ŝpari grandajn kvantojn de teksto por posta analizo.
IP-filtrado
El la filtrila tablo ni scias tion dst permesas al vi montri sur la konzola ekrano nur tiujn pakaĵojn ricevitajn de la adreso indikita en la komandosistemo. Tiel, estas tre konvene vidi la pakojn ricevitajn de via komputilo. Por fari tion, la teamo nur bezonas specifi vian IP-adreson:
sudo tcpdump -i ppp0 ip dst 10.0.6.67
Ekzemplo:
Kiel vi povas vidi, krome dst, en la teamo, ni ankaŭ registris la filtrilon ip. Alivorte, ni diris al la komputilo, ke kiam li elektas pakojn, li atentus sian IP-adreson, kaj ne aliajn parametrojn.
Per IP, vi povas filtri kaj sendi pakojn. En la ekzemplo ni redonas nian IP-n. Tio estas, ni spuros nun kiujn pakoj estas senditaj de nia komputilo al aliaj adresoj. Por fari tion, rulu la sekvan ordonon:
sudo tcpdump -i ppp0 ip src 10.0.6.67
Ekzemplo:
Kiel vi povas vidi, ni ŝanĝis la filtrilon en la komandan sintakson. dst plu src, tiel dirante al la maŝino serĉi la sendinton per IP.
HOST-filtrado
Analoge kun IP en la teamo, ni povas specifi filtrilon gastigantoelterigi pakaĵojn kun la gastiganto. Tio estas, en la sintakso, anstataŭ la IP-adreso de la sendinto / ricevanto, vi devos specifi sian gastiganton. I aspektas tiel:
sudo tcpdump -i ppp0 dst gastiganto google-public-dns-a.google.com
Ekzemplo:
Sur la bildo vi povas vidi tion en "Terminalo" Nur tiuj pakoj senditaj de nia IP al google.com-gastiganto estas montrataj. Kiel vi povas vidi, anstataŭ google-gastiganto, vi povas eniri iun alian.
Kiel kun IP-filtrado, la sintakso estas: dst povas esti anstataŭigita per srcPor vidi la pakaĵojn senditajn al via komputilo:
sudo tcpdump -i ppp0 src gastiganto google-public-dns-a.google.com
Noto: la gastiganta filtrilo devas esti post dst aŭ src, alie la komando generos eraron. En la kazo de IP-filtrado, male, dst kaj src estas antaŭ la ip-filtrilo.
Filtrilo kaj kaj aŭ
Se vi bezonas uzi plurajn filtrilojn tuj en unu komando, tiam vi devas apliki filtrilon. kaj aŭ aŭ (dependas de la kazo). Specifante la filtrilojn en la sintakso kaj apartigante ilin kun ĉi tiuj operatoroj, vi "faras" ilin funkcii kiel unu. En ekzemplo, ĝi aspektas tiel:
sudo tcpdump -i ppp0 ip dst 95.47.144.254 aŭ ip src 95.47.144.254
Ekzemplo:
De la ordona sintakso oni povas vidi, ke ni volas montri "Terminalo" ĉiuj pakaĵoj senditaj al la adreso 95.47.144.254 kaj pakoj ricevitaj de la sama adreso. Vi povas ankaŭ ŝanĝi iujn variablojn en ĉi tiu esprimo. Ekzemple, anstataŭ IP, specifu HOST aŭ rekte anstataŭigi la adresojn.
Filtrigi havenon kaj aranĝi
Filtrilo haveno perfekta por kiam vi bezonas informojn pri pakaĵoj kun specifa haveno. Do, se vi nur bezonas vidi respondojn aŭ demandojn pri DNS, vi devas specifi la havenon 53:
sudo tcpdump -vv -i ppp0 haveno 53
Ekzemplo:
Se vi volas vidi http-pakaĵojn, vi devas eniri en havenon 80:
sudo tcpdump -vv -i ppp0 haveno 80
Ekzemplo:
Inter aliaj aferoj, estas eble spuri tuj la gamon de havenoj. Por fari tion, apliku la filtrilon portrange:
sudo tcpdump aranĝas 50-80
Kiel vi povas vidi, kune kun la filtrilo portrange Ne necesas specifi aldonajn eblojn. Nur starigu la teritorion.
Protokolfiltrado
Vi povas ankaŭ montri nur la trafikon, kiu respondas al 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 ekzekuti la komandon en "Terminalo" nur pakoj kun la protokolo estis montritaj udp. Sekve, vi povas filtri de aliaj, ekzemple, arp:
sudo tcpdump -vvv -i ppp0 arp
aŭ tcp:
sudo tcpdump -vvv -i ppp0 tcp
Filtrila reto
Telefonisto net helpas filtri pakaĵojn bazitajn sur la nomado de ilia reto. I estas tiel facile uzebla kiel la aliaj - vi devas specifi la atributon en la sintakso net, tiam eniru la retan adreson. Jen ekzemplo de tia ordono:
sudo tcpdump -i ppp0 pura 192.168.1.1
Ekzemplo:
Filtru laŭ pakaĵa grandeco
Ni ne konsideris du pli interesajn filtrilojn: malpli kaj pli granda. De la tabelo kun filtriloj, ni scias, ke ili servas por eligi pli da datumoj-pakojn (malpli) aŭ malplipli granda) la grandeco specifita post la enigo de la atributo.
Supozu, ke ni nur volas kontroli monistarojn, kiuj ne superas 50 bitojn, tiam la komando aspektos tiel:
sudo tcpdump -i ppp0 malpli 50
Ekzemplo:
Nun ni montru enen "Terminalo" pakoj pli grandaj ol 50 bitoj:
sudo tcpdump -i ppp0 pli granda 50
Ekzemplo:
Kiel vi povas vidi, ili estas uzataj same, la sola diferenco estas la nomo de la filtrilo.
Konkludo
Fine de la artikolo ni povas konkludi, ke la teamo tcpdump - Ĉi tiu estas bonega ilo per kiu vi povas spuri ajnan datuman pakaĵon elsenditan tra la interreto. Sed por ĉi tio ne sufiĉas nur eniri la komandon mem en "Terminalo". Por atingi la deziratan rezulton oni ricevos nur se vi uzas ĉiajn elektojn kaj filtrilojn, kaj ankaŭ iliajn kombinojn.