OpenVPN client-config-dir: име на файл срещу общо име в сертификата
Името на CCD файла идва от общото име в сертификата или от потребителското име, когато това съответствие е включено. Сравнете двете правила, преди да преименувате файл.
Две имена са в игра, още преди клиентът да се свърже: името на файла на лаптопа (nuc.ovpn) и самоличността, която сървърът извлича от удостоверението. Търсенето в client-config-dir използва второто. Преименуването на профила в клиента или добавянето на .conf към файла на сървъра не променя нищо относно това кой файл отваря сървърът.
Полезното сравнение не е «кое име използвах», а «кое правило прилага сървърът», защото удостоверяването със сертификат и удостоверяването с потребителско име/парола могат да дадат различни ефективни имена от един и същ вход.
Име на профил срещу общо име в сертификата
При стандартната настройка, базирана на сертификат, сървърът взема общото име X.509 и търси файл с точно това име вътре в client-config-dir. Профил с име nuc.ovpn, чийто сертификат казва tester, се разрешава до /etc/openvpn/server/ccd/tester. Името на клиентския файл никога не влиза в изчислението. Това е първото място, където се крие несъответствие.
Затова директория, пълна с внимателно именувани профили, може да пропуска всеки път. Файлът се съпоставя не по subject, не по имейл адрес и не по името в GUI; съпоставя се по низа на общото име.
На файлова система, чувствителна към регистъра, Tester и tester са два различни файла и само един от тях се отваря. Проверявайте общото име от сертификата, който клиентът действително представя, а не от копие в бележките ви.
username-as-common-name обръща правилото
Когато сървърът използва удостоверяване с потребителско име/парола с username-as-common-name, удостовереното потребителско име замества общото име от сертификата за това търсене.
Сравнете двата случая директно: при самоличност по сертификат файлът следва сертификата и смяната на паролата е без значение; при самоличност по потребителско име файлът следва името за вход и преиздаването на сертификата е без значение. Което поле сървърът замества, спрямо него се преименува. Преиздаден сертификат с ново CN тихо променя целта на търсенето, а старият CCD файл остава на диска и изглежда правилен.
Съществуват смесени конфигурации и точно там започва по-голямата част от объркването. Ако един сервизен блок включва заместването, а друг не, ефективното име зависи от това кой екземпляр е обслужил връзката. Потвърдете активната конфигурация, вместо да предполагате, че важи глобалният файл. Изходната справка за сървърните опции документира търсенето по именуван файл и незадължителния резервен вариант.
Какво чете сървърът и какво тихо пропуска
Две малки разлики решават дали файлът ще бъде избран. Първата е добавено разширение. Втората е случаен символ в името.
OpenVPN не добавя .conf към името, което търси, така че tester.conf не съвпада с tester. Редактор, който скрива разширенията, може да остави файл, който изглежда правилен в списък и никога не съвпада.
Когато няма съвпадащ файл, сървърът може да премине към файл с име DEFAULT. Пристигането на някои настройки следователно не е доказателство, че файлът за конкретния клиент е използван. Сравнете зададения адрес или изпратените маршрути с това, което файлът за конкретния клиент би дал. Правата са третият филтър, защото сървърът отваря файла, след като се откаже от привилегии; root shell, който може да го прочете, не доказва нищо.
Правилното име на файл не валидира съдържанието
Изборът и съдържанието са отделни повреди. След като правилният файл бъде отворен, директивите му все още трябва да са валидни за този клиент.
ifconfig-push трябва да зададе адрес, който топологията действително може да използва, а iroute има смисъл само за маршрутизирана подмрежа зад този клиент.
Една самоличност, няколко устройства
Два лаптопа с едно и също общо име избират един и същ файл и получават едни и същи настройки за конкретния клиент. Ако ви трябват отделни адреси или отделно отнемане, трябват ви отделни самоличности, а не две копия на един файл.
Сравнението е между споделяне на самоличност и издаване на един сертификат на устройство. Споделянето е по-просто за администриране и по-грубо за отнемане, докато сертификатите на устройство струват повече настройка и ви дават чиста единица за деактивиране.