Как стать автором
Обновить

Комментарии 49

Мои поздравления всем. Я долго ждал сегодняшнего дня!
Использую с недавнего времени. Скорость впечатляет. Но теперь WireGuard в ядре. Это прекрасно
Да, действительно WireGuard по сравнению OpenVPN и IPSec очень лёгок в настройке. При этом не надо ничем жертвовать (скорость или безопасность). Вроде действительно одни плюсы :)
Зависит от области применения. Если все, что вам нужно — это шифрованный туннель, то Wireguard будет неплохим выходом (хотя примерно того же можно достичь и используя ip xfrm). Но у него есть и ряд минусов — например, отсутствие какой-либо PKI или динамического выделения адресов и т.п. А вообще проект хороший, да.
Но у него есть и ряд минусов — например, отсутствие какой-либо PKI или динамического выделения адресов и т.п.
Встраивать протокол в другие приложения никто не запрещал, так же как и выносить в них аутентификацию с установлением сессии.
Встраивать протокол в другие приложения никто не запрещал так же как и выносить в них аутентификацию с установлением сессии.


Мы все же говорим не о протоколе, а о конкретной реализации. Если так рассуждать, то никто не запрещает и тот же протокол OpenVPN на уровне ядра реализовать.

Запрещает Линус. И в тексте даже написано, почему.

Что запрещает? dkms?)

«… Могу я просто ещё раз заявить о своей любви к этому VPN и надеяться на скорое слияние? Может, код и не идеален, но я просмотрел его, и по сравнению с ужасами OpenVPN и IPSec, это настоящее произведение искусства».

Вы же, надеюсь, понимаете, что для того, чтобы что-то реализовать на уровне ядра, совершенно необязательно включать его в само ядро. Можно реализовать его в виде модуля dkms. К тому же пример с OpenVPN я привел просто в качестве аналогии.

«Please note that if you make changes to your kernel, you may no longer get support or help from the CentOS development team.» — на сайте CentOS. Подключение модулей dkms воспринимается как произвольная модификация ядра. Я к тому, что эндорсмент от Линуса важен.

Важен, кто ж спорит. Но даже если что-то официально включено в ядро, то не факт, что разработчики дистрибутива включат эту опцию при сборке ядра. А самостоятельная пересборка ведет к тем же последствиям, что и установка dkms-модулей. Да и не факт, что Линус не согласится — IPSec-то хоть и ужасен, но давным-давно пролез в ядро)
Ну по такой логике и IPSec в ядре должен отсутствовать, однако он там есть.
К слову, как мне кажется, речь идет даже не про ту часть IPSec, которая располагается в ядре (непосредственно инкапсуляция/декапсуляция и шифрование/расшифрование траффика, т.е. работа ESP-протокола), а про юзерспейс-обвязки, отвечающие за IKEv1/v2 протоколы, сертификаты, аутентификацию и т.д. В Wireguard этого «ужаса» нет, потому что большая часть этого функционала там отсутствует. Если/когда все эти части будут в wg добавлены, его код вполне может превратиться во все тот же «ужас», что и в OpenVPN, IPSec.
прошёл аудит и формальную верификацию

как понимаю формально верифицирован протокол и некоторые используемые библиотеки, но не реализация.
В рамках аварийного тестирования приходилось использовать реализацию WireGuard на vyOS для объединения 2 площадок между собой.
За сутки получилось около 700Гб трафика, какой-то просадки latency по сравнению с L2 тоже не заметил. В целом все довольно неплохо) Дождаться бы реализации wireGuard под RouterOS…

Внукам завещаем

Но ведь WireGuard это ближе к туннелю, чем к VPN. Что в принципе обходится, но всё-таки немного другая концепция. С IPSec его сравнивать можно, но OpenVPN гораздо развесистее.
Ну и про удобство для пользователей так себе идея. Логины с паролями — это понятно, а длинющий ключ вводить — то ещё заняте.

Ключ нужен только один раз, так как он сохраняется в клиентском приложении. Кроме перепечатывания вручную его можно передать через QR-код, скачиванием файлика .conf или Control+C Control+V.

Поддержу мнение.
Для предоставления корпоративных доступов коллегам вне офиса wireguard мне не помощник.
Надеюсь, что это только пока.
Для предоставления корпоративных доступов коллегам вне офиса wireguard мне не помощник.

Я правильно понимаю, что дело в необходимости передачи публичных ключей? Или есть и другие причины?

Если с передачей ключей вопрос как-либо решаемый, то с передачей маршрутов как-то странно.
Исходя из конфигов, я не могу клиенту сообщить доступные сети за шлюзом, но сам клиент определяет какие сети он будет использовать через предоставляемый шлюз.
А у меня для некоторых по три десятка строчек маршрутов.
Это единственный пункт, который мне не позволяет заменить openvpn.

Если я ошибаюсь в своих выводах, буду благодарен за ликбез.
На клиенте AllowedIPs = 0.0.0.0/0. Маршрут по умолчанию через тоннель, создаваемый при этой настройке, прибиваем. Нужные маршруты получаем отдельно по BGP, OSPF и т.п.
Насколько это реально/удобно деплоить в Вашем случае — смотрите сами. Скорее всего, не очень удобно :)
Скорее всего, не очень удобно

