Úvod do Tcpdump

Úvod do Tcpdump

Ak prevádzkujete server, nepochybne sa dostanete do bodu, keď budete musieť vyriešiť niektoré problémy súvisiace so sieťou. Samozrejme, bolo by jednoduché poslať e-mail na oddelenie podpory, ale niekedy si musíte zašpiniť ruky. V tomto prípade tcpdumpje to nástroj na túto prácu. Tcpdump je sieťový analyzátor paketov, ktorý beží pod príkazovým riadkom.

Tento článok bude rozdelený do troch častí:

  • Základné vlastnosti.
  • Filtrovanie na základe určitých charakteristík návštevnosti.
  • Krátky úryvok pokročilejších funkcií (ako sú logické výrazy, filtrovanie podľa príznakov TCP).

Keďže tcpdump nie je súčasťou väčšiny základných systémov, budete si ho musieť nainštalovať. Takmer všetky distribúcie Linuxu však majú tcpdump vo svojich základných archívoch. Pre distribúcie založené na Debiane je príkaz na inštaláciu tcpdump:

apt-get install tcpdump

Pre CentOS/RedHat použite nasledujúci príkaz:

yum install tcpdump

FreeBSD ponúka vopred zostavený balík, ktorý je možné nainštalovať vydaním:

pkg install tcpdump

K dispozícii je aj port, net/tcpdumpktorý je možné nainštalovať pomocou:

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

Ak budete bežať tcpdumpbez akýchkoľvek argumentov, budete zbití výsledkami. Spustenie na čerstvo roztočenej inštancii tu na Vultr na menej ako päť sekúnd poskytuje nasledujúce výsledky:

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

Predtým, ako prejdete do ďalších podrobností o tom, ako filtrovať vstup, mali by ste sa pozrieť na niektoré parametre, ktoré možno odovzdať tcpdump:

  • -i- Určuje rozhranie, na ktorom chcete počúvať, napríklad: tcpdump -i eth0.
  • -n- Nepokúšajte sa vykonávať spätné vyhľadávanie adries IP, napríklad: tcpdump -n(ak pridáte ďalší ntcpdump, namiesto mien vám ukáže čísla portov).
  • -X- Zobraziť obsah zozbieraných paketov: tcpdump -X.
  • -c- Zachytáva iba xpakety, xpričom ide o ľubovoľný počet, napríklad tcpdump -c 10zachytí presne 10 paketov.
  • -v- Zvýšte množstvo informácií o paketoch, ktoré sa vám zobrazujú, viac vs pridá viac výrečnosti.

Každý z týchto parametrov je možné kombinovať. Ak by ste chceli zachytiť 100 paketov, ale iba na vašom rozhraní VPN tun0, príkaz tcpdump by vyzeral takto:

tcpdump -i tun0 -c 100 -X

Okrem týchto niekoľkých možností existujú desiatky (ak nie stovky), no sú to tie najbežnejšie. Neváhajte a prečítajte si manuálovú stránku tcpdump vo svojom systéme.

Teraz, keď máte základné znalosti o tcpdump, je čas pozrieť sa na jednu z najúžasnejších funkcií tcpdump: výrazy. Výrazy vám výrazne uľahčia život. Sú tiež známe ako BPF alebo Berkeley Packet Filters. Používanie výrazov vám umožňuje selektívne zobrazovať (alebo ignorovať) pakety na základe určitých charakteristík – ako je pôvod, cieľ, veľkosť alebo dokonca poradové číslo TCP.

Zatiaľ sa vám podarilo obmedziť vyhľadávanie na určitý počet paketov na určitom rozhraní, ale buďme úprimní: stále to ponecháva príliš veľa hluku na pozadí na efektívnu prácu so zozbieranými údajmi. Tu prichádzajú na rad výrazy. Koncept je celkom jednoduchý, takže tu vynecháme suchú teóriu a podporíme pochopenie niekoľkými praktickými príkladmi.

Výrazy, ktoré budete pravdepodobne používať najčastejšie, sú:

  • host - Hľadajte návštevnosť na základe názvov hostiteľov alebo adries IP.
  • srcalebo dst- Vyhľadajte návštevnosť z alebo na konkrétneho hostiteľa.
  • proto- Vyhľadajte návštevnosť určitého protokolu. Funguje pre tcp, udp, icmp a ďalšie. protoJe tiež možné kľúčové slovo vynechať .
  • net - Vyhľadajte návštevnosť z určitého rozsahu adries IP.
  • port - Vyhľadajte premávku do/z určitého prístavu.
  • greateralebo less- Hľadajte prenos väčší alebo menší ako určitý počet bajtov.

