Создаём свой VPN сервер IPsec / L2TP за пару минут на бесплатном VPS сервере от Oracle с ОС Ubuntu 20.04 (автоматизированная настройка)

Cегодня создадим свой VPN сервер IPsec / L2TP.

Создаём свой VPN сервер IPsec / L2TP за пару минут на бесплатном VPS сервере от Oracle с ОС Ubuntu 20.04

Выберем протокол для VPN.

Мне известны эти: OpenVPN, PPTP, IPsec L2TP и IKEv2. Ещё набирает большую популярность WireGuard, но его рассматривать в этой статье я не буду (возможно напишу как-нибуть отдельную статью).

OpenVPN — считается самым простым и популярным вариантом, у которого скорость, защита и надежность на высоком уровне, но требует установки клиентского приложения, что не всегда удобно.

По самостоятельной настройке OpenVPN продвинутым пользователям я рекомендую эту статью. В этом руководстве предполагается, что центр сертификации находится на отдельном сервере Ubuntu 20.04, и как его сделать там тоже сказано, а Oracle нам как раз даёт две VPS. Хотя технически возможно использовать сервер OpenVPN на той же машине — компьютере в качестве центра сертификации, это не рекомендуется, поскольку это открывает вашу VPN для некоторых уязвимостей безопасности. Согласно официальной документации OpenVPN , вы должны разместить свой CA на автономном компьютере, который предназначен для импорта и подписи запросов на сертификаты.

L2TP/IPSec — собственно, именно этот протокол мы будем использовать в этой статье, т.к. найденный на github сценарий автоматической установки и настройки мне показался самым простым для новичков и «чайников» + подойдёт для установки не только на Ubuntu но и на Debian и CentOS. Недостаток этого протокола, пожалуй в том, что  он считается медленным и стандартные порты может закрыть ваш интернет-провайдер или сетевой администратор.

Создаём свой VPN-сервер IPsec / L2TP за пару минут на бесплатном VPS сервере от Oracle с ОС Ubuntu 20.04 (автоматизированная настройка) Умный дом, Ubuntu, Linux, VPS, Oracle, Виртуальная машина, VPN, Home Assistant, Длиннопост

С VPN L2TP/IPSec, который мы установим, на устройстве нам нужно будет только ввести:
— IP адрес своего VPS сервера Oracle;
— 20-и значный ключ IPSec;
— Логин (имя пользователя) и пароль

PPTP — устаревший протокол, у которого конечно же достойная скорость подключения, но в плане защиты и конфиденциальности он на самом низком уровне и использовать его в проектах «Умного дома», я точно не рекомендую!

IKEv2 — считается протоколом с самой высокой степенью безопасности, стабильно подключается после разрыва соединения, быстрее, чем L2TP, но не очень простой в плане самостоятельной установки на сервер.

Я даже начал написание своего поста с него, адаптируя эту инструкцию под VPS сервер от Oracle:

Создаём свой VPN-сервер IPsec / L2TP за пару минут на бесплатном VPS сервере от Oracle с ОС Ubuntu 20.04 (автоматизированная настройка) Умный дом, Ubuntu, Linux, VPS, Oracle, Виртуальная машина, VPN, Home Assistant, Длиннопост

но в итоге она мне показалось сложной для новичков и «чайников», удалил её  и решил оставить просто эту ссылку на оригинал, для продвинутых пользователей 😉

На самом деле инструкций по ручной и автоматической установке VPN — сервера по любому протоколу в интернете существует +100500 и ещё столько же, поэтому напомню про свой disclaimer )))

Ну и наконец переходим к самому главному:

Установим свой VPN сервер

Особенности сервера, который мы будем устанавливать:
— Быстрее IPsec/XAuth («Cisco IPsec») и поддерживается режим IKEv2;
— Доступен предварительно созданный Docker-образ VPN-сервера; — Полностью автоматизированная настройка IPsec VPN-сервера;

— Инкапсулирует весь трафик VPN в UDP — протокол ESP не нужен;

— Протестировано с Ubuntu, Debian, CentOS / RHEL и Amazon Linux 2

Вся наша установка сводится  к запуску сценария автоматической настройки с githab, мы лишь подготовим систему, пропишем 20-и значный ключ IPSec, логин и пароль для VPN + откроем порты для VPN в VPS от Oracle.

