Быстрое разворачивание OpenVPN в Docker контейнере
Запуск OpenVPN сервера за пять минут, используя базовый образ Alpine при помощи Docker
Как использовать
Кратко
cd git clone https://github.com/maxmureev/OpenVPN-Docker-Alpine.git cd OpenVPN-Docker-Alpine ./init.sh
Запустить OpenVPN контейнер
docker run -d --name=openvpn -v ~/OpenVPN-Docker-Alpine/volumes:/etc/openvpn --privileged -p 1194:1194/udp --net=host openvpn
Немного описания
Мне кажется дичью запускать скрипт, лежащий в data контейнере, как предложено в большинстве образов с OpenVPN на докерхабе или гитхабе. Поэтому решил не помещать easy-rsa внутрь контейнера, а выполнять действия с ключами на хост системе. При запуске init.sh билдится контейнер, скачивается easy-rsa, инициализируется хранилище ключей, создаются все ключи для сервера и копируются в рабочий каталог OVPN. Конфиг, логи и созданные ключи хранятся в каталоге volumes на хост системе. В ходе создания ключей будет задано несколько вопросов. Обращаю внимание, что все ключи создаются в параметром nopass, это значит они не защищены паролем.
Для создания клиентских ключей использовать команду:
cd ~/OpenVPN-Docker-Alpine/easy-rsa/easyrsa3/ ./easyrsa build-server-full USER [nopass]
Конфиг OpenVPN настроен для раздачи интернета в качестве default gateway.
Конфиг клиента можно взять отсюда