Коротко о WireGuard
Это относительно новый протокол VPN туннелирования, работающий через UDP, использующий современные криптографические средства и обладающий высокой производительностью на ОС семейства Linux. Быстрое и надежное решение для соединения двух или нескольких точек между собой.
Установка на Ubuntu
Для сервера WireGuard достаточно недорогой виртуальной машины, если мы говорим о домашнем использовании туннеля. Недорогие VPS в РФ, Франции, Нидерландах и Канаде можно найти здесь.
Мы будем использовать скрипт автоматизированной установки и настройки и это займет лишь пару минут.
Обновляем кэш репозиториев:
sudo apt update
Переходим в любой удобный вам каталог, например в домашний: cd
Скачиваем скрипт установки:
curl -O https://raw.githubusercontent.com/angristan/wireguard-install/master/wireguard-install.sh
В описании скрипта сказано, что он подходит для Ubuntu, Debian, Fedora и других ОС семейства Linux. Я производил установку на Ubuntu 22.04
Устанавливаем права на запуск и запускаем скрипт:
sudo chmod +x wireguard-install.sh && sudo ./wireguard-install.sh
В первую очередь, скрипт попросит у вас указать данные для настройки: ip, порт, dns и прочее. Разумеется он предлагает значения по умолчанию для всех настроек, их можно не менять, если вам это не нужно. При этом порт каждый раз предлагается рандомный, я запускал скрипт на разных машинах и убедился в этом. На скриншоте ниже вы можете увидеть что спрашивает и предлагает скрипт:
Далее вы нажимаете любую клавишу и начинается процесс установки, по завершению которого, скрипт запросит у вас данные для первого клиента: имя клиента и ip, который можно оставить по умолчанию, скрипт сам предлагает их по порядку, т.е. для первого клиента 10.66.66.2
, для второго 10.66.66.3
и так далее. По завершению будет создана конфигурация для клиента, а вы получите QR-код прямо в консоли:
Эта же конфигурация в текстовом виде будет находиться в той директории, из которой вы запускали скрипт. Например в моем случае, там появился файл wg0-client-test.conf
.
Теперь, если вы используете firewall, вам необходимо открыть указанный при настройке сервера UDP порт, в нашем случае это 55852:
sudo iptables -A INPUT -p udp --dport 55852 -j ACCEPT
Или если у вас UWF:
sudo ufw allow 55852/udp
На этом установка завершена.
Проверить статус сервиса можно следующей командой:
sudo systemctl status wg-quick@wg0
При повторном запуске скрипта вы сможете добавлять и удалять пользователей, а также удалить сервер WireGuard:
Подключение клиентов
Вы сможете подключаться к вашему серверу WireGuard с любых устройств. Например, на ПК с Windows вы скачиваете приложение, запускаете, нажимаете “Импорт туннелей из файла” и выбираете тот самый файл конфигурации wg0-client-test.conf
, предварительно скачав его с вашей виртуальной машины. Теперь можно подключаться:
На iPhone устанавливаете приложение WireGuard из AppStore, запускаете и через него можете сканировать тот QR-код или импортировать конфигурацию в виде файла:
К серверу WireGuard также можно подключить роутеры MikroTik, но только на новой прошивке RouterOS 7. Об этом я рассказал в этой статье.