Быстрый и надежный VPN для работы из-за границы

Многие государственные сайты и порталы недоступны из-за границы, также во многих компаниях действует политика информационной безопасности, которая обязывает сотрудников работать с российских IP-адресов. В этой статье мы дадим подробный гайд по установке и настройке 2 разных Open Source VPN-серверов на VPS с получением публичных белых российских IP-адресов.

Что потребуется: немного времени, Linux-терминал или Windows CMD (Windows7+) и самый простой VPS, размещенный в российском ЦОД. Мы будем использовать VPS от 1cloud, размещенный в Москве.

Приобретение VPS

Для VPN-сервера подойдет VPS самой простой конфигурации: 1 vCPU, 1 Gb RAM, 10 Gb SSD, Ubuntu 18, Москва. Для приобретения VPS от 1cloud необходимо зарегистрироваться в Панели и перейти в раздел «Виртуальная инфраструктура» → «VPS/VDS на базе Open Source»:

После того как VPS создастся, он появится в списке доступных серверов:

Кликнув, по серверу — раскроются его свойства. Сейчас нас интересуют только IP-адрес, логин и пароль для входа по SSH:

Теперь зайдем на VPS по SSH и начнём установку VPN. Мы будем это делать из Windows CMD:

  1. Кликнете на иконку поиска на нижнем тулбаре Windows;
  2. В строке поиск введите CMD;
  3. Из результатов поиска выберите CMD (Командная строка).
  4. В CMD введите следующую команду: ssh root@[IP-адрес сервера];
  5. На запрос подтверждения продолжения работы — введите yes;
  6. Пароль для входа можно скопировать из Панели 1cloud и вставить в CMD правым кликом мышки;
 

После успешного подключения — вы увидите Linux-терминал:

В нашей базе знаний есть подробная инструкция по подключению к VPS 1cloud для пользователей Windows и Mac. С ней можно ознакомиться здесь. Отлично, мы подключились, теперь можно устанавливать VPN. Начнём с Outline.

Outline VPN

Outline VPN — это Open Source решение от компании Jigsaw. Познакомиться поближе с Outline можно по этой ссылке. Outline состоит из трех частей:

  • Outline VPN Manager — ПО для управления серверной частью Outline VPN (устанавливается на рабочую машину);
  • Outline VPN Server — серверное ПО, которое разворачивается на сервере;
  • Outline VPN Client — клиентская программа, которая устанавливается на устройство, подключаемое к VPN.

Outline VPN Client можно установить на любую ОС, в том числе на Android и iOS. Outline VPN Server устанавливается на Windows и Linux ОС. Мы будем его устанавливать на Ubuntu 18.

Установка и настройка Outline VPN

Для работы Outline Server VPN нужен Docker и cURL. Установим их:

  1. Обновим пакеты и установим вспомогательный софт: apt-get update && apt-get install -y ca-certificates curl gnupg lsb-release;
  2. Добавим GPG-ключи для Docker: sudo mkdir -p /etc/apt/keyrings && curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg;
  3. Изменим права доступа к ключам: chmod a+r /etc/apt/keyrings/docker.gpg;
  4. Настроим репозиторий:
    echo \
    "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
    $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
  5. Обновим ещё раз пакеты и установим Docker: apt-get update && apt-get install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin;
  6. Убедимся, что Docker установился: sudo docker run hello-world.

Теперь у нас всё готово для установки Outline VPN. Давайте установим Outline VPN Manager и Outline VPN Server:

  1. Перейдите на официальный сайт Outline, скачайте Outline VPN Manager и установите его себе на рабочую машину;
  2. Запустите его, нажмите на кнопку «+» и выберите пункт «настроить Outline где угодно»:
  3. Выполните первую команду инструкции:

    После выполнения этой команды на сервере вы увидите следующий вывод в Linux-терминале:

    Здесь нас интересуют два момента: Json с параметрами доступа для Outline VPN Manager и предупреждение о том, что перечисленные в выводе порты могут быть закрыты. Сразу откроем их:
    • ufw allow 34922, 30685, 21, 22 proto tcp;
    • ufw allow 30685/udp;
    • ufw enable;
    • ufw status.
  4. Теперь скопируйте Json из терминала и вставьте его во вторую секцию:

    После, нажатия на кнопку готово, вы увидите такой экран:

