Сегодня будем настраивать 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.
Ставим недостающие пакеты:
apt-get update
apt install gunicorn
apt-get -y install python3-pip
pip install -r requirements.txt
Качаем скрипт установки Web интерфейса:
git clone -b v3.0.6 https://github.com/donaldzou/WGDashboard.git wgdashboard
Переходим в директорию, даём права на исполнение, запускаем:
cd wgdashboard/src
chmod u+x wgd.sh
./wgd.sh install
Меняем права на директорию ранее установленного wg и запускаем web интерфейс:
chmod -R 755 /etc/wireguard
./wgd.sh start
Ваш web интерфейс готов. Для запуска переходите по вашему ip с портом 10086 (IP:10086). Учетка по умолчанию admin\admin.
Если не хотите каждый раз запускать web интерфейс в ручную, то создаем автозапуск:
cd wgdashboard/src
nano wg-dashboard.service
В открывшемся редакторе заменяем всё на:
[Unit]
After=network.service
[Service]
WorkingDirectory=<Ваша директория dashboard>
ExecStart=/usr/bin/python3 <Ваша директория dashboard>/dashboard.py
Restart=always
[Install]
WantedBy=default.target
Пример директории /home/wgdashboard/src
Далее копируем файл и добавляем его в автозагрузку:
cp wg-dashboard.service /etc/systemd/system/wg-dashboard.service
chmod 664 /etc/systemd/system/wg-dashboard.service
systemctl daemon-reload
systemctl enable wg-dashboard.service
systemctl start wg-dashboard.service
Рекомендую перезапустить сервер.
Ну и проверяем, что все работает:
systemctl status wg-dashboard.service
После всех выше перечисленных действий вы получаете рабочий wireguard с web интерфейсом. Спасибо за внимание.