Вашият VPN ключ е достъпен за всички: какво да поправите
Частният ключ трябва да се чете само от услугата, която го използва, и от никой друг. Поправете режима, намерете копията и сменете ключа, ако файлът е бил изложен.
Първият признак обикновено е предупреждение, а не отказ. Клиент отказва да зареди ключ, защото файлът е четим от групата или от всички, или одит на сигурността намира client.key с режим 644 в папка на профил, където има и експортирани пакети. Нищо още не е счупено и точно затова предупреждението се пренебрегва. Ключът работи, тунелът се вдига, а файлът е четим от всеки акаунт на машината.
Симптомът е предупреждение за права, а не прекъсване
В Unix-подобна система частният ключ трябва да се чете от акаунта, който пуска услугата, и от никой друг. Режим 600 с правилния собственик е обичайното положение. Режим 644 означава, че всеки локален потребител може да копира ключа, а на споделен build хост това е реална аудитория.
Клиентите, които проверяват това, ви правят услуга. Тези, които не проверяват, не са доказателство, че файлът е безопасен, а успешната връзка не казва нищо за това кой друг може да чете материала, който я е направил възможна. Приемайте предупреждението като цялата находка. То е точно и е пристигнало, преди някой да копира файла.
Съобразете режима с идентичността на услугата
Достъп само за собственика подхожда на ключ, използван от този собственик. Услуга с умишлено споделена група може да се нуждае от друга контролирана схема, например четене от групата на ключ, притежаван от сервизен акаунт. Сляпото задаване на един цифров режим за всеки файл чупи поддържаните клиенти, а chmod -R 777 не е решение за нищо.
Проверете собственика и сервизния акаунт, преди да промените нещо. Публичните CA сертификати и частните ключове за идентичност имат различни изисквания за секретност, дори когато са в една папка, затова рекурсивен режим върху цялата папка третира двете като един и същ обект.
ls -l /etc/openvpn/client/
stat -c '%U %G %a %n' /etc/openvpn/client/*.key
id openvpn
На други платформи използвайте документираното хранилище за ключове или модела за контрол на достъпа, вместо да превеждате Unix режими в догадка. Име на файл, завършващо на private, е етикет, а не механизъм за налагане.
Намерете копията, които режимът не покрива
Редактори, архиви за резервни копия, експортирани профили и временни пакети могат да запазят същата идентичност. Защитете тези копия според съдържанието им, защото затягането на оригиналния файл не прави нищо за копието в архива от миналия месец.
Парола за файл с ключ е полезна за съхранени материали и не оправдава публикуването на криптирания файл до паролата му. Правата защитават текущия обект във файловата система; те не казват нищо за идентификационни данни, вече копирани другаде.
Търсете копията, преди да обявите задачата за свършена: grep -rl ред на заглавката на ключа във вероятните папки и поглед към изключенията за резервни копия. Резултатът обикновено е по-интересен от файла, с който сте започнали.
След поправката проверете и сменете
Тествайте, че желаната услуга все още се удостоверява, после потвърдете, че никакъв ненужен акаунт не е получил достъп. Ограничете диагностичния изход до метаданни, защото отпечатването на ключа не е нужно, за да се докаже, че файлът е четим а то слага материала в лог.
Ако ключът е бил изложен, затегнете режима, после сменете идентификационните данни и отменете старите. Спецификацията на POSIX chmod обяснява какво означава всеки бит от режима и това си струва да се знае, преди следващият одит да поиска да обосновете избраното число.