OpenVPN при стартиране отпечатва предупреждение, което предлага auth-nocache, и изкушаващият отговор е да добавите опцията и да гледате как редът изчезва. Този съвет предполага интерактивно влизане. Щом потребителското име и паролата живеят във файл, сравнението се променя: опцията спира да защитава трайното копие и при клиент, който се отказва от привилегии, може по-късно да счупи преговарянето. Два модела на съхранение заслужават да се разграничат, преди да редактирате профил.

Два начина да отговорите на заявката за данни

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

Вторият модел е auth-user-pass , сочещ към файл, където файлът е хранилището и клиентът го чете, когато е нужна стойност. Излагането, което има значение тук, не е паметта на процеса, а правата и собственикът на този файл. Предупреждението при стартиране идва от директивите в конфигурацията, не от проверка как подавате паролата, затова се появява и при двата модела и не сочи към нито един.

Останалото от това сравнение следва от разделянето: работа с паметта за единия модел, работа с файла и идентичност на процеса за другия.

Какво всъщност изхвърля auth-nocache

При интерактивно влизане --auth-nocache премахва запазеното копие от паметта, след като е използвано. Цената е нова заявка на всеки интервал на преговаряне, защото следващият кръг не може да използва изхвърленото.

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

Добавете опцията, защото разбирате тази размяна, а не защото се е появило предупреждение. Опция, добавена да направи журнала по-тих, е опция, чийто ефект никой не е измерил.

Къде се чупи пътят с файл

Клиент, който стартира като root, за да отвори тунелното устройство, и след това преминава към user и group , чете файла с данни два пъти: веднъж преди преминаването и веднъж при преговарянето след него. Ако файлът е с режим 600 и е собственост на root, второто четене се проваля и провалът се появява час по-късно като грешка за удостоверяване, която изглежда като проблем на сървъра. Проверете журнала на клиента около интервала на преговаряне, после проверете акаунта и файла заедно.

stat -c '%a %U:%G' /etc/openvpn/client.creds
ps -o user:12,args -C openvpn | head

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

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

Случаят, който наистина иска опцията

Влизане с еднократен код иска auth-nocache по друга причина. Еднократният код се изразходва при първото удостоверяване, така че кеширано копие е безполезно при следващото преговаряне, а остаряла стойност дори може да бъде повторена.

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

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

Сравнението в едно решение

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

Нито един модел не прави запазена парола безопасна сам по себе си, нито прави предупреждението при стартиране значимо.

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

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