Скрипт генерации клиентского конфига OpenVPN
Скрипт для упрощения генерации новых клиентов OpenVPN и создания готового inline конфига.
После установки и настройки openvpn сервера, создаем дополнительную директорию (если требуется), либо меняем путь на подходящий, куда будут сохраняться пользовательские конфигурации.
Создаем шаблон для клиентской конфигурации и сохраняем его, например в новую директорию /etc/openvpn/user_configs/
Указываем в файле необходимые директивы для работы сервиса, а также постоянные данные, например корневой сертификат и tls ключ. При запуске скрипта указываем имя клиента, далее скрипт генерирует клиентский конфигурационный файл с уникальными данными и сохраняет его в указанную директорию с заданным именем.
#!/bin/sh
read -p "Enter client name: " clientname
if [ -n "$clientname" ]
then
/etc/openvpn/easyrsa/easyrsa build-client-full $clientname nopass
cp /etc/openvpn/user_config.sample /etc/openvpn/user_configs/$clientname.ovpn
echo "<cert>\n$(cat /etc/openvpn/easyrsa/pki/issued/$clientname.crt)\n</cert>" >> /etc/openvpn/user_configs/$clientname.ovpn
echo "<key>\n$(cat /etc/openvpn/easyrsa/pki/private/$clientname.key)\n</key>" >> /etc/openvpn/user_configs/$clientname.ovpn
echo "+--------------------------------------------------------+"
echo "| |"
echo "| Find your new ovpn config in /etc/openvpn/user_configs |"
echo "| |"
echo "+--------------------------------------------------------+"
else
echo "Client name cannot be empty"
fi