Спрете NetworkManager да показва запазена парола за VPN
Питайте всеки път, предайте я на ключодържател или пазете файл само за root. Всеки избор носи различно излагане и флагът на паролата трябва да съответства на него.
NetworkManager може да пази парола за VPN, така че връзката да се вдига, без някой да я въвежда, и може да покаже тази стойност обратно през редактора или през nmcli --show-secrets. Налични са три модела на собственост, а поведението при показване е само симптом на това кой сте избрали. Изберете първо модела, после задайте флага, който му отговаря, вместо да скривате поле с подмяна, която ще обърка следващия човек.
Три модела на собственост
Първият модел пита всеки път. Нищо не се пази, тайната съществува само за времетраенето на активирането и всеки, който стартира връзката, трябва да знае паролата. Това е най-неудобната опция и най-лесната за защита.
Вторият предава тайната на ключодържател, притежаван от потребителя. Агентът се отключва при началото на сесията и доставя стойността при поискване, което я държи извън файла на връзката, но обвързва връзката със сесията на този потребител. Оттук следват две условия: агентът трябва да работи и трябва да е отключен.
Третият пази защитени идентификационни данни за системна връзка. Той оцелява при рестартиране и работи преди някой да влезе, а в замяна стойността лежи на диска, пазена от права на файла, а не от шифроване.
Всеки модел е разумен в подходящия контекст. Грешката е да ги смесвате, защото така лаптопът се сдобива с тайна на две места и без ясен отговор кое е меродавното. Запишете кой модел използва профилът. Един ред в ръководството на екипа спестява на следващия човек измислянето на четвърто място за търсене.
Прочетете текущото състояние, преди да го промените
Погледнете профила и състоянието на тайната като потребителя, който управлява връзката. Втората команда е тази, която ви казва дали стойността е наистина четима.
nmcli connection show "Office VPN"
nmcli --show-secrets connection show "Office VPN"
sudo stat -c '%U %a %n' /etc/NetworkManager/system-connections/*.nmconnection
Файлът с ключ в тази директория обикновено е собственост на root с режим 600. Това държи обикновените потребители навън и не държи root навън, което има значение, когато машината е споделена или когато архивирането работи като root.
Правата на файла са граница, не шифроване. Всеки, който може да прочете файла като root, вижда паролата в чист текст. Това е приемлива размяна за сървър без надзор и лоша за споделена работна станция. Записването веднъж предотвратява дълъг спор дали стойността е защитена.
Какво прави всяка стойност на флага
Тайната на VPN носи свойство flags и стойностите не са интуитивни само от числата.
| Value | Meaning | Practical effect |
|---|---|---|
| 0 | No special flag | Secret is typically saved with the connection |
| 1 | Agent-owned | A keyring or secret agent supplies it |
| 2 | Not saved | Prompted at each activation |
| 4 | Not required | Connection proceeds without asking |
Действителното поведение зависи и от приставката и от това дали работи агент, затова приемайте таблицата за договор, а наблюдаваното поведение — за това, което проверявате. Стойност, която работи на един настолен компютър, може да се държи различно на сървър без сесия. Именно в тази разлика живеят повечето объркващи заявки.
Задайте свойството изрично, вместо да изтривате ред и да се надявате. Липсващият флаг не е политика и следващото обновяване на пакета може да го запълни с нещо, което не сте имали намерение.
Съобразете модела с момента, в който стартира връзката
Ако връзката стартира само докато потребител е влязъл, собствеността на агента е добро решение и държи тайната извън файла. Ако тя стартира при зареждане, преди да съществува сесия, агентът не може да ви помогне.
Това е цялото решение за повечето машини. То обяснява и един клас объркващи доклади, при които връзката работи интерактивно и се проваля след рестарт. Флагът никога не се е променил; контекстът се промени.
За случая без надзор практичният отговор е ограничен файл, собственост на root, или одобрен източник на идентификационни данни. Дръжте го извън профила на връзката, ако този профил някога бъде изнесен или копиран на друга машина.
Ако стойността вече е била видима, сменете я
Промяната на флаг не докосва самата парола. Стойност, която се е появила на екранна снимка, в историята на shell, в пакет, изпратен до поддръжката, или във файл, който други потребители са могли да отворят, трябва да се смята за разкрита.
Сменете я на сървъра, после поправете клиента и прекратете всяка сесия, удостоверена със старата. Изтриването на локалната връзка не отменя нищо от другата страна и точно това хората пропускат.
После спрете да слагате паролата на командния ред. Тя попада в историята на shell и може да се появи в списък на процесите; използвайте интерактивното запитване или агента.
Проверете, като се свържете отново
Повторете командата, която показа тайната, и потвърдете, че полето вече не се отпечатва. После се разкачете и свържете отново, а ако връзката стартира автоматично — рестартирайте, защото интересната повреда се появява само при промяна на контекста на сесията.
Ако тайната все още се показва, доставя я друг профил или друг агент. Прегледайте активната връзка и ключодържателя, вместо да триете файлове, докато симптомът се премести.