DevOps

Делаем свой личный VPN от Google на GCP (Google Cloud Platform)

Как настроить обход блокировок для себя, семьи и друзей за пять минут?

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

Outline — это проект быстрого и несложного поднятия серверов для анонимизации и обхода блокировок (прокси). Это удобная утилита с графическим интерфейсом, которая сама поднимет сервер на основе Shadowsocks на любимом хостинге. Его можно использовать для посещения YouTube в Китае и LinkedIn в России или то, что недоступно из-за блокировок.

Следуя этим пунктам, вы установите Outline на Linux-сервер облачного сервиса Google Cloud Platform. На самом деле его можно установить не только в GCP, но и в этих облачных сервисах

Скачиваем Outline Manager для своей платформы (MacOS, Windows, Linux). Пока у вас скачивается Outline Manager, установите клиент Outline на ваш телефон или компьютер (который планируется спрятать за VPN). Если вы планируете управлять вашим VPN с того же компьютера с которого и использовать VPN — скачайте оба приложения.

В этой статье я буду поднимать сервер в GCP.

Создаем проект в Google Cloud Platform. У кого нет аккаунта придется зарегестрироваться. Это бесплатно на 1 год (на момент написания этой статьи).

  1. Создайте проект Google Cloud.
  2. Введите название проекта в поле "Название проекта" (Project name).
  3. Нажмите Create (Создать).

Создаем правило для брандмауэра.

  1. Добавьте новое правило для брандмауэра в ваш проект Compute Engine.
  2. Введите "outline" в поле Name (Название).
  3. Введите "outline" в поле Target tags (Теги цели).
  4. Введите "0.0.0.0/0" в поле Source IP ranges (Диапазоны IP-адресов источника).
  5. Выберите Allow all (Разрешить все) в разделе Protocols and ports (Протоколы и порты).
  6. Нажмите Create (Создать).

Создаем экземпляр ВМ (VM instances)

  1. Создайте экземпляр ВМ.
  2. Введите outline-server в поле "Название" (Name).
  3. В разделе "Регион" (Region) выберите регион, рядом с которым будут находиться пользователи сервера.
  4. В разделе "Тип машины" (Machine type) выберите f1-micro.
  5. Нажмите "Настройка параметров управления, безопасности, дисков, сети и многоклиентского обслуживания" (Management, security, disks, networking, sole tenancy), а затем выберите "Сеть" (Networking).
  6. Введите outline в поле "Теги сети" (Network tags).
  7. Нажмите Create (Создать).

Зайдите на сервер и выполните эту команду.

$ sudo bash -c "$(wget -qO- https://raw.githubusercontent.com/Jigsaw-Code/outline-server/master/src/server_manager/install_scripts/install_server.sh)"

Затем вставьте сюда информацию, полученную при выполнении скрипта установки.

Подключение устройств

Теперь на компьютере есть программа Outline Manager, она только управляет сервером. В ней можно создать ключи («аккаунты») для тех устройств, на которых вам нужно обходить блокировки. Для начала установим программу-клиент Outline на тот же компьютер, с которого мы настраивали сервер.

Если при установке выдает ошибку

Ошибка CentOS 8: Failed to download metadata for repo 'AppStream'

выполните добавление репозитария

$ cd /etc/yum.repos.d/

$ sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*
$ sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*

$ yum update -y

и остановить firewall и отключить автозагрузку

$ systemctl stop firewalld

$ systemctl disable firewalld

Устанавливаем клиент

Windows  MacOS Linux

Копируем ключ из Outline Manager в клиент Outline

Нажимаем Connect.

Если всё сделано правильно, интернет будет без блокировок.

С остальными устройствами на Windows, MacOS, Android, iOS поступаем аналогично, только не забывайте делать новые ключи для каждого нового пользователя. Мощности даже дешёвого VPS-сервера хватит как минимум на 10 пользователей. Тем более, что ключ можно в любой момент отозвать.

В Outline Manager нажмите Добавить новый ключ (Add Key), а затем кнопку Share. В появившемся окне появиться приглашение для нового пользователя

Копируем и отправляем кому хотим дать доступ. По ссылке пользователь получит приглашение доступ

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