Маркетплейс: OpenVPN
OpenVPN – свободная реализация технологии виртуальной частной сети (VPN) с открытым исходным кодом для создания зашифрованных каналoв типа точка-точка или сервер-клиенты между компьютерами. Она позволяет устанавливать соединения между компьютерами, находящимися за NAT и сетевым экраном, без необходимости изменения их настроек.
Приложение включает следующее ПО:
Название | Версия |
OpenVPN | 2.5.5 |
easy-rsa | 3.0.9 |
OpenSSL | 3.0.2 |
Fail2Ban | 0.11.2 |
ufw | 0.36.1 |
Что делает это приложение:
-
Включает UFW брандмауэр и разрешает подключения на порты:
- SSH (22)
- OpenVPN(1194)
- Устанавливает пакеты на сервер (openvpn, easy-rsa, openssl, etc.)
- Создает инфраструктуру открытых ключей (PKI) и центр сертификации (CA)
- Выписывает серверный и клиентский сертификат, а также генерирует tls-crypt ключ
- Создает конфигурационный файл для openvpn сервера и клиента
- Производит настройку фаервола для работы OpenVPN сервера
Шаги после развертывания приложения:
Подключитесь к виртуальной машине по ssh, после того как она будет создана. Для подключения к OpenVPN серверу, Вам необходимо скачать клиентский конфигурационный файл, который расположен по пути:
/etc/openvpn/client-configs/files/client1.ovpn
Скачать конфигурационный файл вы можете утилитой scp:
scp /etc/openvpn/client-configs/files/client1.ovpn username@123.45.67.89:/etc/openvpn/client/
- username: имя пользователя SSH клиентской машины
- 123.45.67.89: замените на ip-адрес клиентской машины
- /etc/openvpn/client/: путь до директории куда копируется файл
Для удобства конфигурационный файл уже содержит:
- корневой сертификат
- клиентский сертификат и ключ
- tls-crypt ключ
Поэтому скачивать отдельно сертификаты и tls-crypt ключ нет нужды. Достаточно добавить данный конфигурационный файл в клиент OpenVPN и подключиться к серверу.
Дополнительная информация:
Easy-RSA PKI (Public Key Infrastructure)
Easy-RSA позволяет управлять на сервере центром сертификации (CA) инфраструктуры открытых ключей (PKI). CA требуется для того, чтобы выпускать сертификаты сервера, а также подписывать и отзывать клиентские сертификаты. Для безопасности лучше создавать CA на отдельной виртуальной машине, но в нашем случае CA и openvpn сервер установлены на одной.
Генерация клиентского сертификата
Вы также можете сгенерировать еще один или несколько клиентских сертификатов.
Подключитесь к виртуальной машине по ssh и перейдите в директорию easy-rsa:
cd /etc/openvpn/easy-rsa
Утилитой easyrsa создаем запрос на сертификат:
./easyrsa gen-req client2 nopass
- client2 – имя сертификата (можно указать любое)
- nopass – данная опция сгенерирует сертификат не защищенный паролем
И подписываем сертификат:
./easyrsa sign-req client client2
После создания сертификата и приватного ключа. Необходимо сгенерировать конфигурационный файл openvpn.
Копируем сертификат и ключ в директорию client-configs/keys:
cp /etc/openvpn/easy-rsa/pki/issued/client2.crt /etc/openvpn/client-configs/keys/
cp /etc/openvpn/easy-rsa/pki/private/client2.key /etc/openvpn/client-configs/keys/
Переходим в директорию client-configs:
cd /etc/openvpn/client-configs
Запускаем скрипт make_config.sh, который сгенерирует конфигурационный файл openvpn:
./make_config.sh client2
Конфигурационный файл openvpn будет расположен в каталоге /etc/openvpn/client-configs/files
Документация Easy-Rsa доступна по адресу: https://easy-rsa.readthedocs.io/en/latest/
Желаем Вам приятной работы!