Два імені задіяні ще до підключення клієнта: ім'я файлу на ноутбуці (nuc.ovpn) і ідентичність, яку сервер виводить з облікових даних. Пошук у client-config-dir використовує друге. Перейменування профілю на клієнті або додавання .conf до файлу на сервері нічого не змінює в тому, який файл відкриє сервер.

Корисне порівняння — не «яке ім'я я використав», а «яке правило застосовує сервер», бо автентифікація за сертифікатом і автентифікація за іменем користувача та паролем можуть давати різні чинні імена з одного й того самого входу.

Ім'я профілю та загальне ім'я сертифіката

У стандартному налаштуванні на основі сертифікатів сервер бере загальне ім'я X.509 і шукає файл саме з таким іменем у client-config-dir. Профіль з іменем nuc.ovpn, у сертифікаті якого вказано tester, розв'язується в /etc/openvpn/server/ccd/tester. Ім'я клієнтського файлу ніколи не входить до обчислення. Це перше місце, де ховається невідповідність.

Тому каталог, повний ретельно названих профілів, може промахуватися щоразу. Файл зіставляється не за subject, не за адресою електронної пошти і не за іменем у графічному інтерфейсі, а за рядком загального імені.

У файловій системі, що розрізняє регістр, Tester і tester — два різні файли, і відкривається лише один. Перевіряйте загальне ім'я в сертифікаті, який клієнт справді подає, а не в копії у своїх нотатках.

username-as-common-name перевертає правило

Коли сервер виконує автентифікацію за іменем користувача та паролем з username-as-common-name, автентифіковане ім'я користувача замінює загальне ім'я сертифіката для цього пошуку.

Порівняйте два випадки прямо: за ідентичності із сертифіката файл іде за сертифікатом, і зміна пароля не має значення; за ідентичності з імені користувача файл іде за іменем входу, і перевипуск сертифіката не має значення. Поле, яке підставляє сервер, і визначає, за яким іменем перейменовувати. Перевипущений сертифікат із новим CN тихо змінює ціль пошуку, а старий файл CCD залишається на диску і виглядає правильним.

Бувають змішані конфігурації, і саме там починається більшість плутанини. Якщо один блок служби вмикає підстановку, а інший ні, чинне ім'я залежить від того, який екземпляр обслужив з'єднання. Підтверджуйте активну конфігурацію, а не припускайте, що діє глобальний файл. Початковий довідник серверних параметрів описує пошук за названим файлом і необов'язковий резервний варіант.

Що сервер читає і що мовчки пропускає

Вибір файлу вирішують дві невеликі відмінності. Перша — додане розширення. Друга — випадковий символ в імені.

OpenVPN не додає .conf до імені, яке шукає, тому tester.conf не збігається з tester. Редактор, який приховує розширення, може залишити файл, який у списку виглядає правильно і ніколи не збігається.

Якщо відповідного файлу немає, сервер може перейти до файлу з іменем DEFAULT. Тому надходження частини налаштувань не доводить, що використовувався файл для конкретного клієнта. Порівняйте призначену адресу або проштовхнуті маршрути з тим, що дав би файл для конкретного клієнта. Третій фільтр — права, бо сервер відкриває файл після відмови від привілеїв; оболонка root, яка може його прочитати, нічого не доводить.

Правильне ім'я файлу не підтверджує вміст

Вибір і вміст — різні збої. Після відкриття потрібного файлу його директиви все ще мають бути чинними для цього клієнта.

ifconfig-push має призначити адресу, яку топологія справді може використати, а iroute має сенс лише для маршрутизованої підмережі за цим клієнтом.

Одна ідентичність, кілька пристроїв

Два ноутбуки з однаковим загальним іменем вибирають той самий файл і отримують ті самі налаштування для конкретного клієнта. Якщо потрібні окремі адреси або окреме відкликання, потрібні окремі ідентичності, а не дві копії одного файлу.

Порівняння між спільним використанням ідентичності та випуском окремого сертифіката на пристрій. Спільне використання простіше адмініструвати й грубіше відкликати, а сертифікати на пристрій вимагають більше налаштувань і дають чисту одиницю для вимкнення.

Схожі статті