...

суббота, 10 июля 2021 г.

Бесплатный персональный OpenVPN-сервер на базе Oracle Cloud

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

Oracle, придя на рынок облачных сервисов, активно привлекает новых клиентов. И одним из инструментов такого привлечения являются Always Free сервисы - зарегистрировавшийся клиент может пользоваться каким-то достаточно ограниченным набором ресурсов, как это следует из названия, бесплатно и неограниченно во времени. В список этих ресурсов входит два compute инстанса (каждый 2 ядра, 1GB RAM, 45GB HDD), которые можно использовать подо что угодно, но в нашем случае мы можем построить на них полностью бесплатный OpenVPN-сервер, буквально не умея практически ничего, кроме тыкания в кнопку Next. Чем мы и займемся.

Делай раз - регистрируемся

Идем на адрес https://signup.cloud.oracle.com/. Проходим крайне самоочевидный мастер регистрации, подтверждаем почту, привязываем платежную карту, доходим до дашборда, где будет написано "Your account is currently being set up, and some features will be unavailable. You will receive an email after setup completes." Дальше можно знакомиться с интерфейсом, но лучше до того, как аккаунт станет полностью подтвержденным, ничего значимого не делать. Обычно на это уходят единицы, в крайнем случае десятки минут.

Из тонких моментов - да, платежная карта нужна. На ней должен быть минимум 1 евро, который снимется при проверке карты. Но если вы будете пользоваться только always free ресурсами, никаких других денег с вас не снимут. По отзывам, далеко не все карты российских банков работают, я для подобных сервисов обычно использую карты из партнерских программ с Золотой Короной (Кукуруза от Связного, Озон.Кард - десятки их), с ними никаких проблем при регистрации в Оракле не возникало. Та же озоновская карта делается за единицы минут без изменения положения тела в пространстве.

Еще может быть непонятным момент выбора региона - тут, разумеется, вы выбираете, исходя из ваших целей, но я бы рекомендовал рассматривать наиболее географически к вам близкие регионы. Нужно помнить, что для VPN-сервиса задержка передачи пакета от клиента до сервера и назад добавляется к общей задержке, даже если вы пытаетесь подключиться к серверу в соседней с вами комнате. Также имеет смысл учитывать жесткость законодательства по авторским правам в конкретной стране - вдруг у вас торренты через этот канал польются. Вероятность проблем, конечно, невысока, но зачем потенциально усложнять ситуацию. Для себя я выбираю Нидерланды - там и AMS-IX рядом, да и в принципе страна хорошая :) Но, повторюсь, вы можете выбрать любой регион из доступных и повлияет это только на задержку.

Делай два - запускаем сервер OpenVPN

Ваш аккаунт подтвердился, вам пришло уведомление об этом на электронную почту. И теперь вы, возможно, ожидаете, что мы будем разворачивать инстанс, ставить на него вручную и настраивать сервис, открывать для него порты... Но это же облако, там всё уже сделано за нас :)

Идем в маркетплейс, там нажимаем на зеленую кнопку Get App справа сверху. Далее он нас попросит залогиниться - выбираем Commercial Market, логинимся. В появившемся окне нужно выбрать Compartment (он у вас пока что один) и подтвердить, что вы прочитали и приняли Terms of Use. После этого станет доступна кнопка Launch Stack, на которую мы немедленно и нажимаем.

Это запускает мастер создания инстанса, где на первом этапе никаких важных для нас настроек нет, можно просто нажать Next.

На втором этапе уже есть кое-что важное. В поле Compute Shape обязательно надо выбрать VM.Standard.E2.1.Micro вариант (возможно, когда вы это читаете - там могут быть другие цифры, но важно, что Micro - только они попадают под Always Free опцию).

Ниже, в Application Configuration, нам нужно создать админские логин и пароль к сервису (их можно будет использовать и для подключения к VPN, а можно будет создать для этого дополнительные реквизиты).

В Network Configuration в принципе всё можно оставить по умолчанию, если у вас есть какие-то специальные требования к адресации внутри VPN - здесь их можно скорректировать.

