It tafoegjen fan --csd-wrapper oan in profyl jout in lokaal skript oan in daemon dy’t it by de oanmelding útfiert, dus de beslissing foar jo is in koade-analyze, net in foarkarsknop. De opsje bestiet sadat in host-kontrôlekomponint fan ’e poarte ferfongen wurde kin, en hy nimt in paad nei in skript dat jo leverje. Alles hjirûnder giet derfan út dat de eigner fan ’e útrâl al sein hat hokker postuerkontrôle nedich is; as dat part noch iepen is, regelje it dan earst. It hânboek hat fjouwer stappen: fyn de mislearre etappe, lês it skript, kies de identiteit wêr’t it ûnder draait en bewiis it resultaat.

Stap 1: Fyn de etappe dy’t mislearre

It lêste berjocht fan ’e klant giet meast oer in koekje, dat is it ein fan in keatling en net it begjin. In HTTPS-oanmelding, in serversertifikaatkontrôle, in autentikaasje-útwikseling en in postuerkomponint steane allegear foar dat berjocht.

Fêstlizze de ferzje en it oanmeldadres dat brûkt wurdt, en werhelje dan de poging mei wiidweidige útfier dy’t op jo eigen terminal bliuwt. Lês de earste flater dy’t gjin nije poging is, net de lêste rigel fan ’e transkripsje. As it logboek stopet foardat in beoardielingskomponint neamd wurdt, dan is de wrapper noch net jo probleem. It tafoegjen op dat stuit ferbreedet allinnich it oerflak dat jo letter ferdigenje moatte.

openconnect --version
openconnect --verbose --user="$VPN_USER" vpn.example.com </dev/null

Hâld de transkripsje lokaal, want koekjes en autentikaasjeresponsen binne tagongsguod. In spoar dat yn in petear tried plakt wurdt, is in lek fan tagongsgegevens sels as de beoardielingsstap ûnskuldich liket. Diel de flatertekst en it punt yn ’e stream dêr’t it ferskynde, nea de lading.

Stap 2: Lês it skript foardat it in profyl yn giet

In wrapper is mar sa betrouber as de ferzje dy’t jo besjoen hawwe, dus fêstigje dy ferzje en bewarje syn hash neist de goedkarringnotysje. De twa kommando’s hjirûnder jouwe jo in fingerôfdruk en in goedkeape syntakskontrôle foardat jo ien rigel lêze. Se jouwe ek de folgjende persoan in fêste referinsje, wat útmakket as it bestân bûten pakketbehear libbet. Gjin fan ’e kommando’s fertelt wat it skript docht, dus fiere se út en bliuw lêzen.

sha256sum ./vpn-csd-wrapper.sh
bash -n ./vpn-csd-wrapper.sh

Lês it hiele bestân mei fjouwer fragen yn ’t efterholle: makket it útgeande HTTP-oproppen, lêst it tagongsbestannen of omjouwingsfariabelen, skriuwt it bûten in tydlike map, en rapportearret ien of oare tûke in slagge postuer sûnder wat te mjitten. Dat lêste patroan is in beliedsomgong mei in logrigel deroan fêst. Kopiearre wrappers smokkelje it graach efter in leauwensweardich lykjende kontrôle. As it skript beslút dat it apparaat goed is foardat it nei it apparaat sjocht, stopje dêr.

Kontrolearje ek op ferpakte ladingen, want in lêsbere kop bewiist neat oer de rest fan it bestân. In skript fan in forumtried delhelje makket it net betrouber allinnich om’t syn namme in echte host-kontrôlekomponint yn ’t sin bringt. Skriuw op wa’t it ynstallearre, wêr’t it wei kaam en hoe’t it bywurke wurde sil.

grep -nE 'base64 -d|xxd -r|eval |curl |wget ' ./vpn-csd-wrapper.sh

Stap 3: Kies de identiteit wêr’t de wrapper ûnder draait

--csd-user ferleget privileezjes wylst it CSD-, TNCC- of HIP-programma útfierd wurdt. Dat akkount is part fan ’e lokale útfieringsregeling, net de brûkersnamme dy’t oan ’e poarte jûn wurdt.

Jou de wrapper in eigen akkount sûnder ynteraktive skulp, sûnder sudo-rjochten en sûnder groepslidmaatskippen dy’t it net nedich hat. Jou lêstrjocht ta op it skript en op ’e spesifike bestannen dy’t it ynspektearret, en test dan de ferleging foardat jo it VPN-profyl oanreitsje. It probleem hjir fine is goedkeaper as it binnen de klant fine.

sudo -u vpn-csd /usr/local/libexec/vpn-csd-wrapper.sh

Privileezjes ferleegje beheindet de skea dy’t in min skript oanrjochtsje kin. It besjocht de koade net, makket it rapport net wier en stelt net fêst dat de poartebehierder dizze ymplemintaasje akseptearret as foldwaan oan it apparaatbelied.

Stap 4: Hâld de feroaring weromdraaibaar

Meitsje in reservekopy fan it profyl foardat jo it bewurkje, en hâld de wrapper ûnder ferzjekontrôle sadat in weromdraaiing in bekende hash werstelt ynstee fan in kopy sykje. Skriuw it skriptpaad, de hash, de útfieringsbrûker en de goedkarmer op ien plak.

Om werom te draaien, ferwiderje de opsje, start de klant opnij en befêstigje dat de oarspronklike flater weromkomt. As de poarte de oanmelding nei de weromdraaiing noch altyd wegere, is der ek wat oars feroare, en it finen fan dat ferskil komt foar it opnij besykjen fan de wrapper. Hâld de foarige kopy yn ’e hiele feroaringsperioade, wat foar de measte teams betsjut oant it folgjende ûnderhâldsfenster foarby is.

Nei in suksesfolle útrol, kontrolearje twa dingen ynstee fan ien: de tunnel komt omheech, en in apparaat dat de postuerkontrôle mislearje moat wurdt noch altyd wegere. In ferbining dy’t foar elkenien wurket is gjin bewiis dat de beoardieling jo feroaring oerlibbe hat.

Flugge wegen dy’t in twadde probleem meitsje

Lit de helper gjin konform status rapportearje sûnder de ferplichte kontrôles út te fieren, en oerskriuw de platformidentiteit net om by in oar bestjoeringssysteem te passen. Bewearje dat it in oar platfoarm is, is gjin bewiis dat it echte apparaat oan it belied foldocht. It lit jo efter mei in klant dy’t by elke takomstige oanmelding linet.

Serverferifikaasje útskeakelje, in âld koekje opnij ôfspylje en net-besjoene skripten opstapelje ruilje allegear in sichtbere mislearring foar in ûnsichtbere. As de ynstallearre klant de stipe stream net foltôgje kin, freegje dan om in goedkard alternatyf ynstee fan ’e iene dy’t jo hawwe te bûgen.

It OpenConnect-hânboek dokumintearret --csd-wrapper en --csd-user apart, en dat is de oanwizing dy’t útmakket: it skript en de identiteit binne twa beslissingen. Besjoch se apart en skriuw beide op. Dan is de oanmeldprompt gjin riedsel mear dat jo oplosse troch koade te plakken.

Relatearre artikelen