Два пристрої, один сертифікат OpenVPN: цикл перепідключення
Тунель, який перезапускається що півхвилини, зазвичай означає два пристрої з одним і тим самим клієнтським сертифікатом. Пройдіть журнал, розділення та крок відкликання.
Тунель, який піднімається і потім перезапускається що півхвилини, зазвичай не є проблемою шифру чи MTU. Це одна особистість, використана двічі. Сервер бачить знайоме спільне ім'я, приймає нову сесію як найновішу, і старіший пристрій виявляє, що його замінено. З боку клієнта це виглядає як тайм-аут неактивності й перезапуск, тому розслідування так часто починається не там.
Почніть з інтервалу перезапуску
Інтервал — це підказка перед усім іншим. Рівний ритм, що збігається з вікном ping-restart, указує на сесію, яку замінюють, а не на збійний шлях, бо збої шляху рідко бувають такими регулярними. Запишіть точний проміжок між перезапусками і рядок причини в журналі клієнта. Тайм-аут із наступним перезапуском розповідає іншу історію, ніж невдале рукостискання.
Перевірте, коли почалися перезапуски відносно другого пристрою. Новий ноутбук, телефон або профіль, скопійований на запасну машину, — звичайні тригери, і час зазвичай збігається з днем, коли хтось його налаштував.
Запишіть інтервал і причину. Обидва є доказом, і обидва дешево зібрати.
Прочитайте, що сервер сказав про другий вхід
На сервері, який ви контролюєте, журнал називає спільне ім'я і показує друге підключення. Без duplicate-cn це підключення замінює наявну сесію для того ж імені, і повідомлення зазвичай каже це прямо. З duplicate-cn обидві сесії співіснують, і симптом змінюється: клієнти залишаються на зв'язку, але ділять один набір налаштувань на клієнта та одне рішення про відкликання. Читайте два записи разом, бо заміна видна лише в послідовності.
У хостинговому сервісі у вас може взагалі не бути серверного журналу. Тоді підказка — час: стабільний тунель, який падає щоразу, коли підключається інша машина, а в журналі клієнта немає нічого, крім тайм-ауту.
Порівняйте блоки сертифіката й ключа в обох профілях, а не лише ім'я віддаленого хоста. Скопійовані профілі зазвичай відрізняються лише назвою файлу.
Розділіть особистість на боці сервера
Видайте один сертифікат на пристрій через CA, яка підписує для цього сервера. З Easy-RSA це означає окреме клієнтське ім'я для кожного пристрою, і профіль потім будується з цього сертифіката та його ключа. Спільне ім'я стає особистістю пристрою, і саме цього серверові бракувало. Називайте їх за пристроєм, а не за людиною, щоб заміна давала нове ім'я.
Спільний ключ керуючого каналу — це окрема річ. tls-crypt або tls-auth захищає керуючий канал для кожного клієнта і призначений для спільного використання. Це не особистість клієнта, і його заміна не виправить дубльований сертифікат.
Тримайте сертифікат, ключ і будь-який клієнтський файл конфігурації під одним і тим самим спільним ім'ям, інакше зіставлення зламається при наступному підключенні. Невідповідність там дає клієнта, який проходить автентифікацію і потім нічого не отримує.
Після розділення тримайте адреси й налаштування узгодженими
Фіксовані адреси вводять другий спосіб колізії. Якщо сервер призначає їх через ifconfig-pool-persist або файл на клієнта, ці записи все ще вказують на старе ім'я. Два пристрої можуть отримати ту саму адресу тунелю навіть після розділення сертифікатів, і цей збій виглядає інакше, ніж початковий цикл.
Оновіть зіставлення одночасно з сертифікатом, потім перепідключіть обидва пристрої та порівняйте призначені їм адреси. Дубльована адреса проявляється як періодична втрата, а не як чисте перепідключення.
Надсилайте налаштування, які мають відрізнятися за пристроєм, через власний файл цього пристрою, а не через спільний шаблон. Спільний шаблон також ускладнює виявлення наступного дубліката.
Виведіть стару особистість з обігу належним чином
Відкличте сертифікат, коли обладнання виводять з експлуатації або воно зникло, замість видалення профілю зі старої машини. Відкликання створює новий CRL, і серверові потрібен цей файл там, куди вказує crl-verify. За наявності цієї директиви відсутній або нечитабельний CRL змушує сервер відхиляти кожного клієнта, тому після кожного оновлення перевіряйте один відомий обліковий запис.
Ведіть інвентар, який пов'язує кожен сертифікат з людиною або пристроєм, із датами видачі та відкликання. Цей інвентар відповідає, у кого ще є доступ, не читаючи назв файлів, і не дає наступному скопійованому профілю знову запустити цикл.