173

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

Создаём свой VPN сервер IPsec / L2TP + Wireguard.

Будем ходить в интернет легко и по большому.


Во-первых спасибо амиго HUNY за интересный и полезный цикл постов.

Все повторяется без проблем, хотя я столкнулся с одной неожиданностью и одной трудностью.


Неожиданностью оказался звонок из Оракла, видимо из-за резкого наплыва пользователей они решили в ручном режиме что-то провер[и|я]ть. Мне позвонила англоговорящая тётенька, представилась что она из Оракла, я спросил чем бы я ей мог помочь, она сказала что хочет узнать как меня зовут и в какой компании я работаю. Я подтвердил что меня зовут Вася Пупкинсон, а вот насчет компании я сказал, что я написал в регистрационной форме "Home" поскольку собираюсь протестировать их сервисы исключительно в личных целях. Видимо я был достаточно вежлив и убедителен так что она сказала что немедля отправит мне имейл с подтверждением регистрации и доступом к телу (сервера).


Амиго HUNY написал очень толковую инструкцию, так что в скором времени у меня был свой работающий VPN сервер, но .... возникла маленькая трудность - мой телефон Xiaomi Redmi Note 8T напрочь отказался подключаться к этому серверу. Быстрое гугление показало что я не одинок в своих проблемах, пользователи xiaomi уже давно жалуются на неработающий vpn  в телефонах  https://c.mi.com/thread-2569606-1-0.html?mobile=no


Я подумал - а что если мне, на этот уже работающий VPN сервер, сверху еще доставить альтернативный vpn сервер Wireguard, тогда может быть можно будет подключаться к vpn хоть так хоть эдак. Не буду рассказывать как я боролся со всяческим файрволами, перейду сразу к инструкциям.


Итак по инструкциям HUNY вы получили работающий VPN сервер.

Добрые люди приготовили для нас легкий инсталлятор Wireguard, он лежит на https://github.com/angristan/wireguard-install

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

curl -O https://raw.githubusercontent.com/angristan/wireguard-instal...

chmod +x wireguard-install.sh

sudo ./wireguard-install.sh


Скрипт задаст вам несколько вопросов и быстренько всё установит:

~$ sudo ./wireguard-install.sh

Welcome to the WireGuard installer!

The git repository is available at: https://github.com/angristan/wireguard-install

I need to ask you a few questions before starting the setup.

You can leave the default options and just press enter if you are ok with them.

IPv4 or IPv6 public address: СЮДА ВЫ ВПИСЫВАЕТЕ РЕАЛЬНЫЙ IP ВАШЕГО СЕРВЕРА

Public interface: ens3

WireGuard interface name: wg0

Server's WireGuard IPv4: 172.22.22.1 ЕСЛИ В ВАШЕЙ ЛОКАЛКЕ НЕТ АДРЕСОВ 172.22.x.x ТОГДА ПИШИТЕ  ЭТО

Server's WireGuard IPv6: fd42:42:42::1

Server's WireGuard port [1-65535]: 4600 ПИШИТЕ 4600, ПОТОМ ФАЙРВОЛ БУДЕМ НАСТРАИВАТЬ

First DNS resolver to use for the clients: 94.140.14.14

Second DNS resolver to use for the clients (optional): 94.140.15.15

Okay, that was all I needed. We are ready to setup your WireGuard server now.

You will be able to generate a client at the end of the installation.

Press any key to continue...


Через несколько минут скрипт все установит,  задаст еще пару вопросов

Tell me a name for the client.

The name must consist of alphanumeric character. It may also include an underscore or a dash and can't exceed 15 chars.

Client name: Xiaomi8T  ИМЯ ВАШЕГО ПЕРВОГО КЛИЕНТА ДЛЯ ВПН, ПРИДУМАЙТЕ ЧТО НИБУДЬ

Client's WireGuard IPv4: 172.22.22.2 АДРЕС ДЛЯ НЕГО, ОСТАВЬТЕ ПО УМОЛЧАНИЮ

Client's WireGuard IPv6: fd42:42:42::2

Here is your client config file as a QR Code:

и выведет на экран картинку QR кода.


Оставьте это окно терминала как есть, оно вам пригодится чтобы не вводить руками в телефон все данные для vpn подключения. Или прямо сейчас возьмите смартфон, установите на него клиент WireGuard https://play.google.com/store/apps/details?id=com.wireguard....

в клиенте нажмите на создание нового соединения и сосканируйте QR код и пока отложите смартфон, нам надо будет еще немного поработать напильником.

Если вы не сосканировали код тогда откройте еще одно соединение с сервером (запустите еще раз putty). Напишите команду

sudo nano /etc/iptables/rules.v4


найдите там строку

-A INPUT -p udp -m multiport --dports 500,4500 -j ACCEPT

