Ich suchte nach einer ähnlichen Lösung, weil ich eine serverseitige Open VPN-Konfiguration für feste IP-Nummern benötigte. Meine Lösung bestand darin, eine Zeile in die Datei vpn_openvpn.sh einzufügen, kurz bevor der daemon_mgr in meiner Fallzeile 210 gestartet wird.
<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 $ ]; then </snip>
Ich fügte die Zeile hinzu, die mit Echo beginnt. An dieser Stelle sollten Sie auch die Konfiguration in /etc/openvpn/server.conf ändern können
Wenn Sie hier hinzufügen, übersteht die Zeile einen Neustart des OpenVPN-Servers. Wie Sie jedoch bereits schmerzhaft erfahren haben, werden viele Dateien beim Booten neu erstellt. Hier kommt die Autorun.sh ins Spiel. Informationen zur Verwendung finden Sie hier. Die genaue Syntax richtet sich nach dem Typ des QNAP NAS, den Sie erhalten haben.
Sie können hier eine Sed-Zeile hinzufügen, um den "Fix" beim Booten neu zu erstellen.
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
In Ihrem Fall sollte die autorun.sh so aussehen:
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
Lass mich wissen ob es funktioniert
Edit: Nach einigem Umdenken geht es noch kürzer
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