Lancer une connexion VPN en ligne de commande sur un NAS Synology

Il y a quelques mois j’ai reçu une lettre assez déplaisante de la part de l’état. J’ai reçu la première lettre d’avertissement d’HADOPI. J’avais complètement oublié de désactiver le service Download Station sur mon NAS. Résultat : les Dora l’Exploratrice que j’avais téléchargé pour ma fille sont restés en partage un long moment, m’exposant ainsi à la « riposte graduée ». Je télécharge peu mais cela m’arrive tout de même j’ai donc décidé d’investir dans une passerelle VPN chez vpnfacile.net. L’idée que j’avais était d’activer et de désactiver à heure fixe ma connexion VPN (en même temps que Download Station). Hélas cela est impossible directement sur l’interface Web Synology.

hadopi

La solution est donc de partir sur un petit script (deux en fait) que nous lancerons automatiquement via CRON. Il n’y a aucun problème pour la partie Download Station, car il est possible de définir des plages d’activation du service directement dans l’interface web Synology.

La première chose à faire est de créer un script dans un endroit qui ne sera pas effacé lors d’une future mise à jour du nas :

vi /usr/OpenVpnReconnect.sh

Puis ajoutez y ces lignes :

#!/bin/sh

echo conf_id=XXXXXXXXXXX > /usr/syno/etc/synovpnclient/vpnc_connecting
echo conf_name=VPNFacile >> /usr/syno/etc/synovpnclient/vpnc_connecting
echo proto=openvpn >> /usr/syno/etc/synovpnclient/vpnc_connecting
synovpnc reconnect –protocol=openvpn –name=VPNFacile

Le conf_id peut se trouver dans le répertoire « usr/syno/etc/synovpnclient/openvpn » ; il correspond à la suite alphanumérique composant le fichier « client_XXXXXXXXXX« . Le conf_name correspond au libellé que vous avez donné à votre connexion vpn sur l’interface web Synology :

 

vpnfacileN’oubliez pas d’ajouter les droits d’exécution à votre fichier :

chmod +x /usr/OpenVpnReconnect.sh

Essayer d’exécuter votre script pour vérifier que cela fonctionne :

sh /usr/OpenVpnReconnect.sh

Afin de vérifier quelle est l’adresse publique de votre nas, utilisez cette commande :

curl curlmyip.com

Elle renvoie l’adresse avec laquelle votre NAS sera visible sur internet (celle-ci doit être différente de l’adresse publique de votre ordinateur).

Maintenant nous allons faire un second script qui va nous permettre de désactiver notre connexion VPN :

vi /usr/OpenVpnDisconnect.sh

Puis ajoutez y ces lignes :

#!/bin/sh

synovpnc kill_client

Nous le rendons maintenant exécutable :

chmod +x /usr/OpenVpnDisconnect.sh

Puis nous l’exécutons et vérifions bien que cette fois ci l’adresse ip publique de notre Nas est devenue la même que notre ordinateur.

Il ne reste plus qu’à planifier dans CRON l’heure à laquelle nous désirons activer et désactiver notre tunnel VPN :

vi /etc/crontab

Personnellement je souhaite activer mon tunnel VPN à 23h55 et le désactiver à 8h05 tous les jours de la semaine, toutes les semaines de tous…

55 23 * * * root sh /usr/OpenVpnReconnect.sh
05 8 * * * root sh /usr/OpenVpnDisconnect.sh

N’oubliez pas de relancer le service CRON afin que vos modifications soient prise en compte :

/usr/syno/sbin/synoservicectl –restart crond

J’espère que cette astuce vous simplifiera la vie et vous évitera les mauvaises surprises HADOPI 😉

 

2 réflexions au sujet de « Lancer une connexion VPN en ligne de commande sur un NAS Synology »

  1. bonjour

    je cherche a faire aller download station synology sur un vpn
    je ne trouves vraiment pas comment merci d’une aide

  2. Voici un script pour le protocol pptp qui scan le fichier pour récuperer les infos automatiquement .Vous pouvez l’adapter pour les autres protocoles .

    ——————————————————————————————–
    #!/bin/sh
    #Auto reconnect VPN Synology
    FILE= »/usr/syno/etc/synovpnclient/pptp/pptpclient.conf »
    TEST=`ip addr |grep -c link/ppp`
    if [ -f $FILE ] ; then
    ID=`cat $FILE | egrep ‘^\[‘ | tr -d « [] »`
    NAME=`cat $FILE |grep conf_name|cut -d »= » -f2`
    if [ « $TEST » = « 0 » ] ; then
    echo « Connect to VPN $NAME [$ID] »
    echo conf_id=$ID > /usr/syno/etc/synovpnclient/vpnc_connecting
    echo conf_name=$NAME >> /usr/syno/etc/synovpnclient/vpnc_connecting
    echo proto=pptp >> /usr/syno/etc/synovpnclient/vpnc_connecting
    synovpnc reconnect –protocol=pptp –name=$NAME –retry=10 –interval=30
    fi
    fi
    ——————————————————————————————–

Répondre à christophe Annuler la réponse

Votre adresse e-mail ne sera pas publiée.