Как запустить свой личный VPN на Outline

Быстро, дёшево и без специальных знаний

У этого поста следующая структура:
1) Введение, где кратко описывается, как всё это работает, и почему важно поднимать собственный VPN, а не пользоваться готовыми коммерческими решениями.
2) Инструкция, где пошагово описывается процесс настройки VPN с помощью Outline на трёх популярных облачных провайдерах.
3) Ещё несколько важных моментов, которые стоит прочитать.
4) Ссылка, по которой мне можно перевести денег на пиво :)

Введение

В связи с блокировкой Телеграма в России, компьютерная грамотность населения резко повысилась, все ринулись нажимать волшебные кнопки, вставляющие настройки прокси в самом приложении Телеграма, более продвинутые купили себе платный VPN и на этом успокоились окончательно. При этом, оба этих варианта, на самом деле, так себе:

  • в обоих случаях, ваши данные, на самом деле, не в безопасности: они проходят через чужие серверы, доступа к которым у вас нет и не будет. По сути, вы просто отдаёте свою информацию неизвестным, слепо доверяя, что они не будут делать с ней ничего неприятного. И если от платных сервисов ещё можно ожидать (вернее, надеяться) хоть какой-то порядочности, то бесплатные (да и многие платные) занимаются тем, что торгуют вашими сетевыми привычками и патернами поведения — надо же им как-то зарабатывать.
  • да, сообщения в Телеграме зашифрованы (опять же, здесь мы вслепую доверяем Павлу Дурову, серверная часть кода закрыта и никогда не подвергалась независимому аудиту), но вполне может так статься, что понадобится пустить через VPN и другие приложения.
  • любой централизованный сервис легко заблокировать, большинство крупных VPN-провайдеров известны, и блокировку можно устроить довольно быстро.

Хорошая новость в том, что есть альтернатива: можно арендовать сервер у одного из облачных провайдеров — так называемый VPS или Virtual Private Server. По сути, это небольшой кусочек огромной серверной стойки, который вы арендуете и которым управляете дистанционно, через интернет. После этого можно установить на нём программу, которая будет обеспечивать работу VPN, и выходить в интернет, подключаясь через этот сервер.

Всё это звучит довольно сложно с технической точки зрения, но, к счастью, мы живём в 2018 году, и для всего, что может прийти в голову, есть приложение. Так, недавно появился отличный способ настроить свой собственный VPN, не написав при этом ни строки кода. Это программа Outline, выпущенная компанией Jigsaw. Jigsaw специализируется на проектах, посвящённых защите свободы слова и входит в холдинг Alphabet, ключевая компания в котором — всем известный Google.

Плюсы Outline:

  • Это проект с открытым кодом, который постоянно доступен всем желающим. Такие проекты изучают тысячи разработчиков со всего мира, что исключает возможность появления там скрытых уязвимостей и лазеек для утечки информации.
  • Более того, независимый аудит Outline проводила организация Radically Open Security.
  • Outline использует продвинутую технологию Shadowsoks, которая активно используется в Китае, потому что позволяет обходить великий китайский фаерволл, в отличие от многих других решений.
  • Из-за того, что Outline работает на вашем личном сервере, вы сами контроллируете свои данные, его гораздо сложнее отследить и заблокировать, а даже если заблокируют облачного провайдера, всегда можно поднять новый сервер за 10–15 минут.
  • А ещё Outline не хранит никаких логов на сервере, так что если даже злоумышленники смогут получить доступ к серверу, они не смогут ничего узнать.

Важно: Outline (как и любой VPN-сервис) обеспечивает приватность, но не обеспечивает анонимность. Когда вы регистрируете облачный сервер, вы указываете свои данные, ваш IP известен облачному провайдеру. Для того, чтобы обеспечить анонимность, следует использовать дополнительные сервисы, например Tor.