Zatiaľ čo manuálová stránka tcpdumpobsahuje len niekoľko príkladov, manuálová stránka pcap-filtermá veľmi podrobné vysvetlenia, ako jednotlivé filtre fungujú a ako ich možno použiť.

Ak chcete vidieť, ako prebieha vaša komunikácia s určitým serverom, môžete použiť napríklad hostkľúčové slovo (vrátane niektorých vyššie uvedených parametrov):

tcpdump -i eth0 host vultr.com

Niekedy sú v sieti počítače, ktoré nerešpektujú MTU alebo vás spamujú veľkými paketmi; ich odfiltrovanie môže byť niekedy ťažké. Výrazy vám umožňujú odfiltrovať balíčky, ktoré sú väčšie alebo menšie ako určitý počet bajtov:

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

Možno je pre vás zaujímavý len určitý prístav. V tomto prípade použite portvýraz:

tcpdump -i eth0 -X port 21

Môžete sa tiež pozrieť na rozsahy portov:

tcdump -i eth0 -X portrange 22-25

Keďže brány NAT sú pomerne bežné, môžete hľadať iba cieľové porty:

tcpdump dst port 80

Ak sledujete návštevnosť vášho webového servera, možno sa budete chcieť pozrieť iba na prenos TCP na port 80:

tcpdump tcp and dst port 80

Pravdepodobne sa sami seba pýtate, čo tam kľúčové slovo androbí. Dobrá otázka. To nás privádza k poslednej časti tohto článku.

tcpdump ponúka základnú podporu pre logické výrazy, konkrétnejšie:

  • and/ &&- Logické "a".
  • or/ ||- Logické "alebo".
  • not/ !- Logické "nie".

Spolu so schopnosťou zoskupovať výrazy vám to umožňuje vytvárať veľmi výkonné vyhľadávania prichádzajúcej a odchádzajúcej návštevnosti. Poďme teda odfiltrovať návštevnosť prichádzajúcu z vultr.com na porte 22 alebo 443:

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

Ak to spustíte na príkazovom riadku, zobrazí sa nasledujúca chyba:

