Гайд Личный VPN на OpenVPN от Way CyberSecurity

WayAdm

Твой путь
Статус
offline
Регистрация
05.11.2023
Сообщения
18
Репутация
5
openvpn_logo.png


Опишу процесс создания собственного VPN на протоколе OpenVPN.
Для упрощенной установки я буду использовать полуавтоматический скрипт с GitHub - https://github.com/angristan/openvpn-install
В данном примере я буду устанавливать VPN на удаленный сервер под управлением Rocky Linux 8, установка на другие дистрибутивы на основе Debian и RHEL аналогичная.

VDS/VPS ОБЯЗАТЕЛЬНО ДОЛЖЕН РАБОТАТЬ НА KVM!

Для подключения к VPS по SSH надо написать в терминале команду
Код:

user - имя пользователя на сервере, в моем случае это root*
*категорически НЕ рекомендую работать от root'а, это небезопасно, такое допустимо только при демонстрации процесса установки чего-либо, как в моем случае.

0.0.0.0 - IP адрес удаленного сервера, например он может быть 34.123.765.12, в таком случае команда будет выглядить так:

Код:

После подклчения к серверу по SSH для скачивания и запуска установочного скрипта потребуется выполнить команды:

Код:
curl -O https://raw.githubusercontent.com/angristan/openvpn-install/master/openvpn-install.sh
Код:
chmod +x openvpn-install.sh
Код:
./openvpn-install.sh

Убедиться, что IP-адрес, который выведет установщик, соответствует IP-адресу сервера:

a.png


Установщик предложит выбор, включать или не включать IPv6, в данном примере мой сервер не имеет IPv6 адреса, поэтому я не включаю IPv6:

b.png


Выбор порта, на котором будет работать OpenVPN. Рекомендую оставить стандартный:

c.png


Выбор протокола TCP или UDP. UDP быстрее, чем TCP, но TCP может работать после Tor, а UDP нет. Я выбираю UDP, потому что мне важна скорость соединения:

d.png


Выбор DNS-сервера, в примере я буду испоьзовать AdGuard DNS, но на практике рекомендую Self-hosted DNS:

e.png


Установщик спросит, использовать ли сжатие. В примере я использую, на практике каждый решает сам:

f.png


Выбор типа сжатия, в примере я использую LZ0, на практике рекомендую LZ4-v2:

g.png


Установщик спросит, использовать ли конфигурацию шифрования по-умолчанию. В примере я оставлю настройки по-умолчанию:
Тем, кто разбирается, какие алгоритмы шифрования нужны, я рекомендую самостоятельно выбрать нужные.*
*Грамотная конфигурация шифрования будет представлена ниже в отдельном сообщении.

h.png


Конфигурация завершена. Установщик попросит нажать любую кнопку для начала установки:

i.png


После завершения установки надо задать имя клиента:

j.png


Установщик спросит, использовать ли пароль для клиента, я никогда не использую пароль для клиентов домашнего VPN, поэтому в примере покажу вариант без пароля:

k.png


Конфигурационный файл для клиента создан. Теперь этот файл .ovpn надо перенести на клиентское устройство и можно подключаться к установленному OpenVPN серверу:

l.png


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

m.png


Личный OpenVPN сервер готов.

Скопировать конфигурационный файл с сервера в домашнюю папку можно при помощи команды:

Код:
scp [email protected]:название_конфига.ovpn ~/
12.123.123.12 необходимо заменить на IP сервера, на который производилась установка.
 

WayAdm

Твой путь
Статус
offline
Регистрация
05.11.2023
Сообщения
18
Репутация
5
Грамотная конфигурация шифрования в OpenVPN:

Шифрование данных - AES-256-GCM:

a.cleaned.png


Сертификат - ECDSA:

b.cleaned.png


Эллиптическая кривая для ECDSA - prime256v1:

c.cleaned.png


Шифрование для канала управления - ECDHE-ECDSA-AES-256-GCM-SHA384:

d.cleaned.png


Алгоритм обмена ключами - ECDH:

e.cleaned.png


Эллиптическая кривая для ECDH - prime256v1:

f.cleaned.png


Алгоритм хэширования - SHA-512:

g.cleaned.png


Добавить дополнительный уровень шифрования с помощью шифрования TLS:

h.cleaned.png