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

Порядок нижче навмисний: кожен етап дає те, що потрібно наступному, і будь-який етап може зупинити зміну до її початку.

Зафіксуйте наявну службу до змін

Читайте встановлений юніт, а не той, який, як вам здається, ви писали: systemctl cat [email protected] друкує юніт і всі drop-in, а systemctl show [email protected] -p ExecStart -p User -p WorkingDirectory показує, що насправді запущено і від чийого імені. Питайте той бінарник, який називає юніт, бо openvpn --version з оболонки може вказувати на іншу збірку. Запишіть шлях профілю та кожен файл, на який він посилається.

Позначте й слухаючі сокети: ss -lunp | grep 1194 повідомляє, яку адресу й протокол демон займає сьогодні. Якщо відповідь не та, що передбачає профіль, її перекриває drop-in або файл середовища, і оновлення успадкує цей сюрприз.

Зберіть набір відновлення, яким зможе скористатися інший

Набір відновлення має бути придатним для колеги о 03:00 без вашого контексту. Включіть чинну конфігурацію з кожним згаданим файлом, матеріали довіри й відкликання під контролем власника PKI, призначення та хуки для кожного клієнта, а також точні версії пакетів, установлених сьогодні. Копія одного імені файлу — це не конфігурація. Зберігайте його там, куди черговий оператор дістанеться без VPN.

Контроль доступу стосується й цього набору, бо в ньому приватні ключі або облікові дані бекенду. Не перебудовуйте CA і не перевипускайте ідентичності лише тому, що змінилася версія пакета.

Відрепетируйте на пілотному слухачі зі справжнім клієнтом

Запустіть кандидатний реліз на окремому слухачі з власним планом портів і адрес, а не поруч із продакшн-екземпляром на тому самому сокеті. Підключайтеся тими клієнтськими рушіями, які справді використовують ваші користувачі, включно з незручним. Перевірте призначення адрес, просунутий DNS, один важливий застосунок і один маршрут, який має лишитися заблокованим. Власні хуки мають працювати в реальному контексті привілеїв і файлової системи служби, адже root-оболонка нічого про них не доводить.

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

Переключіться один раз, зі шляху поза тунелем

Починайте вікно з консолі або з мережі керування, що не проходить через службу. Переконайтеся, що користувачів попередили, а другий оператор знає, як відкотитися. Застосуйте підготовлену зміну через її власника, потім перезапустіть за допомогою sudo systemctl restart [email protected] і стежте за журналом через journalctl -u openvpn-server@office -b -f. Перезавантаження достатньо, коли змінилися лише визначення юніта; зміненому профілю потрібен перезапуск процесу.

Очікуйте, що кожен клієнт перепідключиться, а частина сеансів застосунків не відновиться. Узгодьте чисту паузу з навантаженнями, які цього не витримують.

Прийміть або відкотіться, потім розкажіть користувачам, що змінилося

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

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

Схожі статті