OpenVPN freget it wachtwurd fan de privekaai op ’e lokale masine, dus in wurkjend oanmeldbestân antwurdet it nea. By in tsjinst is der gjin terminal om yn te typen, en it starten hinget of mislearret mei in journal-ynskriuwing dy’t de ynfier neamt ynstee fan de oarsaak. Twa geheimen binne belutsen, en elk hat syn eigen lêsbere boarne nedich foardat de unit op ’e nij start. De gong hjirûnder skiedt se, en kontrolearret dan de identiteit dy’t elk bestân echt iepenet.

Skied de twa fragen

It kaaiwachtwurd ûntsiferet de lokale privekaai; de accountgegevens ferifiearje de sesje by de tsjinner. Se komme fan ferskate plakken, mislearje op ferskate mominten en jouwe ferskate berjochten. Se trochinoar helje stjoert minsken op syk nei in wachtwurdwerstel wylst it account der hielendal net by wie. Lês de tekst fan ’e fraach foardat jo in opsje feroarje, want de wurden binne it iennige betroubere oanwizing hokker geheim der mist.

Yn Community OpenVPN 2.x wiist askpass nei in bestân dat it kaaiwachtwurd op ’e earste rigel hat, en auth-user-pass nei in bestân mei de brûkersnamme op ien rigel en it wachtwurd op ’e folgjende. Gjin fan beide bestannen foldocht oan ’e oare opsje. In desktop-app of in NetworkManager-profyl kin beide yn syn eigen geheime-opslach hâlde, dy’t in kommandorigel-klant nea lêst, dus notearje hokker klant jo konfigurearje foardat jo in paad skriuwe.

Wys beide opsjes nei lêsbere bestannen

In profyl dat beide ynfier nedich hat, einiget mei trije bestânsferwizings: de fersifere kaai, it wachtwurd dat him iepenet, en it oanmeldpear. Foegje se ta sûnder de CA of de identiteitskontrôles oan te reitsjen, want dy bepale wa’t de tsjinner is en hearre net by dit probleem. As de útrôl hielendal gjin accountgegevens brûkt, makket auth-user-pass in ynfier dy’t nimmen leverje kin.

key /etc/openvpn/client/office.key
askpass /etc/openvpn/client/office-key.pass
auth-user-pass /etc/openvpn/client/office-login.auth

Keale opsjes hâlde har oars as opsjes mei paden, en it ferskil is wichtich by in tsjinst. In askpass sûnder argumint lêst noch de konsôle, en in auth-user-pass-bestân mei allinnich in brûkersnamme lit noch in wachtwurdfraach wachtsje. Sadree’t de klant daemonisearret, kin er hielendal gjin ynfier fan in terminal freegje, dus in tsjinst dy’t sa konfigurearre is, komt net op.

Absolute paden helje de fraach oer de wurkkatalogus fuort, mar jouwe gjin tagong. Eigendom, modus en trochgong komme dêrnei, en alle trije wurde kontrolearre tsjin it account dêr’t it proses ûnder rint.

Lês de konfiguraasje fan ’e unit foar it profyl

De unit, net it bestân dat jo bewurken, beslút hokker konfiguraasje de eksimplaar laadt. Lês syn kommandorigel en alle drop-ins, folgje dan de wurkkatalogus nei it profyl dat echt brûkt wurdt. In wachtwurdferwizing tafoege oan in oar .ovpn-bestân feroaret neat foar dit eksimplaar.

Trije allinnich-lêzen-opdrachten beantwurdzje it measte. De earste printsje de unit en alle drop-ins, de twadde de identiteit en sandbox-ynstellings dy’t it proses bine, en de tredde wêr’t de lêste start echt oer klage. Brûk de eksimplaarnamme dy’t op ’e host bestiet:

systemctl cat [email protected]
systemctl show [email protected] -p User -p Group -p WorkingDirectory -p ProtectHome
journalctl -u [email protected] -b