и сделайте из нее

-A INPUT -p udp -m multiport --dports 500,4500,4600 -j ACCEPT

Сохраните файл Ctrl-X  Y и Enter


Напишите команду

sudo nano /etc/wireguard/wg0.conf


Найдите там длинную строку

PostUp = iptables -A FORWARD -i ens3 -o wg0 -j ACCEPT; iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE; ip6tables -A FORWARD -i wg0 -j ACCEPT; ip6tables -t nat -A POSTROUTING -o ens3 -j MASQUERADE

В этой строке все -A на поменять на -I (i большое) так что строка будет вот такой

PostUp = iptables -I FORWARD -i ens3 -o wg0 -j ACCEPT; iptables -I FORWARD -i wg0 -j ACCEPT; iptables -t nat -I POSTROUTING -o ens3 -j MASQUERADE; ip6tables -I FORWARD -i wg0 -j ACCEPT; ip6tables -t nat -I POSTROUTING -o ens3 -j MASQUERADE

Сохраните файл Ctrl-X Y и Enter


И последнее действие, надо в глобальном Оракловском файрволе добавить проброс порта 4600 (вспоминайте инструкцию HUNY, он там прокидывал порты 500 и 4500) см. картинку ниже.

Перезагрузите сервер sudo reboot и теперь можно пробовать подключаться смартфоном.


Клиенты WireGuard для различных ОС можно скачать тут - https://www.wireguard.com/install/

Пока мы с вами создали подключение для одного клиента/устройства, чтобы создать еще подключения запустите в терминале еще раз скрипт

sudo ./wireguard-install.sh

и так далее.

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

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

В посте, на который идет данный ответ, автор не упомянул такую штуку как WireGuard. Хотя в комментариях он упоминался. Как по мне, это реально самый простой метод поднять VPN туннель с высокой и стабильной скоростью.
Из реального опыта пользования:
Уже год ввиду некоторой специфики держу на нем сервера игры Minecraft + MySql + DiscordApps + HTTP траффик, ну и парочка девайсов для общего пользования интернетом.
Общая картина сети выглядит примерно так (paint master ON):

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

Извиняюсь за "пэинтность" картинки, нарисовал  по быстрому в сплане.
Для общего понимания - через построенный VPN туннель на базе WireGuard у меня в месяц идет трафик порядка 4ТБ. Аптайм каналов равняется аптайму самих серверов. За год было только три сбоя с самим WG - два раза это обновления/патчи ПО, связанного с сетью, после чего трафик заворачивался в "дулю", и один раз хостер на основной VPS изменил настройки сети и у меня "отвалился" порт.
Пинги у игроков выходят крайне низкие, скорость доступа высокая, никаких заморочек для повторных соединений не требуется.
Из минусов WireGuard стоит отметить дополнительную нагрузку на ЦП, что на мобильных устройствах сказывается на повышенном потреблении заряда батареи.

Так что же это за зверь такой, WireGuard?

WireGuard - это бесплатное программное приложение с открытым исходным кодом и протокол связи, который реализует методы виртуальной частной сети (VPN) для создания безопасных соединений точка-точка в маршрутизируемых или мостовых конфигурациях

А теперь проще. Для запуска VPN-туннеля нам потребуется только 1 сервер, с которым мы будем соединятся и с которого мы будем "ходить" в сеть. На клиентских устройствах нет необходимости иметь "белый" Ip, пробрасывать порты и заниматься подобным безобразием, так как WG работает с помощью широковещательной рассылки - основной сервер "слушает" нужный порт и отвечает на приходящие запросы.
На примере ниже опишу как настроить канал клиент-сервер на примере Ubuntu 18.04 и Android, но для других ОС процесс практически не отличается, почитать можно на английском тут
В качестве заметки - рекомендую использовать для SSH Bitvise SSH Client, как по мне он очень удобный.


(Далее текст частично копипаста)


WireGuard поддерживает свой собственный репозиторий APT, из которого мы будем устанавливать пакет и обновлять его при появлении новой версии.

Обновите список пакетов и установите инструменты, необходимые для управления системными репозиториями. Скорее всего, у вас уже есть пакет на вашем компьютере:

sudo apt update
sudo apt install software-properties-common

Добавьте репозиторий WireGuard:

sudo add-apt-repository ppa:wireguard/wireguard

При появлении запроса нажмите Enter, чтобы продолжить. add-apt-repository также автоматически обновит список пакетов.

Установите пакет WireGuard:

sudo apt install wireguard

WireGuard работает как модуль ядра, который скомпилирован как модуль DKMS. В случае успеха вы увидите следующий вывод:

wireguard:
Running module version sanity check.
- Original module
- No original module exists within this kernel
- Installation
- Installing to /lib/modules/4.15.0-88-generic/updates/dkms/
depmod...
DKMS: install completed.

