TPROXY-laskuri voi kasvaa, vaikka sovellus ei vastaanota mitään. Sääntö täsmäsi, mutta paikallinen toimitus riippuu edelleen käytäntöreitityksestä ja yhteensopivasta vastaanottavasta soketista.

Linuxin TPROXY voi siepata liikennettä kirjoittamatta kohdetta uudelleen kuten DNAT. Siksi ei-paikalliseen kohteeseen osoitetut paketit on saatava sopivaan paikalliseen sokettiin.

Seuraa toimitusreittiä

  1. Liikenne saapuu sieppausisäntään aiottua liittymää ja osoiteperhettä pitkin.
  2. Sieppaussääntö ja paketin merkintä määrittävät paikallisen toimituksen käytännön.
  3. Täsmäävä käytäntösääntö valitsee reitin, joka toimittaa paketit paikallisesti.
  4. Välityspalvelin käyttää tuettua läpinäkyvää kuuntelijaa vaaditulla sokettiasetuksella.

Ytimen IPv4-esimerkki edellyttää sovelluksen tukea IP_TRANSPARENT-asetukselle. Tavallinen kuuntelija samassa portissa tai globaali ei-paikallinen sidonta ei todista sitä tukea.

HavaintoSeuraava tarkistus
Ei asiaankuuluvia saapuvia pakettejaLiikennereitti ja tuloliittymä
Paketit saapuvat; sieppauslaskuri ei liikuOsoiteperhe, ketju ja täsmäytysehdot
Sääntö täsmää; paikallinen toimitus epäonnistuuMerkintä ja käytäntöreitin valinta
Soketti kuuntelee; sovellus ei näe mitäänLäpinäkyvän soketin ominaisuus ja kuuntelijan omistaja
Pyyntö alkaa; myöhemmät vastaukset epäonnistuvatMuodostetun soketin täsmäytys ja paluureitit

Säilytä ladattu kokoonpano ja verkon nimiavaruus jokaisen havainnon yhteydessä. Myöhempi sääntö voi kirjoittaa merkinnän yli tai valita toisen reitin. Jos sieppaus tapahtuu isännässä kuuntelijan pyöriessä kontissa, kelvollinen isännän paikallinen reitti ei toimita automaattisesti siihen konttiin.

Ota myöhemmät paketit huomioon

Ytimen esimerkki sisältää soketin täsmäytyksen ja DIVERT-reitin, joka merkitsee läpinäkyvien sokettien paketit. Sen pois jättäminen voi jättää myöhemmän liikenteen toiselle reitille, vaikka ensimmäinen sieppaus onnistuisi.

Käytä sovelluksen tukemaa läpinäkyvää tilaa ja kutakin osoiteperhettä vastaavaa ytimen dokumentaatiota. IPv4:n paikallisen reitin komento ei määritä IPv6:ta, eikä yhden perheen tuki todista toisen soketin käyttäytymistä.

TPROXY ei myöskään tuota SOCKS-neuvottelua. Läpinäkyvästä SOCKS:ään siirtyvän komponentin on yhä löydettävä kohde ja neuvoteltava ylävirran kanssa.

Siirtyminen REDIRECTistä

Kirjaa, miten nykyinen sovellus saa alkuperäisen kohteen. REDIRECT muuttaa kohdetta ja nojaa sopivaan palautusmekanismiin; TPROXY tarvitsee oman läpinäkyvän sokettinsa ja reititysjärjestelynsä. Valitse sovelluksen ja lähdeosoitekäytännön mukaan.

Yhdistä laskurit valittuun reittiin, soketin ominaisuuteen ja sovelluksen lokiin ennen sieppaustilojen vaihtamista. Jakelussa, joka tarjoaa tarvittavat valmiudet, puuttuva toimitussakel on parempi lähtökohta kuin ytimen uudelleenkääntäminen.

Aiheeseen liittyvät artikkelit