Одной из востребованной технологий во времена "ПАНДЕМИИ" является VPN (виртуальная частная сеть). Используется для объединения несколько подсетей в одну. Примером такого объединения может быть организация удаленного доступа сотрудникам находящимся дома к ресурсам компании.
OpenVPN - ВПН протокол, который используется для создания защищенного туннеля между клиентом и сервером не только в операционной системе Линукс, а также в других системах таких как: Windows; cisco; MikroTik, Android...
Рассмотрим особенности OpenVPN:
- использует 256 битное шифрование по умолчанию;
- не поддерживает протоколы L2TP, IPSec и PPTP, вместо них использует свой собственный алгоритм.
- поддерживает локальную сеть, это значит клиент может подключиться к компьютеру в локальной сети, где не установлен VPN сервер.
Для понимания, рассмотрим простую схему реализации удаленного доступа.

На рисунке выше видно, что есть сервер с операционной системой Centos. Туда установим openvpn сервер и сертификаты. На ноутбук передадим открытые ключи и установим с официального сайта openvpn клиент.
Установка
Рассмотрим установку на примере Centos 8.
Подключаем репозиторий epel-release.
# dnf -y install epel-release
Установка.
# dnf -y install openvpn
Для работы сервера, необходимо создать сертификаты. Создадим папку "keys", затем через утилиты Easy-RSA создадим ключи.
# mkdir /etc/openvpn/keys
Установка Easy-RSA 3.
На github ищем ссылку на дистрибутив и копируем ее в буфер обмена.

Скачиваем Easy-RSA в папку keys.
cd /etc/openvpn/keys
wget https://github.com/OpenVPN/easy-rsa/archive/master.zip
Как видно выше дистрибутив скачался в zip архиве, чтобы распаковать его установим еще пакеты.
# dnf -y install unzip zip
Распаковка архива.
# unzip master.zip
Создание структуры ключей.
cd /etc/openvpn/keys/easy-rsa-master/easyrsa3
Переименовываем файл vars.example в vars.
mv vars.example vars
# ./easyrsa init-pki

Создание удостоверяющего центра CA.
# ./easyrsa build-ca

В процессе выполнения скрипта мы получили два ключа:
- /etc/openvpn/keys/easy-rsa-master/easyrsa3/pki/private/ca.key
- /etc/openvpn/keys/easy-rsa-master/easyrsa3/pki/ca.crt
ca.key ключ секретный, его нужно оставить на сервере.
ca.crt - открытый.
# ./easyrsa gen-req server nopass
Подписываем сертификат.
# ./easyrsa sign-req server server
Во время выполнения команды, необходимо ввести пароль от "CA", который вводили в прошлом на этапе создания удостоверяющего центра.
Создадим ключ Диффи-Хелмана.
# ./easyrsa gen-dh

