Скрипт генерации клиентского конфига 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

comments powered by Disqus