bash: syntax error near unexpected token `('

Je to preto, že existuje varovanie: bashsnaží sa ohodnotiť každú postavu, ktorú môže. To zahŕňa znaky (a ). Aby ste sa vyhli tejto chybe, mali by ste použiť jednoduché úvodzovky okolo kombinovaného výrazu:

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

Ďalší užitočný príklad: Pri ladení problémov s SSH s jedným z vašich používateľov možno budete chcieť ignorovať všetko, čo súvisí s vašou reláciou SSH:

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

Opäť platí, že prípady použitia sú nekonečné a môžete do extrémnych hĺbok špecifikovať, aký druh návštevnosti chcete vidieť. Nasledujúci príkaz vám ukáže iba SYNACK pakety TCP handshake:

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

Funguje to tak, že sa pozriete na trinásty offset hlavičky TCP a osemnásty bajt v nej.

Ak ste sa dostali až sem, ste pripravení na väčšinu prípadov použitia, ktoré nastanú. Sotva sa môžem dotknúť povrchu bez toho, aby som zachádzal do príliš veľa detailov. Dôrazne vám odporúčam experimentovať s rôznymi možnosťami a výrazmi o niečo ďalej; a ako obvykle: keď sa stratíte, pozrite si manuálovú stránku.

V neposlednom rade – rýchly pohľad späť. Pamätáte si začiatok tohto článku? S tisíckami paketov zachytených v priebehu niekoľkých sekúnd? Sila to tcpdumpmôže výrazne znížiť:

tcpdump -i eth0 tcp port 22

Výsledok je teraz:

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

Toto je oveľa rozumnejšie a ľahšie sa ladí. Šťastné vytváranie sietí!


Install Plesk on CentOS 7

Install Plesk on CentOS 7

Using a Different System? Plesk is a proprietary web host control panel that allows users to administer their personal and/or clients websites, databases

Install Lets Encrypt SSL on One-Click WordPress App

Install Lets Encrypt SSL on One-Click WordPress App

Introduction Lets Encrypt is a certificate authority service that offers free TLS/SSL certificates. The process of installation is simplified by Certbot,

Ako nastaviť klasický server Tekkit na Ubuntu 16.10

Ako nastaviť klasický server Tekkit na Ubuntu 16.10

Používate iný systém? Čo je Tekkit Classic? Tekkit Classic je modpack pre hru, ktorú každý pozná a miluje; Minecraft. Obsahuje niektoré z ver

Creating a Jekyll Blog on Ubuntu 16.04

Creating a Jekyll Blog on Ubuntu 16.04

Using a Different System? Jekyll is a great alternative to WordPress for blogging or sharing content. It doesnt require any databases and it is very easy i

Ako nastaviť bezobslužné aktualizácie na Debian 9 (Stretch)

Ako nastaviť bezobslužné aktualizácie na Debian 9 (Stretch)

Používate iný systém? Ak si zakúpite server Debian, mali by ste mať vždy najnovšie bezpečnostné záplaty a aktualizácie, či už spíte alebo nie

Ako nainštalovať a nakonfigurovať PHP 7.0 alebo PHP 7.1 na Ubuntu 16.04

Ako nainštalovať a nakonfigurovať PHP 7.0 alebo PHP 7.1 na Ubuntu 16.04

PHP a súvisiace balíky sú najčastejšie používané komponenty pri nasadzovaní webového servera. V tomto článku sa naučíme, ako nastaviť PHP 7.0 alebo PHP 7.1 o

Ako nainštalovať Squid Proxy na CentOS

Ako nainštalovať Squid Proxy na CentOS

Squid je populárny bezplatný linuxový program, ktorý vám umožňuje vytvoriť webový proxy server na presmerovanie. V tejto príručke uvidíte, ako nainštalovať Squid na CentOS, aby vás zmenil

Ako nainštalovať Lighttpd (LLMP Stack) na CentOS 6

Ako nainštalovať Lighttpd (LLMP Stack) na CentOS 6

Úvod Lighttpd je fork Apache, ktorého cieľom je byť oveľa menej náročný na zdroje. Je ľahký, odtiaľ jeho názov, a jeho použitie je celkom jednoduché. Installin

Tri bezplatné ovládacie panely servera (rýchla inštalácia)

Tri bezplatné ovládacie panely servera (rýchla inštalácia)

1. Virtualmin/Webmin Virtualmin je výkonný a flexibilný ovládací panel webhostingu pre systémy Linux a UNIX založený na známej webovej základni Open Source

Nastavenie aplikácie Yii na Ubuntu 14.04

Nastavenie aplikácie Yii na Ubuntu 14.04

Yii je rámec PHP, ktorý vám umožňuje rýchlejšie a jednoduchšie vyvíjať aplikácie. Inštalácia Yii na Ubuntu je jednoduchá, ako sa presne dozviete

Používanie obrazovky na Ubuntu 14.04

Používanie obrazovky na Ubuntu 14.04

Screen je aplikácia, ktorá umožňuje viacnásobné použitie terminálových relácií v rámci jedného okna. To vám umožňuje simulovať viacero okien terminálu, kde je to možné

Nastavte si svoj vlastný DNS server na Debian/Ubuntu

Nastavte si svoj vlastný DNS server na Debian/Ubuntu

Tento tutoriál vysvetľuje, ako nastaviť server DNS pomocou Bind9 na Debiane alebo Ubuntu. V celom článku podľa toho nahraďte názov vašej-domény.com. Pri th

Používanie Logrotate na správu protokolových súborov

Používanie Logrotate na správu protokolových súborov

Úvod Logrotate je nástroj pre Linux, ktorý zjednodušuje správu protokolových súborov. Zvyčajne beží raz denne prostredníctvom úlohy cron a spravuje základňu protokolov

Konfigurácia statickej siete a IPv6 na CentOS 7

Konfigurácia statickej siete a IPv6 na CentOS 7

VULTR nedávno vykonal zmeny na ich konci a všetko by teraz malo fungovať dobre po vybalení so zapnutým NetworkManagerom. Ak chcete deaktivovať

Úprava Icinga2 na použitie modelu Master/Client na CentOS 6 alebo CentOS 7

Úprava Icinga2 na použitie modelu Master/Client na CentOS 6 alebo CentOS 7

Icinga2 je výkonný monitorovací systém a pri použití v modeli master-client môže nahradiť potrebu monitorovacích kontrol založených na NRPE. Hlavný klient

Nastavte Red5 Media Server na Ubuntu 16.04

Nastavte Red5 Media Server na Ubuntu 16.04

Používate iný systém? Red5 je mediálny server s otvoreným zdrojom implementovaný v jazyku Java, ktorý vám umožňuje spúšťať aplikácie Flash pre viacerých používateľov, ako napríklad živé vysielanie

Ako nainštalovať Apache Cassandra 3.11.x na Ubuntu 16.04 LTS

Ako nainštalovať Apache Cassandra 3.11.x na Ubuntu 16.04 LTS

Používate iný systém? Apache Cassandra je bezplatný a otvorený systém správy databáz NoSQL, ktorý je navrhnutý tak, aby poskytoval škálovateľnosť, vysokú

Ako nainštalovať Vanilla Forum na Ubuntu 16.04

Ako nainštalovať Vanilla Forum na Ubuntu 16.04

Používate iný systém? Vanilla forum je open source aplikácia fóra napísaná v PHP. Je plne prispôsobiteľný, ľahko použiteľný a podporuje externé

Ako nainštalovať Kanboard na Ubuntu 18.04 LTS

Ako nainštalovať Kanboard na Ubuntu 18.04 LTS

Používate iný systém? Úvod Kanboard je bezplatný a otvorený softvérový program na riadenie projektov, ktorý je navrhnutý tak, aby uľahčil a vizualizoval

Ako nainštalovať Kanboard na Debian 9

Ako nainštalovať Kanboard na Debian 9

Používate iný systém? Úvod Kanboard je bezplatný a otvorený softvérový program na riadenie projektov, ktorý je navrhnutý tak, aby uľahčil a vizualizoval

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Umelá inteligencia nie je v budúcnosti, je tu priamo v súčasnosti V tomto blogu si prečítajte, ako aplikácie umelej inteligencie ovplyvnili rôzne sektory.

Útoky DDOS: Stručný prehľad

Útoky DDOS: Stručný prehľad

Ste aj vy obeťou DDOS útokov a máte zmätok ohľadom metód prevencie? Ak chcete vyriešiť svoje otázky, prečítajte si tento článok.

Zaujímalo vás niekedy, ako hackeri zarábajú peniaze?

Zaujímalo vás niekedy, ako hackeri zarábajú peniaze?

Možno ste už počuli, že hackeri zarábajú veľa peňazí, ale premýšľali ste niekedy nad tým, ako môžu zarábať také peniaze? poďme diskutovať.

Revolučné vynálezy od spoločnosti Google, ktoré vám uľahčia život.

Revolučné vynálezy od spoločnosti Google, ktoré vám uľahčia život.

Chcete vidieť revolučné vynálezy od Google a ako tieto vynálezy zmenili život každého dnešného človeka? Potom si prečítajte na blogu a pozrite si vynálezy spoločnosti Google.

Piatok Essential: Čo sa stalo s autami poháňanými AI?

Piatok Essential: Čo sa stalo s autami poháňanými AI?

Koncept samoriadených áut vyraziť na cesty s pomocou umelej inteligencie je snom, ktorý máme už nejaký čas. Ale napriek niekoľkým prísľubom ich nikde nevidno. Prečítajte si tento blog a dozviete sa viac…

Technologická singularita: vzdialená budúcnosť ľudskej civilizácie?

Technologická singularita: vzdialená budúcnosť ľudskej civilizácie?

Ako sa veda vyvíja rýchlym tempom a preberá veľa nášho úsilia, zvyšuje sa aj riziko, že sa vystavíme nevysvetliteľnej singularite. Prečítajte si, čo pre nás môže znamenať singularita.

Vývoj ukladania dát – Infografika

Vývoj ukladania dát – Infografika

Spôsoby ukladania údajov sa môžu vyvíjať už od zrodu údajov. Tento blog sa zaoberá vývojom ukladania údajov na základe infografiky.

Funkcionality vrstiev referenčnej architektúry veľkých dát

Funkcionality vrstiev referenčnej architektúry veľkých dát

Prečítajte si blog, aby ste čo najjednoduchším spôsobom spoznali rôzne vrstvy architektúry veľkých dát a ich funkcie.

6 úžasných výhod toho, že máme v živote inteligentné domáce zariadenia

6 úžasných výhod toho, že máme v živote inteligentné domáce zariadenia

V tomto digitálnom svete sa inteligentné domáce zariadenia stali kľúčovou súčasťou života. Tu je niekoľko úžasných výhod inteligentných domácich zariadení o tom, ako robia náš život, ktorý stojí za to žiť, a ktorý zjednodušujú.

Aktualizácia doplnku macOS Catalina 10.15.4 spôsobuje viac problémov, ako ich rieši

Aktualizácia doplnku macOS Catalina 10.15.4 spôsobuje viac problémov, ako ich rieši

Spoločnosť Apple nedávno vydala doplnkovú aktualizáciu macOS Catalina 10.15.4 na opravu problémov, ale zdá sa, že táto aktualizácia spôsobuje ďalšie problémy, ktoré vedú k blokovaniu počítačov Mac. Prečítajte si tento článok a dozviete sa viac