Другие варианты установки + дополнительная настройка IKEv2 (рекомендуется) смотрите в документации автора скрипта. Для параноиков — это «open source», исходный код скрипта смотрим там же 🙂

Подключаемся через PuTTy по SSH к своему серверу (Как? В конце предыдущего поста мы это уже делали.)

1) Для получения списка новых пактов, выполните:

sudo apt-get update

2) Для выполнения обновления пакетов, выполните:

sudo apt-get upgrade

Не забываем нажать «»Y» — «Enter» ))

Создаём свой VPN-сервер IPsec / L2TP за пару минут на бесплатном VPS сервере от Oracle с ОС Ubuntu 20.04 (автоматизированная настройка) Умный дом, Ubuntu, Linux, VPS, Oracle, Виртуальная машина, VPN, Home Assistant, Длиннопост

3) Скачиваем скрипт командой:

wget https://git.io/vpnsetup -O vpnsetup.sh

4) После завершения, открываем vpnsetup.sh для редактирования:

sudo nano -w vpnsetup.sh

В котором в одинарных кавычках указываем свои значения:

YOUR_IPSEC_PSK='Защищенный PSK IPsec должен состоять мин из 20 случайных символов.'
YOUR_USERNAME='Ваш логин для VPN'
YOUR_PASSWORD='Ваш пароль для VPN'
Создаём свой VPN-сервер IPsec / L2TP за пару минут на бесплатном VPS сервере от Oracle с ОС Ubuntu 20.04 (автоматизированная настройка) Умный дом, Ubuntu, Linux, VPS, Oracle, Виртуальная машина, VPN, Home Assistant, Длиннопост

5) Сохраняем и закрываем файл, нажав CTRL + X, Y, а затем ENTER.

6) Запускаем скрипт и идём на пару минут пить кофе ))

sudo sh vpnsetup.sh

Ф С Ё !!! Готово !!! )))

Создаём свой VPN-сервер IPsec / L2TP за пару минут на бесплатном VPS сервере от Oracle с ОС Ubuntu 20.04 (автоматизированная настройка) Умный дом, Ubuntu, Linux, VPS, Oracle, Виртуальная машина, VPN, Home Assistant, Длиннопост

В случае с нашим бесплатном VPS сервером от Oracle конечно ещё не всё )))

Нужно ещё открыть порты UDP 500 и 4500 для VPN на VPS от Oracle.

Для этого открываем ссылку в письме, которая пришла после регистрации в Oracle, вводим логин и пароль и попадаем в свою учетку, где следуем по пути:Сети — Виртуальные облачные сети — vcn- (ВАШ) — Сведения о списках безопасности

Альтернативный способ попасть туда из главного окна: «Настроить сеть с помощью мастера», «Запуск мастера VNC»  нужно нажать «отмена», кликаем на свой «VNC-номер», далее в «ресурсах» нажимаем на «Списки безопасности» и кликаем на «Default Security List for vcn-номер»

где добавляем правила для входящего трафика:

Создаём свой VPN-сервер IPsec / L2TP за пару минут на бесплатном VPS сервере от Oracle с ОС Ubuntu 20.04 (автоматизированная настройка) Умный дом, Ubuntu, Linux, VPS, Oracle, Виртуальная машина, VPN, Home Assistant, Длиннопост
Создаём свой VPN-сервер IPsec / L2TP за пару минут на бесплатном VPS сервере от Oracle с ОС Ubuntu 20.04 (автоматизированная настройка) Умный дом, Ubuntu, Linux, VPS, Oracle, Виртуальная машина, VPN, Home Assistant, Длиннопост

Если не знаете, как настроит клиентов IPsec / L2TP VPN, то можете почитать например — ЗДЕСЬ.

Скорость этого VPN соединения (локальная 80 МБ/сек) с сервером в Амстердаме у меня получилась такая (спустя пару дней до 40-50 Мб/с):

Создаём свой VPN-сервер IPsec / L2TP за пару минут на бесплатном VPS сервере от Oracle с ОС Ubuntu 20.04 (автоматизированная настройка) Умный дом, Ubuntu, Linux, VPS, Oracle, Виртуальная машина, VPN, Home Assistant, Длиннопост

UPD:  На всякий случай настройки (открыть порты для этой VPN) для файрволла IPTABLES (мне не потребовалось):

