A Linux számos hálózati segédprogrammal rendelkezik, amelyek közül választhat. A tcpdump az egyik ilyen hatékony hálózati eszköz, amely képes rögzíteni és elemezni a hálózati forgalmat, ha hálózati hibákat kell elhárítania Linuxon.
Ismerkedjünk meg a tcpdump paranccsal, és fedezzük fel, hogyan használhatjuk fel a hálózati forgalom rögzítésére.
A tcpdump telepítése Linux alatt
A tcpdump általában előre telepítve érkezik minden mainstream Linux disztribúció és biztonsági alapú alternatívák. Tehát begépelve azonnal használhatja tcpdump val,-vel sudo előtag.
Ha nem tudja futtatni a tcpdump parancsot, és elakad a "tcpdump: a parancs nem található" hiba, akkor tanuljuk meg, hogyan kell telepíteni a tcpdump-ot a Linux gépére.
A tcpdump telepítéséhez indítsa el a terminált, és futtassa az éppen használt Linux disztribúciónak megfelelő parancsot:
Debian/Ubuntu származékokon futtassa:
sudo apt-kap tcpdump telepítése
Tovább Arch alapú rendszerek, fuss:
sudo pacman -S tcpdump
A tcpdump segédprogram Fedora, CentOS és RHEL rendszeren történő telepítéséhez adja ki a következő parancsot:
sudo dnf telepítés tcpdump
Vegye figyelembe, hogy ha a rendszer felkéri a telepítésre libcap, begépel Igen vagy Y mivel ez egy alapvető függőség, amely nélkül a tcpdump nem hajlandó elindulni. Ennek telepítenie kell a tcpdump segédprogramot, és meg kell oldania a "parancs nem található" hibát.
Most, hogy a tcpdump telepítve van a rendszerére, nézzük meg az általa kínált lehetőségeket és funkciókat.
Hálózati forgalom rögzítése tcpdump segítségével
A tcpdump számos jelzőt kínál a végrehajtás módosítására, de önálló parancsként is futtatható. A tcpdump jelzők és argumentumok nélküli futtatása azonban figyelmen kívül hagyná a benne rejlő lehetőségeket. Mindig jobb néhány jelző használata a végrehajtás és a kimenet szükség szerinti módosításához.
Írja be ezt a parancsot a hálózati átvitelek tcpdump segítségével történő figyeléséhez:
sudo tcpdump
Most a tcpdump elkezdi automatikusan rögzíteni a hálózati csomagokat egészen addig megszakító jel -vel küldik Ctrl + Z a folyamat manuális megszakításához. A rögzített csomagok teljes számának korlátozásához használja a -c jelölje be, és írja be mellé a kívánt csomagkorlátot:
sudo tcpdump -c 5
Ha most nem tudja értelmezni a kimenetet, akkor meg kell tennie ismerkedjen meg a tcpdump kimeneti formátummal első.
Ellenőrizze az elérhető hálózati csatolókat a tcpdump segítségével
Alapértelmezés szerint a tcpdump az elérhető hálózati interfészek bármelyikéről rögzíti a forgalmat. Ha több aktív hálózati interfész van használatban, érdemes lehet megadni azt a hálózati interfészt, amelyről a tcpdump-nak rögzítenie kell a csomagokat. A tcpdump egy adott felületen történő elindításához először meg kell tanulnia az interfész nevét.
A következőképpen listázhatja ki az összes elérhető hálózati interfészt a tcpdump segítségével:
sudo tcpdump -D
Vagy hozzáadhatja a --list-interfaces jelölje meg a parancsot:
sudo tcpdump --lista- interfészek
A visszaadott kimenet tartalmazza azon aktív hálózati interfészek listáját, amelyekre a tcpdump képes figyelni. A tcpdump beállításához egy adott hálózati interfészről érkező átvitelek rögzítésére írja be ezt a parancsot:
sudo tcpdump -i interface_id
Vagy hozzáadhatja a --felület jelölje meg a parancsot:
sudo tcpdump --felületinterface_id
Most, hogy rögzítettünk néhány csomagot, tanulmányozzuk alaposan őket, és tanuljuk meg, hogyan módosíthatja a kimenetet olvashatóbbá.
A tcpdump szűrők felfedezése
A tcpdump hatalmas mennyiségű forgalmat képes rögzíteni egyetlen futással. Az ilyen információs túlterheltség letérítheti a pályáról egy adott gazdagép vagy hálózati protokoll problémáinak kivizsgálása vagy hibaelhárítása során.
Itt lépnek életbe a tcpdump szűrők. A tcpdump parancsot hozzáfűzheti bizonyos jelzőkhöz, hogy kiszűrje a hálózati forgalmat és rögzítse az adott csomagokat. Ezután tárolhatja ezeket a csomagokat, és később elemezheti őket, hogy megtalálja a hálózattal kapcsolatos problémák gyökerét. Tanuljuk meg a szűrők használatát a tcpdumpban.
Csomagok szűrése a használt hálózati protokoll alapján
Egy adott protokollon keresztül továbbított csomagok szűréséhez írja be a protokoll nevét a tcpdump paranccsal, és csak a meghatározott hálózati protokollon keresztül utazó csomagokat fogja rögzíteni.
Például az ICMP-alapú csomagok rögzítéséhez egyszerűen csatolnia kell icmp a tcpdump parancs végén. A folyamat ugyanaz, ha csak UDP vagy TCP csomagokat szeretne rögzíteni.
sudo tcpdump -c 5 icmp
Ez a parancs csak akkor ad vissza kimenetet, ha adatcsere történik az ICMP protokollon keresztül.
Csomagok szűrése a gazdagép alapján
Beállíthatja, hogy a tcpdump egyetlen gazdagéphez kapcsolódó csomagokat rögzítsen a házigazda paraméter. Ez különösen akkor hasznos, ha a hálózat összes rendszere működik, egy kivételével. Ezzel a szűrővel célzott vizsgálatokat végezhet, és felgyorsítja az általános hibaelhárítási munkafolyamatot, mivel Önt nem vonják el a felesleges adatok.
Egy adott gazdagéphez kapcsolódó csomagok rögzítéséhez adja meg a gazdagép hálózati címét a gombbal házigazda paraméter:
sudotcpdump-c 5 házigazda 192.168.2.1
A hálózati protokollszűrőhöz hasonlóan ez a parancs csak akkor ad vissza kimenetet, ha folyamatban lévő átvitel kapcsolódik a meghatározott gazdagéphez.
Csomagok szűrése az aktív port alapján
A tcpdump olyan paraméterrel rendelkezik, amely lehetővé teszi a hálózati forgalom szűrését, és csak az adott portra vagy adott portról továbbított csomagok rögzítését.
Egy adott portról érkező csomagok rögzítéséhez fűzze hozzá a kikötő jelölje be a tcpdump parancsot, és adja meg a portszámot mellette. Például a bejövő vagy kimenő HTTP-forgalom rögzítéséhez adja meg a 80-as portot:
sudo tcpdump -c 5 80-as port
A tcpdump a 80-as porton figyel, várva a HTTP-átvitelt. Miután észleli a HTTP-csomagokat a hálózatban, rögzíti azokat.
Kombinálja a szűrőket a speciális rendezés érdekében
Az előző szakaszok azt tárgyalták, hogyan szűrheti a forgalmat port, protokoll vagy gazdagép alapján, de mi van, ha egy adott gazdagép egyetlen portjáról akart forgalmat rögzíteni egy adott hálózat használatával jegyzőkönyv? Nos, szerencséje van, mert ez lehetséges, ami a logikai operátorok tcpdump paranccsal való használatának képességének tulajdonítható.
Csomagok rögzítéséhez egy egyedi gazdagépről a 443-as porton használja ezt a parancsot:
sudotcpdump-c 5 házigazda 192.168.2.1éskikötő 443
Ellenőrizze a rögzített csomagok tartalmát
Alapértelmezés szerint a tcpdump egy csomag fejléceit jeleníti meg a kimenetben. Bár ez a legtöbb esetben bőven elegendő, néha érdemes lehet mélyebben megvizsgálni a rögzített adatokat. Bizonyos paramétereket átadhat a tcpdump paranccsal a rögzített csomag tartalmának ellenőrzéséhez.
Így nézheti meg a csomagok tartalmát:
sudo tcpdump -c 5 -x
Ez a parancs a tartalom hexadecimális változatát adja vissza egy rögzített csomagban. Ha meg szeretné tekinteni az adatok ASCII formátumát, átadhatja a -A paraméter a következővel:
sudo tcpdump -A
Mentse el a tcpdump kimenetet egy fájlba
Mint szinte minden más Linux parancssori eszköz, a tcpdump által előállított kimenetet eltárolhatja egy fájlban, amelyre később hivatkozhat.
Ezt úgy teheti meg, hogy hozzáadja a -w zászlót a parancsnak. Végrehajtáskor a tcpdump eltárolja a rögzített adatokat a .pcap fájl, amely később elemezhető a tcpdump vagy más hálózati megfigyelő eszközök, például a Wireshark segítségével.
Írja be ezt a parancsot, hogy a tcpdump parancs kimenetét fájlban tárolja:
sudotcpdump-welfog.pcap
Olvasni a .pcap fájlt, használhatja a tcpdump-ot a -r paraméter:
sudotcpdump-relfog.pcap
A Linuxot rengeteg hálózati eszközzel szállítják, amelyek minden hálózati problémát megoldanak, mindaddig, amíg a dolgok szoftveres oldaláról van szó. A Linux legjobb hálózati eszközeinek használatának ismerete minden bizonnyal jól jön, akár rendszergazda, aki megélhetési célú hálózatokat kezel, vagy csak egy mindennapi Linux-felhasználó.
Mivel a rendelkezésre álló hálózati parancsok listája túlságosan nehéz lehet, az alábbiakban felsoroljuk azokat a legfontosabb Linux hálózati eszközöket, amelyeket tudnia kell.