Mi az ICMP??
Az ICMP (Internet Control Message Protocol) egy olyan protokoll, amelyet a hálózati eszközök (például útválasztók) használnak hibaüzenetek generálására, amikor a hálózati problémák megakadályozzák az IP-csomagok átjutását.
Az Internet Control Message Protocol az egyik alapvető rendszer, amely az internet működését lehetővé teszi. Annak ellenére, hogy nem hallottál az ICMP-ről, valószínűleg hallottál annak egyik jellemzőiről: Ping. Ebben az útmutatóban többet megtudhat erről az alapvető protokollról.
Az ICMP története
Az ICMP része a TCP / IP protokoll verem. Az állomás a Internet réteg és egy hibaüzenet-szabvány támogatja az alapvető Internet protokollt. Az ICMP eredeti meghatározását Írország írta Jon Postel, az internet egyik alapítója. Az első szabványt 1981. áprilisában tették közzé az RFC 777-ben. Azóta többször frissítették. A protokoll stabil meghatározását az RFC 792 tartalmazza, amelyet szintén a Postel írt és a Internetmérnöki munkacsoport 1981 szeptemberében.
Az ICMP célja
Bár az alacsonyabb szintű internetrétegnek nem szabad a kapcsolat biztosításával foglalkoznia, Az ICMP visszajelzést ad a kommunikációról, ha a dolgok rosszul fordulnak elő. Tehát akkor is, ha UDP-t használ, amelynek a kapcsolat nélküli A kommunikációs modell segítségével továbbra is megtudhatjuk, hogy miért nem sikerült az átvitel. Minden hálózathoz csatlakoztatott eszköz képes feldolgozni az ICMP üzeneteket, így az útválasztókat és a végpont eszközöket is tartalmazza. Az ICMP-t úgy adaptálták, hogy képes legyen együttműködni az IPv6-tal éppen olyan alaposan, mint az IPv4.
Mivel ez a protokoll az Internet rétegen található, üzeneteit IP-csomagok szállítják és így magasabb szinten léteznek, mint a kapcsolók működési struktúrái. Bár az ICMP az IP-csomagon belül van, az adathordozó csomagokon belül nem létezik. Az ICMP-csomagot csak egy bejövő adatcsomagra adott válaszként generálják, amikor a bejövő üzenet továbbítása sikertelen. Az ICMP-csomagot provokáló hibakörülmények gyakran a sikertelen csomag IP-fejlécében található adatok eredményei.
ICMP csomag szerkezete
Amikor egy útválasztó a rikošét visszaad egy ICMP-csomagot egy hiba jelentésére, akkor újból létrehozza az eredeti IP-fejlécében található összes mezőt, amelyről jelentést készít. Tehát egy hibagyűjtő program az eredeti küldő számítógépen elemezheti a fejlécet, és pontosan meghatározhatja, hogy melyik IP-csomag sikertelen volt.
Az IP fejléc után jön a három mező ICMP fejlécét. Ezek tartalmaznak egy hibát kategorizáló kódot, egy alkódmezőt, amely finomítja a hibakód leírását, majd egy ellenőrző összeget. Az ICMP mező után jönnek a hasznos teher első nyolc bájtja, amelyek valójában vannak a szállítási réteg fejlécét (TCP vagy UDP).
ICMP üzenetkódok
Az ICMP blokk első kódmezője nagyon hasznos információkat tartalmaz. A kód numerikus, és íme néhány a mező érdekesebb értékei:
0: visszhang válasz – a ping használatához használható
3: a rendeltetési hely nem érhető el
4: forrásoltás – az útválasztó túlterhelt
5: átirányítás – használjon másik útválasztót
8: visszhang kérés – a ping használatához használható
9: router hirdetési válasz
10. ábra: útválasztó kérése
11: túllépte az időt – a nyomvonalhoz használt
Itt az ideje élni
Az egyik olyan IP fejléc mező, amely legismertebb egy ICMP-generáló hiba kiváltására, a Itt az ideje élni terület (TTL). Ez a mező egy számot tartalmaz, amely kifejezi az útválasztók maximális száma, amelyeken a csomag áthaladhat. Ezt a számot minden egyes útválasztó csökkenti, amely feldolgozza a csomagot. Ha egy útválasztó egy csomagot kap, amelynek TTL-je nulla, akkor azt eldobja és egy ICMP üzenetet küld vissza a sikertelen továbbítás kezdeményezőjének.
A TTL kimerülése esetén annak a oknak, hogy a csomag nem éri el a rendeltetési helyét, semmi köze sincs az útválasztó problémáinak vagy a csomag fejlécében lévő hibás adatoknak. A TTL egy olyan konstrukció, amelyet azért hoztak létre, hogy megakadályozzák a szélhámos csomagok eltömődését az interneten amikor az útválasztó táblázat hibái körkörös utakhoz vezettek. Ennek a mezőnek a mellékterméke azonban nagyon hasznos hálózati adminisztrációs eszköz: traceroute.
Lásd még: A SolarWinds Traceroute Tools áttekintése
Nyomkövetés az ICMP-vel
A Traceroute egy jól ismert net admin eszköz, amely megmutatja a tipikus utat az indító számítógéptől az adott IP-címig. A segédprogram egy sor üres IP-csomagot küld ki. Ezen átvitel mindegyikének fontos jellemzője a TTL érték az IP fejlécben.
A Traceroute program elindítja a csomag küldését a következővel a TTL értéke 0. Ezt az első útválasztó veszi le, amelyik veszi, amely általában a hálózati átjáró. Ez az útválasztó küld vissza egy ICMP csomagot. Az egyetlen információ, amelyet a Traceroute ebből a válaszból igényel a visszatéréshez szükséges idő és a csomag forráscíme. Ez megmondja a Traceroute-nak az úticél felé vezető első útválasztó címét. A program ezután küld egy csomagot a 1 TTL. Ez átjut az átjárón, amely a TTL-t 1-rel csökkenti. A következő útválasztó, amely megkapja a csomagot, látja, hogy a TTL nulla, ejti a csomagot, és visszaad egy ICMP csomagot. Így felfedik az út második útválasztóját, és a Traceroute felhívja a figyelmet a válasz megérkezéséhez szükséges időre. Ha növeljük a TTL-t minden egyes átvitelnél 1-rel, A Traceroute végül elkészíti az interneten az összes megadott címre mutató hivatkozás térképét.
Traceroute problémák
A Traceroute egy nagyon egyszerű eszköz, amely kihasználja a már létező adminisztrációs funkciót és teszi hatékony és informatív segédprogram kifelé ezzel. Van néhány gyenge pont a Traceroute-val.
A hálózati rendszergazda valószínűleg a segédprogramot fogja használni annak kiderítéséhez, hogy miért ment rosszabbá a közelmúltbeli kapcsolat – akár lassan, akár nem. azonban, A Traceroute nem tudja megmondani, mi történt a múltban. Csak visszajelzést adhat az aktuális útvonal előrehaladásáról.
Az útválasztók mindegyike dönt arról, hogy a szomszédaik közül melyik kínál a legrövidebb utat a cél IP-címhez a csomagon. Ez a döntés azonban nem mindig minden esetben pontosan ugyanaz. Ha egy útválasztó torlódik vagy kikapcsol, a szomszédos útválasztók hamarosan megtudják a problémát, és állítsa be az útválasztó táblájukat a probléma megoldására. Ez a megváltozott útválasztási információ az Internet összes útválasztója számára meg lesz hullva, de a probléma megoldható, még mielőtt az összes útválasztó megtudja róla. Ezután az újra igazított útvonal elterjedt a világ minden tájáról.
Opció a következő paranccsal:-j”Lehetővé teszi, hogy meghatározza azon útválasztók címeit, amelyeket a Traceroute útvonalként szeretne követni. Ennek a szolgáltatásnak a használatához azonban meg kell tennie már ismeri a hibás adás útját és ezeket az információkat csak pontosan ugyanazon az útvonalon végrehajtott Traceroute végrehajtással lehet lekérdezni.
Tehát, ha lassú a kapcsolat, a később kiadott Traceroute parancs nem feltárja, mi történt mert addigra. A késést okozó probléma valószínűleg megoldódott, és a Traceroute elérési útja nem egyezik meg a használt lassú kapcsolat útvonalával.
A Traceroute másik problémája az, hogy érdekes megjelenítést jelenít meg azon az úton, amelyet az átvitel valószínűleg az adott rendeltetési helyre vezet. azonban, ez nem ad semmilyen eszközt a kapott információkkal történő bárminemű elvégzésre. Nem lehet útvonalat megadni, és tehát, ha látja, hogy az interneten lévő egyik útválasztó lassú válaszidőt ad, akkor csak annyit tud megtenni, hogy tudja, melyik router lassítja a kapcsolatokat. Mivel ez az útválasztó nem tartozik a vállalatához, és nem tudod felgyorsítani, a Traceroute-on keresztül szerzett tudást, de nem tud rajta cselekedni.
Lásd még: A Traceroute legjobb eszközei
ICMP Ping
A Ping két ICMP kódot használ: 8 (visszhang kérés) és 0 (visszhang válasz). Amikor kiadja a Ping parancsot a parancssorban, a Ping program küld egy ICMP csomagot, amely a 8 kódot tartalmazza a típus terület. A válasz: típus A program értéke meghaladja a visszhang kérési csomag elküldése és a válasz megérkezése közötti szakadékot. Tehát megkaphatja a „oda-vissza út”Csomagot az adott rendeltetési helyre és vissza.
A visszhang kérési csomag szokatlan abban a tekintetben, hogy az egyetlen ICMP csomag, amelyet hiba nélkül provokálnak. Tehát a Ping-nek nem kell emulálnia egy hiba feltételt, hogy visszatérjen egy ICMP-üzenet. A Pingnek két lehetősége van, amelyek lehetővé teszik, hogy meghatározza az útvonal címeinek listáját, amelyet az átvitelnek meg kell hajtania. Ezek “-j“, Amely utat javasol és”-k, Amely diktálja az útvonalat.
ICMP Ping port
Lehet, hogy csoda melyik portot használja a Ping. A válasz: egyik sem. Ha egy segédprogram lehetővé teszi egy port „pingolását”, akkor szó szerint nem a Ping parancs. Ehelyett a segédprogram TCP vagy UDP csomagot használ egy port tesztelésére. Valójában ezt a funkciót „portszkenner” -nek vagy „portszkennernek” nevezik.port ellenőrző.”
A Ping nem tudja használni a portokat, mert ez egy olyan protokoll, amely alacsonyabb szinten létezik, mint a Szállítási réteg, ahol a kikötők fő jellemzője.
A rendelkezésre álló legközelebbi módszer az ICMP Ping port jelentéshez küldjön UDP csomagot egy adott portra. Ha ez a port nem aktív, az átvitel ICMP üzenetet provokál a 3. típusú gazdagépről (rendeltetési hely elérhetetlen) 3. altípus (a cél kikötő elérhetetlen). Tehát, bár lehetséges egy ICMP-üzenetet provokálni egy portról, nem lehet a Ping-mechanizmust használni az ICMP-csomag küldésére ehhez a porthoz elsősorban visszhang kérésként. Ha a Ping paranccsal portszámot ad meg az IP-címre (azaz a ping :), akkor a parancs nem indul el, hanem szintaxis hibát ad vissza.
pathping
Az útválasztás egy segédprogram, azaz beépítve a Windows operációs rendszerbe és a Windows NT óta minden verzióban elérhető. Ez a program a fütyülés és traceroute, tehát kihasználja három ICMP üzenettípus. Ezek a visszhang kérés és a visszhang válasz üzenet típusa (8 és 0) és az időtúllépés üzenet típusa (11).
Mint a Traceroute és a Ping esetében is, a parancs paramétereként megadható a javasolt elérési út címeinek listája és a segédprogram megpróbálja elküldeni egy csomagot a rendeltetési helyre ezen címeken keresztül.
A Pathping formázott eredményjelentést hoz létre, amely megjeleníti az útvonal és a oda-vissza út minden útválasztóhoz. Ismétlődő ping-kéréseket küld az útvonal minden útválasztójának, ahelyett, hogy többször is kapcsolatba lép a célállomással. A Ping ezt csinálja, vagy csak az összes útválasztót naplózza az útvonalon egyszer, és ezt teszi a Traceroute.
A pálya nem olyan rugalmas, mint a Ping vagy a Traceroute. Bár az interneten minden eszköz képes ICMP üzenetek küldésére, nem minden eszköz aktiválta az ICMP funkcióit. Néhány útválasztó és szervertulajdonos szándékosan kikapcsolja az ICMP funkciókat a hackerek támadásainak védelme érdekében.
Ha egy közbenső útválasztó nem használja az ICMP-t, akkor a Ping továbbra is átjut az útválasztón, hogy tesztelje a rendeltetési helyet. Ha a Traceroute olyan útválasztóval találkozik, amely nem küldi ki az ICMP csomagokat, akkor egyszerűen továbblép a következő útválasztóra, és csillagot jelenít meg a nem kommunikációs útválasztó számára. Ugyanebben a helyzetben, Az útvonalválasztás befejezi az érdeklődőket az útválasztón, amelyen az ICMP le van tiltva.
Törp támadás
Ennek fő oka, hogy egyes berendezések tulajdonosai kikapcsolják az eszközök ICMP képességeit, az az, hogy a hackerek a rendszert támadások vezetékéhez használhatják. A Smurf támadás egy ilyen eset.
A Smurf támadás reflektor stratégiát alkalmaz. Nem közvetlenül támadja meg a célt, hanem más számítógépeket és útválasztókat hív fel, hogy üzeneteket küldjenek az áldozatnak. A támadó kiszámítja az áldozat hálózatán használt sugárzási címet, majd küld egy ICMP visszhang kérést (fütyülés). A hálózat minden egyes eszköze visszhangt küld vissza az útválasztóra, amely az IP-címet sugározza.
Ez a támadás csak nagy hálózatokon működik. Ez hatékonyan provokálja az elosztott szolgáltatásmegtagadási (DDoS) támadást a hálózaton belül, míg a legtöbb támadást az interneten keresztül távoli számítógépek indítják.. A támadás típusát az átjáró útválasztójának ICMP képességeinek kikapcsolásával lehet megakadályozni vagy kiszűrve a hálózat sugárzott IP-címét viselő kérelmek elfogadását a távoli helyről a hálózatba érkező csomagokon.
Ping árvíz
A Ping-áradás egy DDoS-stratégia, amely túlterhel a célszámítógépen ICMP visszhang kérések. A Ping egyes megvalósításai jobban működnek, mint a többi. Például a támadás hatékonyabb, ha a Ping parancsot a „árvíz” választási lehetőség. Ez a lehetőség azonban nem érhető el a Ping összes verziója esetén – a Windowsba ágyazott verzió esetében ez nem érvényes, például. Az a tény, hogy az áradási lehetőség nem univerzális, problémákat jelent a hackerek számára, akik a botnet a Ping kérések küldésére szolgáló program vezérlése. Mivel az áradási lehetőség ritka, valószínű, hogy a legtöbb botnetben lévő eszköz nem lesz képes elindítani a támadást.
Ez a támadási stratégia nagyobb sikert eredményezne, ha a hackerek biztosítanák, hogy az összes fertőzött számítógép kísérletet indítson a támadás elindítására, és a Ping-implementációkban elérhető árvíz opció áll rendelkezésre. Ennek egyik módja a számítógépek tesztelése bármilyen támadás előtt és kategorizálás egy olyan csoport, amelynek a Ping megfelelő formája van, vagy telepítsen árvízi kompatibilis Ping-et minden számítógépre, amelyet a botnet vírus fertőzött meg.
A legegyszerűbb védelem a Ping-áradás ellen kapcsolja ki az ICMP képességeket az útválasztón. Ha webszervert futtat, akkor a webalkalmazás tűzfalának meg kell védenie a Ping-áradásoktól.
Ping of Halál
A Halál Pingje túl hosszú ping kérési csomagok küldését foglalja magában. A kérelemnek a végén a hasznos teher nagy mennyiségű töltőanyagot tartalmaz. Mivel a datagram túl hosszú az átvitelhez, az Internet Protokoll processzor felosztja a karakterláncot darabokra, amelyek a küldő maximális átviteli egységének (MTU) nagyságúak. A vevő észre fogja venni, hogy ez egy extra hosszú csomag, amelyet feldaraboltak, és megpróbálja az eredeti hosszú csomag újbóli összeszereléséhez mielőtt eljuttatná a rendeltetési alkalmazásba. Ha a csomag hossza bájtnál nagyobb, mint a fogadó számítógépben rendelkezésre álló memória mérete, akkor a csomag újbóli összeszerelésének kísérlete elrontja a számítógépet.
A Ping of Death ma már ismert támadástípus így az állapotalapú tűzfalak és behatolás-érzékelő rendszerek észlelhetik és blokkolhatják azt. Mint minden ismert hackeres trükknél, hatékonysága már nem fenyeget. Tehát a hackerek nagyrészt elhagyták a Ping of Death stratégiát a Ping árvíz.
ICMP alagút
Az útválasztók csak az ICMP csomag fejléceit tekintik meg, beleértve a TCP / UDP fejlécet is, amely esetleg az ICMP adatok mögött áll. Így egy rendes csomagot, amelyben sok adat található, csak akkor továbbítják, amíg benne van egy ICMP rész. Ez potenciálisan lehetséges egy hátsó ajtó a látogatók számára, hogy megkerüljék a nyilvános hálózatok hitelesítési és díjszabási eljárásait. Ezt ICMP alagútnak vagy Ping alagútnak hívják.
Nem lehet átjárni az átjárókon és a tűzfalakon keresztül csak a szokásos hálózati Ping segédprogrammal, amely a legtöbb ember számítógépén található.. Az ICMP alagutat be kell programozni. Ez egy lehetséges hackerek útja is egy hálózatba. Sajnos a hálózati rendszergazdák számára, számos ingyenes ICMP alagútcsomag letölthető az internetről.
Mint az előző két típusú ICMP támadásnál, A ping-alagutak blokkolhatók webes alkalmazások tűzfalaival, behatolás-érzékelő rendszerekkel vagy egyszerűen az ICMP összes tevékenységének blokkolásával a hálózati átjárón.
Húzó roham
A Twinge egy hacker támadási program. Elindul egy ICMP-árvíz túlterhelni egy célszámítógépet. Bár úgy tűnik, hogy az összes Ping-kérés, amelyet a cél megkap, sok különböző forrásból származik, valójában ugyanazon forrásból származnak, mindegyiknek fejlécében hamis forrás IP-cím található. A Twinge valószínűleg csak egy átnevezett Ping segédprogram, a megvalósított „árvíz” opcióval. Ez nagyon hasznos eszköz lenne botnet a tulajdonosok töltsék fel őket zombi számítógépükre az indítás céljából Ping árvíz támadások.
Lényegében, A húzó árvíz ugyanaz, mint a Ping árvíz és a hálózat elleni védelemre vonatkozó megoldások megegyeznek az ICMP-n keresztüli DDoS támadás fő kategóriájával: kapcsolja ki az ICMP-t, telepítsen egy webalkalmazás-tűzfalat vagy egy állapotalapú tűzfalat, vagy telepítsen behatolás-érzékelő rendszert.
Út az MTU felfedezéséhez
A maximális átviteli egység (MTU) a hálózati kompatibilis eszközökön diktált beállítás az IP-csomagok leghosszabb hossza, amelyet az eszköznek meg kell dolgoznia. Ezt kifejezik: oktettet, ami egy nyolc bites byte. Az MTU eredeti ajánlása az internetes protokollhoz 576 oktett volt. Az Ethernet szabvány azonban azt ajánlja 1500 oktett és ez minden hálózati és internetes eszköz szabványává vált.
Az MTU beállításait bármilyen útválasztón beállíthatja. Így, ha a csomagok áthaladnak egy útválasztón, alacsonyabb MTU-val, akkor mindegyiket két IP-csomagra osztják. Ez lelassítja az átutalások kézbesítését, mivel az eredeti csomagot a vevőnek újból össze kell szerelnie, mielőtt tovább haladhat a szállítási réteg feldolgozásához majd továbbadják a cél alkalmazáshoz.
Az IP fejlécben meg lehet határozni a felosztást is, amelyet „szilánkosodás”Nem hajtható végre a csomagon. Ebben az esetben egy útválasztó, amelynek MTU-ja kisebb, mint a csomag hossza, eldobja a csomagot, majd jelentést küld egy ICMP hibajelentéssel. Ez a hibaüzenet ICMP 3 típusú lenne (rendeltetési hely elérhetetlen) 4. altípus (széttöredezés szükséges, de a „ne töredezz” jelző van beállítva).
A Path MTU felfedezési kísérlet megkerüli a fragmentált vagy eldobott csomagok problémáját. Ha megtudja a legalacsonyabb MTU-t az átvitel útján, akkor csak be kell állítania a saját MTU-t erre a méretre..
A felderítési mechanizmust a fent ismertetett hibaelhárítási eljárások valósítják meg. Az IP-csomag kimegy egy rendeltetési helyre, ahol a hasznos rakomány meg van töltve, hogy elérje a feladó MTU-méretét és a „ne töredezzMegjelölve. Ha ez megtörténik, akkor nem merülhetnek fel problémák azzal a célállomással való kapcsolataival, amelyre a tesztcsomagot küldték. Ha az átvitel ICMP hibát vált ki, akkor csak próbálkozzon ismételten, csökkentve a csomag hosszát minden alkalommal. Ezzel végül elküld egy csomagot, amely átjut, és annak hossza megmutatja neked a legalacsonyabb MTU-t az úticéljához vezető úton.
Pingnek lehetősége van beállítani a „ne töredezz”Zászló. Ez azonban csak akkor lesz hatékony, ha a Ping csomag hosszabb, mint az útjában lévő útválasztók MTU-ja. A ping nem igazítja az MTU méretét, tehát kétséges, hogy egy rövid Ping-csomag elesik-e valaha.
Az Linux-alapú Az IPutils csomag tracepath-t tartalmaz, amely az MTU felfedezését végzi az Ön számára. Tovább ablakok számítógépekkel, megnézheti az ingyenes mturoute segédprogramot.
ICMP világ
Az ICMP rendszer egy nagyon egyszerű mechanizmus az átviteli hibák jelentésére. Ugyanakkor az is az egyik legerősebb eszközkészlet, amely a hálózati rendszergazdák számára elérhető. A jó hír az Az ICMP ingyenes és automatikusan elérhető minden hálózathoz csatlakoztatott eszközön. A rossz hír az Az ICMP-t a hackerek használhatják támadások létrehozására, vagy akár tűzfalakon keresztül kapcsolatok létrehozására.
Az a tény, hogy az ICMP rosszindulatúan használható, sok kockázatkerülő hálózati rendszergazdát ösztönöz arra, hogy kapcsolják ki az üzenetkezelő rendszert. Ez szégyen, mert letiltja az ebben az útmutatóban leírt nagyon sok hasznos segédprogramot.
Ha hálózatot működtet, és különösen akkor, ha olyan útválasztóval rendelkezik, amely áthalad az internetes forgalomon, fontolja meg az állami tűzfalak és behatolásjelző rendszerek használatát az ICMP visszaélések megakadályozása érdekében ahelyett, hogy teljesen kikapcsolná az üzenetküldési protokollt. Vizsgálja meg az útválasztó beállításait és firmware-jét, hogy megbizonyosodjon arról, hogy rendelkezik-e olyan ICMP visszaélés-elhárítási eljárásokkal, amelyek lehetővé teszik az ICMP működését az eszközön.
ICMP módszereket használ a kapcsolatok ellenőrzésére? Van ICMP-alapú GUI segédprogramja, amelyet rendszeresen használ, és másoknak is ajánlhat? Kikapcsolta az ICMP-t az útválasztón a hálózat védelme érdekében? Hagy egy üzenetet a Hozzászólások alább, és ossza meg tapasztalatait.