Niekto chce preskúmať, čo klienti posielajú tunelom, nájde v dokumentácii hák pripojenia a začne písať skript, ktorý nikdy nedostane jediný paket. Hák je skutočný a užitočný, ale jeho jednotkou práce je relácia, nie bajt. Výber správnej komponenty je porovnanie troch miest, kde môže prebiehať práca, a rozhodujúca otázka je, ktorú jednotku každé z nich skutočne vidí.

Čo hák dostane a čo nikdy nedostane

Hák pripojenia klienta sa spustí raz, keď overený klient nadviaže reláciu, v kontexte procesu servera, s dokumentovanými argumentmi a hodnotami prostredia, ako je spoločné meno a pridelená adresa. Môže zapísať konfiguráciu pre klienta, rozhodnúť o prijatí, prideliť externý prostriedok alebo zaznamenať, že spojenie nastalo. Čo nedokáže, je pozorovať prevádzku, pretože v okamihu, keď tunelom prejde prvý paket, hák sa už vrátil.

To nie je obmedzenie, ktoré treba obchádzať. Relačné spätné volanie, ktoré by sa pokúšalo spracúvať tok, by muselo bežať po celý čas života spojenia, a skriptová zmluva démona nie je postavená na taký tvar. Pýtajte sa, na čo hák je, skôr než usúdite, že vám prekáža.

Na opätovných pripojeniach tiež záleží. Klient, ktorý vypadne a znova sa pripojí, je nová relácia, takže všetko, čo hák pridelí, musí byť idempotentné alebo spárované s udalosťou odpojenia, ktorá uprace. Stav, ktorý uniká pri každom opätovnom pripojení, je zvyčajná prvá chyba v návrhu založenom na háku.

Politika relácie patrí do háku

Prijatie je prirodzená práca háku. Viete, kto sa pripojil, odkiaľ a s akým certifikátom, a môžete rozhodnúť, či táto relácia bude pokračovať, alebo bude odmietnutá. To rozhodnutie je lacné, nastane raz a nevyžaduje pohľad na jediný bajt obsahu.

Priradenie konfigurácie zodpovedá rovnakému tvaru. Hák môže vybrať adresu klienta, poslať voľby vhodné pre túto identitu alebo zapísať fragment, ktorý server číta pre tohto klienta. Keďže rozhodnutie je na reláciu, zostáva zrozumiteľné, keď sa niečo pokazí a niekto musí vysvetliť, prečo konkrétny klient dostal konkrétnu adresu.

Zaznamenávanie je tretia zhoda. Audítorský záznam, ktorý hovorí, že relácia bola prijatá, s jej identitou a časom, patrí presne sem. Nie je to protokol prevádzky a nemalo by predstierať, že ním je. Ak sa niekto neskôr spýta, čo klient robil v tuneli, odpoveď musí prísť odinakiaľ.

Práca s paketmi patrí na cestu paketov

Ak je požiadavkou vidieť alebo meniť bajty za letu, komponent musí byť na ceste odovzdávania: pravidlo firewallu s frontom, hák na riadenie prevádzky alebo odovzdávač v používateľskom priestore. Tieto mechanizmy vidia pakety a majú vlastný stav, vlastné režimy zlyhania a vlastný profil výkonu.

Upravovať obsah na tejto vrstve je ťažšie ako ho čítať. Zmena jedného bajtu môže zneplatniť pole dĺžky, kontrolný súčet alebo stavový automat protokolu a tunel tretej vrstvy vás pred ničím z toho neochráni. Znamená len, že vonkajšie hlavičky nie sú tie, ktoré upravujete. Naplánujte si túto opravu, skôr než niekomu sľúbite prepis obsahu.

Zachytávanie na rozhraní je najlacnejší nástroj v tejto kategórii a je to pozorovanie, nie editor. Ľudia si to pletú, pretože oboje sa opisuje ako videnie prevádzky, ale zachytávanie vytvára súbor a cesta paketov vytvára rozhodnutie.

Zmeny aplikácie patria do aplikácie

Keď je cieľom zmeniť, čo požiadavka obsahuje alebo ako sa tvorí odpoveď, správnym miestom je samotná služba alebo proxy, ktorá protokol zámerne ukončuje. Tieto komponenty už rozumejú požiadavkám, odpovediam a overovaniu, ktoré aplikácia očakáva, a to je presne ten kontext, ktorý filtru paketov chýba.

Preklad adries je na konci tohto zoznamu z nejakého dôvodu. Prepisuje adresy a porty a obsah necháva na pokoji, takže to nie je nástroj pre obsah, nech sa v recepte, ktorý spomína aj obsah, objavuje akokoľvek často.

Práve oddelenie týchto hraníc robí návrh vysvetliteľným. Politika relácie v háku, práca s paketmi na ceste paketov a zmena aplikácie tam, kde sa protokol zámerne ukončuje: tri vety, ktoré zároveň slúžia ako kontrolný zoznam na revíziu.

Kde TLS ešte ukončuje rozhovor

Jedna vec prežije všetko vyššie uvedené: prevádzka v tuneli, ktorá nesie HTTPS, si zachováva vlastné transportné šifrovanie. Mať kľúče VPN vám dá vnútorný IP paket a nedá vám relačné kľúče k webu na druhom konci.

Preto hák nemôže prezerať obsah ani v zásade, a preto cesta paketov vidí šifrovaný text, ak nasadenie zámerne neukončí vnútorný TLS. skriptová zmluva opisuje, čo hák dostane; o obsahu nehovorí nič, pretože nie je čo dať.

Súvisiace články