sudo iptables --policy INPUT ACCEPT
sudo iptables -F
sudo iptables -A INPUT -p udp --dport 500 -m state --state NEW -j ACCEPT
sudo iptables -A INPUT -p udp --dport 4500 -m state --state NEW -j ACCEPT
sudo netfilter-persistent save
sudo ufw disable

UPD2: Исправляем проблему подключения к L2TP/IPSec VPN серверу за NAT

5 комментариев к “Создаём свой VPN сервер IPsec / L2TP за пару минут на бесплатном VPS сервере от Oracle с ОС Ubuntu 20.04 (автоматизированная настройка)”

  1. привет, подскажи пожалуйста, как можно провести резервное копирование сервера oracle, и восстановиться до состояния резервной копии? средствами oracle cloud, я так понял, можно из резервной копии только создать новый инстанс, что неосуществимо в бесплатном режиме..

    1. Приветствую! В личном кабинете («Вычислить» — «Экземпляры» — «Резервные копии загрузочного тома») написано так: «Вы можете бесплатно сохранить до 5 резервных копий томов в своем домашнем регионе. В настоящее время у вас есть резервная копия 1 тома. Если вы создадите дополнительные резервные копии томов сверх 5 и не обновите их по истечении срока действия бесплатной пробной версии, ваши данные будут удалены.» Меня смутила последняя фраза и полагаться на резервные копии от Оракл я не стал)) Планирую реализовать копии нужных мне разделов UBUNTU средствами LINUX — rsync и/или rclone, пока не доходят до этого руки. Напишу может статью на эту тему в будущем, а пока гугл))

      1. Расскажу, как у меня было)
        Увидел возможность бэкапа в панели, почитал, решил попробовать, создал бэкап действующей машины а как развернуть его на текущую машину не нашел.
        Есть только вариант сделать из бэкапа загрузочный диск. ну, была -небыла, прожал загрузочный диск, появился у меня третий накопитель, и на него сразу упала плашка «бесплатно всегда».
        Но вот проблема, нельзя заменить загрузочный диск на уже созданном и работающем инстансе. Кастомный загрузочный диск можно выбрать только при создании нового инстанса.
        В итоге меня оказалось два инстанса с плашкой «бесплатно», но у загрузочного диска последнего инстанса пропала бесплатность, её автоматически перенесли на новый загрузочный диск.
        Удаление бэкапного диска не привело к переносу плашки, у меня так и остался инстанс с диском, который удалится с приходом 30 дней.
        Саппорт, спустя пару часов общения мне искренне соболезнует и говорит, что ничего сделать не может, такова политика триала, и у них нет физической возможности изменить статус накопителя на фри, тк все автоматизировано.
        Пришлось удалять инстанс, и создавать новый, чтобы плашка «бесплатен всегда» упала и на машину и на диск. Такие вот дела…
        После этого стал искать варианты бэкапа из под ос, без lvm. Но в основном попадаются варианты просто копирования файлов, когда на деле требуется не просто наложить архив сверху на тукущую фс, но и удалить невостребованные файлы, созданные после бэкапа, дабы не случилось мешанины и кучи не актуальных файлов.
        Так же я не могу понять, как будет происходить замена файлов, которые будут активны на момент развертывания бекапа, службы, демоны… все очень сложно. для человека, который не очень разбирается в этих всех штуках, навроде меня))
        Поэтому я подожду Вашего поста, надеюсь, Вы победите оракл 🙂

  2. Спасибо за обзор — попробовал и все нормально получилось, но возник вопрос — как-то можно сделать чтобы два пользователя одновременно заходили?

  3. Mr.Santiaga

    Добрый день, столкнулся с проблемой. Настроил на сервере VPN IKEv2, по мануалу выше, но послу подключения к нему пропадает инет на клиенте (win10). При этом ssh сессия еще некоторое время висит, т.е. я при значке отсутствующего инета могу выполнить sudo ipsec status и увидеть, что

    Security Associations (1 up, 0 connecting):
    ikev2-vpn[1]: ESTABLISHED 42 seconds ago
    ikev2-vpn{1}: INSTALLED, TUNNEL, reqid 1, ESP in UDP SPIs: c3ada259_i 61f18cbe_o
    ikev2-vpn{1}: 0.0.0.0/0 === 10.10.10.1/32

    Как с этим бороться?

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Прокрутить вверх