При обновлении ядра модуль WireGuard будет скомпилирован с новым ядром.


Настройка.

WireGuard поставляется с двумя инструментами командной строки: wg и wg-quick, которые позволяют вам настраивать и управлять интерфейсами вашего туннеля.

Выполните следующую команду, чтобы сгенерировать открытый и закрытый ключи:

wg genkey | sudo tee /etc/wireguard/privatekey | wg pubkey | sudo tee /etc/wireguard/publickey

Файлы будут сгенерированы в каталоге /etc/wireguard. Вы можете просматривать файлы с помощью cat или less. Закрытый ключ никогда не должен никому передаваться.
Теперь, когда ключи сгенерированы, нам нужно настроить туннельное устройство, которое будет маршрутизировать трафик VPN.

Устройство можно настроить либо из командной строки с помощью ip и wg, либо путем создания файла конфигурации с помощью текстового редактора.

Создайте новый файл с именем wg0.conf и добавьте следующее содержимое:

sudo nano /etc/wireguard/wg0.conf
/etc/wireguard/wg0.conf
[Interface]
Address = 10.0.0.1/24
SaveConfig = true
ListenPort = 51820
PrivateKey = SERVER_PRIVATE_KEY
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o ens3 -j MASQUERADE

Интерфейс может быть назван как угодно, однако рекомендуется использовать что-то вроде include wg0 или wgvpn0. Настройки в разделе интерфейса имеют следующее значение:

Адрес – разделенный запятыми список IP-адресов v4 или v6 для интерфейса wg0. Используйте IP-адреса из диапазона, зарезервированного для частных сетей (10.0.0.0/8, 172.16.0.0/12 или 192.168.0.0/16).

ListenPort – порт, на который WireGuard будет принимать входящие соединения.

PrivateKey – закрытый ключ, сгенерированный командой wg genkey. (Чтобы увидеть содержимое файла запуска: sudo cat /etc/wireguard/privatekey)

SaveConfig – при значении true текущее состояние интерфейса сохраняется в файле конфигурации при завершении работы.

PostUp – команда или скрипт, который выполняется до запуска интерфейса. В этом примере мы используем iptables для включения маскировки. Это позволит трафику покинуть сервер, предоставив VPN-клиентам доступ в Интернет. Обязательно замените ens3 после -A POSTROUTING, чтобы соответствовать имени вашего общедоступного сетевого интерфейса. Вы можете легко найти интерфейс, выполнив следующую команду:

ip -o -4 route show to default | awk '{print $5}'

PostDown – команда или сценарий, который выполняется перед выключением интерфейса. Правила iptables будут удалены после отключения интерфейса.

Файлы wg0.conf и privatekey не должны быть доступны для чтения для обычных пользователей. Используйте chmod для установки разрешений 600:

sudo chmod 600 /etc/wireguard/{privatekey,wg0.conf}

Когда закончите, приведите wg0 интерфейс в действие, используя атрибуты, указанные в файле конфигурации:

sudo wg-quick up wg0

Команда выдаст вывод, подобный следующему:

