December 30, 2020

Wireguard. Вот что я люблю!

Многие слышали о WireGuard — новом протоколе VPN, который обеспечивает заметно большую скорость и имеет простую настройку клиентского программного обеспечения. Некоторых пугает сложность установки — особенно те части инструкции, где идет речь о модулях ядра. Расскажу, как сделать быстро и без сложностей свой WireGuard-сервер.

Для начала — общие впечатления от WireGuard. Действительно, этот продукт обеспечивает замечательную производительность за счет использования транспортного протокола UDP и множества оптимизаций. В отличие от OpenVPN и подобных продуктов, принцип настройки несколько другой — для каждого отдельного устройства следует сделать отдельный ключ. Другими словами, если нужно подключаться со смартфона, домашнего компьютера и ноутбука, то в случае с WireGuard нужно сделать три ключа, не получится пользоваться одним. Отметим, что генерация ключа является простой задачей и этого не стоит опасаться.

Итак, приступаем. Нам понадобится самый простой VDS, покупаем его себе где пожелаем. Я свой выбор остановил на ITLDS. В качестве операционной системы мы будем использовать Debian 10. Остальные параметры можно оставить по-умолчанию.

Установка операционной системы на SSD VDS занимает несколько минут, после этого можно приступать к установке и запуску своего WireGuard. Подключаемся к SSD VDS с помощью любого ssh-клиента (putty или др.) и выполняем следующие команды:

apt-get install -y curl
curl https://raw.githubusercontent.com/complexorganizations/wireguard-manager/master/wireguard-server.sh --create-dirs -o /etc/wireguard/wireguard-server.sh
chmod +x /etc/wireguard/wireguard-server.sh
HEADLESS_INSTALL=y /etc/wireguard/wireguard-server.sh

Разберу подробнее. Мы инсталлируем curl (его обычно нет в поставках ОС по-умолчанию), загружаем скрипт wireguard-server.sh и выполняем его. Да, мы будем использовать замечательную утилиту wireguard-manager от Prajwal Koirala, который установит все необходимые компоненты, запустит WireGuard и подготовит первую пару ключей!

Итак, мы выполнили указанные команды и получили QR-код. Теперь можно загрузить на свой смартфон или компьютер клиентскую часть WireGuard (IOS (iPhone/iPad), Android, другие платформы), запустить приложение WireGuard и добавить подключение. Да, именно для этого нужен QR-код — приложение сканирует его для добавления подключения, не нужно вводить никаких сложных технических данных и паролей!

Для того чтобы добавить дополнительное подключение, выполним

/etc/wireguard/wireguard-server.sh --add

Указываем имя подключения (например, vpn2) и мгновенно получаем дополнительный QR-код. Быстро и просто:

Дополню — данный скрипт работает на всех современных Linux-системах. На Centos7/8 может потребоваться выключение firewalld, на Debian или Ubuntu дополнительных действий делать не нужно, поэтому Debian 10/Ubuntu 18 предпочтительнее.

WireGuard действительно впечатляет. Рекомендуем!