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

Привет Пикабу!

По многочисленным просьбам трудящихся, после публикации моего предыдущего поста (Установка Ubuntu 20.04 на бесплатный VPS сервер от Oracle для нужд Умного дома) поменял приоритет тематики своих постов и сегодня создадим свой VPN-сервер.

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

Такс, с чего начать? )))


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


Мне известны эти: OpenVPN, PPTP, IPsec L2TP и IKEv2.


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

Ну и наконец переходим к самому главному - установим 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 МБ/сек) с сервером в Амстердаме у меня получилась такая:

Создаём свой 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 tcp --dport 500 -m state --state NEW -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 4500 -m state --state NEW -j ACCEPT
sudo netfilter-persistent save
sudo ufw disable
или
sudo ufw allow OpenSSH
sudo ufw enable
sudo ufw allow 500,4500/udp
sudo ufw disable
sudo ufw enable