Профіль OpenVPN, який працює в іншому місці, повідомляє, що AES-256-GCM не знайдено, або що сторони не мають спільного шифру, і перша думка — правити профіль. Ці два повідомлення описують різні відмови. Одне каже, що локальна програма не має такого алгоритму; друге — що обидві сторони мають алгоритми, але не мають спільного вибору. Правка профілю не вирішує жодного, доки ви не знаєте, яке з них у вас.

Прочитайте точний текст помилки й програму, яка її видала.

Визначте, яка помилка у вас

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

Різниця важлива, бо одне — проблема версії програми, а друге — проблема конфігурації. Перше вирішує номер версії. Друге вирішує порівняння двох списків.

Локальна прогалина в можливостях

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

openvpn --version
openvpn --show-ciphers | grep -i gcm
openvpn --show-tls | head -5

Якщо AES-256-GCM немає в цьому списку, жоден рядок профілю його не додасть. Рішення — новіший клієнт або інша збірка, а обмеження старішої сторони стають окремим питанням проєктування.

У клієнтах на основі OpenVPN 3 рушій і прийняті директиви відрізняються від лінії спільноти 2.x, тому той самий текст профілю може не працювати з причин, не пов’язаних зі списком шифрів.

Прогалина в узгодженні

Коли обидві сторони перелічують алгоритм, залишається питання, який список пропонує кожна. Спільнотний OpenVPN перейменував директиву узгодження: ncp-ciphers у 2.4 став data-ciphers у 2.5, а в 2.6 старий рядок cipher слугує переважно сумісності та відкату, а не визначенню узгодженого набору.

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

openvpn --version | head -2
grep -n -E '^(data-ciphers|ncp-ciphers|cipher|tls-cipher)' server.conf client.ovpn

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

Тримайте сумісність явною

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

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

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

Схожі статті