Sledování paketu TPROXY až k socketu
Zkontrolujte přijímající socket, značku paketu a místní trasu politiky jako jednu cestu doručení transparentního proxy.
Počítadlo TPROXY může růst, i když aplikace nic nepřijímá. Pravidlo odpovídalo, ale místní doručení stále závisí na směrování politiky a kompatibilním přijímajícím socketu.
Linux TPROXY dokáže zachytit provoz, aniž by přepisoval cíl jako DNAT. Pakety adresované na nelokální destinaci proto musí dorazit do vhodného místního socketu.
Sledujte cestu doručení
- Provoz dorazí k hostiteli zachycení přes zamýšlené rozhraní a rodinu adres.
- Pravidlo zachycení a značka paketu určují politiku místního doručení.
- Odpovídající pravidlo politiky vybere trasu, která pakety doručí místně.
- Proxy používá podporovaný transparentní listener s požadovanou volbou socketu.
Příklad IPv4 v jádře vyžaduje podporu aplikace pro IP_TRANSPARENT. Běžný listener na stejném portu nebo globální nastavení nelokálního navázání tuto podporu neprokazuje.
| Pozorování | Další kontrola |
|---|---|
| Žádné relevantní příchozí pakety | Cesta provozu a vstupní rozhraní |
| Pakety dorazí; počítadlo zachycení se nemění | Rodina adres, řetězec a podmínky shody |
| Pravidlo odpovídá; místní doručení selhává | Značka a volba trasy politiky |
| Socket naslouchá; aplikace nic nevidí | Schopnost transparentního socketu a vlastník listeneru |
| Požadavek začne; pozdější odpovědi selhávají | Shoda navázaného socketu a zpětné trasy |
U každého pozorování si uchovejte načtenou konfiguraci a síťový jmenný prostor. Pozdější pravidlo může přepsat značku nebo zvolit jinou trasu. Pokud k zachycení dochází na hostiteli, zatímco listener běží v kontejneru, platná místní trasa hostitele automaticky nedoručuje do tohoto kontejneru.
Počítejte s pozdějšími pakety
Příklad jádra obsahuje shodu socketu a cestu DIVERT, která označuje pakety patřící transparentním socketům. Pokud ji vynecháte, pozdější provoz může zůstat na jiné cestě, i když počáteční zachycení uspěje.
Použijte transparentní režim podporovaný aplikací a odpovídající dokumentaci jádra pro každou rodinu adres. Příkaz místní trasy IPv4 nenastavuje IPv6 a podpora v jedné rodině neprokazuje chování socketu v druhé.
TPROXY také nevytváří vyjednávání SOCKS. Komponenta z transparentního na SOCKS stále musí zjistit destinaci a vyjednat se svým upstream serverem.
Přechod z REDIRECT
Zaznamenejte, jak stávající aplikace získává původní destinaci. REDIRECT mění destinaci a spoléhá na příslušný mechanismus obnovy; TPROXY potřebuje svůj transparentní socket a uspořádání směrování. Vybírejte podle aplikace a politiky zdrojové adresy.
Před změnou režimu zachycení spojte počítadla s vybranou trasou, schopností socketu a protokolem aplikace. Na distribuci, která poskytuje potřebné prostředky, je chybějící krok doručení lepším výchozím bodem než rekompilace jádra.