И ещё одно примечание: информация в посте актуальна на начало мая 2018 года. Это не значит, что с тех пор всё поменялось (скорее всего, почти ничего не поменялось). РКН мог разблокировать какие-то серверы, Outline периодически обновляет приложения, но принципы работы остаются неизменными. Если что-то поменяется радикально, я обновлю пост.

Инструкция.

Часть 1а. Настройка Outline на Digital Ocean.

Важно: из-за войны Роскомнадзора с рунетом, многие облачные сервисы тоже попадают под раздачу, поэтому подключение к серверу может не работать. Плюс Outline в том, что в такой ситуации всегда можно поднять сервер на другом сервисе. В этой статье я дам инструкции для двух популярных облачных провайдеров: Digital Ocean (самый user-friendly) и Vultr (крутой, но не такой популярный, поэтому меньше вероятность попасть под блокировки), а также в качестве бонуса — для провайдера Scaleway, который очень крут, но с ним есть одна проблема, о которой ниже.

Инструкция:

  1. Регистрируемся на сайте Digital Ocean. Вот по этой ссылке можно сразу получить 10 долларов на счёт (это пара месяцев бесплатного использования сервера на минимальном тарифе): https://m.do.co/c/1f7e7fee693a

2. Заходим на сайт Outline https://getoutline.org/en/home и скачиваем Outline Manager для своей операционной системы

3. Открываем скачанный файл, устанавливаем программу и запускаем её. Выбираем пункт “Set up Outline on Digital Ocean”, создавать новый аккаунт нам не надо, он уже у нас есть, поэтому логинимся в аккаунт.

4. Выбираем, где будет располагаться наш сервер и нажимаем “SET UP OUTLINE”. Важно: Есть рациональное зерно в том, чтобы выбирать сервер, наиболее близкий к вам географически — это может положительно повлиять на скорость соединения. Если вдруг окажется, что этот сервер уже забанен Роскомнадзором, выберите другой, когда будете заново настраивать программу. UPD: в коментах пишут, что если сервер забанен — то соединение не установится, и программа сама предложит создать новый сервер. Всё для людей, как говорится.

5. Всё! Теперь ждём пару минут и ваш сервер готов! Можно переходить к шагу 2 или прочитать про альтернативный вариант настройки сервера на Vultr и Scaleway.

Часть 1б. Настройка Outline на Vultr.

  1. Регистрируемся на сайте Vultr. Вот вам промокод на 25 долларов (это 5 месяцев на сервере за 5 баксов или 10 на минимальном тарифе), пока что работает: https://www.vultr.com/promo25b/

2. Нажимаем на кнопку “Verify your e-mail” в письме.

3. Заполняем платежные данные. В принципе, процесс аналогичный Digital Ocean. Лайфхак: через PayPal сумма минимального платежа меньше.

4. После успешного добавления платёжных данных нас автоматически перекинет на страничку создания нового сервера. Если этого вдруг не произошло — нажмите на синюю кнопку + в правом верхнем углу.

Выбираем местоположение сервера (в зависимости от загруженности, некоторые локации могут быть недоступны).

Выбираем операционную систему: Ubuntu 16.04.

Выбираем тарифный план. Самые дешёвые серверы за 2,5 бакса в месяц доступны далеко не всегда, но купить их вполне реально. Подумайте, сколько трафика вам будет нужно: за 5 долларов вы получите 1TB — то есть, 500 Gb входящего и 500 Gb исходящего интернета. Для пары мобильных устройств и 1–2 компьтеров этого более чем достаточно, при условии, что вы не будете постоянно качать торренты и смотреть видео в 4K, впрочем, можно на это время отключать VPN и не тратить трафик. Если вы мало пользуетесь интернетом — то можно взять и тариф за $2,5, там траффика будет в 2 раза меньше.

