Praćenje TPROXY paketa sve do socketa
Provjerite prijemni 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 poklopilo, 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 odgovarajućeg 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.
Primer IPv4 u kernelu zahteva podršku aplikacije za IP_TRANSPARENT. Običan listener na istom portu ili globalno nelokalno povezivanje ne dokazuje tu podršku.
| Zapažanje | Sledeća provera |
|---|---|
| Nema relevantnih dolaznih paketa | Put saobraćaja i ulazni interfejs |
| Paketi stižu; brojač presretanja miruje | Porodica adresa, lanac i uslovi poklapanja |
| Pravilo se poklapa; lokalna isporuka ne uspeva | Oznaka i izbor rute politike |
| Socket sluša; aplikacija ništa ne vidi | Sposobnost transparentnog socketa i vlasnik listenera |
| Zahtev počinje; kasniji odgovori ne uspevaju | Poklapanje 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
Primer kernela uključuje poklapanje 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 uspe.
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
Zabeležite kako postojeća aplikacija dobija izvorno odredište. REDIRECT menja odredište i oslanja se na odgovarajući mehanizam oporavka; TPROXY zahteva svoj transparentni socket i raspored rutiranja. Birajte prema aplikaciji i politici izvorne adrese.
Pre promene 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.