OpenVPN and Docker

Материал из Записки на полях
Перейти к навигации Перейти к поиску

Быстрое разворачивание OpenVPN в Docker контейнере Запуск OpenVPN сервера за пять минут, используя базовый образ Alpine при помощи Docker

Как использовать!

Кратко

cd /var/tmp/
git clone https://github.com/Freezl/OpenVPN_Docker
cd ./OpenVPN_Docker
./init.sh

Запустить OpenVPN контейнер

docker run -d --name=openvpn -v /var/tmp/OpenVPN_Docker/volumes:/etc/openvpn --privileged -p 1194:1194/udp --net=host openvpn

Немного описания

Решил не помещать easy-rsa внутрь контейнера, а выполнять действия с ключами на хост системе. При запуске init.sh билдится контейнер, скачивается easy-rsa, инициализируется хранилище ключей, создаются все ключи для сервера и копируются в рабочий каталог OVPN. Конфиг, логи и созданные ключи хранятся в каталоге volumes на хост системе. В ходе создания ключей будет задано несколько вопросов. Обращаю внимание, что все ключи создаются в параметром nopass, это значит они не защищены паролем.

Для создания клиентских ключей использовать команду:

cd /var/tmp/OpenVPN_Docker/easy-rsa/easyrsa3/
./easyrsa build-client-full User nopass

Собираем конфиг для клиента

Заготовка в файле /var/tmp/OpenVPN_Docker/volumes/client.conf. Необходимо добавить с файл содержимое файлов

/var/tmp/OpenVPN_Docker/easy-rsa/easyrsa3/pki/issued/User.crt
/var/tmp/OpenVPN_Docker/easy-rsa/easyrsa3/pki/private/User.key
/var/tmp/OpenVPN_Docker/easy-rsa/easyrsa3/pki/ca.crt
/var/tmp/OpenVPN_Docker/volumes/keys/ta.key

Заключённых в тэги <cert>, <key>, <ca> и <tls-auth> соответственно.