И, наконец, в Additional Configuration имеет смысл вставить ваш публичный ssh-ключ, чтобы вы смогли подключиться к сервису по SSH для управления из консоли. Если вам эта возможность не требуется - то и без него всё совершенно точно будет работать.

После нажатия Next мастер позволит вам обозреть ваши настройки в последний раз и нажать Create, после чего задача встанет в очередь на исполнение в Terraform'е. Исполняться иногда может долго, был случай - ждало больше 15 минут, но чаще всего через десятки секунд уже можно наблюдать радующее "Выполняется" в состоянии инстанса в списке. Провалившись в инстанс, можно в разделе "Доступ к экземпляру" посмотреть "Общедоступный IP-адрес", который и будет адресом вашего VPN-сервера.

Делай три - заходим в интерфейс управления

На самом деле необязательный шаг, но для понимания нюансов.

Интерфейс управления доступен на https://<IP-адрес>. К сожалению, он использует самоподписанный сертификат, поэтому через свежие версии Chrome, например, достучаться будет нелегко - в хроме постоянно выпиливаются обходные пути для подключения к небезопасным сайтам и сейчас, кроме варианта через экспорт в файл и импорт в хранилище, я и не знаю способа открыть такой сайт в хроме. Но мне гораздо проще для подключения использовать браузер с меньшим уровнем паранойи, в частности - Safari, который хоть и ругается, но открыть сайт позволяет.

Логин и пароль для админки - те, которые вы ввели в настройках на шаге №2. На том конце - классический веб-интерфейс OpenVPN Access Server, так что в рамках непревращения статьи в "100500я статья про OpenVPN в интернете" описывать какие-то настройки здесь я не буду, тем более, что работать будет и с настройками по умолчанию.

Делай четыре - подключаемся к VPN

Тут, опять же, не буду плодить сущности и отсылаю за описанием подключения вашего конкретного OpenVPN-клиента к стандартному OpenVPN-серверу в великий интернет. Хочу при этом заметить, что большинство ПК-клиентов для OpenVPN умеют самостоятельно стягивать на себя профиль - т.е. в них достаточно указать адрес админки (https://<IP-адрес>) и логин с паролем, упомянутые выше. И всё заработает само.

Проблемы и ограничения

1) Не у всех поднимается доступ по SSH. Тут, к сожалению, ничего сказать не могу, потому что мне такой кейс отлаживать не приходилось. Рекомендовать могу только на втором этапе выше тщательно проверить, что вставился правильный публичный ключ. Имя пользователя при этом выводится в том же разделе "Доступ к экземпляру".

2) Нужно помнить, что это не просто виртуальная машина, а инстанс в облаке, закрытый сетевыми настройками не только внутри инстанса (чаще всего там уже заточенный iptables), но и снаружи его - в NetworkSecurityGroup, назначенной на виртуальную облачную сеть (VCN) инстанса. Поэтому если нужно открыть какие-то нестандартные порты - это может потребоваться делать в нескольких местах.

3) OpenVPN Access Server без лицензии позволяет не более двух одновременных подключений. Поэтому решение подходит для персонального VPN. Но в целом, конечно, ничто не мешает не ставить его из маркетплейса, а поднять пустой инстанс в Оракле (или не Оракле) и установить OpenVPN (или не OpenVPN) на этот инстанс самостоятельно из консоли. Это уже просто будет другая история.

4) Важный апдейт от @osipov_dv - в сервисе бесплатны только 10 ТБ исходящего трафика в месяц (в случае VPN получается суммирование вашего входящего и исходящего), а потом он будет вам стоить $0.0085/GB. Впрочем, на практике дотянуться до 10 ТБ потребления - это надо очень, очень постараться. По моим логам более 2 ТБ за месяц общего потребления моя семья никогда не осиливала, несмотря на немаленькую домашнюю ферму виртуализации. Но никогда не помешает оценить свои объемы потребления, прежде чем подписываться.

Заключение

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

Adblock test (Why?)

Комментариев нет:

Отправить комментарий