Свой VPN за две минуты

Есть прекрасная сборка сервера OpenVPN на докере: kylemanna/openvpn, но есть один нюанс – всё-таки для установки нужно поработать ручками. В процессе решения данной неувязочки появился govpn – как раз выдался хороший повод поупражняться в SSH на Go. Что из этого получилось и как этим пользоватся, читаем дальше.

Итак, для установки достаточно сделать традиционный

go get github.com/yanzay/govpn

после чего утилита govpn будет доступна из $GOPATH/bin.

Итак, для того чтобы развернуть собственный VPN сервер, нам нужно куда-то его установить. Я для этого использую маленький дроплет на DigitalOcean (осторожно, реферальная ссылка, получите $10 бонуса), на его примере и рассмотрим.

Для начала создаём дроплет:

DigitalOcean Create Droplet

Оставляем по умолчанию Ubuntu 16.04.1 x64, далее выбираем самый маленький сервер за $5 в месяц, определяемся с нужным регионом (я выбираю ближайший ко мне – Frankfurt) и последнее – нужно обязательно добавить на дроплет свой SSH ключ, мы ведь собираемся безопасно общаться с сервером.

DigitalOcean Create Droplet DigitalOcean Create Droplet

После чего смело жмём “Create” и осталось подождать несколько секунд пока новый дроплет создаётся.

DigitalOcean Create Droplet

Сразу копируем IP-адрес, он нам сейчас понадобится. Осталось только запустить магический govpn, который дальше сам разберётся что делать:

$ # указываем пользователя системы: root
$ # в host передаём IP адрес свежего дроплета
$ # --vpn-user указывает имя создаваемого VPN пользователя
$ govpn --user root --host 46.101.254.82 --vpn-user yanzay
Enter pass phrase:

Введём pass phrase – она будет использоваться только для подписи новых сертификатов, в процессе пользования VPN она не понадобится.

Всё! Можно откинуться на спинку кресла и подождать минутку (у меня это заняло 0.13s user 0.14s system 1% cpu 24.951 total, но так бывает не всегда – подбор параметров Диффи-Хеллмана может занять дольше), после чего у вас в текущей папочке появится файл <vpn-user>.ovpn (в моём случае yanzay.ovpn), который тут же можно добавлять в Tunnelblick и подключаться к серверу.

Для того, чтобы добавить нового пользователя к существующему серверу, добавим параметр --create-user:

$ govpn --user root --host 46.101.254.82 --vpn-user friend --create-user

Наслаждайтесь безопасными соединениями, удачи!

Tags: go vpn ssh