Let op ProtectHome en op ’e eigen opsjes fan it profyl user, group en chroot. In bestân ûnder in thúsmap kin yn jo shell lêsber wêze en binnen de tsjinst ûnsichtber as thúsmappen ferburgen wurde. It account dêr’t systemd mei start is net altyd it account dat de kaai úteinlik iepenet.

Bewiis dat de runtime-identiteit beide bestannen iepenje kin

De modus lêze is net genôch, want elke map op it paad moat troch deselde identiteit trochgien wurde kinne. Rin it paad komponint by komponint ôf, en test dan it iepenjen as it account dat it proses brûkt. In bestân mei modus 600 yn eigendom fan root wurket allinnich wylst it proses noch root is, wat net wier is nei de privileezjeferlaging dy’t in protte profylen dogge. Twa opdrachten dekke de trochgong en it iepenjen:

namei -l /etc/openvpn/client/office-key.pass
sudo -u openvpn test -r /etc/openvpn/client/office-key.pass && echo readable

De earste opdracht printsje de modus fan elk komponint en mislearret dêr’t it account net trochgien kin; de twadde beantwurdet de iennige fraach dy’t ta docht, nammentlik oft de runtime-identiteit it bestân lêze kin. Gjin fan beide printsje bestânsynhâld, en dat is it punt as it bestân in wachtwurd hat. Werhelje de test foar it oanmeldbestân, want de twa wurde faak mei ferskillend eigendom bewarre.

As it proses in chroot of in beheind namespace brûkt, rin dan deselde test fan binnen dy werjefte, oars beskriuwt it antwurd it ferkearde bestânsstelsel. In wachtwurd bewarre ûnder in ferburgen thúsmap is it gewoane foarbyld fan in test dy’t bûten de unit slagget en binnen mislearret.

Kontrolearje de earste start, dan in werferbining

Start it eksimplaar ien kear en lês de earste mislearring ynstee fan ’e lêste. In ûntbrekkend ynfierbestân, in mislearre kaai-ûntsifering en in AUTH_FAILED fan ’e tsjinner binne trije ferskate barrens mei trije ferskate repaasjes. In machtigingswarskôging reparearje bewiist neat oer oft de kaai ûntsletten wie.

De journal-rigel fertelt hokker fan ’e trije jo hawwe. De repaasje folget út hokker ynfier mislearre:

What the journal showsWhich input failedWhere to look
A path that cannot be openedThe file the profile namesAskpass or login path, and the unit's working directory
A key decryption errorThe key passphraseFirst line of the askpass file, and read access for the runtime identity
AUTH_FAILED from the serverThe account credentialsLogin file contents, and whether the account is still valid

Test dan de libbenssyklus dy’t jo echt nedich hawwe: in start by it booten en elke stipe werferbining, net allinnich in hânmjittige start út jo shell. Mei auth-nocache wurde de ynfier efter it earste gebrûk weilitten, dus in lettere werferbining hat noch altyd in lêsbere boarne nedich. In kaaihinger dy’t by desktop-ynlogging ûntsletten wurdt, is net beskikber foar in tsjinst dy’t starte foardat immen oanmeld wie, en dat is de gewoane reden wêrom’t in hânmjittige test slagget en in werstart mislearret. As de earste start slagget en in lettere werferbining mislearret, lês dan it journal foar de werferbining-barren foardat jo wer machtigingen feroarje.

It wachtwurd njonken de kaai bewarje ferminderet wat de fersifering jo jout, dus behein dat bestân en syn reservekopyen. Sjoch it fuortheljen fan it kaaiwachtwurd as in aparte beslissing oer credentials, net as de repaasje foar in ûntbrekkende ynfier. In útrôl dy’t ôfhinklik is fan minsklike goedkarring of ynteraktive MFA hat syn stipe agent of behear-yntegraasje nedich; in permanint bewarre ienmalige koade is gjin gelykweardige ferfanging.

Relatearre artikelen