En TPROXY-teller kan øke mens applikasjonen ikke mottar noe. Regelen traff, men lokal levering avhenger fortsatt av policy-ruting og en kompatibel mottakende socket.

Linux TPROXY kan fange trafikk uten å skrive om destinasjonen slik DNAT gjør. Pakker som er adressert til en ikke-lokal destinasjon, må derfor nå en egnet lokal socket.

Følg leveringsveien

  1. Trafikken når avskjæringsverten på det tiltenkte grensesnittet og adressefamilien.
  2. Avskjæringsregelen og pakkemerket fastsetter policyen for lokal levering.
  3. En samsvarende policy-regel velger en rute som leverer pakkene lokalt.
  4. Proxyen bruker en støttet transparent lytter med det nødvendige socket-alternativet.

Kjernens IPv4-eksempel krever applikasjonsstøtte for IP_TRANSPARENT. En vanlig lytter på samme port, eller en global ikke-lokal bind-innstilling, beviser ikke slik støtte.

ObservasjonNeste sjekk
Ingen relevante innkommende pakkerTrafikkvei og inngangsgrensesnitt
Pakker ankommer; avskjæringstelleren står stilleAdressefamilie, kjede og samsvarsbetingelser
Regelen samsvarer; lokal levering feilerMerke og valg av policy-rute
Socketen lytter; applikasjonen ser ingentingTransparent socket-evne og eieren av lytteren
Forespørselen starter; senere svar feilerSamsvar for etablert socket og returruter

Ta vare på den innleste konfigurasjonen og nettverksnavnerommet sammen med hver observasjon. En senere regel kan overskrive et merke eller velge en annen rute. Hvis avskjæringen skjer på verten mens lytteren kjører i en container, leverer ikke en gyldig vertslokal rute automatisk inn i den containeren.

Regn med senere pakker

Kjernens eksempel omfatter socket-samsvar og en DIVERT-vei som merker pakker som tilhører transparente sockets. Utelates den, kan senere trafikk bli liggende på en annen vei selv når den første avskjæringen lykkes.

Bruk applikasjonens støttede transparente modus og den samsvarende kjernedokumentasjonen for hver adressefamilie. En IPv4-kommando for lokal rute konfigurerer ikke IPv6, og støtte i én familie beviser ikke socket-atferden i den andre.

TPROXY lager heller ingen SOCKS-forhandling. En komponent fra transparent til SOCKS må fortsatt finne destinasjonen og forhandle med oppstrøms.

Flytte fra REDIRECT

Noter hvordan den eksisterende applikasjonen får den opprinnelige destinasjonen. REDIRECT endrer destinasjonen og er avhengig av riktig gjenopprettingsmekanisme; TPROXY trenger sin transparente socket og ruteoppsett. Velg ut fra applikasjonen og kildeadressepolicyen.

Koble tellere til den valgte ruten, socket-evnen og applikasjonsloggen før du bytter avskjæringsmodus. På en distribusjon som leverer de nødvendige fasilitetene, er et manglende leveringstrinn et bedre utgangspunkt enn å kompilere kjernen på nytt.

Relaterte artikler