Dräi Weeër ginn dir en OpenConnect-Client op engem Mac, an se loossen ënnerschiddlech Saachen um Disk. Eng Homebrew-Formel installéiert eng kompiléiert Binärdatei an dat Netzwierkskript, dat d'Routen an den DNS astellt. En Release-Archiv gëtt dir Quellcode mat engem generéierte Buildsystem. E git-Checkout gëtt dir Quellcode ouni et. Dee falschen ze wielen ass de Grond, firwat Leit e fehlende configure e puer Minutten no Ufank vun engem Tutoriell begéinen.

Zwee verschidde Maschinnen ënner dem selwechten Numm

De Pakwee ass eng eenzeg Kommando, an et ass de richtege Standard fir jiddereen, deem seng Aarbecht et ass sech ze verbannen an net z'entwéckelen.

brew install openconnect

Wat et installéiert ass méi wichteg wéi d'Kommando. Dir kritt d'Binärdatei vum Client, an Dir kritt och e vpnc-script, dee de Client oprufft, fir d'Interface, d'Routen an de Resolver ze programméieren. Déi zwou schaffen als Paar: d'Binärdatei beendet d'TLS-Sessioun an iwwerbréngt déi entstanen Interface un de Skript, an de Skript ass deen Deel, dee weess wéi dëst Betribssystem säi Netz geännert wëll hunn.

Dës Trennung erkläert eng ganz Klass vu verwirrende Rapporten. E Client, dee sech verbënnt, Erfolleg mëttelt an dann den Trafik um falsche Wee schéckt, huet meeschtens e Skriptproblem, net e Tunnelproblem, an d'Formel nei installéieren hëlleft just well de Skript och nei installéiert gëtt. Kontrolléiert d'aktuell Ënnerstëtzung vun der Formel fir macOS an d'CPU-Architektur ier Dir drop plangt; en Mac, deen eng Shell perfekt ausféiert, huet vläicht nach kee aktuellt Pak, dat fir hien gebaut gouf.

Wat de Quellwee wierklech mécht

En Release-Archiv kënnt mat engem generéierte Buildsystem, dofir existéiert de bekannten ./configure vum Ufank un. E git-Checkout net, well déi generéiert Dateie Buildprodukter sinn an net Saachen, déi de Projet späichert. Dat ass de ganzen Grond, firwat ./autogen.sh an den Instruktioune fir Checkoute steet an net fir Release-Archiven.

./autogen.sh
./configure
make
make install

All Zeil mécht eppes Bestëmmtes, an ze wëssen wéi eng gescheitert ass spuert vill Rotschlags. Den autogen-Schrëtt leeft d'autotools fir configure ze produzéieren. Den configure-Schrëtt iwwerpréift de Compiler, d'Bibliothéiken an d'Headeren, déi de Client brauch, a schreift dann d'Makefiler, déi reflektéieren wat et fonnt huet. De make-Schrëtt kompiléiert. Den install-Schrëtt kopéiert d'Resultater iergendwou op Ären Pad.

Et ass op där leschter Zeil, wou Rot dacks falsch geet. Installatioun ass kee Beweis, datt de Build funktionéiert huet, an en an engem beliebige Download-Dossier mat erhéichte Rechter lafe loossen ass e gudde Wee fir Dateien ze verspreeden, un déi Dir Iech spéider net erënnert. Wann configure wéinst enger fehlender Bibliothéik feelt, ass de nëtzlech Output den éischte Feeler, deen et gedréckt huet, net déi lescht zwanzeg Zeilen aus dem Log.

D'Sessioun an d'Netzwierkkonfiguratioun sinn getrennt

Dësen Ënnerscheed entscheet, ob eng Verbindung tatsächlech Trafik dréit. D'TLS-Sessioun opbauen gëtt dir eng Interface um Client-Säit. Routen, Adressen an DNS-Resolvere applizéieren ass en zweeten Schrëtt iwwer de Netzwierkskript, an e Build, deen eng Binärdatei ouni de Skript produzéiert huet, huet en halwen Client.

Déiselwecht Trennung erkläert firwat zwou Maschinnen mat identesche Cliente sech anescht behuelen: de Skript consultéiert d'Netzwierkkonfiguratioun vum System, an déi Konfiguratioun enthält alles anescht, wat eng Route reklaméiert huet. Wann en opgedeilten Tunnel den Trafik op en onerwaarte Plaz schéckt, mécht den Tunnel seng Aarbecht an d'Routingentscheedung ass dat, wat ee misst ënnersichen.

Also wann Dir debuggt, frot wéi eng Schicht gescheitert ass. Eng Sessioun déi ni opgebaut gëtt ass Protokoll, Zertifikat oder Umeldungsdaten. Eng Sessioun déi opgebaut gëtt an näischt weiderleede ass d'Interface an de Skript. En installéierte Client deen aus engem Netz funktionéiert an aus engem aneren net, ass Erreechbarkeet, an do ännert keng Quantitéit un Neibau eppes.

Wësst wéi eng Binärdatei Dir ausféiert

En handinstalléierte Build an eng paketéiert Binärdatei kënnen an Fridden zesumme bestoen, an déi déi leeft hänkt vun Ärem Pad of an net vun Ären Absichten. Fannt dat eraus ier Dir iergendeem eng Versiounsnummer mëttelt.

which -a openconnect
openconnect --version
brew list --versions openconnect

Déi éischt Kommando lëscht all Kopie op, déi Är Shell gesäit, an der Rei an där s'd'probéiere géif. Déi zweet seet Iech wéi eng geäntwert huet. Wann dat net mat Ären Erwaardungen iwwerenee stëmmt, loosst Dir e Build aus engem ale Versuch lafen, an keng Konfiguratiounsännerung wäert en réckelen.

E Client installéieren ass keng Gateway-Genehmegung

Eng funktionéierend Binärdatei mécht eng Deployement net kompatibel. Bestätegt de Protokoll vum Gateway, seng Authentifikatiounsfloss an all Ufuerderung fir e geréiert Apparat mat de Leit déi en besëtzen, well dat sinn Politik- an Applikatiounsschichtfakten, déi e Build net liwwere kann.

Dem Projet seng Buildinstruktiounen decken d'autotools-Sequenz an d'Fuerderung vum Netzwierkskript méi detailléiert of, an déi soll ee befollegen an net e Blogpost, dee méi al ass wéi Är macOS-Versioun. Wann d'Zil just verbannen ass, hëlt de Pak, haalt de Skript a loosst de Compiler dobaussen.

Ähnlech Artikelen