5 votes

OpenVPN sur le QNAP QTS 4.2 La configuration éditée se réinitialise après le démarrage

J'ai un QNAP TS-253 Pro (QTS 4.2.0) sur lequel un serveur OpenVPN est configuré et fonctionne correctement. Comme je veux utiliser des certificats clients pour sécuriser les connexions VPN, la configuration intégrée sur l'interface web n'est d'aucune utilité.

J'ai donc importé mes fichiers de configuration et de certificat via SSH / SCP vers /etc/openvpn J'ai redémarré le serveur OpenVPN et tout a bien fonctionné jusqu'à ce que je redémarre le NAS QNAP. La configuration était revenue à la valeur d'usine par défaut de QNAP.

Il apparaît que le /etc/openvpn est juste un lien symbolique vers /mnt/ext/opt/vpnopenvpn/etc/openvpn/ qui contient la configuration originale de l'interface web de mon QNAP. J'ai ensuite essayé d'éditer la configuration à cet endroit, en espérant qu'elle ne serait pas remplacée au prochain démarrage, mais ce n'était pas une solution. J'ai redémarré et j'ai trouvé les fichiers de configuration OpenVPN par défaut dans /mnt/ext/opt/vpnopenvpn/etc/openvpn/ .

J'ai creusé à travers de nombreux fils de discussion sur le forum officiel de QNAP, des articles de blog inofficiels, et quelques scripts init.d-scripts sur le QNAP lui-même pour trouver un moyen soit de désactiver le déploiement automatique des paramètres d'usine par défaut, soit de faire en sorte que le QNAP déploie ma configuration de travail sur la page d'accueil. /etc/openvpn .

Voici une liste de mes tentatives infructueuses :

  • Copie de la configuration dans /etc/openvpn - la configuration a été réécrite au démarrage
  • Copie de la configuration dans /mnt/ext/opt/vpnopenvpn/etc/openvpn/ - la configuration a été réécrite au démarrage.
  • A suivi les instructions à : http://wiki.nas-portal.org/index.php/Install_OpenVPN_on_QNAP - je n'ai pas trouvé qpkg / ipkg dans la version actuelle de QTS (4.2.0), peut-être que le tutoriel est écrit pour une version plus ancienne...
  • J'ai essayé d'exécuter un autorun.sh-script auto-créé comme décrit ici : http://forum.qnap.com/viewtopic.php?t=83804#p372711 - les dossiers dans /share semblent être recréés à chaque démarrage
  • J'ai consulté ce fil de discussion, recommandé par des utilisateurs sur les forums officiels de QNAP : http://forum.qnap.com/viewtopic.php?f=90&p=61890&t=10400&sid=6aa706cb2ff41a75c6f048883328512a - ne semble pas concerner mon problème / ma configuration spécifique
  • Les sections spécifiques à openvpn ont été commentées en /etc/init.d/installtgz.sh - le fichier lui-même a été réécrit au démarrage et mes commentaires étaient une partie active du script à nouveau

Quelqu'un sait-il comment empêcher QTS de réécrire mes fichiers de configuration ? Je ne veux pas copier la configuration OpenVPN manuellement à chaque redémarrage du QNAP...

3voto

shiu'sho Points 131

J'étais à la recherche d'une solution similaire, car j'avais besoin d'une configuration Open VPN côté serveur pour des numéros d'IP fixes. Ma solution a été d'ajouter une ligne au fichier vpn_openvpn.sh juste avant qu'il ne démarre le daemon_mgr, dans mon cas la ligne 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>

J'ai ajouté la ligne commençant par echo. À ce stade, vous devriez également être en mesure de modifier la configuration dans /etc/openvpn/server.conf

Lorsqu'elle est ajoutée ici, la ligne survivra aux redémarrages du serveur OpenVPN, mais comme vous l'avez déjà douloureusement expérimenté, de nombreux fichiers sont recréés au moment du démarrage. C'est là que autorun.sh entre en jeu. Comment l'utiliser, vous pouvez trouver aquí La syntaxe exacte dépend du type de NAS QNAP que vous avez reçu.

Vous pouvez ajouter une ligne sed ici pour recréer la "correction" au démarrage.

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

Dans votre cas, le fichier autorun.sh devrait ressembler à ceci :

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

Faites-moi savoir si cela fonctionne

Edit : après réflexion, il est possible de faire encore plus court.

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

0voto

NotoriousPyro Points 101

Pour supprimer la poussée de la passerelle par défaut dans la configuration du QNAP :

sed -i -e '/if \[ $? == 0 \] && \[ ! -f ${PIDFILE} \]; then/a\/bin\/sed -i -e \"s/push \\"redirect-gateway def1\\"/#push \\"redirect-gateway def1\\"/g\" /etc/openvpn/server.conf' /etc/init.d/vpn_openvpn.sh

Pourquoi ne pas pouvoir le faire par défaut, et pourquoi QNAP a configuré ses appareils de manière à ce qu'ils écrasent les configurations et se trouvent dans des conventions étranges et des répertoires différents, c'est une mauvaise pratique et un mystère.

Les gens ne devraient pas avoir besoin de solutions de contournement aussi difficiles et de fichiers d'exécution automatique pour des choses aussi basiques sous Linux. C'est presque comme s'ils voulaient rendre Linux plus confus et plus difficile qu'il ne l'est.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X