Keegi tahab uurida, mida kliendid tunnelist läbi saadavad, leiab dokumentatsioonist ühenduse hooki ja hakkab kirjutama skripti, mis ei saa kunagi ühtegi paketti. Hook on tõeline ja kasulik, aga selle tööühik on sessioon, mitte bait. Õige komponendi valimine on võrdlus kolme koha vahel, kus töö saab toimuda, ja otsustav küsimus on, millist ühikut igaüks neist tegelikult näeb.

Mida hook saab ja mida ta kunagi ei saa

Kliendi ühenduse hook käivitub üks kord, kui autenditud klient loob sessiooni, serveri protsessi kontekstis, dokumenteeritud argumentide ja keskkonnaväärtustega nagu üldnimi ja määratud aadress. See võib kirjutada kliendipõhist konfiguratsiooni, teha lubamisotsuse, eraldada välise ressursi või registreerida, et ühendus toimus. Mida see ei saa teha, on liiklust jälgida, sest kui esimene pakett tunnelit läbib, on hook juba naasnud.

See ei ole piirang, millest mööda minna. Sessiooni tagasikutse, mis üritaks voogu töödelda, peaks töötama kogu ühenduse eluea, ja deemon skriptileping ei ole sellise kuju jaoks ehitatud. Küsi, milleks hook on, enne kui otsustad, et see on sul ees.

Ka taasühendused loevad. Klient, kes katkeb ja uuesti ühendub, on uus sessioon, seega peab kõik, mida hook eraldab, olema idempotentne või seotud ühenduse katkestamise sündmusega, mis koristab. Igal taasühendusel lekkiv olek on tavaline esimene viga hookil põhinevas disainis.

Sessioonipoliitika kuulub hooki

Lubamine on hooki loomulik töö. Sa tead, kes ühendus, kust ja millise sertifikaadiga, ja saad otsustada, kas see sessioon jätkub või lükatakse tagasi. See otsus on odav, see tehakse üks kord ja see ei nõua ühegi koormusbaiidi vaatamist.

Konfiguratsiooni määramine sobib samasse vormi. Hook saab valida kliendi aadressi, saata sellele identiteedile sobivaid valikuid või kirjutada fragmendi, mida server selle kliendi jaoks loeb. Kuna otsus on sessioonipõhine, jääb see mõistetavaks, kui midagi läheb valesti ja keegi peab selgitama, miks teatud klient sai teatud aadressi.

Registreerimine on kolmas sobivus. Auditi kanne, mis ütleb, et sessioon lubati, koos identiteedi ja ajaga, kuulub täpselt siia. See ei ole liikluslogi ja ei tohiks end sellisena esitleda. Kui keegi hiljem küsib, mida klient tunneli sees tegi, peab vastus tulema mujalt.

Paketitöö kuulub paketiteele

Kui nõue on näha või muuta baite lennu ajal, peab komponent olema edastusteele: järjekorraga tulemüürireegel, liikluse juhtimise hook või kasutajaruumi edastaja. Need mehhanismid näevad pakette ning neil on oma olek, oma rikkerežiimid ja oma jõudlusprofiil.

Koormuse muutmine sellel kihil on raskem kui selle lugemine. Baidi muutmine võib kehtetuks teha pikkusevälja, kontrollsumma või protokolli olekumasina, ja kolmanda kihi tunnel ei kaitse sind mitte millegi eest sellest. See tähendab vaid, et välised päised ei ole need, mida sa muudad. Arvesta selle parandustööga enne, kui kellelegi sisu ümberkirjutust lubad.

Liidese püük on selle kategooria odavaim tööriist ja see on vaatlus, mitte redaktor. Inimesed ajavad need segi, sest mõlemat kirjeldatakse kui liikluse nägemist, aga püük toodab faili ja paketitee toodab otsuse.

Rakenduse muudatused kuuluvad rakendusse

Kui eesmärk on muuta, mida päring sisaldab või kuidas vastus moodustub, on õige koht teenus ise või puhverserver, mis lõpetab protokolli meelega. Need komponendid mõistavad juba päringuid, vastuseid ja autentimist, mida rakendus ootab, ja see on täpselt see kontekst, mida paketifiltril pole.

Aadresside tõlkimine on selle loendi lõpus põhjusega. See kirjutab ümber aadressid ja pordid ning jätab koormuse puutumata, seega ei ole see sisutööriist, ükskõik kui sageli see esineb retseptis, mis mainib ka sisu.

Nende piiride lahus hoidmine on see, mis teeb disaini seletatavaks. Sessioonipoliitika hookis, paketiteöötlus paketiteel ja rakenduse muutmine seal, kus protokoll meelega lõpetatakse: kolm lauset, mis sobivad ka ülevaatuse kontrollnimekirjaks.

Kus TLS ikkagi vestluse lõpetab

Üks asi elab üle kõik eelneva: tunnelisisene liiklus, mis kannab HTTPS-i, hoiab oma transpordikrüpteeringut. VPN-i võtmete omamine annab sulle sisemise IP-paketi ega anna sulle sessioonivõtmeid teises otsas oleva veebisaidi jaoks.

Seetõttu ei saa hook sisu kontrollida isegi põhimõtteliselt, ja seetõttu näeb paketitee šifreeritud teksti, kui juurutamine ei lõpeta sisemist TLS-i meelega. skriptileping kirjeldab, mida hookile antakse; see ei ütle koormuse kohta midagi, sest pole midagi anda.

Seotud artiklid