Eu estava procurando por uma solução semelhante, porque eu precisava de uma configuração Open VPN do lado do servidor para números IP fixos. Minha solução foi adicionar uma linha ao arquivo vpn_openvpn.sh logo antes de iniciar o daemon_mgr na minha linha de casos 210.
<snip>
usr/bin/openssl verify -CAfile /etc/openvpn/keys/ca.crt /etc/openvpn/keys/myserver.crt 2>/dev/null | /bin/grep "OK" >/dev/null
echo client-config-dir clientconfig >>/etc/openvpn/server.conf
if [ $? == 0 ] && [ ! -f ${PIDFILE} ]; then
</snip>
Eu adicionei a linha começando com echo. Neste ponto você também deve poder modificar a configuração em /etc/openvpn/server.conf
Quando adicionadas aqui, a linha sobreviverá ao reinício do OpenVPN Server, mas como você já experimentou dolorosamente, muitos arquivos são recriados no momento da inicialização. É aqui que o autorun.sh entra em jogo. Como usá-lo você pode encontrar aqui A sintaxe exata é baseada no tipo de QNAP NAS que você obteve.
Você pode adicionar uma linha sed aqui para recriar a "correção" no momento da inicialização.
sed "210i echo client-config-dir clientconfig >>/etc/openvpn/server.conf" /etc/init.d/vpn_openvpn.sh >/etc/init.d/vpn_openvpn.sh.tmp
rm /etc/init.d/vpn_openvpn.sh
mv /etc/init.d/vpn_openvpn.sh.tmp
chmod +x /etc/init.d/vpn_openvpn.sh
/etc/init.d/vpn_openvpn.sh restart
No seu caso, o autorun.sh deve ficar assim:
sed "210i /bin/sed -i -e 's/client-cert-not-required/#client-cert-not-required/g' /etc/openvpn/server.conf" /etc/init.d/vpn_openvpn.sh >/etc/init.d/vpn_openvpn.sh.tmp
rm /etc/init.d/vpn_openvpn.sh
mv /etc/init.d/vpn_openvpn.sh.tmp /etc/init.d/vpn_openvpn.sh
chmod +x /etc/init.d/vpn_openvpn.sh
/etc/init.d/vpn_openvpn.sh restart
Deixe-me saber se funciona
Editar: depois de repensar, você pode fazer isso ainda mais curto
sed -i "210i /bin/sed -i -e 's/client-cert-not-required/#client-cert-not-required/g' /etc/openvpn/server.conf" /etc/init.d/vpn_openvpn.sh
/etc/init.d/vpn_openvpn.sh restart