Egy TPROXY-csomag nyomon követése a socketig
Ellenőrizze a fogadó socketet, a csomagjelölést és a helyi házirend-útvonalat egyetlen átlátszó proxy kézbesítési útvonalként.
A TPROXY-számláló növekedhet, miközben az alkalmazás semmit sem kap. A szabály illeszkedett, de a helyi kézbesítés továbbra is a házirend-alapú útválasztástól és egy kompatibilis fogadó sockettől függ.
A Linux TPROXY a forgalmat a cél átírása nélkül is elkaphatja, ellentétben a DNAT-tal. Ezért a nem helyi célcímre küldött csomagoknak el kell jutniuk egy megfelelő helyi sockethez.
Kövesse a kézbesítési útvonalat
- A forgalom a szándékolt interfészen és címcsaládon érkezik az elfogó hoszthoz.
- Az elfogási szabály és a csomagjelölés azonosítja a helyi kézbesítési házirendet.
- Egy illeszkedő házirend-szabály olyan útvonalat választ, amely helyben kézbesíti a csomagokat.
- A proxy a szükséges socket-beállítással rendelkező támogatott átlátszó figyelőt használ.
A kernel IPv4-példánya az alkalmazás IP_TRANSPARENT-támogatását igényli. Egy szokásos figyelő ugyanazon a porton, vagy egy globális nem helyi kötési beállítás, nem bizonyítja ezt a támogatást.
| Megfigyelés | Következő ellenőrzés |
|---|---|
| Nincsenek releváns bejövő csomagok | Forgalmi útvonal és bemeneti interfész |
| A csomagok megérkeznek; az elfogási számláló nem mozdul | Címcsalád, lánc és illesztési feltételek |
| A szabály illeszkedik; a helyi kézbesítés meghiúsul | Jelölés és házirend-útvonal választása |
| A socket figyel; az alkalmazás semmit sem lát | Átlátszó socket képessége és a figyelő tulajdonosa |
| A kérés elindul; a későbbi válaszok meghiúsulnak | Létrejött socket illesztése és visszaútvonalak |
Minden megfigyelésnél őrizze meg a betöltött konfigurációt és a hálózati névteret. Egy későbbi szabály felülírhat egy jelölést, vagy másik útvonalat választhat. Ha az elfogás a hoszton történik, miközben a figyelő konténerben fut, egy érvényes helyi hosztútvonal nem kézbesít automatikusan abba a konténerbe.
Számoljon a későbbi csomagokkal
A kernel példánya tartalmazza a socket-illesztést és egy DIVERT-útvonalat, amely megjelöli az átlátszó socketekhez tartozó csomagokat. Ha ezt kihagyja, a későbbi forgalom más útvonalon maradhat, még akkor is, ha az első elfogás sikerül.
Használja az alkalmazás által támogatott átlátszó módot és a megfelelő kerneldokumentációt minden címcsaládhoz. Az IPv4 helyi útvonalra vonatkozó parancs nem állítja be az IPv6-ot, és az egyik családban nyújtott támogatás nem bizonyítja a másik socket-viselkedését.
A TPROXY SOCKS-tárgyalást sem hoz létre. Az átlátszóból SOCKS-ba vivő komponensnek továbbra is fel kell fedeznie a célt, és tárgyalnia kell a felsőbb féllel.
Áttérés REDIRECT-ről
Jegyezze fel, hogyan szerzi meg a meglévő alkalmazás az eredeti célt. A REDIRECT megváltoztatja a célt, és a megfelelő helyreállítási mechanizmusra támaszkodik; a TPROXY-nak saját átlátszó socketre és útválasztási elrendezésre van szüksége. Az alkalmazás és a forrás-címházirend szerint válasszon.
Az elfogási módok váltása előtt kapcsolja össze a számlálókat a választott útvonallal, a socket képességével és az alkalmazás naplójával. Egy olyan disztribúción, amely biztosítja a szükséges eszközöket, a hiányzó kézbesítési lépés jobb kiindulópont, mint a kernel újrafordítása.