Ühendus, mis töötab pärast sisselogimist ja ebaõnnestub enne seda, tähendab tavaliselt, et alglaadimiskatse ei saanud saladust hankida, mitte et server oleks ühe tagasi lükanud. Volitus on olemas; kontekst, mis seda küsib, puudub. See üks erinevus säästab tarbetu parooli lähtestamise.

Jälgi päringut: miski käivitab ühenduse enne, kui töölaua sessioon on olemas, ja saladuste hoidla, mis tavaliselt vastab, pole veel avatud. Kaks konteksti ei ole ühel meelel, kellele saladus kuulub, ja profiil märgib, kumb neist peaks selle pakkuma.

Mida alglaadimistee tegelikult küsib

Alglaadimisel käivitub NetworkManager süsteemiteenusena, ilma kasutajasessioonita, ilma sessiooni D-Busita ja ilma avatud võtmerõngata. Ühendusprofiili saab siiski üles tõsta, aga ainult saladustega, milleni teenus ise jõuab. Kõik, mis kuulub saladusagendile, ootab, kuni inimene sisse logib ja agent ilmub. Teenus teeb täpselt seda, mida ütleb tema konfiguratsioon; profiil on see, mida tuleb muuta.

Tõrge on kirjutatud ühendusse, mitte peidetud võtmerõngasse.

Ühenduse saladuselippude lugemine

Küsi ühenduselt, mida see ootab, mitte mida töölaud mäletab. Lippude veerg vastab küsimusele otse ja jääb kettale profiilifailis ka taaskäivitustest alles.

Alusta profiilide loendist, seejärel kinnita, milline ühendus on seatud ise üles tõusma. Seejärel väljasta üks ühendus ja loe paroolilipud:

nmcli -f NAME,UUID,TYPE,AUTOCONNECT connection show
nmcli connection show "Work VPN" | grep -i -E "password|secret|key"
journalctl -b -u NetworkManager --grep "secret"

Esimene käsk kinnitab, millised profiilid on olemas ja kas mõni on seatud automaatsele ühendusele, millega järelevalveta katse üldse algab. Teine paljastab lipuväärtused ja kolmas näitab, kuidas teenus kurdab, et ükski agent ei vastanud antud saladuse eest. Logirida, mis nimetab saladust agendi omandiks, on kogu diagnoos ühes lauses.

Flag valueWhere the secret livesBehaviour before login
0Stored in the connection profileAvailable to the system service
1Owned by a secret agentBlocks until the agent is unlocked
2Never storedPrompts on every activation
4Not requiredNever requested at all

Miks ühenduse viimine süsteemitasandile vastust muudab

Kasutajale kuuluv ühendus aktiveeritakse selle kasutaja agendi all, mistõttu see töötab suurepäraselt kohe, kui töölaud on üleval. Süsteemitasandile viimine eemaldab agendi teelt, nii et sama profiil käitub teisiti, ilma et muutuks ükski VPN-konfiguratsiooni rida.

See viimine on legitiimne disain ja sellega kaasneb nõue: saladus peab olema süsteemiteenusele kättesaadav. Selle salvestamine profiili, pakkumine süsteemitasandi volituse kaudu või interaktiivse küsimuse aktsepteerimine õigel hetkel on kõik kehtivad vastused. Lipu 1 jätmine ja lootmine ei ole.

Eraldi paroolifraasiga privaatvõti lisab teise kihi. Isegi salvestatud kontoparool ei ava võtit, mis nõuab paroolifraasi, seega kontrolli, millist saladust ebaõnnestuv etapp tegelikult küsib, enne kui midagi muudad.

Mida mitte teha ja mida selle asemel teha

Iga volitusfaili kõigile loetavaks tegemine või autentimise väljalülitamine, et küsimust poleks vaja, vahetab alglaadimise ebamugavuse püsiva avatuse vastu. Mõlemad varjavad ka sõltuvust, selle asemel et seda lahendada, ja järgmine kujutise uuendus toob sama tõrke tagasi.

Kasuta selles etapis mehhanismi, mille sinu distributsioon dokumenteerib järelevalveta aktiveerimise jaoks, seejärel kinnita, et profiili lipud sellega sobivad. Kontrolli tulemust puhtast alglaadimisest, mitte kestast, millel on juba agent. Kirjuta üles ühenduse omanik, saladuse allikas ja etapp, mis peab töötama, et hilisem autostardi muudatus ei saaks vaikselt taastada sõltuvust sellest, et keegi avab kõigepealt töölaua. Dokumentatsioon on erinevus parandatud teenuse ja selle vahel, mis järgmisel kvartalil uuesti katki läheb.

Testi kontrollitud puhtast alglaadimisest, mitte käsitsi korduskatsest pärast sisselogimist. Korduskatse õnnestub põhjusel, miks alglaadimiskatse ebaõnnestus, ja just selle tõendi hävitab kiire test.

Seotud artiklid