Praćenje TPROXY paketa sve do socketa
Provjerite prijemni socket, oznaku paketa i lokalnu rutu politike kao jedan put isporuke kroz transparentni proxy.
Brojač TPROXY može rasti dok aplikacija ne prima ništa. Pravilo se podudarilo, ali lokalna isporuka i dalje zavisi od rutiranja politike i kompatibilnog prijemnog socketa.
Linux TPROXY može presresti saobraćaj bez prepisivanja odredišta kao što to radi DNAT. Zato paketi upućeni na nelokalno odredište moraju stići do podobnog lokalnog socketa.
Pratite put isporuke
- Saobraćaj stiže na host za presretanje preko predviđenog interfejsa i porodice adresa.
- Pravilo presretanja i oznaka paketa određuju politiku lokalne isporuke.
- Odgovarajuće pravilo politike bira rutu koja pakete isporučuje lokalno.
- Proxy koristi podržani transparentni listener sa potrebnom opcijom socketa.
Primjer IPv4 u kernelu zahtijeva podršku aplikacije za IP_TRANSPARENT. Običan listener na istom portu, ili globalno nelokalno povezivanje, ne dokazuje tu podršku.
| Zapažanje | Sljedeća provjera |
|---|---|
| Nema relevantnih dolaznih paketa | Put saobraćaja i ulazni interfejs |
| Paketi stižu; brojač presretanja miruje | Porodica adresa, lanac i uslovi podudaranja |
| Pravilo se podudara; lokalna isporuka ne uspijeva | Oznaka i izbor 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 izabrati drugu rutu. Ako se presretanje dešava 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 saobraćaj može ostati na drugom putu čak i kada početno presretanje uspije.
Koristite transparentni režim koji aplikacija podržava i odgovarajuću dokumentaciju kernela za svaku porodicu adresa. IPv4 naredba lokalne rute ne konfiguriše IPv6, a podrška u jednoj porodici ne dokazuje ponašanje socketa u drugoj.
TPROXY takođe ne stvara SOCKS pregovore. Komponenta od transparentnog do SOCKS-a ipak mora otkriti odredište i pregovarati sa svojim upstream serverom.
Prelazak sa REDIRECT
Zabilježite kako postojeća aplikacija dobija izvorno odredište. REDIRECT mijenja odredište i oslanja se na odgovarajući mehanizam oporavka; TPROXY zahtijeva svoj transparentni socket i rutiranje. Birajte prema aplikaciji i politici izvorne adrese.
Prije promjene režima presretanja povežite brojače sa izabranom 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 kompajliranja kernela.