Introduksjon til Tcpdump

Introduksjon til Tcpdump

Hvis du kjører en server, vil du utvilsomt komme til et punkt hvor du trenger å fikse noen nettverksrelaterte problemer. Selvfølgelig ville det være lett å bare sende en e-post til supportavdelingen, men noen ganger må du skitne på hendene. I dette tilfellet tcpdumper verktøyet for den jobben. Tcpdump er en nettverkspakkeanalysator som kjører under kommandolinjen.

Denne artikkelen vil deles inn i tre deler:

  • Grunnleggende funksjoner.
  • Filtrering basert på visse trafikkegenskaper.
  • Et kort utdrag av de mer avanserte funksjonene (som logiske uttrykk, filtrering etter TCP-flagg).

Siden tcpdump ikke er inkludert i de fleste basissystemer, må du installere det. Imidlertid har nesten alle Linux-distribusjoner tcpdump i sine kjernelager. For Debian-baserte distribusjoner er kommandoen for å installere tcpdump:

apt-get install tcpdump

For CentOS/RedHat, bruk følgende kommando:

yum install tcpdump

FreeBSD tilbyr en forhåndsbygd pakke som kan installeres ved å utstede:

pkg install tcpdump

Det er også en port tilgjengelig, net/tcpdumpsom kan installeres via:

cd /usr/ports/net/tcpdump
make install clean

Hvis du kjører tcpdumputen noen argumenter, vil du bli slått med resultater. Å kjøre den på en nyopprullet instans her på Vultr i mindre enn fem sekunder gir følgende resultater:

2661 packets captured
2663 packets received by filter
0 packets dropped by kernel

Før du går inn på flere detaljer om hvordan du filtrerer inndata, bør du ta en titt på noen parametere som kan sendes til tcpdump:

  • -i- Spesifiserer grensesnittet du vil lytte på, for eksempel: tcpdump -i eth0.
  • -n- Ikke prøv å gjøre omvendte oppslag på IP-adresser, for eksempel: tcpdump -n(hvis du legger til en annen nvil tcpdump vise deg portnumre i stedet for navn).
  • -X- Vis innholdet i de innsamlede pakkene: tcpdump -X.
  • -c- Bare fangst xpakker, som xer et vilkårlig tall, tcpdump -c 10fanger for eksempel nøyaktig 10 pakker.
  • -v- Øk mengden pakkeinformasjon du blir vist, mer vs legg til mer ordlyd.

Hver av parametrene nevnt her kan kombineres sammen. Hvis du ønsket å fange 100 pakker, men bare på VPN-grensesnittet tun0, ville tcpdump-kommandoen se slik ut:

tcpdump -i tun0 -c 100 -X

Det er dusinvis (om ikke hundrevis) av alternativer i tillegg til de få, men de er de vanligste. Les gjerne tcpdumps manpage på systemet ditt.

Nå som du har en grunnleggende forståelse av tcpdump, er det på tide å se på en av tcpdumps mest fantastiske funksjoner: uttrykk. Uttrykk vil gjøre livet ditt mye enklere. De er også kjent som BPF- eller Berkeley-pakkefiltre. Ved å bruke uttrykk kan du selektivt vise (eller ignorere) pakker basert på visse egenskaper - som opprinnelse, destinasjon, størrelse eller til og med TCP-sekvensnummer.

Så langt har du klart å begrense søket til en viss mengde pakker på et bestemt grensesnitt, men la oss være ærlige her: det etterlater fortsatt for mye bakgrunnsstøy til å fungere effektivt med de innsamlede dataene. Det er der uttrykk spiller inn. Konseptet er ganske enkelt, så vi utelater den tørre teorien her og støtter forståelsen med noen praktiske eksempler.

Uttrykkene du sannsynligvis kommer til å bruke mest er:

  • host - Se etter trafikk basert på vertsnavn eller IP-adresser.
  • srceller dst- Se etter trafikk fra eller til en bestemt vert.
  • proto- Se etter trafikk av en bestemt protokoll. Fungerer for tcp, udp, icmp og andre. Å utelate protonøkkelordet er også mulig.
  • net - Se etter trafikk til/fra et visst utvalg av IP-adresser.
  • port - Se etter trafikk til/fra en bestemt havn.
  • greatereller less- Se etter trafikk som er større eller mindre enn en viss mengde byte.