[#] ip link add wg0 type wireguard
[#] wg setconf wg0 /dev/fd/63
[#] ip -4 address add 10.0.0.1/24 dev wg0
[#] ip link set mtu 1420 up dev wg0
[#] iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE

Запустите wg show wg0 для проверки состояния интерфейса и конфигурации:

sudo wg show wg0

interface: wg0

public key: r3imyh3MCYggaZACmkx+CxlD6uAmICI8pe/PGq8+qCg=

private key: (hidden)

listening port: 51820

Чтобы вывести интерфейс WG во время загрузки системы, выполните следующую команду:

sudo systemctl enable wg-quick@wg0


Сеть сервера и настройка брандмауэра

Чтобы NAT работал, нам нужно включить IP-пересылку. Откройте файл /etc/sysctl.conf и добавьте или раскомментируйте следующую строку:

sudo nano /etc/sysctl.conf
/etc/sysctl.conf
net.ipv4.ip_forward=1

Сохраните файл и примените изменения:

sudo sysctl -p
net.ipv4.ip_forward = 1

Если вы используете UFW для управления брандмауэром, вам нужно открыть UDP-трафик через порт 51820:

sudo ufw allow 51820/udp

Вот и все. Пир Ubuntu, который будет действовать как сервер, был настроен.

Настройка клиентов Linux и других ОС.

Инструкции по установке для всех поддерживаемых платформ доступны по адресу https://wireguard.com/install/. В системах Linux вы можете установить пакет с помощью менеджера дистрибутива и в MacOS с помощью brew. После установки WireGuard выполните следующие действия, чтобы настроить клиентское устройство.

Процесс настройки клиента Linux и macOS практически такой же, как и для сервера. Начните с создания открытого и закрытого ключей:

wg genkey | sudo tee /etc/wireguard/privatekey | wg pubkey | sudo tee /etc/wireguard/publickey

Создайте файл wg0.conf и добавьте следующее содержимое:

sudo nano /etc/wireguard/wg0.conf
/etc/wireguard/wg0.conf
[Interface]
PrivateKey = CLIENT_PRIVATE_KEY
Address = 10.0.0.2/24
[Peer]
PublicKey = SERVER_PUBLIC_KEY
Endpoint = SERVER_IP_ADDRESS:51820
AllowedIPs = 0.0.0.0/0

Настройки в разделе интерфейса имеют то же значение, что и при настройке сервера:

Адрес – разделенный запятыми список IP-адресов v4 или v6 для интерфейса wg0.

PrivateKey – Чтобы увидеть содержимое файла на клиентском компьютере, выполните: sudo cat /etc/wireguard/privatekey

Одноранговый раздел содержит следующие поля:

PublicKey – открытый ключ партнера, к которому вы хотите подключиться. (Содержимое файла сервера /etc/wireguard/publickey).

Конечная точка – IP-адрес или имя хоста узла, к которому вы хотите подключиться, за которым следует двоеточие, а затем номер порта, который прослушивает удаленный узел.

AllowedIPs – разделенный запятыми список IP-адресов v4 или v6, с которых разрешен входящий трафик для узла и на который направляется исходящий трафик для этого узла. Мы используем 0.0.0.0/0, потому что мы маршрутизируем трафик и хотим, чтобы одноранговый сервер отправлял пакеты с любым исходным IP.

Если вам нужно настроить дополнительные клиенты, просто повторите те же шаги, используя другой частный IP-адрес.

Добавьте клиентский узел на сервер

Последний шаг – добавить открытый ключ и IP-адрес клиента на сервер (выполнить команду на сервере):

sudo wg set wg0 peer CLIENT_PUBLIC_KEY allowed-ips 10.0.0.2

Убедитесь, что вы изменили открытый ключ CLIENT_PUBLIC_KEY, сгенерированный на клиентском компьютере ( sudo cat /etc/wireguard/publickey), и измените IP-адрес клиента, если он другой. Пользователи Windows могут скопировать открытый ключ из приложения WireGuard.

После этого вернитесь на клиентский компьютер и откройте туннельный интерфейс.

Клиенты Linux

На клиентах Linux выполните следующую команду, чтобы открыть интерфейс:

sudo wg-quick up wg0

Теперь вы должны быть подключены к серверу Ubuntu, и трафик с вашего клиентского компьютера должен направляться через него. Вы можете проверить соединение с:

sudo wg
interface: wg0
public key: sZThYo/0oECwzUsIKTa6LYXLhk+Jb/nqK4kCCP2pyFg=
private key: (hidden)
listening port: 48052
fwmark: 0xca6c
peer: r3imyh3MCYggaZACmkx+CxlD6uAmICI8pe/PGq8+qCg=
endpoint: XXX.XXX.XXX.XXX:51820
allowed ips: 0.0.0.0/0
latest handshake: 1 minute, 22 seconds ago
transfer: 58.43 KiB received, 70.82 KiB sent

Теперь осталось только открыть браузер, зайти на сайт 2ip.ru (или аналогичный), и увидеть Ip своего сервера VPN.

Чтобы остановить туннелирование, отключите интерфейс wg0:

sudo wg-quick down wg0

Теперь про Android.
Здесь все проще некуда. Для начала идем в плеймаркет и устанавливаем приложение WireGuard:

Ответ на пост «Создаём свой 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, Ответ на пост, Длиннопост

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

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

Остался только пункт "Все приложения". Если его оставить как есть - то VPN будет работать для всех приложений на вашем смартфоне. В случае, если вы хотите чтобы только некоторые приложения ходили в сеть через VPN, нажмите на данный пункт и выберете раздел "Исключить" или "Только включить". В первом случае, из VPN-туннеля будут исключены выбранные вами приложения, во втором случае в туннеле будут работать только указанные.
После завершения настройки останется в главном меню только включить ползунок напротив вашего туннеля. На сервере можно будет проверить подключившегося клиента как в мануале выше:

sudo wg
При смене сети (мобильный интернет/wifi) траффик автоматически будет перенаправлятся на новые адреса устройств.
Достаточно длинный и скомканый пост вышел. Но все же, WireGuard позволяет реализовывать достаточно сложные сети с малейшими усилиями.
P.S. Minecraft тут чисто для примера. Адрес сервера не дам, ибо трафик с пикабу будет хуже ддоса)

Показать полностью 4
1816

Создаём свой 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
Показать полностью 9
Отличная работа, все прочитано!