VPN паролата трябва да живее някъде: в профила на връзката, в ключодържател, който работният плот отключва, или никъде. NetworkManager нарича този избор флаг за тайна и изборът на грешния е причината връзка да работи след вход и да се проваля като услуга. Флагът е един ред конфигурация и решава кой от тези три изхода ще получите.

Три флага покриват почти всеки случай и решението е за това кога стартира връзката.

Три флага за тайни, три поведения

Флаг 0 означава, че тайната се запазва с връзката, в каквото и хранилище да държи профила. Флаг 1 го прави собственост на агент: тайната идва от агент за тайни, например ключодържател на работния плот, и NetworkManager я иска при активиране. Флаг 2 означава незапазена, така че тайната никога не се записва и трябва да се подава всеки път. Флаг 4 отбелязва тайна като ненужна, за връзки, които наистина не се нуждаят от такава.

FlagWhere it livesWorks unattended
0 savedConnection profileYes, if the store is readable
1 agent-ownedSecret agent or keyringOnly if that agent is available
2 not-savedNowhereNo

Задавайте флаговете за всяка тайна, а не за връзка. Една връзка може да има парола, собственост на агент, и запазена парола за частен ключ.

Решете според това кога стартира връзката

Ако влязъл потребител стартира връзката, собствеността на агент е разумната настройка по подразбиране: ключодържателят се отключва при входа и тайната никога не стои във файл. Ако връзката трябва да се вдигне преди някой да влезе, собствеността на агент е грешният избор, защото няма ключодържател на сесията, който да се отключи.

Това е цялото решение. Всичко останало е негов вариант.

За услуга преди вход поддържаният модел е хранилище на системно ниво или защитен ключов файл и защита стават правата на файла. Не решавайте проблема, като поставите паролата в shell скрипт, който се изпълнява при зареждане.

Какво дава ключодържателят и какво не

Ключодържателят държи тайната извън профила на връзката и я обвързва с потребителска сесия. Той не прави тайната достъпна за услуга без сесия и не криптира нищо по мрежата. Това са отделни свойства, които хората често смесват. Това, което наистина дава, е по-малък обхват на щетите, когато файлът на профила изтече.

Частният ключ, към който профилът препраща, се нуждае от собствени права, независимо от това къде живее паролата.

Диагностика без изсипване на тайни

Имената на връзките, UUID и флаговете обикновено са достатъчни, за да обяснят отказ. nmcli connection show изброява профила, а флаговете за тайни ви казват откъде е трябвало да дойде паролата.

Избягвайте --show-secrets в тикети и чат. Веднъж поставено, то е идентификационни данни в стенограма.

Съхранението не е отнемане

Премахването на тайна от един ключодържател не прави невалидни идентификационните данни, които отдалеченият оператор вече е приел. Отнемането на акаунт е действие от страна на сървъра, а локалното съхранение е отделен въпрос с отделен собственик.

Решете и двете преди инцидента, не по време на него. Интерактивна потребителска връзка и услуга преди вход се нуждаят от различни отговори, а споделен shell скрипт не е нито едно от двете. Документацията на NetworkManager за флаговете за тайни изброява стойностите изцяло.

Подобни статии