Mens manpage for tcpdumpbare inneholder noen få eksempler, har manpage for pcap-filtersvært detaljerte forklaringer på hvordan hvert filter fungerer og kan brukes.

Hvis du vil se hvordan kommunikasjonen din med en bestemt server går, kan du hostfor eksempel bruke nøkkelordet (inkludert noen av parameterne ovenfra):

tcpdump -i eth0 host vultr.com

Noen ganger er det datamaskiner på nettverket som ikke respekterer MTU eller spammer deg med store pakker; å filtrere dem ut kan noen ganger være vanskelig. Uttrykk lar deg filtrere ut pakker som er større eller mindre enn et visst antall byte:

tcpdump -i eth0 -nn greater 128
or
tcpdump -i eth0 -nn less 32

Kanskje bare en viss havn er av interesse for deg. I dette tilfellet bruker du portuttrykket:

tcpdump -i eth0 -X port 21

Du kan også se etter portområder:

tcdump -i eth0 -X portrange 22-25

Siden NAT-gatewayer er ganske vanlige, kan du bare se etter destinasjonsporter:

tcpdump dst port 80

Hvis du ser på trafikk til webserveren din, vil du kanskje bare se på TCP-trafikk til port 80:

tcpdump tcp and dst port 80

Du spør deg sikkert hva søkeordet andgjør der. Godt spørsmål. Det bringer oss til den siste delen av denne artikkelen.

tcpdump tilbyr grunnleggende støtte for logiske uttrykk, mer spesifikt:

  • and/ &&- Logisk "og".
  • or/ ||- Logisk "eller".
  • not/ !- Logisk "ikke".

Sammen med muligheten til å gruppere uttrykk sammen, lar dette deg lage svært kraftige søk etter innkommende og utgående trafikk. Så la oss filtrere ut trafikk som kommer fra vultr.com på port 22 eller 443:

tcpdump -i eth0 src host vultr.com and (dst port 22 or 443)

Å kjøre dette på kommandolinjen vil gi deg følgende feil:

