Где Linux треба да чува вашу VPN лозинку? Не у профилу
Заставице тајни у NetworkManager-у одређују да ли лозинку држи профил, агент привеска са кључевима или нико. Одговор зависи од тога када се веза покреће.
VPN лозинка мора негде да живи: у профилу везе, у привеску са кључевима који радна површина откључава или нигде. NetworkManager тај избор назива заставицом тајне, а избор погрешне је разлог зашто веза ради након пријаве, а као сервис не успева. Заставица је један ред конфигурације и одлучује који ћете од та три исхода добити.
Три заставице покривају скоро сваки случај, а одлука је о томе када се веза покреће.
Три заставице тајни, три понашања
Заставица 0 значи да се тајна чува уз везу, у којем год складишту држи профил. Заставица 1 чини је власништвом агента: тајна долази од агента тајни као што је привезак са кључевима радне површине, а NetworkManager је тражи при активацији. Заставица 2 значи да није сачувана, па се тајна никада не записује и мора се доставити сваки пут. Заставица 4 означава тајну као непотребну, за везе којима она заиста не треба.
| Flag | Where it lives | Works unattended |
|---|---|---|
| 0 saved | Connection profile | Yes, if the store is readable |
| 1 agent-owned | Secret agent or keyring | Only if that agent is available |
| 2 not-saved | Nowhere | No |
Поставите заставице по тајни, а не по вези. Једна веза може имати лозинку у власништву агента и сачувану фразу приватног кључа.
Одлучите према томе када се веза покреће
Ако везу покреће пријављени корисник, власништво агента је разуман подразумевани избор: привезак са кључевима се откључава пријавом и тајна никада не стоји у датотеци. Ако веза мора да устане пре него што се било ко пријави, власништво агента је погрешан избор, јер нема сесијског привеска са кључевима за откључавање.
То је цела одлука. Све остало је њена варијанта.
За сервис пре пријаве подржан је образац системско складиште или заштићена датотека кључа, а заштита постају дозволе датотеке. Не решавајте проблем лепљењем лозинке у shell скрипту која се извршава при подизању.
Шта привезак са кључевима даје, а шта не
Привезак са кључевима држи тајну изван профила везе и везује је за корисничку сесију. Не чини тајну доступном сервису без сесије и не шифрује ништа на вези. То су одвојена својства која људи често стапају. Оно што заиста даје је мањи полупречник штете кад профилна датотека процури.
Приватни кључ на који профил упућује треба сопствене дозволе, независно од тога где лозинка живи.
Дијагностика без изливања тајни
Називи веза, UUID-ови и заставице обично су довољни да објасне неуспех. nmcli connection show наводи профил, а заставице тајни говоре одакле је лозинка требало да дође.
Избегавајте --show-secrets у тикетима и чету. Када је једном залепљено, то су подаци за приступ у транскрипту.
Складиштење није опозив
Уклањање тајне из једног привеска са кључевима не поништава податке за приступ које је удаљени оператер већ прихватио. Опозив налога је радња на страни сервера, а локално складиштење је одвојено питање са одвојеним власником.
Одлучите о оба пре инцидента, не током њега. Интерактивна корисничка веза и сервис пре пријаве траже различите одговоре, а заједничка shell скрипта није ниједно. Документација NetworkManager-а о заставицама тајни наводи вредности у целини.