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

Те, що файл зберігся, не означає, що конфігурація актуальна. Розділення цих двох ідей — більша частина роботи.

З’ясуйте, який клієнт написав профіль

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

OpenVPN — найнаочніший приклад. Версія 2.5 запровадила data-ciphers і змінила те, як старіша директива cipher бере участь у переговорах. Профіль, що містить лише cipher AES-128-CBC, тепер пропонує значно вужчий варіант, ніж задумував його автор.

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

Подивіться, про що насправді домовилися

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

# OpenVPN: what did this session agree on?
sudo journalctl -u openvpn-client@office --since '5 min ago' | grep -i 'cipher\|Data Channel'

# which directives does the profile actually carry?
grep -n -E 'cipher|auth|tls-|dh ' office.ovpn

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

Оновіть улаштування, а не рядок

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

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

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

Підтвердьте результат і зафіксуйте виняток

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

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

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

Схожі статті