5. А вот сейчас будет сложный момент: надо добавить SSH ключ для того, чтобы подключаться к серверу и управлять им. Этот шаг надо повторить один раз, для будущих серверов уже не нужно будет заново настраивать. Если у вас macOS или Linux — то сделать это довольно просто: надо открыть терминал и выполнить следующие команды (значок доллара копировать и вставлять не нужно): 
$ ssh-keygen -t rsa
Пару раз нажимаем на Enter, в конце появится длинное сообщение. После чего вводим следующую команду: 
$ cat ~/.ssh/id_rsa.pub
И получаем готовый ключ SSH, который можно копировать и переходить к следующему шагу.

Если у вас Windows — то надо будет скачать программу Putty, в которой можно создавать SSH-ключи, встроенного функционала для этого у винды нет. Скачать программу можно здесь. Впрочем, ничего особо сложного нет и в этом случае. Сгенерируйте ключ и скачайте его. А вот здесь лежит довольно подробная инструкция с примерами для всех вышеупомянутых ОС. Загляните в неё, если в чём-то не уверены.

Скопированный ключ надо вставить в открывшееся на Vultr окно:

Нажимаем Add SSH Key и нас автоматически перекинет на страничку создания нашего нового сервере. Если этого вдруг не произошло, вернитесь к шагу 4 (шаг 5 уже не надо будет делать).

6. Для удобства называем как-нибудь наш новый сервер.

Проверяем ещё раз месячную стоимость и жмём Deploy Now.