Теперь можно скачивать Outline VPN Client на любое нужное вам устройство и копировать на него ключ доступа.

Плюсы и минусы Outline VPN

Безусловным плюсом Outline VPN является минимальное количество телодвижений по настройке его серверной части, установка Outline VPN осуществляется вообще буквально в несколько кликов, а вот использование большого количества стороннего софта — это уже минус. К тому же трехкомпонентная схема работы Outline VPN тоже не вызывает восторга.

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

Хорошо, с Outline VPN всё понятно — ставится относительно быстро, (если есть хорошая инструкция, а она теперь есть), работает стабильно, есть клиенты под все популярные ОС. Давайте, теперь рассмотрим другой не менее популярный VPN-сервер — Wireguard.

Wireguard VPN

Wireguard VPN — это простой VPN, работающий по классической клиент-серверной модели. Он не требователен к ресурсам, серверная часть VPN устанавливается из стандартных Linux-репозиториев, а все настройки производятся через конфигурационные файлы.

Установка Wireguard VPN

Перед установкой Wireguard необходимо проделать некоторые действия, дело в том, что в процессе установки, вы скорее всего столкнетесь с багом, который не даст вам установить Wireguard, поэтому просто выполните следующий набор команд:

  • lsof /var/lib/dpkg/lock && lsof /var/lib/apt/lists/lock && lsof /var/cache/apt/archives/lock;
  • Команда вернёт строку с PID процесса, его нужно вставить в следующую команду
  • kill -9 [process_id];
  • rm /var/lib/apt/lists/lock && rm /var/cache/apt/archives/lock && rm /var/lib/dpkg/lock;
  • dpkg --configure -a.

Всё, теперь можно устанавливать Wireguard: apt-get update && apt-get install -y wireguard. Переходим в директорию wireguard — cd /etc/wireguard/ и выполняем команду: wg genkey | tee /etc/wireguard/privatekey | wg pubkey | tee /etc/wireguard/publickey. В результате выполнения этой команды в текущей директории появятся два файла: privatekey и publickey. Это ключи для подключения, которые мы будем использовать в конфигурационных файлах.

Создадим конфигурационный файл Wireguard в формате conf: sudo vim wg0.conf и добавим в него следующее:

[Interface]
PrivateKey = [privatekey] # Приватный ключ из файла privatekey.
Address = 10.0.0.1/24 #Адрес VPN-сервера в частной сети.
ListenPort = 51830 #Порт, который будет слушать VPN-сервер.
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE #Команды, который будут выполнять при поднятии сервера.
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE #Команды, который будут выполнять при выключении сервера.

Тут нужно только скопировать приватный ключ из файла privatekey и вставить его вместо [privatekey]. Остальное менять не надо. Теперь нужно настроить проброс портов. Делается это связкой команд: echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf && sysctl -p . В результате выполнения команды в терминал будет выведена следующая информация:

Настало время позаботится об автоматизации — настроим автоматический запуск WG сервера после перезагрузки сервера: systemctl enable wg-quick@wg0.service. Команда вернёт такой вывод:

Запустим Wireguard сервер и выведем его статус: systemctl start wg-quick@wg0.service && systemctl status wg-quick@wg0.service. Статус Wireguard должен быть active:

Отлично, Wireguard сервер заработал, но это ещё далеко не всё. Теперь нам нужно создать ещё пару ключей для подключения клиента и добавить конфигурационную секцию к созданному нами wg0.conf. Давайте, сначала сгенерим ключи уже известным нам способом: wg genkey | tee /etc/wireguard/katkov_priv | wg pubkey | tee /etc/wireguard/katkov_pub.

Хорошо, ключи для подключения готовы, теперь добавим в конец wg0.conf вот эту секцию:

[Peer]
PublicKey = [katkov_publickey] #Публичный ключ клиента.
AllowedIPs = 10.0.0.2/32 #IP-адрес в частной сети, который будет присвоен клиенту.

После сохранения конфига, нужно перезапустить Wireguard командой systemctl restart wg-quick@wg0 и проверить его статус командой systemctl status wg-quick@wg0. Если статус active, можно двигаться дальше — устанавливать клиента и писать конфиг для него.