bash: syntax error near unexpected token `('

Det er fordi det er et forbehold: bashprøver å evaluere hver karakter den kan. Dette inkluderer den (og )tegn. For å unngå denne feilen bør du bruke enkle anførselstegn rundt det kombinerte uttrykket:

tcpdump -i eth0 'src host vultr.com and (dst port 22 or 443)'

Et annet nyttig eksempel: Når du feilsøker SSH-problemer med en av brukerne dine, vil du kanskje ignorere alt som er relatert til SSH-økten din:

tcpdump '!(host $youripaddress) && port 22)'

Igjen, brukstilfellene er uendelige, og du kan spesifisere i ekstreme dybder hva slags trafikk du vil se. Følgende kommando vil bare vise deg SYNACK-pakker av et TCP-håndtrykk:

tcpdump -i eth0 'tcp[13]=18'

Dette fungerer ved å se på den trettende forskyvningen til TCP-overskriften og den attende byten i den.

Hvis du kom deg helt hit, er du klar for de fleste brukstilfeller som vil dukke opp. Jeg kan knapt ta på overflaten uten å gå inn i for mange detaljer. Jeg anbefaler på det sterkeste at du eksperimenterer litt videre med de forskjellige alternativene og uttrykkene; og som vanlig: referer til manpage når du går deg vill.

Sist men ikke minst – et raskt tilbakeblikk. Husker du begynnelsen av denne artikkelen? Med tusenvis av pakker fanget i løpet av sekunder? Kraften til tcpdumpkan trimme det ned mye:

tcpdump -i eth0 tcp port 22

Resultatet er nå:

81 packets captured
114 packets received by filter
0 packets dropped by kerne

Dette er mye sunnere og lettere å feilsøke. Godt nettverk!


Sett opp Cacti på Debian Jessie

Sett opp Cacti på Debian Jessie

Introduksjon Cacti er et åpen kildekode overvåkings- og grafverktøy som er fullt basert på RRD-data. Gjennom Cacti kan du overvåke nesten alle typer enheter

Installer Lets Encrypt SSL på ett-klikks WordPress-appen

Installer Lets Encrypt SSL på ett-klikks WordPress-appen

Introduksjon Lets Encrypt er en sertifikatmyndighetstjeneste som tilbyr gratis TLS/SSL-sertifikater. Installasjonsprosessen forenkles av Certbot,

Sett opp iRedMail på Debian Wheezy

Sett opp iRedMail på Debian Wheezy

Bruker du et annet system? Denne opplæringen viser deg hvordan du installerer gruppevaren iRedMail på en ny installasjon av Debian Wheezy. Du bør bruke en serve

Tre gratis serverkontrollpaneler (hurtiginstallasjon)

Tre gratis serverkontrollpaneler (hurtiginstallasjon)

1. Virtualmin/Webmin Virtualmin er et kraftig og fleksibelt kontrollpanel for webhotell for Linux- og UNIX-systemer basert på den velkjente Open Source-nettbasen

Bruker skjermen på Ubuntu 14.04

Bruker skjermen på Ubuntu 14.04

Skjerm er et program som tillater flere bruk av terminalsesjoner i ett vindu. Dette lar deg simulere flere terminalvinduer der det ma

Bruke Logrotate til å administrere loggfiler

Bruke Logrotate til å administrere loggfiler

Introduksjon Logrotate er et Linux-verktøy som forenkler administrasjonen av loggfiler. Den kjører vanligvis en gang om dagen via en cron-jobb, og administrerer loggbasen

Installere Docker CE på Ubuntu 16.04

Installere Docker CE på Ubuntu 16.04

Bruker du et annet system? Docker er en applikasjon som gjør det mulig å distribuere programmer som kjøres som containere. Det ble skrevet i det populære Go-programmet

Patching the Dirty Cow Exploit på CentOS

Patching the Dirty Cow Exploit på CentOS

Hva er Dirty Cow (CVE-2016-5195)? Dirty Cow-sårbarheten utnyttes gjennom hvordan Linux behandler kode. Det gjør det mulig for en uprivilegert bruker å gai

Konfigurer en ikke-rootbruker med Sudo Access på Ubuntu

Konfigurer en ikke-rootbruker med Sudo Access på Ubuntu

Å ha bare én bruker, som er root, kan være farlig. Så la oss fikse det. Vultr gir oss friheten til å gjøre som vi vil med våre brukere og våre servere

Installer Adminer på Debian/Ubuntu

Installer Adminer på Debian/Ubuntu

Adminer er et lett alternativ til phpMyAdmin. Til sammenligning er dens totale pakkestørrelse 400 KB, mot 4,2 MB med phpMyAdmin. I motsetning til phpMyAdmin, som

Slik installerer du GoAccess på Ubuntu 16.04

Slik installerer du GoAccess på Ubuntu 16.04

Bruker du et annet system? GoAccess er en åpen kildekode-nettlogganalysator. Du kan bruke den til analyse av logger på sanntidsbasis i enten terminalen eller

Konfigurer Nagios på Ubuntu: Del 1 - Nagios Server

Konfigurer Nagios på Ubuntu: Del 1 - Nagios Server

Denne artikkelen er en del av en todelt serie om installasjon og konfigurering av Nagios på Ubuntu 14.04. Del 1: Nagios Server Del 2: Oversikt over ekstern vert Nagio

Sett opp tidssone og NTP på Ubuntu 14.04

Sett opp tidssone og NTP på Ubuntu 14.04

Vultr-servere kan ikke distribueres med tidssonen/datoen/klokkeslettet du trenger på serveren din. Heldigvis kan vi manuelt stille inn tidssonen for å forhindre problemer

Distribuer en Meteor-applikasjon på Ubuntu

Distribuer en Meteor-applikasjon på Ubuntu

Denne artikkelen vil lede deg gjennom distribusjon av Meteor-appen din til en Vultr VPS som kjører Ubuntu 14.04. Det kan også fungere på andre Linux-distribusjoner (forsøk a

Arbeide med Linux-funksjoner

Arbeide med Linux-funksjoner

Introduksjon Linux-funksjoner er spesielle attributter i Linux-kjernen som gir prosesser og binære kjørbare spesifikke rettigheter som er normale

Høy tilgjengelighet ved bruk av privat nettverk på Ubuntu 16.04 med Keepalived

Høy tilgjengelighet ved bruk av privat nettverk på Ubuntu 16.04 med Keepalived

Noen arkitekturer med høy tilgjengelighet krever en flytende IP-adresse. Denne funksjonaliteten er tilgjengelig på Vultr-plattformen når privat nettverk har bee

Konfigurer bare SFTP-brukerkontoer på Ubuntu 14

Konfigurer bare SFTP-brukerkontoer på Ubuntu 14

Innledning Enkelte scenarier krever at du oppretter brukere med lese- og skrivetilgang til en enkelt katalog kun via FTP. Denne artikkelen vil vise deg hvordan t

Slik konfigurerer du Node.js Persistent-applikasjoner på Ubuntu 16.04

Slik konfigurerer du Node.js Persistent-applikasjoner på Ubuntu 16.04

Node.js-applikasjoner er populære for deres evne til å skalere. Å kjøre flere samtidige prosesser på flere servere gir lavere ventetid og større oppetid

Overvåk enhetene dine ved å bruke LibreNMS på Ubuntu 16.04

Overvåk enhetene dine ved å bruke LibreNMS på Ubuntu 16.04

Bruker du et annet system? LibreNMS er et fullverdig åpen kildekode-nettverksovervåkingssystem. Den bruker SNMP for å hente data fra forskjellige enheter. En variant

Stopp DHCP fra å endre resolv.conf

Stopp DHCP fra å endre resolv.conf

For DHCP-brukere kan det hende du trenger å redigere /etc/resolv.conf for å bruke andre navneservere. Deretter, etter en periode (eller etter en omstart av systemet)

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Kunstig intelligens er ikke i fremtiden, det er her akkurat i nåtiden I denne bloggen Les hvordan kunstig intelligens-applikasjoner har påvirket ulike sektorer.

DDOS-angrep: en kort oversikt

DDOS-angrep: en kort oversikt

Er du også et offer for DDOS-angrep og forvirret over forebyggingsmetodene? Les denne artikkelen for å løse spørsmålene dine.

Har du noen gang lurt på hvordan hackere tjener penger?

Har du noen gang lurt på hvordan hackere tjener penger?

Du har kanskje hørt at hackere tjener mye penger, men har du noen gang lurt på hvordan tjener de den slags penger? la oss diskutere.

Revolusjonerende oppfinnelser fra Google som vil gjøre livet ditt enkelt.

Revolusjonerende oppfinnelser fra Google som vil gjøre livet ditt enkelt.

Vil du se revolusjonerende oppfinnelser fra Google og hvordan disse oppfinnelsene forandret livet til alle mennesker i dag? Les deretter til bloggen for å se oppfinnelser fra Google.

Fredag ​​Essential: Hva skjedde med AI-drevne biler?

Fredag ​​Essential: Hva skjedde med AI-drevne biler?

Konseptet med selvkjørende biler som skal ut på veiene ved hjelp av kunstig intelligens er en drøm vi har hatt en stund nå. Men til tross for flere løfter, er de ingen steder å se. Les denne bloggen for å lære mer...

Teknologisk singularitet: en fjern fremtid for menneskelig sivilisasjon?

Teknologisk singularitet: en fjern fremtid for menneskelig sivilisasjon?

Ettersom vitenskapen utvikler seg raskt og tar over mye av innsatsen vår, øker også risikoen for å utsette oss for en uforklarlig singularitet. Les hva singularitet kan bety for oss.

Evolusjon av datalagring – infografikk

Evolusjon av datalagring – infografikk

Lagringsmetodene for dataene har vært i utvikling kan være siden fødselen av dataene. Denne bloggen dekker utviklingen av datalagring på grunnlag av en infografikk.

Funksjonaliteter til Big Data Reference Architecture Layers

Funksjonaliteter til Big Data Reference Architecture Layers

Les bloggen for å kjenne ulike lag i Big Data Architecture og deres funksjoner på den enkleste måten.

6 fantastiske fordeler ved å ha smarte hjemmeenheter i livene våre

6 fantastiske fordeler ved å ha smarte hjemmeenheter i livene våre

I denne digitaldrevne verden har smarthusenheter blitt en avgjørende del av livet. Her er noen fantastiske fordeler med smarthusenheter om hvordan de gjør livet vårt verdt å leve og enklere.

macOS Catalina 10.15.4 tilleggsoppdatering forårsaker flere problemer enn å løse

macOS Catalina 10.15.4 tilleggsoppdatering forårsaker flere problemer enn å løse

Nylig lanserte Apple macOS Catalina 10.15.4 en tilleggsoppdatering for å fikse problemer, men det ser ut til at oppdateringen forårsaker flere problemer som fører til muring av mac-maskiner. Les denne artikkelen for å lære mer