- Вопрос или проблема
- Ответ или решение
- Проблемы с использованием WireGuard на Windows 10 для обычных пользователей
- Введение
- Проблема доступа к UI
- Возможные решения
- 1. Использование учетной записи администратора
- 2. Добавление пользователя в группу Network Configuration Operators
- 3. Установка WireGuard как службы
- 4. Использование Планировщика задач
- Заключение
Вопрос или проблема
Я получаю следующую ошибку при запуске без прав администратора:
WireGuard работает, но интерфейс доступен только с десктопов встроенных администраторов
Как мне включить WireGuard для Windows 10, чтобы он работал только с обычным пользователем?
В настоящее время то, что вы спрашиваете, невозможно на Windows.
В отличие от других VPN инструментов и технологий, клиент WireGuard создает интерфейс туннеля (появляющийся как сетевой адаптер) для каждого подключения, которое вы настроили когда вы пытаетесь подключиться, это называется “на лету”. Когда вы завершаете соединение, клиент полностью удаляет туннельный интерфейс. Это происходит вне официальной инфраструктуры VPN Windows. Эта схема имеет серьезное ограничение: вам необходимо быть администратором машины, чтобы программное обеспечение могло создать интерфейс.
Я использую WireGuard на Windows, Mac и Linux. Windows — единственная платформа, с которой у меня возникает эта проблема. Кроме того, я использую только официальный клиент (версия 0.38 на момент написания) от WireGuard. Я не знаю, есть ли другие.
Как указали предыдущие решения и комментарии, активировать туннель WireGuard (WG) невозможно — это действие требует повышения привилегий.
Решения, упомянутые до сих пор, имеют некоторые недостатки, по крайней мере в моем случае. Для полноты я перечислю все упомянутые решения и добавлю свое.
-
Обычная установка WG, переход на аккаунт администратора для активации WireGuard, затем возврат обратно.
- Плюс: администратор имеет доступ ко всем функциям интерфейса WG
- Минус: требуется время и клики для смены учетных записей
-
Обычная установка WG, добавление ключа реестра
HKLM\Software\WireGuard\LimitedOperatorUI
и добавление пользователя в группуNetwork Configuration Operators
см. документацию WG реестровые ключи
- Плюс: доступен интерфейс WG
- Минус: работа с реестром, функциональность интерфейса сильно ограничена, мешает с запросами на повышение привилегий
Последний пункт требует уточнения: когда вы работаете как обычный пользователь без привилегий, Windows запрашивает повышение привилегий по множеству причин, и необходимо регулярно вводить пароль администратора. Это довольно просто, потому что учетная запись администратора выбрана по умолчанию, и пароль можно ввести быстро. Тем не менее, быть частью группы NCO делает пользователя своего рода администратором в глазах ОС, так что каждое предложение о повышении привилегий по умолчанию будет предлагать текущего пользователя NCO — теперь, чтобы ввести пароль настоящего администратора, необходимо сначала выбрать другого пользователя. Это быстро становится раздражающим после первых нескольких случаев, когда необходимо повышение привилегий.
-
Предприятие WG установка без запуска администратора интерфейса GUI, запуск / остановка туннеля WG через ярлык запуск от имени администратора
- Плюс: нет интерфейса, нет фона службы WG, пользователь действительно остается обычным
- Минус: нет интерфейса
См. документацию Использование в предприятиях.
Вкратце:
- скачать установщик WG MSI (вместо .exe)
- в командной строке администратора выполните
msiexec /i <имя файла установщика>.msi DO_NOT_LAUNCH=1
- создайте ярлыки на рабочем столе для WG:
- старт с командой
wireguard /installtunnelservice <путь к конфигу>.conf
- остановить с командой `wireguard /uninstalltunnelservice
- отметьте
запуск от имени администратора
для обоих ярлыков
- старт с командой
Статус туннеля можно проверить с помощью wg.exe
WireGuard 3.1+ теперь поддерживает работу неадминистраторов с WireGuard, но вам нужно будет сделать некоторые небольшие изменения:
https://lore.kernel.org/wireguard/[email protected]/T/#u
- Установите wireguard 3.1+
- Добавьте вашего пользователя в “Network Configuration Operators”. Откройте проводник от имени администратора, кликните правой кнопкой на “Мой компьютер” > “Управление” > “Пользователи/Группы” > Network Configuration Operators
- Добавьте запись в реестр. Клавиша Windows + R > regedit > создайте ключ HKLM\SOFTWARE\WireGuard, затем создайте DWORD в HKLM\SOFTWARE\WireGuard\LimitedOperatorUI и установите его значение на 1
- Выйдите из системы и войдите снова.
- Запустите wireguard
Вы не можете открыть интерфейс как обычный пользователь. Тем не менее, существует способ включить WireGuard для работы с обычным пользователем в Windows 10, предоставив пользователю возможность свободно запускать и останавливать туннель WireGuard.
Поскольку WireGuard работает как служба в Windows, вы можете изменить разрешения на эту службу, не давая пользователю больше привилегий, чем ему необходимо.
-
Настройте туннель WireGuard на машине с помощью учетной записи администратора и интерфейса GUI, затем запустите туннель
-
Откройте командную строку и измените разрешения на службу
sc.exe sdset WireGuardTunnel$NameOfTheTunnel “D:AR(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWRPWPDTLOCRRC;;;WD)(A;;CCLCSWLOCRRC;;;IU)S:(AU;FA;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;WD)”
-
Теперь вы можете запускать и останавливать туннель с помощью этих команд. Не используйте интерфейс GUI для запуска/остановки на этом этапе
sc stop WireGuardTunnel$NameOfTheTunnel
sc start WireGuardTunnel$NameOfTheTunnel
-
Создайте пакетный файл, по одному для каждой команды, например WireguardON.bat и WiregaurdOFF.bat и разместите их в доступном для клиента месте (на его рабочем столе или где-то еще)
-
Выйдите из системы и войдите снова с учетной записью пользователя. Он должен иметь возможность запускать и останавливать службу, даже после перезагрузки.
Все остальные решения этой проблемы не являются идеальными. Методы, которые я видел, это:
-
Просто запуск от имени администратора
-
Добавление учетной записи пользователя в Network Configuration Operators
- Плюсы: интерфейс WireGuard, работает безотказно
- Минусы: ваш обычный пользователь добавляется в группу администраторов и будет отображаться в запросах UAC. Это очень раздражает и, вероятно, небезопасно.
-
Запуск туннеля WireGuard как службы Windows (как предложено в этом ответе)
- Плюсы: работает идеально
- Минусы: нет интерфейса, требуется повышенная консоль.
-
Использование Планировщика задач как в этом ответе (это вообще не сработало для меня).
Решение:
-
Установите последнюю MSI: https://download.wireguard.com/windows-client/
-
Затем выполните эту команду в повышенной консоли с вашим файлом .conf:
wireguard /installtunnelservice C:\path\to\some\myconfname.conf
Это создает службу с именем
WireGuardTunnel$myconfname
, которая может управляться с помощью стандартных утилит управления службами Windows, таких как services.msc или sc.
— источник
-
Управляйте службой с помощью “ServiceTray”: https://www.coretechnologies.com/products/ServiceTray/
(Это дает вам красивую иконку в системном трее, которая показывает статус туннеля WireGuard. Зеленый = подключен, красный = не подключен, и вы можете начать и остановить его, щелкнув правой кнопкой мыши. См. изображение ниже)
Примечание: При создании контроллера службы сохраните ярлык на рабочем столе, а не в автозагрузке (это, похоже, не работает, и вы можете добавить его в автозагрузку позже)
-
(по желанию) Измените тип запуска службы на ручной, если вы не хотите, чтобы туннель подключался при старте.
Пример того, как это выглядит на Win 10. Наведение на иконку показывает имя туннеля.
Если вы добавите его в группу операторов сети, пользователь сможет изменить IP-адрес, изменить адаптер и изменить сетевые настройки, что может привести к компрометации сети. Если есть какая-либо другая возможность, пожалуйста, сообщите.
Я знаю, что эта тема старая, но если другие ищут ответ. Нашел этот сайт через Google и искал решение. Но в конце концов я нашел собственное решение.
- Установите WireGuard как администратор и импортируйте конфиг.
- Создайте новую задачу через планировщик задач
- В разделе Общие -> параметры безопасности выполните независимо от входа пользователя и с最高 привилегиями
- В разделе Триггер начните задачу, выберите при входе в систему
- В разделе Действия запустите программу (путь к wireguard.exe)
Легкая команда PowerShell, которая переключает состояние туннеля, если конфигурация называется “wireguard”
if (wg) {wireguard /uninstalltunnelservice wireguard} else {wireguard /installtunnelservice "C:\Program Files\WireGuard\Data\Configurations\wireguard.conf.dpapi"}
Основываясь на ответе uEv340yQ3gU1. Спасибо ему.
Теоретически вы можете добавить его в планировщик Windows как задачу, выполняемую системой, и дать пользователю без администраторских прав разрешение на запуск (не тестировалось)
На мой взгляд, предоставление пользователю доступа к группе операторов сети не является вариантом. Мы не можем позволить пользователям просто менять свои сетевые настройки, когда они хотят. Это требует немного больше работы и конфигурации в конечном итоге, но решение, к которому я пришел, по сути, представляет собой комбинацию ответов “uEv340yQ3gU1” и “TurboGraphxBeige”, которые я нашел в этом блог-посте.
Идеально было бы автоматизировать весь процесс установки, так что это просто компромисс с моей стороны. Использование однострочной команды PowerShell и задач по расписанию, как упоминает “Александр Харьковский”, — это решение, которое я использовал для многих вещей в прошлом с успехом, хотя оно не самое красивое.
Для меня действительно не имеет значения, может ли пользователь редактировать соединение WG, но если вы установите корпоративную версию, вы все равно можете включить интерфейс менеджера с помощью командной строки и редактировать его как администратор.
После работы с клиентом Cisco VPN наличие утилиты ServiceTray дает пользователям ярлык на рабочем столе, значок в трее и знакомый процесс для выполнения.
Ответ или решение
Проблемы с использованием WireGuard на Windows 10 для обычных пользователей
Введение
WireGuard – это современный VPN, который привлекает внимание благодаря своей простоте и высокому уровню безопасности. Однако при его использовании на Windows 10 возникают некие ограничения, особенно для пользователей, не обладающих правами администратора. Проблема заключается в том, что интерфейс WireGuard доступен только для учетных записей с административными правами.
Кратко рассмотрим, как это работает, и предложим практические решения.
Проблема доступа к UI
При попытке запустить интерфейс WireGuard с учетной записи, не имеющей прав администратора, пользователь сталкивается с сообщением об ошибке:
WireGuard работает, но интерфейс доступен только с рабочих столов встроенных администраторов.
Это ограничение связано с тем, что WireGuard требует создания виртуального сетевого интерфейса для каждого соединения, который может быть создан только с правами администратора.
Возможные решения
На данный момент есть несколько способов обойти это ограничение, хотя каждое решение имеет свои плюсы и минусы.
1. Использование учетной записи администратора
Плюсы: Пользователь может получить доступ ко всем функциям интерфейса WireGuard.
Минусы: Потребуется переключение между учетными записями, что может занять время.
2. Добавление пользователя в группу Network Configuration Operators
Следуя следующим шагам, пользователь сможет запустить интерфейс WireGuard:
- Измените реестр: создайте ключ
HKLM\SOFTWARE\WireGuard
, добавив DWORDLimitedOperatorUI
с значением 1. - Добавьте пользователя в группу
Network Configuration Operators
.
Плюсы: Доступ к интерфейсу WireGuard.
Минусы: Учетная запись будет подвержена регулярным запросам об уровне привилегий.
3. Установка WireGuard как службы
Это решение позволяет управлять созданной службой без необходимости использовать графический интерфейс. Для этого:
- Установите WireGuard с правами администратора и импортируйте конфигурационный файл.
- В административной командной строке выполните команду:
sc.exe sdset WireGuardTunnel$<ИмяТуннеля> "<параметры доступа>"
- Создайте .bat файлы для запуска и остановки службы.
- После этого пользователь сможет управлять службой WireGuard без графического интерфейса.
Плюсы: Не требует доступа к графическому интерфейсу и возможность управления службой.
Минусы: Необходимость в командной строке и отсутствие GUI.
4. Использование Планировщика задач
Создайте задачу в Планировщике, которая будет запускаться с правами администратора при входе пользователя в систему:
- Настройте выполнение задачи «независимо от входа в систему» с наивысшими правами.
- В качестве действия выберите запуск WireGuard.
Заключение
WireGuard на Windows 10 предоставляет ограниченные возможности для пользователей без административных прав. Хотя пользователи могут применить различные подходы для решения проблемы, оптимальным вариантом является использование службы WireGuard с соответствующей настройкой прав доступа. Это минимизирует необходимость в административных правах, обеспечивая при этом пользователям нужный функционал.
Для получения дополнительной информации о технических аспектах и упрощении процесса настройки, посетите официальную документацию WireGuard.