7. Итак, сервер у нас есть, остался буквально финальный рывок. Нам надо подключиться к серверу и запустить там Outline. Для начала откроем наш сервер на сайте Vultr (на странице https://my.vultr.com/ нажмите на имя сервера) и посмотрим, какой у него IP-адрес:

Скопируем IP и запустим консоль (терминал на macOS или Linux, Putty на Windows), и выполним следующую команду (значок бакса традиционно не копируем):

$ ssh root@<сюда надо вставить скопированный IP-адрес>

Скорее всего нас спросят, хотим ли мы подключиться к неизвестному ранее адресу, печатаем yes и жмём Enter.

Теперь нас спросят пароль, его можно посмотреть и скопировать на той же странице сервера на Vultr:

Копируем пароль, вставляем его в консоль и нажимаем Enter. Теперь мы залогинены на сервере.

8. Открываем Outline Manager, щёлкаем по кнопке Get Started на сером поле внизу

Копируем код из верхнего поля (я не привожу его здесь из соображений безопасности):

Вставляем в консоль и нажимаем Enter. Запускается процесс установки сервера Oultine, который займёт 1–3 минуты. В конце консоль выдаст большую простыню текста, из которой вам надо выбрать и скопировать кусок, выделенный скобочками {} (копировать вместе со скобочками!):

После чего, снова открываем Outline Manager и вставляем этот кусок в нижнее поле

9. Нажимаем Done и ждём, пока установится соединение! Вуаля! У вас теперь есть сервер на Vultr, можно переходить к шагу 2, или прочитать про настройку сервера на Scaleway.

Часть 1в. Настройка Outline на Scaleway.

Важно: Scaleway — это ещё один облачный провайдер, у которого есть огромный плюс: трафик на его серверах безлимитный, то есть вы можете скачать и загрузить абсолютно любое количество данных, хоть смотрите весь месяц без перерыва видео в 4к. Тарифы отличаются только конфигурацией сервера (для наших задач более чем достаточно самой минимальной) и скоростью подключения (минимальная 100 Mbit/s, этого вполне достаточно для большинства пользователей). Вишенка на торте — это крайне привлекательные цены, сервер в самой минимальной комплектации стоит всего лишь 2 евро в месяц. Но есть и важная проблема: Scaleway не такой крупный провайдер, как вышеупомянутые, и он работает всего лишь на двух подсетях, одна из которых наглухо заблокирована Роскомнадзором и далеко не всегда получается создать сервер с нужным IP-адресом, подробнее об этом чуть ниже. Тоже важно: информация о блокировках РКН может в любой момент устареть, подсети могут разблокировать, а могут заблокировать новые, лучше проверять работоспособность сервера каждый раз.

  1. Регистрируемся и создаём аккаунт на Scaleway. Большинство шагов будут аналогичны настройке сервера на Vultr, так что подробно расписывать их я не буду.
  2. Добавляем платёжные данные.
  3. Подтверждаем e-mail.
  4. Создаём SSH-ключ (см. инструкцию выше)
  5. Добавляем ключ на этой странице: https://cloud.scaleway.com/#/credentials
  6. Создаём сервер (зелёная кнопка Create Server). Параметры выбираем следующие:

Придумайте название сервера:

Минимальная комплектация (можете взять с большей скоростью, если вам нужно):

ОС Ubuntu Xenial:

Всё, больше ничего настраивать не надо. Можно нажимать кнопку Create Server.

7. Нас перекинет на страницу свежесозданного сервера. Теперь надо проверить его IP-адрес. Если он начинается на 51.15 — то, к сожалению, вам не повезло, эта подсеть заблокирована Роскомнадзором. Но не факт! РКН мог уже разблокировать эту подсеть на момент, когда вы читаете пост, лучше проверить работоспособность сервера, прежде чем создавать новый. В таком случае у нас есть 3 варианта: снести сервер и попытаться ещё раз сразу же, снести сервер и попытаться через некоторое время или подождать, пока Роскомнадзор разблокирует эту подсеть (ха-ха). Если IP-адрес не начинается на 51.15 —всё ок, можно продолжать. 
Важно: 1. когда будете сносить сервер, посмотрите в третий раздел этого поста, в случае со Scaleway есть особенности. 2. Если вы создали сервер и сразу его удалили, Scaleway всё равно спишет с вас стоимость часа работы. Это совсем немного (несколько центов максимум), но я всё равно обязан вас предупредить.

8. Если в предыдушем пункте всё получилось, то дальше будет совсем просто. Подключаемся к серверу по SSH и запускаем скрипт, скопированный из Outline Manager (подробнее см. в предыдущей инструкции, единственное отличие в том, что Scaleway не будет требовать пароль).

9. Всё готово, можно переходить к шагу 2.

Часть 2. Подключение к VPN.

Эта часть одинакова для всех способов настройки сервера. Итак, вы подняли свой собственный сервер, теперь надо подключить к нему ваши устройства.

0. Для начала можно скачать клиент Outline для ваших платформ: Android, iOS, macOS, Windows. Новые платформы будут появляться здесь (пункт 2): https://getoutline.org/en/home

  1. Сначала подключим свои собственные девайсы. Открываем Oultine Manager и нажимаем Get connected

Выбираем, что хотим подключить: это устройство (Connect this device) или другое (different device):

Нажимаем Connect this device. Копируем появившийся код подключения кнопкой Copy:

На следующем шаге нам будет предложено установить клиент Outline для своей системы, если мы его ещё не установили — щёлкаем на Install, либо сразу открываем установленный клиент. Он автоматически распознает скопированный ключ и предложит добавить сервер, что и нужно сделать, нажав на Add Server. Если вдруг не предложит — нажмите на плюсик в правом верхнем углу и вставьте код подключения вручную.

2. Теперь нажимаем Connect — и наше соединение теперь перенаправляется через VPN. Ура! Отключить соединение можно, соответственно, кнопкой Disconnect.

3. Давайте подключим свои остальные устройства. Для этого вернитесь на шаг 1 и нажмите Connect a different device. Откроется окно со специальной ссылкой. Копируем её кнопкой Copy и отправляем на другие свои устройства. Открываем ссылку, копируем ключ и вставляем в установленный клиент — аналогично предыдущим шагам.

3. Если мы хотим подключить кого-то ещё, можно также отправить им ссылку. Но лучше создать для них отдельный ключ (это позволит в случае необходимости быстро их отключить). Для этого в Outline Manager нажимаем Add Key. Появится ключ, как-нибудь его называем и нажимаем на Share. Появится окно со ссылкой, которую нужно скопировать и отправить человеку.

Чтобы удалить ключ — нажмите на три точки справа и выберите Remove.

Часть 3. Как удалить сервер.

Вам может понадобиться удалить сервер, например, чтобы поднять новый или перейти на другой сервис.

  1. В случае с Digital Ocean сделать всё довольно просто — надо зайти в Outline Manager, нажать на шестерёнку рядом с названием сервера, нажать Destroy Server и подтвердить, нажав Delete. При этом сервер на Digital Ocean автоматически удалится. После этого вам предложат создать новый сервер, если вы хотите поднять сервер на другом ресурсе, зайдите в боковое меню и выберите Sign Out.
  2. В случае с Vultr или Scaleway, процесс немного подольше: надо нажать на шестерёнку, выбрать Forget Server и подтвердить свой выбор. При этом непосредственно сервер уничтожен не будет, он будет работать (и тратить ваши деньги), поэтому необходимо сделать следующее:
  3. В случае с Vultr зайти в панель управления: https://my.vultr.com/, нажать на сервер и нажать на значок корзины в правом верхнем углу. Поставьте галочку во всплывшем окне и нажмите Destroy Server. Сервер автоматически удалится через несколько минут.

4. Если у вас Scaleway, зайдите в панель управления https://cloud.scaleway.com/#/ , выберите вкладку Servers сбоку слева. Справа от сервера, который хотите удалить, нажмите на зеленый значок ON, поставьте галочку напротив пункта Terminate и нажмите Power Off.

Scaleway устроен так, что когда вы удаляете сервер, его IP всё равно остаётся зарезервированным на вашем аккаунте. Чтобы с вас не списывались за это деньги, надо удалить его, для этого зайдите во вкладку Network слева, поставьте галочку напротив нужного IP и нажмите Delete.

И ещё несколько важных моментов.

  • Повторю ещё раз: VPN — это средство приватности, но не средство анонимности. Для анонимности используйте, например Tor: https://www.torproject.org/. Связка VPN + Tor — это, в принципе, довольно неплохой вариант. Это не значит, что надо расслабляться и забывать о безопасности, занимайтесь самообразованием, читайте про безопасность и анонимность в сети.
  • Обратите внимание на FAQ на сайте Outline, там много полезной информации (на английском): https://getoutline.org/en/support
  • Если у вас Windows, то есть вероятность, что не весь трафик будет автоматически проходить через Outline. В этом случае сайт Outline рекомендует прописать в настройках прокси приложения следующие параметры: IP: 127.0.0.1 Port: 1081 Proxy type: SOCKS5
  • Для вящей безопасности я бы советовал вам установить двухфакторную аутентификацию при входе на облачные хостинги. На Digital Ocean это можно сделать вот тут: https://cloud.digitalocean.com/settings/security
    На Vultr здесь:
    https://my.vultr.com/settings/#settingsauthentication
    А вот тут на Scaleway (пункт Two-factor authentication) : https://cloud.scaleway.com/#/account
  • В среднем VPN на Outline обойдётся вам в 3–5 долларов в месяц, это сравнимо по стоимости с минимальными тарифами коммерческих VPN, и гораздо безопаснее. А если использовать один сервер вместе с друзьями и делить стоимость, то будет ещё дешевле.
  • Советую начать с Digital Ocean, это самый быстрый способ, который поможет вам освоиться и научиться настраивать сервер. Тем более, что если вы зарегистрируетесь по этой ссылке, у вас уже будет 10 баксов на счету: https://m.do.co/c/1f7e7fee693a

P.S. Если вам пригодилась инструкция, и вы чувствуете необходимость выразить свою благодарность, можно перевести мне немного денег на пиво вот здесь: http://yasobe.ru/na/outline_thanks

P.P.S. Если вы работаете в медиа, вступайте в Профсоюз Журналистов, будем бороться вместе: https://profjur.org/join