Мои сайты
Частые вопросы
Полезные ссылки
Операционные системы
Программное обеспечение
Оборудование
СУБД
Кулинария
Проблема с подключением L2TP/IPsec после крупного обновления Fedora — довольно распространенная ситуация. Чаще всего это связано с ужесточением системных криптографических политик (Crypto Policies) или сбоями в плагинах NetworkManager.
Начиная с новых версий, Fedora по умолчанию использует строгие криптографические политики (DEFAULT или FUTURE), которые отключают старые и небезопасные алгоритмы (такие как SHA1, 3DES, modp1024). Однако, многие серверы L2TP (особенно корпоративные или старые) требуют именно эти алгоритмы.
Это оказался именно мой случай.
Мои действия.
Переключил криптополитику в режим LEGACY (разрешает устаревшие алгоритмы)
update-crypto-policies --set LEGACY
Перезагрузил систему, и обнаружил, что одна из ошибок, которая возникала при подключении к VPN, не ушла.
Команда, которую использовал для просмотра логов работы IPsec:
journalctl -u ipsec -n 50 --no-pager
В самом низу лога была видна ключевая ошибка:
"01d6e51e-9461-4ebb-99a2-19ca35e269f1": failed to add connection: global ikev1-policy=drop does not allow IKEv1 connections
Суть проблемы:
Протокол L2TP/IPsec использует IKEv1 для установки защищенного туннеля. Однако в новых версиях Fedora Linux (и используемого в ней демона IPsec — Libreswan) поддержка IKEv1 по умолчанию полностью отключена (ikev1-policy=drop) из соображений безопасности, так как этот протокол считается устаревшим и уязвимым.
Разрешил использование IKEv1 в глобальных настройках IPsec.
Для этого открыл конфигурационный файл IPsec в текстовом редакторе с правами root
mcedit /etc/ipsec.conf
Нашёл секцию config setup (обычно она находится в самом начале файла, до секций conn …).
Добавил в неё следующую строку:
ikev1-policy=accept
В итоге и меня получилось так:
... # IKEv1 policy (accept, reject or drop) # See RFC 9395 - Deprecation of IKEv1 and obsoleted algorithms #ikev1-policy=drop ikev1-policy=accept ...
После сохранения файла перезапустил службу IPsec, чтобы применить новые настройки:
systemctl restart ipsec
После этого все ранее созданные VPN заработали.
УРА!!!
IKEv1 действительно устарел, классический L2TP/IPsec физически не может работать без него. Однако, VPN-сервера, к которым я подключаюсь, не поддерживают более современный IKEv2, поэтому включение ikev1-policy=accept — это единственно возможное решение в моей ситуации.