TPROXY-paketin jäljittäminen sokettiin asti
Tarkista vastaanottava soketti, paketin merkintä ja paikallinen käytäntöreitti yhtenä läpinäkyvän välityspalvelimen toimitusreittinä.
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ä
- Liikenne saapuu sieppausisäntään aiottua liittymää ja osoiteperhettä pitkin.
- Sieppaussääntö ja paketin merkintä määrittävät paikallisen toimituksen käytännön.
- Täsmäävä käytäntösääntö valitsee reitin, joka toimittaa paketit paikallisesti.
- 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.
| Havainto | Seuraava tarkistus |
|---|---|
| Ei asiaankuuluvia saapuvia paketteja | Liikennereitti ja tuloliittymä |
| Paketit saapuvat; sieppauslaskuri ei liiku | Osoiteperhe, ketju ja täsmäytysehdot |
| Sääntö täsmää; paikallinen toimitus epäonnistuu | Merkintä ja käytäntöreitin valinta |
| Soketti kuuntelee; sovellus ei näe mitään | Läpinäkyvän soketin ominaisuus ja kuuntelijan omistaja |
| Pyyntö alkaa; myöhemmät vastaukset epäonnistuvat | Muodostetun 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.