Комментарии 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
Настройка клиента через один конфигурационный файл в целом возможна (по сути, это и происходит внутри графического клиента), но Вы не учитываете вот что:
- Представленная утилита для Linux, помимо настройки, дает возможность быстро подключаться к этой сети одним кликом мыши.
- Настройка через конфигурационный файл, хоть и является самым быстрым способом, требует некоторых навыков работы с системой. Неопытным пользователям, которым необходимо настроить подключение, удобнее будет использовать для настройки именно графический интерфейс.
- Настройка в целом занимает не более двух минут и должна производиться всего один раз, так что настройка за одну минуту или две – не так принципиальна.
- Если Вы хотите все настроить через конфигурационные файлы, то сделать это можно. Для этого нужно подправить /etc/ipsec.conf, /etc/xl2tp/xl2tp.conf и /etc/ppp/conn_name.conf. Но, опять-таки, настройка через GUI может избавить Вас от потенциальных проблем с теми же самыми опечатками
Я не про конфиг. Я про использование всякого антиквариата типа ppp, вместо shiny new wireguard. У NM у него есть плагин:
Там сплошная ахинея. Особенно про скорость, просто умилительно читать было. Авторы сами-то сравнивали скорость или нет?
Насчёт управления пользователями и маршрутами. А в чём проблема с AllowedIPs? Тривиальная плейбука, в т.ч. и для пачки пользователей. С DNS вообще тривиально — указываете IP пира внутри туннеля и всё.
Также, для каждого сотрудника придется описывать в этой системе уникальный 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 частью винды или нет.
Тем не менее, запишу себе wireguard в список технологий, которые стоит обдумать.
Тут ситуация какая была. Мы активно используем этот l2tp ipsec vpn, куча пользователей, написана подробная инструкция под Windows именно в стиле «прокликай так и сяк», чтобы любой пользователь мог это настроить.
А дальше возникает вопрос. А если у кого-то Линукс (у меня тоже). Может ли не профи в Линуксе взять и настроить соединение. Даже будучи программистом я могу понятия не иметь какие конфиги править, чтобы соединение завелось. Если мне нужно настроить VPN, я сначала попробую настроить NetworkManager… и потом пойму, что он не поддерживает смарт-карты.
Отсюда и возникла и задача дописать гуи. При этом я лично, возможно, и мог бы эти конфиги дописать, хотя не сказал бы, что конфиги ppp и сопутствующие ip-up и прочие просто устроены. А вот дать совет править конфиги кому-либо еще я вообще не факт, что смогу.
Короче, эта гуи-утилита это Windows-way настроить соединение под Линуксом, через прокликивание пунктов меню. Для кого-то именно это проще.
При этом с разработчиками смарт-карт я никак не связан, просто так повелось, что мы их используем в своей рабочей инфраструктуре.
Но, возможно, автор статьи как сотрудник компании производящей смарт-карты ответит лучше.
В системе будет стоять свой pppd
Из репозитория ставится другой
Один может лежать по адресу /usr/sbin/pppd
Другой по /usr/local/sbin/pppd
Проверяйте, какой pppd запускается!
(но снести системный нельзя, поскольку с ним слетает xl2tp, без которого все это не работает)
Настройка аутентификации в сети L2TP с помощью Рутокен ЭЦП 2.0 и Рутокен PKI