Форум программистов, компьютерный форум, киберфорум
Maks
Войти
Регистрация
Восстановить пароль
Оценить эту запись

WireGuard с веб-интерфейсом

Запись от Maks размещена 24.04.2023 в 08:27. Обновил(-а) Maks 28.02.2024 в 12:14
Показов 2280 Комментарии 0
Метки linux, ubuntu

Приветствую, коллеги.
В данной записи хочу опубликовать материал, по которому я установил и настроил WireGuard с веб-интерфейсом.

Установку производил на Ubuntu Server 22.04

Как установить Ubuntu Server 22.04


После установки настоятельно рекомендую выполнить обновление
Bash
1
apt update && apt upgrade -y
а также, установить пароль для root
Bash
1
passwd root


В данном случае WireGurd устанавливается с Docker, т.е. по сути это набор контейнеров, который требуется установить:
Bash
1
curl -sSL https://get.docker.com | sh
Далее, добавляем текущего пользователя в группу Docker
Bash
1
sudo usermod -aG docker $(whoami)
А теперь разворачиваем контейнеры с WireGuard
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
docker run -d \
  --name=wg-easy \
  -e WG_HOST=11.22.33.44 \
  -e PASSWORD=P@S$W0RD \
  -e WG_DEFAULT_DNS=8.8.8.8,1.1.1.1 \
  -v ~/.wg-easy:/etc/wireguard \
  -p 51820:51820/udp \
  -p 51821:51821/tcp \
  --cap-add=NET_ADMIN \
  --cap-add=SYS_MODULE \
  --sysctl="net.ipv4.conf.all.src_valid_mark=1" \
  --sysctl="net.ipv4.ip_forward=1" \
  --restart unless-stopped \
  weejewel/wg-easy
Где:
11.22.33.44 - выделенный ip-адрес от провайдера (статика), также можно указать динамический DNS (проверено на микротике);
P@S$W0RD - пароль от будущего веб-интерфейса управления WireGurd (вход в веб-морду осуществляется без указания имени пользователя, только пароль);
8.8.8.8,1.1.1.1 - какие угодно DNS, можете указать локальные (если у Вас они имеются);
51820:51820 - порт для подключения клиентов VPN, не забудьте его пробросить на роутере;
51821:51821 - порт управления веб-интерфейсом.

Итак, после установки идем в браузере по адресу 11.22.33.44:51821

Нажмите на изображение для увеличения
Название: 01.jpg
Просмотров: 266
Размер:	20.5 Кб
ID:	8034

Вводим пароль, который указали при конфигурировании контейнеров (P@S$W0RD), и видим примерно следующее:

Нажмите на изображение для увеличения
Название: 02.jpg
Просмотров: 277
Размер:	29.5 Кб
ID:	8035

Добавляем нового пользователя и скачиваем конфиг:

Нажмите на изображение для увеличения
Название: 03.jpg
Просмотров: 252
Размер:	32.9 Кб
ID:	8036

Конфиг клиента VPN выглядит так:

[Interface]PrivateKey = XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX=
Address = 10.10.10.2/24
DNS = 8.8.8.8,1.1.1.1

[Peer]
PublicKey = YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY=
PresharedKey = ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ=
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 0
Endpoint = 11.22.33.44:51820


Здесь я хочу заострить внимание на параметре AllowedIPs его значение равно 0.0.0.0/0 это значит, что удаленный клиент будет иметь доступ ко всей подсети предприятия (хорошо для админов и плохо для обычного юзера в плане ифнобеза), соответственно если мы логиним по VPN обычного юзера, то вписываем сюда только тот ip-адрес(а), доступ к которым ему необходим.

После проделанного, качаем приложение WireGuard, подгружаем конфиг и подключаемся.

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

Каких-либо проблем при эксплуатации я не заметил, но время покажет.

P.S.: Файлы программы в самой системе находятся здесь: ~/.wg-easy

UPD
Возможные проблемы
Если при попытке подключения через приложение WireGuard в Windows 7 выходит такая ошибка:
unable to create network adapter
Необходимо установить обновление kb4474419
Размещено в Без категории
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Всего комментариев 0
Комментарии
 
Новые блоги и статьи
Обработка массивов с помощью циклов в JavaScript
hw_wired 12.02.2025
Массивы в JavaScript - это упорядоченные наборы элементов, где каждый элемент имеет свой индекс, начиная с нуля. Они невероятно гибки в использовании, позволяя хранить данные любых типов - числа,. . .
Создание каталога и всех родительских каталогов с помощью Python
hw_wired 12.02.2025
Работа с файловой системой - одна из ключевых задач при разработке программного обеспечения. Особенно часто возникает потребность создавать каталоги для хранения файлов, логов, временных данных и. . .
Возврат файла к состоянию указанного коммита Git
hw_wired 12.02.2025
Git - распределенная система контроля версий, без которой сложно представить современную разработку программного обеспечения. Когда речь заходит о восстановлении файлов, Git предоставляет целый. . .
Сброс локальной ветки Git до состояния HEAD удаленного репозитория
hw_wired 12.02.2025
Работая в команде разработчиков, часто сталкиваешься с ситуацией, когда локальная версия кода существенно отличается от той, что находится в центральном репозитории. Такое расхождение может. . .
Запрет подсветки выделения текста с помощью CSS
hw_wired 12.02.2025
Выделение текста - одна из базовых возможностей взаимодействия пользователя с контентом на веб-странице. Однако в некоторых случаях стандартное поведение выделения может нарушать задуманный дизайн. . .
Выполнение другой программы из приложения Python
hw_wired 12.02.2025
При разработке современных приложений часто возникает потребность в запуске и взаимодействии с другими программами прямо из кода. Python предоставляет множество эффективных средств для выполнения. . .
Отличия между let и var в JavaScript
hw_wired 12.02.2025
Работа с переменными - один из основных моментов при написании программ на JavaScript. От правильного объявления и использования переменных зависит не только читаемость кода, но и его надежность, а. . .
Подключение файла JavaScript в других файлах JavaScript
hw_wired 12.02.2025
Самый современный и рекомендуемый способ подключения JavaScript-файлов - использование системы модулей ES6 с ключевыми словами 'import' и 'export'. Этот подход позволяет явно указывать зависимости. . .
Отмена изменений, не внесенных в индекс Git
hw_wired 12.02.2025
Управление изменениями в Git - одна из важнейших задач при разработке программного обеспечения. В процессе работы часто возникают ситуации, когда нужно отменить внесенные изменения, которые еще не. . .
Что такое px, dip, dp, and sp в Android
hw_wired 12.02.2025
При разработке мобильных приложений для Android одним из ключевых вызовов становится адаптация интерфейса под различные устройства. А ведь их действительно немало - от компактных смартфонов до. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru