Анонсирована внутриядерная реализация WireGuard для OpenBSD

Новости

В твиттере компании EdgeSecurity, основателем которой является автор WireGuard, сообщили  о создании нативной и полностью поддерживаемой реализации VPN WireGuard под OpenBSD. В подтверждение словам опубликован скриншот с демонстрацией работы.

Готовность патчей для ядра OpenBSD также подтверждена Джейсоном Доненфилдом (Jason A. Donenfeld), автором WireGuard, в анонсе обновления утилит wireguard-tools.

Анонсирована внутриядерная реализация WireGuard для OpenBSD

В настоящий момент доступны лишь внешние патчи, однако, авторы обещают в ближайшее время отправить их финальный вариант в список рассылки разработчиков OpenBSD. Код WireGuard для ядра OpenBSD включает 3322 строки, что меньше, чем реализация для ядра Linux. Если код с реализацией WireGuard будет в итоге принят в дерево исходных текстов OpenBSD, то она станет второй ОС (после Linux) с полной и интегрированной поддержкой WireGuard “из коробки”. Включение широкой поддержки WireGuard ожидается в выпуске OpenBSD 6.8 (в релиз OpenBSD 6.7, который был перенесён с 1 на 19 мая, патчи не попадают). Пока же желающие использовать WireGuard в OpenBSD должны использовать порт net/wireguard-go или вручную установить предоставленные патчи.

Дополнительно можно отметить публикацию корректирующих обновлений пакетов wireguard-tools v1.0.20200510 и wireguard-linux-compat v1.0.20200506включающих работающие в пространстве пользователя утилиты, такие как wg и wg-quick, и слой для обеспечения совместимости со старыми ядрами Linux (от 3.10 и до 5.5 включительно), в которых нет встроенной поддержки WireGuard. В новом выпуске утилит wg и wg-quick добавлена поддержка взаимодействия с реализацией WireGuard для ядра OpenBSD. Сообщается, что патчи для ядра OpenBSD планируются передать в течение следующей недели. Для настройки туннеля в OpenBSD будет использоваться привычный интерфейс wg и “ifconfig wg0 create”.

Из не связанных с поддержкой OpenBSD изменений выделяется добавление в утилиту wg-quick доменов, подпадающих под маску “dns search” в resolv.conf. Для Android добавлена поддержка белого списка приложений в дополнение к чёрному списку. Для systemd добавлен сервис wg-quick.target для перезапуска и управления wg-quick. В пакете wireguard-linux-compat наиболее заметным изменением является обеспечение совместимости с будущими обновлениями пакетов с ядром для Ubuntu 19.10 и 18.04-hwe, которые пока находятся в секции “proposed” и не перенесены в обновления.

Дополнение: Патчи с реализацией WireGuard для OpenBSD опубликованы в списке рассылки разработчиков OpenBSD. Патчи включают драйвер для ядра OpenBSD, изменения для утилит ifconfig и tcpdump с поддержкой функциональности WireGuard, документацию и мелкие изменения для интеграции WireGuard с остальной системой. В драйвере используется собственная реализация алгоритмов blake2s и curve25519, а также уже присутствующие в ядре OpenBSD реализации SipHash и ChaCha20Poly1305. Реализация совместима со всеми официальными клиентами WireGuard для Linux, Windows, macOS, *BSD, iOS и Android. Тестирование производительности на ноутбуке разработчика (Lenovo x230) показало пропускную способность на уровне 750mbit/s. Для сравнения isakmpd с базовыми настройками ike psk обеспечивает пропускную способность 380mbit/s.

При разработке драйвера для ядра OpenBSD были выбраны некоторые схожие с драйвером для Linux архитектурные решение, но драйвер в первую очередь разрабатывался для OpenBSD, с оглядкой на специфику данной системы и учитывая опыт, полученный при создании драйвера для Linux. При согласии изначального автора WireGuard код нового драйвера целиком распространяется под свободной лицензией ISC. Драйвер тесно интегрируется с сетевым стеком OpenBSD и использует существующие подсистемы, что позволило сделать код очень компактным (около 3000 строк кода). Из отличий также отличается иное чем для Linux разделение компонентов драйвера: специфичные для OpenBSD интерфейсы вынесены в файлы “if_wg.*”, код для защиты от DoS в “wg_cookie.*”, а логика согласования соединений и шифрования в “wg_noise.*”.

Publisher
Оцените автора
AsaDagar
Добавить комментарий