Praćenje TPROXY paketa sve do socketa
Provjerite prijamni socket, oznaku paketa i lokalnu rutu politike kao jedan put isporuke transparentnog proxyja.
Brojač TPROXY može rasti dok aplikacija ne prima ništa. Pravilo se podudarilo, ali lokalna isporuka i dalje ovisi o usmjeravanju politike i kompatibilnom prijamnom socketu.
Linux TPROXY može presresti promet bez prepisivanja odredišta kao što to čini DNAT. Zato paketi upućeni na nelokalno odredište moraju stići do prikladnog lokalnog socketa.
Slijedite put isporuke
- Promet stiže na host za presretanje preko predviđenog sučelja i obitelji adresa.
- Pravilo presretanja i oznaka paketa određuju politiku lokalne isporuke.
- Odgovarajuće pravilo politike bira rutu koja pakete isporučuje lokalno.
- Proxy rabi podržani transparentni listener s potrebnom opcijom socketa.
Primjer IPv4 u kernelu zahtijeva podršku aplikacije za IP_TRANSPARENT. Običan listener na istom portu ili globalna postavka nelokalnog povezivanja ne dokazuje tu podršku.
| Zapažanje | Sljedeća provjera |
|---|---|
| Nema relevantnih dolaznih paketa | Put prometa i ulazno sučelje |
| Paketi stižu; brojač presretanja miruje | Obitelj adresa, lanac i uvjeti podudaranja |
| Pravilo se podudara; lokalna isporuka ne uspijeva | Oznaka i odabir rute politike |
| Socket sluša; aplikacija ništa ne vidi | Sposobnost transparentnog socketa i vlasnik listenera |
| Zahtjev počinje; kasniji odgovori ne uspijevaju | Podudaranje uspostavljenog socketa i povratne rute |
Čuvajte učitanu konfiguraciju i mrežni imenski prostor uz svako zapažanje. Kasnije pravilo može prepisati oznaku ili odabrati drugu rutu. Ako se presretanje događa na hostu dok listener radi u kontejneru, valjana lokalna ruta hosta ne isporučuje automatski u taj kontejner.
Uračunajte kasnije pakete
Primjer kernela uključuje podudaranje socketa i DIVERT put koji označava pakete transparentnih socketa. Ako ga izostavite, kasniji promet može ostati na drugom putu čak i kad početno presretanje uspije.
Rabite transparentni način rada koji aplikacija podržava i odgovarajuću dokumentaciju kernela za svaku obitelj adresa. IPv4 naredba lokalne rute ne konfigurira IPv6, a podrška u jednoj obitelji ne dokazuje ponašanje socketa u drugoj.
TPROXY također ne stvara SOCKS pregovore. Komponenta od transparentnog do SOCKS-a ipak mora otkriti odredište i pregovarati sa svojim upstream poslužiteljem.
Prelazak s REDIRECT
Zabilježite kako postojeća aplikacija dobiva izvorno odredište. REDIRECT mijenja odredište i oslanja se na odgovarajući mehanizam oporavka; TPROXY treba svoj transparentni socket i raspored usmjeravanja. Odaberite prema aplikaciji i politici izvorne adrese.
Prije promjene načina presretanja povežite brojače s odabranom rutom, sposobnošću socketa i zapisom aplikacije. Na distribuciji koja pruža potrebne mogućnosti, korak isporuke koji nedostaje bolje je polazište od ponovnog prevođenja kernela.