Мы будем использовать Wireguard Client для Windows 11. Скачиваем его с официального сайта и устанавливаем. После установки нужно создать конфигурационный файл для подключения, подойдет любой текстовый редактор. Вставьте это содержимое в текстовый файл и сохраните файл в удобном для вас месте (расширение файла — .conf):

[Interface]
PrivateKey = [CLIENT-PRIVATE-KEY] #Клиентский приватный ключ. В нашем случае katkov_privetkey.
Address = 10.0.0.2/32 #IP-адрес клиента, который настроен на WG сервере.
DNS = 8.8.8.8 #DNS, который будет использовать при подключении.

[Peer]
PublicKey = [SERVER-PUBKEY] #Публичный ключ сервера.
Endpoint = [SERVER-IP]:51830 #IP адрес удаленного сервера и порт прослушивания.
AllowedIPs = 0.0.0.0/0 #Если указаны все нули — весь трафик клиента будет проходить через WG сервер.
PersistentKeepalive = 20 #Интервал проверки соединения между клиентом и сервером (сек).

Теперь можно добавлять конфигурационный файл в Wireguard Client: запустите клиента, нажмите на кнопку «Импорт туннелей из файла», выберите созданный конфиг и нажмите кнопку «Открыть».

После добавления файла — нажмите на кнопку «Подключиться», статус соединения должен измениться на «Подключен»:

На этом всё! Сервер и клиент Wireguard настроены. У Wireguard есть и мобильный клиент, но он не очень удобен в плане настройки — конфигурационный файл придётся создавать на локальной машине и пересылать по почте самому себе, чтобы сохранить на мобильном устройстве и открыть его с помощью Wireguard.

Давайте подведем итог разбора установки и настройки Wireguard и сделаем вывод, какой VPN для каких целей удобнее.

Плюсы и минусы Wireguard VPN

Wireguard VPN — это простой VPN, если вы дружите с Linux-терминалом и вас не пугает написание конфигурационных файлов. Мы выделили 3 основных достоинства и недостатка Wireguard, по нашему мнению:

Wireguard отлично подходит для личного использования и небольших команд, кому требуется быстрый и несложный в использовании VPN. Подведем итог — сравним Outline и Wireguard.

Какой VPN выбрать?

Мы рассмотрели процесс установки и использования Outline и Wireguard. Оба VPN отлично справляются со своей задачей предоставления защищенного и быстрого канала доступа к Российским онлайн-сервисам из-за границы.

 

Приведем сводную таблицу, содержащую специфику установки и работы каждого из VPN:

Параметр VPN-сервера Outline Wireguard
Сложность установки Сложен в установке Не сложен в установке
Сложность настройки Не сложен в настройке Сложен в настройке
Необходимость дополнительного ПО на сервере Нужно устанавливать дополнительный софт Не нужно устанавливать дополнительный софт
Наличие клиентов для различных ОС Есть клиенты под все популярные ОС Есть клиенты под все популярные ОС
Удобство эксплуатации Высокое удобство эксплуатации Среднее удобство эксплуатации
Подходит для распределенных команд Хорошо подходит для команд Не подходит для команд

Можно сказать, что если вы ищете надежный и простой VPN для собственных нужд или командной работы — самым простым решением будет Outline. Wireguard не уступает Outline, но он более сложен в настройке и подключение новых клиентов каждый раз требует манипуляций с конфигурационными файлами на сервере, а это не всегда удобно.

Оба VPN можно автоматизировать. У Outline есть API, а работу Wireguard можно автоматизировать с помощью Python и Telegram. В любом случае какой бы вы не выбрали VPN — вам понадобится надежный и бюджетный VPS, размещенный в российском ЦОД, желательно в Москве и Санкт-Петербурге, чтобы не было проблем с белыми IP-адресами.

VPS от 1cloud обладают всеми нужными параметрами, а благодаря модели расчетов Pay-As-You-Go — вы платите только за реально использованные ресурсы. Это значит, что вы можете включать сервер только на время работы, а в остальное время держать его выключенным.

Переходите по кнопке ниже, знакомьтесь с VPS от 1cloud, выбирайте нужную вам конфигурацию и работайте из любой точки мира так, как будто вы дома.