A szállodai hálózatok és a konferenciák tűzfalai gyakran egyéni engedélyezőmezőt mutatnak, és valaki 47-et ír bele abban a reményben, hogy a PPTP működni fog. A szabály létrejön, az alagút továbbra is meghiúsul, és a következő kísérlet más számot használ. A hiba magában a csomagban van: az IPv4-nek van egy protokollmezője, amely megnevezi, mi következik az IP-fejléc után, míg a TCP-nek és az UDP-nek portmezői vannak, amelyek csak akkor léteznek, ha az egyik ilyen fejlécen belül vagy. Ezek nem ugyanazon engedély két írásmódjai.

Az IPv4-fejléc megnevezi a következő protokollt

A protokollmező egy bájt az IPv4-fejlécben, és egy számot tartalmaz, amely a hasznos terhet írja le: 6 a TCP-hez, 17 az UDP-hez, 47 a GRE-hez, 50 az ESP-hez. Minden, ami csomagokat szűr, ezt az értéket olvassa ki, mielőtt mélyebbre nézne, mert a mélyebb fejléc csak a típus ismeretében nyer értelmet. Később a beszélgetésben változtass meg egy portot, és ez a mező nem mozdult el.

A 47-es protokoll ellen írt szabály tehát az IP-réteget írja le. Egyetlen port sem vesz részt a döntésben.

Portok a TCP-n és az UDP-n belül léteznek, sehol máshol

A portok tizenhat bites azonosítók a TCP- és UDP-fejléceken belül, és a feladatuk az, hogy elválasszák az egy címet megosztó beszélgetéseket. A GRE-fejléc egy protokolltípus-értéket hordoz, gyakran EtherType-ot, plusz opcionális kulcsokat a multiplexeléshez. Ezért a 47-es port kifejezés semmit nem nevez meg, amivel egy GRE-csomag egyezhet.

A tűzfalak felületei eltérnek abban, mennyit mutatnak meg ebből. Némelyek protokollszámot fogadnak el, némelyek névvel ellátott listát kínálnak, és kevés fogad el csak TCP-t vagy UDP-t portokkal.

A PPTP egyszerre használja mindkét réteget

A PPTP a legvilágosabb példa, mert szándékosan osztja meg a munkáját a két réteg között. A vezérlőkapcsolat egy TCP-munkamenet a 1723-as portra, az adatút pedig a GRE, a 47-es protokoll, anélkül hogy bárhol port lenne érintett. Az a tűzfal, amely engedélyezi az 1723-at és semmi mást, hagyja elkezdődni a tárgyalást, majd eldobja a hasznos terhet. Az alagút úgy tűnik, mintha hitelesítés után elakadna, ahelyett hogy nem tudna csatlakozni, ezért a tünetet gyakran jelszóproblémaként jelentik.

PathOuter protocolPort
Control channelTCP, protocol 61723
Data channelGRE, protocol 47None

A szabály írásakor olvasd a két sort külön, és ellenőrizd mindegyiket a gyártó szintaxisa ellen. Az egyik sornak port kell, a másiknak protokollszám kell, és egyetlen bejegyzés sem fedi le mindkettőt.

Miért nem tudja egy porttovábbítási oldal kifejezni a GRE-t

Egy továbbítási űrlap, amely csak TCP-t és UDP-t fogad el, nem tudja leírni a GRE-t, bármi is az űrlap neve. A címfordítás második nehézséget ad hozzá, mert a GRE-nek nincsenek portjai, és a fordítónak helyette a hívásazonosítót kell követnie. Egyes fogyasztói routerek olyan segédprogrammal jönnek, amely kezeli ezt; sok nem, és semmilyen további TCP-engedélyező bejegyzés nem hozza létre ezt a viselkedést.

Ahol a valódi követelmény egy modern alagút, válassz olyan tervet, amely szándékosan TCP-t vagy UDP-t használ, ahelyett hogy abban bíznál, hogy egy fordító helyesen találgat.

A beágyazás dönti el, mit lát a szűrő

A beágyazás megváltoztatja a külső csomagot, és a szabály a külső csomaggal egyezik. A natív ESP az 50-es protokoll, míg a NAT-átjárás az ESP-t UDP 4500-ba csomagolja, hogy túlélje a címfordítást. Az UDP 4500-at engedélyező szűrő soha nem látja az 50-es protokollt, és az 50-es protokollra írt szűrő soha nem egyezik a becsomagolt formával.

Kérdezd meg, milyen beágyazásban egyezett meg a kliens és az átjáró, majd írd meg a szabályt pontosan arra a külső formára és semmi másra.

Úgy írd meg a szabályt, hogy valaki ellenőrizhesse

Minden szabályt címcsaládként, külső protokollként, szállítási portokként ha vannak, irányként és mindkét végpontként fejezz ki. Egy bíráló összevetheti ezt a mondatot egy csomagrögzítéssel, és ítéletre juthat. A 47 megnyitására vonatkozó utasítást senki nem tudja ellenőrizni, és ezért él évekig az eljárásgyűjteményekben.

Add hozzá a próbát, amely ezt bizonyítja: csatlakozz úgy, hogy közben a külső interfészen rögzítesz, és igazold a külső protokollt és portot, amelyek valóban megjelennek a nyomban.

Kapcsolódó cikkek