Устаревшие строки шифрования в старых профилях VPN: прочитайте перед копированием
Директивы переживают смену версий с иным смыслом или вовсе без него. Проверьте, какой клиент написал профиль и что туннель фактически согласовал.
Этот профиль был написан в 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Принятый импорт, который тихо отбрасывает директиву, оставляет профиль, который читается одним образом, а ведёт себя другим. Именно этот разрыв объясняет, как документ, помеченный как усиленный, согласует нечто более слабое, чем заявляет его собственный текст. Журнал — единственное место, где разница проявляется. Прочитайте его, прежде чем доверять файлу.
Обновите устройство, а не строку
Возьмите профиль, который поддерживает оператор, вместо того чтобы собирать имена алгоритмов, пока импорт не перестанет жаловаться. Добавление строк наугад переворачивает направление исправления. Оно подстраивает клиент под неизвестный сервер вместо того, чтобы установить, что поддерживает сервер.
Серверу тоже может потребоваться согласованное обновление. Текущий клиент не может создать поддержку предложения, которого другая сторона никогда не предлагает. Никакая опция на стороне клиента не заменит шлюз, который не был обновлён.
То, чем нельзя жертвовать, — это проверка. Удаление проверок сертификатов, отключение проверки имени хоста или отключение обновлений, чтобы сохранить старый профиль живым, превращает проблему совместимости в проблему доверия. Обычно это происходит по одному небольшому изменению за раз.
Подтвердите результат и зафиксируйте исключение
После изменения ещё раз проверьте согласованный набор и протестируйте ресурс, для которого существует туннель. Профиль, который согласует задуманное и всё же не достигает сервиса, имеет проблему маршрутизации или идентичности. Криптографической проблемы у него нет.
Храните предыдущую проверенную конфигурацию в защищённом месте. Сравнение возможно только пока старый файл ещё существует.
Документируйте любое исключение совместимости с владельцем и датой проверки. Временное послабление, у которого нет владельца, становится постоянной политикой. Следующий человек, который прочитает файл, будет считать, что его выбрали намеренно.