В точку. И даже более — это просто невозможно.
Ну если проблема в отсутствии на клиентах поддержки какого-либо протокола динамической маршрутизации — то можно заменить костылём. wg-quick под Linux или Tunsafe под Windows (но не родной виндовый клиент WG почему-то) позволяют дёргать скрипт до/после поднятия интерфейса WG. На Android родное приложение тоже работает через wg-quick, так что тоже должно взлететь.
А этот скрипт может, скажем, скачивать с сервера актуальный список маршрутов и добавлять их в систему. Не очень изящное решение, но рабочее.
Спасибо за указание направления куда думать. Проанализирую.

Могу ли я использовать WireGuard для доступа к ресурсам удаленной локальной сети? Другими словами, подключаясь со своего домашнего ноута к серверу WireGuard, буду ли я иметь доступ к ресурсам из локальной сети сервера?
И существует ли возможность настроить это все дело таким образом, чтобы заворачивать трафик в тунель только при запрашивании определнных ресурсов (если кто-то знаком с проектом zaborona.help, там такая маршрутизация реализована средствами OpenVPN). Весь трафик по-умолчанию идет напрямую, но если хост находится в опреденном списке, то тогда трафик идет через тунель, такая маршрутизация возможна?

  1. NAT на сервере и маршруты на обеих сторонах
  2. Портянка адресов в параметре AllowedIPs конфига и в маршрутах на клиенте

А можно по подробнее?

У меня есть Raspberry Pi и VPS с WireGuard. И хотя с установкой WG ещё разбираюсь, хотелось бы подключаться к своей малинке. Подскажите пожалуйста что мне на VPN WG и Малинке прописывать надо, какие именно файлы менять?
Вам видимо для проброса локалки.
Берёте любой гайд из интернета для поднятия VPN-сервера. Правила NAT там уже есть, а на клиенте вместо default в добавляемом после подключения маршруте пишете LAN-подсеть сервера, опционально можно эту же подсеть прописать в клиентском конфиге в AllowedIPs.
И это мне позволит к Raspberry Pi по SSH с интернета подключаться?
А у меня на Nokia 8 почему-то не захотел работать. Не появляется в списке впн и не работает. Может кто сталкивался?

И это прекрасно.

теперь осталось дождаться его в android, а там глядишь через пару лет и микротик подтянется…

Слышал что микротик умеет openwrt запускать.
Тут, например https://m.habr.com/ru/post/354710/
Вопрос производительности.

НЛО прилетело и опубликовало эту надпись здесь
А Ipsec, OpenVPN и другие не детектируются?
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
спасибо
Всем доброго времени суток! Пользуюсь долгое время OpenVPN для соединения домашней сети с телефоном и компами вне домашней сети. Есть ли смысл переходить на WireGuard для повышения скорости и уменьшения пинга? Нет ли других подводных камней, помимо детектирования DPIем? Я не айтишник, если что. Заранее спасибо за ответы.
Смотря по каким причинам Вас не устраивает скорость и пинг сейчас. Выше возможностей канала между двумя концами тоннеля никто не прыгнет, и в WireGuard магии тоже никакой нет.

По моим наблюдениям, WireGuard сильно выигрывает у OpenVPN при большой latency (длинных пингах) между сторонами тоннеля — скорость просаживается гораздо меньше. Для популярного сценария «обход блокировок», когда VPN-сервер за границей, это важно. Для доступа к своей локальной сети из своего же региона — вряд ли.
Если у Вас просадки из-за проблем с производительностью какой-то маломощной железки (домашнего роутера, например) — протестируйте, в зависимости от того, как WireGuard для неё реализован, переход на него может как помочь, так и нет.
Точно в любых случаях соединение устанавливается гораздо быстрее, чем с OpenVPN.

Из недостатков ещё ограниченные возможности авторизации и маршрутизации. Про это выше в комментах писали. Если для Вас не проблема при любом изменении руками править конфиги всех клиентов — это не должно быть сильной проблемой.

В любом случае, поставить и настроить WireGuard для теста — дело простое и быстрое. Попробуйте конкретно в Ваших условиях, сами и поймёте, есть ли выигрыш.
Wireguard ещё сильно выигрывает у OpenVPN по поеданию CPU, а соответственно и батареи на мобильных девайсах. Также есть приятный бонус в виде сохранения сессии при смене IP адреса у клиента.
Ребят, подскажите пожалуйста, а как можно WireGuard подключить к сетям I2P и TOR? Был у меня знакомый, на пару минут продемонстрировал свой WireGuard сервер и я прям со своего браузера мог I2P и TOR сайты открыть.

Ещё испытываю трудности с установкой WireGuard на свой сервер, помогите мне пожалуйста с установкой в ЛС.
Ребят, подскажите пожалуйста, а как можно WireGuard подключить к сетям I2P и TOR? Был у меня знакомый, на пару минут продемонстрировал свой WireGuard сервер и я прям со своего браузера мог I2P и TOR сайты открыть.


Точно так же, как и при использовании любого другого VPN-решения, принципиальной разницы здесь нет. Заворачиваешь нужный трафик с помощью iptables REDIRECT на какой-нибудь privoxy, который *.onion отправляет на tor, а *.i2p — на i2p соответственно. Суть примерно такая.

Но я бы крайне не советовал так поступать — такая схема открывает широкие возможности для вашей деанонимизации.
То есть все манипуляции надо только в iptables проводить, другие файлы трогать не нужно?
Конфиг privoxy нужно. Ну и нужен DNS, который будет резолвить onion и i2p зоны в какой-нибудь виртуальный ip-адрес, который потом будет использоваться в правилах iptables.
Спасибо, на будущее учтём.
широкие возможности для вашей деанонимизации.

а можно подробнее? как вариант, ключевые слова для поиска.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий