In ferbiningsheak is sesjebelied, gjin pakketfilter
De client-connect-heak rint ien kear per sesje en sjocht nea payload. Set talitting dêr't sesjes besteane, en ynhâldsferoaring dêr't oanfragen besteane.
Immen wol besjen wat klanten troch de tunnel stjoere, fynt de ferbiningsheak yn 'e dokumintaasje en begjint in skript te skriuwen dat nea ien pakket ûntfange sil. De heak is echt en nuttich, mar syn wurkeenheid is in sesje, net in byte. De goede komponint kieze is in fergeliking tusken trije plakken dêr't wurk barre kin, en de beslissende fraach is hokker ienheid elk fan harren wier sjocht.
Wat de heak ûntfangt, en wat er nea ûntfangt
In client-connect-heak rint ien kear as in autentisearre klant in sesje fêstiget, yn 'e proseskontekst fan 'e tsjinner, mei dokumintearre arguminten en omjouwingswearden lykas de mienskiplike namme en it tawiisde adres. Hy kin konfiguraasje per klant skriuwe, in talittingsbeslút nimme, in eksterne boarne tawize of fêstlizze dat de ferbining bard is. Wat er net kin, is ferkear observearje, want as it earste pakket de tunnel oerstekt, is de heak al werom.
Dat is gjin beheining om omhinne te wurkjen. In sesje-callback dy't in stream besykje soe te ferwurkjen, moast de hiele libbensdoer fan 'e ferbining rinne, en it skriptkontrakt fan 'e daemon is net foar dy foarm boud. Freegje wêr't de heak foar is foardatsto beslútst dat er yn 'e wei stiet.
Werferbiningen telle ek. In klant dy't falt en wer ferbynt, is in nije sesje, dus alles wat de heak tawist, moat idempotint wêze of keppele oan in ôfbrekbar evenemint dat oprommet. Steat dy't by elke werferbining lekt, is de gewoane earste bug yn in heakbasearre ûntwerp.
Sesjebelied heart yn 'e heak
Talitting is it natuerlike wurk fan 'e heak. Do witst wa't ferbûn hat, fan wêr en mei hokker sertifikaat, en do kinst beslute oft dizze sesje trochgiet of wegere wurdt. Dat beslút is goedkeap, it bart ien kear, en it freget net om nei ien byte payload te sjen.
Konfiguraasjetawizing past yn deselde foarm. In heak kin it adres fan 'e klant kieze, opsjes stjoere dy't by dy identiteit passe, of in fragmint skriuwe dat de tsjinner foar dizze klant lêst. Om't it beslút per sesje is, bliuwt it begryplik as der wat misgiet en immen útlizze moat wêrom't in bepaalde klant in bepaald adres krige.
Fêstlizzen is de tredde pasfoarm. In auditynskriuwing dy't seit dat in sesje talitten is, mei syn identiteit en tiid, heart krekt hjir. It is gjin ferkearslog en moat him net as sadanich foardwaan. As immen letter freget wat in klant binnen de tunnel die, moat it antwurd fan earne oars komme.
Pakketwurk heart op in pakketpaad
As de eask is om bytes ûnderweis te sjen of te feroarjen, moat de komponint op it trochstjoerpaad stean: in firewallregel mei in wachtrige, in ferkearsbehearheak of in trochstjoerder yn 'e brûkersromte. Dy meganismen sjogge pakketten, en se hawwe har eigen steat, har eigen flatermodus en har eigen prestaasjeprofyl.
Payload bewurkje op dat laach is hurder as it lêze. In byte feroarje kin in lingtefjild, in kontrôlesom of in protokolsteatmasine ûnjildich meitsje, en in tunnel fan 'e tredde laach beskermet dy tsjin neat dêrfan. It betsjut allinnich dat de bûtenste headers net dejinge binne dy'tsto bewurkest. Begrutsje foar dat reparaasjewurk foardatsto immen in ynhâldsherskriuwing taseiste.
In interface-opname is it goedkeapste ark yn dizze kategory, en it is in observaasje, gjin bewurker. Minsken ferwikselje de twa om't beide beskreaun wurde as it sjen fan ferkear, mar in opname leveret in bestân en in pakketpaad leveret in beslút.
Tapassingsferoarings hearre yn 'e tapassing
As it doel is om te feroarjen wat in oanfraach befettet of hoe't in antwurd foarme wurdt, is it goede plak de tsjinst sels of in proxy dy't it protokol mei opsetsin beëiniget. Dy komponinten begripe al oanfragen, antwurden en de autentikaasje dy't de tapassing ferwachtet, en dat is krekt de kontekst dy't in pakketfilter mist.
Adresfertaaling stiet om in reden ûnderoan dizze list. It skriuwt adressen en poarten oer en lit de payload gewurde, dus it is gjin ynhâldsark, hoe faak it ek opdoemt yn in resept dat ek ynhâld neamt.
Dizze grinzen skieden hâlde is wat in ûntwerp ferklearber makket. Sesjebelied yn 'e heak, pakketbehanneling op in pakketpaad en tapassingsferoaring dêr't it protokol mei opsetsin beëinige wurdt: trije sinnen dy't ek as kontrôlelist foar de resinsje tsjinje.
Dêr't TLS it petear noch beëiniget
Ien ding oerlibbet alles hjirboppe: ferkear binnen de tunnel dat HTTPS draacht, hâldt syn eigen transportfersifering. Kaaien fan 'e VPN hawwe jout dy it binnenste IP-pakket en jout dy net de sesjekaaien foar de webside oan 'e oare kant.
Dêrom kin in heak ynhâld sels yn prinsipe net ynspektearje, en dêrom sjocht in pakketpaad siferskreaun tekst, útsein as de útrol it binnenste TLS mei opsetsin beëiniget. skriptkontrakt beskriuwt wat de heak krijt; it seit neat oer payload, om't der gjin payload te jaan is.