Сегодня будем настраивать VPN wireguard и Web интерфейс к нему. Все действия проводились на Ubuntu 22.04.2 server. Не забываем что должны быть проброшенны UDP порты на вашем роутере или коммутаторе.
Первым делом поднимем на сервере wireguard. Тут дело ваше можете пошагово делать с оф. сайта, но я предпочитаю делать через скрипт.
Скрипт поддерживается следующими дистрибутивами:
- AlmaLinux >= 8
- Arch Linux
- CentOS Stream >= 8
- Debian >= 10
- Fedora >= 32
- Oracle Linux
- Rocky Linux >= 8
- Ubuntu >= 18.04
Все действия делаю из под root.
Качаем наш скрипт с github:
curl -O https://raw.githubusercontent.com/angristan/wireguard-install/master/wireguard-install.sh
Даем права скрипту:
chmod +x wireguard-install.sh
Запускаем скрипт:
./wireguard-install.sh
Начнется процесс установки. Во время установки скрипт будет запрашивать данные (сеть, DNS и т.п.). Ничего сложного там нет, по этому разбирать подробно не буду.
После завершения работы скрипта в принципе wireguard готов к работе. Чтобы добавить нового пользователя просто запускаете снова скрипт и выбираете цифрой, то что вы хотите сделать.
Далее настраиваем Web интерфейс для нашего VPN.
Качаем скрипт:
git clone https://github.com/donaldzou/WGDashboard.git
Переходим в директорию:
cd ./WGDashboard/src
Даём права и запускаем скрипт:
sudo chmod u+x wgd.sh && \
sudo ./wgd.sh install
Меняем права на каталог:
sudo chmod -R 755 /etc/wireguard
Запускаем:
sudo ./wgd.sh start
Рекомендуется включить форвадинг:
sudo echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
sudo sysctl -p /etc/sysctl.conf
После всех манипуляций Дашборд должен стать доступным по ссылке
http://<ваш ip>:10086
Логин/Пароль admin/admin
Далее чтобы каждый раз не запускать вручную, сделаем автозапуск нашего дашборда.
Смотрим полный путь:
pwd
Должен получиться примерно такой вывод:
/root/WGDashboard/src
Копируем наш путь и вносим его в файл:
nano wg-dashboard.service
**************************************************
[Unit]
After=syslog.target network-online.target
Wants=wg-quick.target
ConditionPathIsDirectory=/etc/wireguard
[Service]
Type=forking
PIDFile=<absolute_path_of_WGDashboard_src>/gunicorn.pid
WorkingDirectory=<absolute_path_of_WGDashboard_src>
ExecStart=<absolute_path_of_WGDashboard_src>/wgd.sh start
ExecStop=<absolute_path_of_WGDashboard_src>/wgd.sh stop
ExecReload=<absolute_path_of_WGDashboard_src>/wgd.sh restart
TimeoutSec=120
PrivateTmp=yes
Restart=always
[Install]
WantedBy=multi-user.target
************************************************************
В файле меняем все <absolute_path_of_WGDashboard_src> на наш реальный путь и сохраняем.
Копируем полученный файл:
sudo cp wg-dashboard.service /etc/systemd/system/wg-dashboard.service
Включаем сервис:
sudo chmod 664 /etc/systemd/system/wg-dashboard.service
sudo systemctl daemon-reload
sudo systemctl enable wg-dashboard.service
sudo systemctl start wg-dashboard.service
Рекомендую перезапустить сервер.
Ну и проверяем, что все работает:
systemctl status wg-dashboard.service
После всех выше перечисленных действий вы получаете рабочий wireguard с web интерфейсом. Спасибо за внимание.