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

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

Это не выглядит как простая настройка.


Вот так выглядит простая настройка:


[Interface]
Address = 100.64.99.3
DNS = 100.64.99.3
PrivateKey = KeYbase64=
MTU = 1390

[Peer]
PublicKey = ip8KrHKYrAx8l54p1QB6kg1P66GSRR1azbjpbO4Z8Cs=
Endpoint = 8.2.6.83:24021
AllowedIPs = 100.64.99.0/24
PersistentKeepalive = 15

Настройка клиента через один конфигурационный файл в целом возможна (по сути, это и происходит внутри графического клиента), но Вы не учитываете вот что:


  1. Представленная утилита для Linux, помимо настройки, дает возможность быстро подключаться к этой сети одним кликом мыши.
  2. Настройка через конфигурационный файл, хоть и является самым быстрым способом, требует некоторых навыков работы с системой. Неопытным пользователям, которым необходимо настроить подключение, удобнее будет использовать для настройки именно графический интерфейс.
  3. Настройка в целом занимает не более двух минут и должна производиться всего один раз, так что настройка за одну минуту или две – не так принципиальна.
  4. Если Вы хотите все настроить через конфигурационные файлы, то сделать это можно. Для этого нужно подправить /etc/ipsec.conf, /etc/xl2tp/xl2tp.conf и /etc/ppp/conn_name.conf. Но, опять-таки, настройка через GUI может избавить Вас от потенциальных проблем с теми же самыми опечатками

Я не про конфиг. Я про использование всякого антиквариата типа ppp, вместо shiny new wireguard. У NM у него есть плагин:


В статье речь идет об организации vpn для компании. Wireguard крайне проблемно использовать для таких целей. Нет никаких централизованных возможностей по управлению клиентами, например если потребуется сменить маршруты или DNS и т.д. Вся проблематика использования его в enterprise секторе хорошо описана в этой статье

Там сплошная ахинея. Особенно про скорость, просто умилительно читать было. Авторы сами-то сравнивали скорость или нет?


Насчёт управления пользователями и маршрутами. А в чём проблема с AllowedIPs? Тривиальная плейбука, в т.ч. и для пачки пользователей. С DNS вообще тривиально — указываете IP пира внутри туннеля и всё.

Накатывать конфигурацию wireguard на все устройства удаленных сотрудников ансиблом, выглядит так себе решением. Где гарантии что плейбук успешно выполнится? Половина удаленных сотрудников может быть не в сети, да и в целом они могут быть разбросаны по всему миру, за натом, и устройства могут быть разными: телефон, планшет, пк, лаптоп. Может быть возможно использовать реальную систему управления конфигурациями, например puppet, salt, chef, но даже с ними будет очень много трудностей.

Также, для каждого сотрудника придется описывать в этой системе уникальный ip адрес вручную. DHCP вроде в wireguard не прикрутить (может я и ошибаюсь, но вроде адрес настраивается на клиентской стороне, и автоматом он его никак получить не может). А если сотрудников > 1000? (Ну конечно всегда можно накостылить скрипт, который генерит готовый yaml с ip адресами сотрудников для ansible/puppet/salt/chef)

А что делать если в организации разрешено использовать домашние устройства для работы? Тоже на них накатывать плейбуки ansible? Или агентов puppet, salt, chef?

В целом мне кажется это идея выглядит менее надежной, чем просто использовать штатные решения для VPN, которые все это поддерживают из коробки.

Статье два года и там сплошная ахинея

Слабая аргументация на мой взгляд. У вас есть опровержения аргументов из этой статьи? В статье довольно неплохо все расписано.

А в чём проблема с AllowedIPs? Тривиальная плейбука, в т.ч. и для пачки пользователей. С DNS вообще тривиально — указываете IP пира внутри туннеля и всё.

Это все настройки на клиентской стороне. А как я указал выше, их крайне проблемно централизованно накатывать на кучу устройств удаленных сотрудников. И в отличии от решений VPN где это все из коробки, вам придется все это реализовывать самому, а потом поддерживать. И все это для каждого вида ОС и устройства сотрудника. Предполагаю трудно будет накатить плейбук на телефон =)

Я не понимаю, зачем в wg использовать dhcp. Выдаёте каждому пользователю адрес. Навсегда. Больше этот адрес до скончания жизни вселенной не испольузете. Первая же /64 сеть обеспечит вас бесконечным с практической точки зрения числом адресов.


Вам в любой конфигурации придётся управлять пользователями — и "костылить" описание инфраструктуры всё равно придётся. (Хотя, конечно, есть вариант потыкать мышкой и быть уверенным, что всё правильно — без тестов, без стейджинга, этакие тёплые ламповые 90ые).


Насчёт опровержения… Увы, да, я не тестировал wg на 10G, потому что у меня дома гигабит. Но гигабит он выедает в потолок, нагружая одно ядро примерно в 60-70% (и то не понятно, то ли это сетевуха такая фиговая, то ли это сам wg). В статье могут много обсуждать, какой он медленный, но у меня рядом openvpn, который едва-едва три сотни делает при 100% CPU.

Вам в любой конфигурации придётся управлять пользователями — и «костылить» описание инфраструктуры всё равно придётся


Пользователю достаточно подключиться к VPN, и он получит все сетевые настройки от сервера. В случае с wireguard вы так и не описали, каким образом вы поддерживаете сетевые настройки кучи устройств удаленных сотрудников. Я подробно расписал, почему это сделать крайне затруднительно с указанным подходом.

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

Вам в любой конфигурации придётся управлять пользователями — и «костылить» описание инфраструктуры всё равно придётся. (Хотя, конечно, есть вариант потыкать мышкой и быть уверенным, что всё правильно — без тестов, без стейджинга, этакие тёплые ламповые 90ые).

Не очень понял мысль про стейджинг и ламповые девяностые. Речь идет про устройства сотрудников. Где и что тыкать мышкой не совсем понял вас. Серверная инфраструктура под IaC это стандарт, но я никогда не видел, чтобы IaC пытались использовать для конфигурирования устройств удаленных сотрудников, особенно в условиях, когда им разрешено работать из собственных устройств. Если в это реализовали, очень прошу напишите об этом. Мне действительно интересно.

Насчёт опровержения… Увы, да, я не тестировал wg на 10G, потому что у меня дома гигабит. Но гигабит он выедает в потолок, нагружая одно ядро примерно в 60-70% (и то не понятно, то ли это сетевуха такая фиговая, то ли это сам wg). В статье могут много обсуждать, какой он медленный, но у меня рядом openvpn, который едва-едва три сотни делает при 100% CPU.


Вообще моя изначальная мысль была не о скорости, а о централизации и готовности wireguard к enterprise. На моя взгляд, решения на основе ipsec или anyconnect cisco гораздо лучше подходят.

А насчет скорости, тут нужно тестить, а такие заявления это просто субъективный опыт. На мой субъективный взгляд openvpn медленнее чем wireguard, но я его никогда толком не тюнил под скорости, ну и надо упомянуть в какой конфигурации все это тестили. И если уж сравнивать скорость, то делать как положено со всеми подробностями, тоже тянет на отдельную статью.

Я не разбираюсь в wireguard, поэтому задам вопрос без подвоха. Можно ли с его использованием сделать так, чтобы пользователь Windows мог настроить соединение без установки дополнительного софта, и в результате получил доступ к рабочей сети? При этом еще крайне желательна авторизация по смарт-картам (логины на 400 пользователей это бескотрольная передача аккаунтов)

Без дополнительного софта — нет. Хотя это зависит от того, считать ли WSL2 частью винды или нет.

Понятно, спасибо. Хоть я сам в восторге от WS2, для простых пользователей это перебор, тем более, что официально версия Windows с WS2 еще далеко не везде раскаталась. Плюс у нас многие по-прежнему подключаются из-под Windows 7, а кто-то недавно подключился из-под Windows XP, хотя мы ее как поддерживаемую не числим.

Тем не менее, запишу себе wireguard в список технологий, которые стоит обдумать.
Это ж отдельная виртуальная машина с Убунтой, какая она часть винды?
Это вопрос подхода. Пишу как человек, который как раз и допиливал эту гуишную утилиту.
Тут ситуация какая была. Мы активно используем этот l2tp ipsec vpn, куча пользователей, написана подробная инструкция под Windows именно в стиле «прокликай так и сяк», чтобы любой пользователь мог это настроить.

А дальше возникает вопрос. А если у кого-то Линукс (у меня тоже). Может ли не профи в Линуксе взять и настроить соединение. Даже будучи программистом я могу понятия не иметь какие конфиги править, чтобы соединение завелось. Если мне нужно настроить VPN, я сначала попробую настроить NetworkManager… и потом пойму, что он не поддерживает смарт-карты.

Отсюда и возникла и задача дописать гуи. При этом я лично, возможно, и мог бы эти конфиги дописать, хотя не сказал бы, что конфиги ppp и сопутствующие ip-up и прочие просто устроены. А вот дать совет править конфиги кому-либо еще я вообще не факт, что смогу.

Короче, эта гуи-утилита это Windows-way настроить соединение под Линуксом, через прокликивание пунктов меню. Для кого-то именно это проще.

При этом с разработчиками смарт-карт я никак не связан, просто так повелось, что мы их используем в своей рабочей инфраструктуре.

Но, возможно, автор статьи как сотрудник компании производящей смарт-карты ответит лучше.
Добавление на август 2020.
В системе будет стоять свой pppd
Из репозитория ставится другой
Один может лежать по адресу /usr/sbin/pppd
Другой по /usr/local/sbin/pppd
Проверяйте, какой pppd запускается!
(но снести системный нельзя, поскольку с ним слетает xl2tp, без которого все это не работает)
Зарегистрируйтесь на Хабре, чтобы оставить комментарий