A csomag-szippantás alapjai a hálózati hibaelhárításhoz

A csomagrögzítések végrehajtása szippantóval rendkívül hatékony módszer lehet az összetett problémák diagnosztizálásában. Ha minden más kudarcot vall, gyakran hasznos megnézni a vezetéken keresztül küldött nyers adatokat. A csomagok nem hazudnak, és az alkalmazásforgalom alacsony szintű elemzése felfedheti a probléma mélyebb tüneteit (vagy olyan problémát, amelyről nem is tudtad, hogy létezett).

Ebben a cikkben A CLI-alapú tcpdump eszköz használatának néhány alapját áttekintem.

A szippantás alapjai

Tehát először a dolgok először: Mit értünk, amikor azt mondjuk, hogy “csomagszippantó?” A csomagszippantó egyszerűen egy szoftver, amely lehetővé teszi csomagok elfogását a hálózaton. A Tcpdump és a Wireshark példák a csomagszippantókra. A Tcpdump egy CLI csomagszippantót, a Wireshark pedig egy funkciókban gazdag GUI-t biztosít a csomagok szippantásához és elemzéséhez.

Alapértelmezés szerint a tcpdump váltakozóan működik. Ez egyszerűen azt jelenti, hogy az összes gazdagépet elérő csomagot a tcpdump címre küldjük ellenőrzésre. Ez a beállítás olyan forgalmat is tartalmaz, amely nem annak a gazdagépnek volt szánva, amelyen rögzít, például a sugárzás és a multicast forgalom. Természetesen a tcpdump nem valami varázslatos szoftver: csak azokat a csomagokat képes megragadni, amelyek valahogy eljutnak a számítógép fizikai felületeihez.

Telepítés A tcpdump egyszerű. Ez elérhető a Red Hat rendszer szabványos csomagtáraiban, és név szerint telepítheti:

Általános csomagszippantási forgatókönyvek

A gépedre érkező összes forgalom megragadása elképzelés szerint hűvösnek tűnhet, de meglehetősen alacsony szinten hangzik sok olyan tevékenység esetében is, amelyet mindennapi munkánk során rendszergazdaként végzünk. Szóval, mikor használna csomagrögzítő eszközt? Jellemzően csomagszippantóhoz fordulok, amikor hibaelhárítom a hálózati alkalmazás problémáját, és minden más lehetőséget kimerítettem. Gyakran már elvégeztem az alapvető hálózati hibaelhárítást és áttekintettem az alkalmazásnaplófájlokat, de még mindig nem tudok a kérdés végére jutni. Ezen a ponton tanulságos lehet egy csomagszippantó feltörése a vezetéken küldött tényleges adatok megfigyelésére.

A csomagszippantók másik nagyszerű felhasználási lehetősége pedagógiai. Az alkalmazáscserében részt vevő csomagok figyelése nagyban hozzájárulhat az alapul szolgáló protokollok megértésének javításához. Például felbecsülhetetlen lehet egy rekurzív DNS-lekérdezés teljes csomagfolyamának megfigyelése, amikor megpróbálja megérteni a DNS működését.

Alapvető csomagrögzítések végrehajtása

A tanulás legjobb módja azzal, hogy csak belemerül, tehát kezdjünk el néhány alapvető csomagrögzítéssel. Először próbáljuk ki a tcpdump -t különösebb lehetőségek nélkül. Ne feledje, hogy a csomagrögzítések végrehajtásához főként felhasználónak kell lennie (technikailag futtathatja azt egy speciális fiókkal, speciális képességekkel, de általában egyszerűbb rootként futtatni). Használja a Ctrl + C billentyűkombinációt, vagy küldjön SIGTERM-et a tcpdump folyamatazonosítóra (PID) a rögzítés leállításához.

Alapértelmezett tcpdump

lásd a tcpdump alapértelmezett kimenetét, egyszerűen írja be a parancsot:

Megjegyzés: A Ctrl + C megnyomása előtt sok kimenet repülése helyett megadhatja hány csomagot szeretne látni a -c zászlóval. A fenti parancs ehelyett tcpdump -c 6 lehet, hogy ugyanazokat az eredményeket kapja (hat csomagot rögzítettek).

A kimenet a tcpdump eleinte kissé ijesztő lehet, de megszokja, hogy ezt megnézi, miután néhányszor használta már ezt az eszközt. Bontjuk le a mezőket balról jobbra:

Egy adott felület szippantása

Vegye figyelembe, hogy az előző példa kimenetének tetején látható az a felület, amely tcpdump elkezdi a rögzítést (eth0), és a rögzítés alja összefoglaló statisztikákat tartalmaz a rögzített csomagokról.

Az első dolog, amit valószínűleg meg kell tennie a tcpdump egy adott interfészt ad meg a rögzítések végrehajtásához. Alapértelmezés szerint a tcpdump kiválasztja a legkevésbé “felfelé” kezelt felületet. Sok kiszolgálónak több felülete van, és Önnek egyértelműnek kell lennie a rögzítéshez használt felületről. Ezenkívül néhány “speciális” felülettípus, például egy netfilter felület lebeghet a lista tetején. Ez a viselkedés zavart okozhat, ezért a legjobb, ha megadja az érdeklődő felületet.

Kezdjük azzal, hogy megnézzük a rögzítésre rendelkezésre álló felületeket:

a rendelkezésünkre álló interfészek, most megadhatjuk a hallgatni kívánt interfészt a -i zászlóval.Ne feledje, hogy vagy az interfész neve, vagy a --list-interfaces parancs száma felhasználható:

A fenti rögzítéseket megtekintve alapvető információkkal szolgálunk a csomagjainkon. hálózat. Úgy tűnik, hogy ezek a csomagok tartalmazzák a Spanning Tree Protocol (STP) kimenetet, talán egy upstream kapcsolóból. Technikailag ezek nem csomagok, hanem két képkocka. A csomagfogások megvitatásakor azonban hallani fogja a felcserélhető kifejezéseket.

További információk beszerzése

Az előző példa egyszerű hibaelhárítási eredménye kiváló lehet a nyilvánvaló problémák azonosításához, de néha szükségünk van rá. További információk ahhoz, hogy valóban belemerülhessen egy összetett problémába. Fontos tudni az elfogás részletességének beállítását, mivel ez lehetővé teszi, hogy mélyebben belemélyedjen a csomagok tényleges adataiba.

A tcpdump úgy vezérelhető, hogy egy és három -v zászlót hozzáfűznek a parancshoz:

Vegye figyelembe, hogy a maximális bőbeszédűség megadásával sokkal több információt láthatok a csomagtest. Fentebb további információkat láthatunk az STP csomagban lévő adatokról, például a gyökér híd azonosítójáról és a gyökér útjának költségéről. Ha nem ismeri az STP-t, ne aggódjon miatta. Fontos megjegyezni, hogy a szóhasználat növelésével további információkat kaphatunk a hálózati forgalmunkról.

A csomag pontos bájtjainak megtekintése

A bőbeszédűség növelése hasznos, de még mindig nem látom a csomagok húsát. Ha valóban szeretné látni a csomagokban található pontos bájtokat, használhatja a -x és a -X jelzőket. A -x zászló hexadecimálisan kinyomtatja az egyes csomagok adatait, míg a -X zászló az adatokat ASCII-ben is kinyomtatja. Itt van a kimenet a -x használatával:

És itt van a :

Figyelje meg a hexa és ASCII adatokat a fenti példákban. Ebben az esetben DNS A rekord lekérdezést hajtottam végre az fájlban. Vegye figyelembe azt is, hogy a -c jelzőt használtam a rögzítendő csomagok számának megadásához, és a port 53 rögzítési szűrőt adtam meg. A szűrőket a következő cikkben tárgyaljuk.

A számok kitartása

Mivel a tcpdump címmel dolgozik, észreveheti az alapértelmezett viselkedése az, hogy az IP-címeket automatikusan teljesen minősített tartománynevekre (FQDN-ekre) bontja. A Tcpdump a portszámokat (például 22) barátságos nevekké (például SSH) is lefordítja. Bár ez a viselkedés kedves, gyakran szeretnénk látni a numerikus adatokat, hogy semmilyen módon ne takarja el a hibaelhárításunkat. Ez az alapértelmezett viselkedés megváltoztatható úgy, hogy átadja az -n -t az IP-címek keresésének letiltásához, vagy az -nn átadását az IP-címek és a portok keresésének letiltásához. / p>

Itt van az eredmény, ha -nn -t használ:

A dump mentése

Egy bizonyos ponton érdemes lehet csomagmentéseit későbbi elemzés céljából vagy mélyebb elemzés céljából elmentheti egy olyan grafikus eszközzel, mint a Wireshark. Ez a feladat könnyen elvégezhető a -w zászlóval, amely lehetővé teszi csomagkapcsolt fájlok írását:

Megjegyzés: A mentett fájlt a tcpdump a -r zászlóval, vagy egy másik alkalmazással, amely támogatja a pcap fájlformátumot.

Mint fent láthatjuk , a -w zászló egy hasznos pcap fájlt készített, amelyet magunkkal vihetünk.

Csomagolás

A csomagrögzítések végrehajtása hatékony technika a hálózati hibaelhárítási készségek leltárában, különösen, ha elakadt egy probléma, és a hálózat többi része rendben van. A tcpdump parancssori használatának megértése órányi csalódást takaríthat meg, amikor megpróbálja megoldani a hálózati alkalmazással kapcsolatos problémákat, és a szintaxis meglehetősen intuitív, ha megszokja.

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük