Aller au contenu

Messages recommandés

Posté(e) (modifié)

pour info wismerhill j'ai modifié comme ceci

..................................

# Connection VPN is OK
 # Firewall is up ?
 if [ -n "$(ifconfig | grep "$interface_vpn")" ] && [ -z "$($iptables -L -v -n | grep "$interface_vpn")" ]; then
  echo $(date)  ": Interface " $interface_vpn " found but firewall is not configured..." >> $logfile
  
  #Incoming tcp vpn connections ACCEPT
  if [ -n "$vpn_tcp_port" ]; then
   $iptables -A INPUT -i $interface_vpn -p tcp -m multiport --dports $vpn_tcp_port -j ACCEPT
  fi
  #Incoming udp vpn connections ACCEPT
  if [ -n "$vpn_udp_port" ]; then
   $iptables -A INPUT -i $interface_vpn -p udp -m multiport --dports $vpn_udp_port -j ACCEPT  
  fi
  
  #if none of the rules were matched DROP #
  $iptables -A INPUT -i $interface_vpn -p tcp -j DROP
  $iptables -A INPUT -i $interface_vpn -p udp -j DROP
  $iptables -A INPUT -i $interface_vpn -p icmp -j DROP
  
  echo $(date)  ": Firewall configured successfully " >> $logfile; /usr/syno/bin/synonotify VpnConfigConOk  # test de cde de cette ligne.
       
        echo $(date) "Iptables en cours" >> /volume1/Public/VpnIptables.log
        iptables -L -v -n >> /volume1/Public/VpnIptables.log

  #VPN Connection and firewall are Ok, starting Download station
  $DLStation start
  if [ -n "$(ps | grep -v "grep" | grep "/sbin/scheduler")" ] ; then
   echo $(date)  ": DownloadStation is started, after firewall is ok " >> $logfile
  else
   echo $(date)  ": ERROR, DownloadStation is stopped, firewall is ok " >> $logfile
  fi

................................................................

ce qui me permet de surveiller iptables à la mise en place..., en sachant que mon vpn n'est pas monté H24.

Modifié par roypelikan
  • 3 semaines après...
Posté(e)

Bonsoir,

Etant novice j'ai besoin d'aide !

Je suis actuellement chez Hide My Ass avec mon syno. Je suis en PPTP et souhaiterais couper Download Station si je perds le VPN.

Pouvez-vous m'indiquer le script ?

Je ne sais pas ou trouver le vpnid ni le name.

 

Merci d'avance

Posté(e) (modifié)

DSL pas toujours dispo, pour vpn pptp, connaît pas Hide my ....voir si tu peux travailler en openvpn....je pense que tu peux trouver sur ce site la réponse pour le reste vpnid et name la réponse est plus haut, pour le reste Eraw a déjà répondu....

#VPN interface

#Should be "tun0" for openVPN instance and "ppp0" for PPTP

interface="ppp0"

mais attention le cryptage est de 128 si mes souvenirs son bons contre 256 possible en vpn........open.

étant devenu "Novice Syno", faudrai te rapprocher d'un "initié", ou d'un "expert".

Modifié par roypelikan
suite
Posté(e)
Le ‎23‎/‎11‎/‎2016 à 19:25, Wismerhill a dit :

Merci pour l'info Roy.

C'est vrai que ça va aider à suivre ce qui se passe :o)

Pas trouvé  :o)

Posté(e)

Donc je modifie de la façon suivante mon script. Par contre dès que j'exécute, DStation met tout en arrêt et ne reprend jamais, alors que mon VPN est bien ON : 

-------------------------------------------------------------------------------------------------------------------------------------

#!/bin/ash

# script for managing firewall, VPN connection and Download station scheduler #
#
# iptables binary path
iptables="/sbin/iptables"

# DLStation
DLStation="/var/packages/DownloadStation/scripts/start-stop-status"

#VPN interface
interface_vpn="ppp0"

# Log file
logfile="/root/vpn.log"

# TCP port authorized / Tu inscris tes ports TCP pour tes downloads
vpn_tcp_port=12344

# UDP port authorized /Tu inscris tes ports UDP pour tes downloads
vpn_udp_port=12344

# OpenVPN configuration  / Tu rentre le nom de ta connection ainsi que son ID
openvpn_confid=p1480965151
openvpn_configname= HMA

############### START SCRIPT ###################

# Is there a VPN connection ?
if [ -z "$(ifconfig | grep "$interface_vpn")" ]; then
    echo $(date)  ": VPN not started" >> $logfile
    #No VPN, No Download station
    $DLStation stop
    if [ -n "$(ps | grep -v "grep" | grep "/sbin/scheduler")" ] ; then
        echo $(date)  ": ERROR, DownloadStation is always on :/" >> $logfile
    else
        echo $(date)  ": DownloadStation is stopped" >> $logfile
    fi
    # Trying to start VPN connection
    echo $(date)  ": Trying to start VPN connection..." >> $logfile
    echo conf_id=$openvpn_confid > /usr/syno/etc/synovpnclient/vpnc_connecting
    echo conf_name=$openvpn_configname >> /usr/syno/etc/synovpnclient/vpnc_connecting
    echo proto=openvpn >> /usr/syno/etc/synovpnclient/vpnc_connecting
    synovpnc reconnect --protocol=openvpn --name=$openvpn_configname --retry=4 --interval=10 >> $logfile
fi

# Is there a VPN connection and can we ping google ?
if [ -z "$(ping -c 4 www.google.fr | grep "64 bytes")" ] && [ -n "$(ifconfig | grep "$interface_vpn")" ] ; then
    echo $(date)  ": Ping failed to www.google.fr..." >> $logfile
    #VPN is going to be stopped, stop Download station
    $DLStation stop
    if [ -n "$(ps | grep -v "grep" | grep "/sbin/scheduler")" ]; then
        echo $(date)  ": ERROR, DownloadStation is always on :/" >> $logfile
    else
        echo $(date)  ": DownloadStation is stopped" >> $logfile
    fi
    # kill the failed VPN connection
    synovpnc kill_client >> $logfile
    echo $(date)  ": VPN connection closed" >> $logfile
    wait 10000
    # Trying to start VPN connection
    echo $(date)  ": Trying to start VPN connection..." >> $logfile
    echo conf_id=$openvpn_confid > /usr/syno/etc/synovpnclient/vpnc_connecting
    echo conf_name=$openvpn_configname >> /usr/syno/etc/synovpnclient/vpnc_connecting
    echo proto=openvpn >> /usr/syno/etc/synovpnclient/vpnc_connecting
    synovpnc reconnect --protocol=openvpn --name=$openvpn_configname --retry=4 --interval=10 >> $logfile
else        
    # Firewall is up ?
    if [ -n "$(ifconfig | grep "$interface_vpn")" ] && [ -z "$($iptables -L -v | grep "$interface_vpn")" ]; then
        echo $(date)  ": Interface " $interface_vpn " found but firewall is not configured..." >> $logfile
        
        #Incoming tcp vpn connections ACCEPT
        if [ -n "$vpn_tcp_port" ]; then
            $iptables -A INPUT -i $interface_vpn -p tcp -m multiport --dports $vpn_tcp_port -j ACCEPT
        fi
        #Incoming udp vpn connections ACCEPT
        if [ -n "$vpn_udp_port" ]; then
            $iptables -A INPUT -i $interface_vpn -p udp -m multiport --dports $vpn_udp_port -j ACCEPT        
        fi
        
        #if none of the rules were matched DROP #
        $iptables -A INPUT -i $interface_vpn -p tcp -j DROP
        $iptables -A INPUT -i $interface_vpn -p udp -j DROP
        $iptables -A INPUT -i $interface_vpn -p icmp -j DROP
        
        echo $(date)  ": Firewall configured successfully" >> $logfile
        
        #VPN Connection and firewall are Ok, starting Download station
        $DLStation start
        if [ -n "$(ps | grep -v "grep" | grep "/sbin/scheduler")" ] ; then
            echo $(date)  ": DownloadStation is started" >> $logfile
        else
            echo $(date)  ": ERROR, DownloadStation is stopped" >> $logfile
        fi
    else
        # Update 08/10/2014
        if [ -n "$(ifconfig | grep "$interface_vpn")" ] && [ -n "$($iptables -L -v | grep "$interface_vpn")" ]; then
        
            #VPN Connection and firewall are Ok,
            if [ -n "$(ps | grep -v "grep" | grep "/sbin/scheduler")" ] ; then
                #VPN Connection, firewall and Download station are Ok
                echo $(date)  ": All network configuration is OK"
            else
                #VPN Connection and firewall are Ok but not Download station
                #try to start it
                echo $(date)  ": ERROR, DownloadStation is stopped" >> $logfile
                $DLStation start
                if [ -n "$(ps | grep -v "grep" | grep "/sbin/scheduler")" ] ; then
                    echo $(date)  ": DownloadStation is started" >> $logfile
                else
                    echo $(date)  ": ERROR, DownloadStation is stopped" >> $logfile
                fi
            fi
        fi
    fi
fi
exit 0;

 

Posté(e) (modifié)

Comme je ne sait pas si t'est en dsm 5 ou 6, dans ce dernier cas, thennard à la page précédente parle d'une modif que je n'utilise pas car dsm5 pour moi, et les ports à ouvrir y sont cité par moi, il faudrai que tu lises un peu...et la moindre des choses est de mettre le matos et dsm utilisé dans la signature, cela évite de poser des questions et de polluer le forum.

a+

Up: voir dans les logs ou cela pêche.....

Up 2: tu n'as pas précisé si tu lançais le script depuis crontab ?

Up 3 du 15/12: réponse du message ci-dessous, le script doit au moins être lu toutes les deux minutes, ce n'est pas un programme qui boucle sur lui-même, j'utilise crontab perso, voir plus en amont, et pour l'arrêter un script qui remet l'original à sa place....pour les log demaprem.

 

up important: avant d'aller plus loin, vérifier dans vpnc_connecting, mais je doute fort que ton vpn 

            Fonctionne correctement en pptp avec un proto=openvpn en connection et reconnection

dans ton script...d'où lire un peu.....

Modifié par roypelikan
Posté(e)
Il y a 23 heures, roypelikan a dit :

Comme je ne sait pas si t'est en dsm 5 ou 6, dans ce dernier cas, thennard à la page précédente parle d'une modif que je n'utilise pas car dsm5 pour moi, et les ports à ouvrir y sont cité par moi, il faudrai que tu lises un peu...et la moindre des choses est de mettre le matos et dsm utilisé dans la signature, cela évite de poser des questions et de polluer le forum.

a+

Up: voir dans les logs ou cela pêche.....

Up 2: tu n'as pas précisé si tu lançais le script depuis crontab ?

Up 3 du 15/12: réponse du message ci-dessous, le script doit au moins être lu toutes les deux minutes, ce n'est pas un programme qui boucle sur lui-même, j'utilise crontab perso, voir plus en amont, et pour l'arrêter un script qui remet l'original à sa place....pour les log demaprem.

1 - Ok dis moi ce qui cloche

2 - Peux-tu expliquer au novice que je suis comment le faire par crontab ? Dans la planif je vérifie toutes les minutes sinon...

3 - N'hésite pas si besoin ! Merci d'avance pour ton (votre) aide !

Posté(e)

Bon pour  voir les logs je n'ai pas accès à la page correspondante, comme je suis du genre à ne pas me compliquer l'existence, je te suggère de poster l'intégralité de tes logs,

quitte à les virer ensuite.....

Posté(e) (modifié)

Mon Dec 12 00:25:02 CET 2016 : VPN not started
Mon Dec 12 00:25:04 CET 2016 : DownloadStation is stopped
Mon Dec 12 00:25:04 CET 2016 : Trying to start VPN connection...
get arguemnt protocol: openvpn
get arguemnt name: 
get arguemnt retry: 4
get arguemnt interver: 10
Usage:
    vpnc_tool COMMAND [ARGS]

 

Modifié par Everlast03
Posté(e) (modifié)

Thr Dec 15 00:04:02 CET 2016 : VPN not started
Thr Dec 15 00:04:02 CET 2016 : DownloadStation is stopped
Thr Dec 15 00:04:02 CET 2016 : Trying to start VPN connection...
get arguemnt protocol: openvpn
 

get arguemnt protocol: openvpn,

comme tu peut le voir dans tes logs, tu tente une connection avec un protocol Openvpn au lieu de pptp   ....?

dans ton script: echo proto=openvpn >> /usr/syno/etc/synovpnclient/vpnc_connecting.... deux fois.....dans le script

corrige, pptp , vire tes logs, relance et repost les newlogs

d'où l'importance du protocol, car dans tes logs, il apparaît que tu n'est pas connecté.

Modifié par roypelikan
Posté(e) (modifié)

Bonjour,

J'ai modifié le script (voir ci-dessous) en remplaçant tout les "openvpn" par "pptp".

Par contre j'ai encore des problèmes (déconnexions VPN très fréquentes et je suis obligé de relancer à la main ...). Voir VPN.log en bas.

 

Et ça me donne le vpn.log suivant : 

Sun Dec 18 20:40:02 CET 2016 : VPN not started
Sun Dec 18 20:40:02 CET 2016 : DownloadStation is stopped
Sun Dec 18 20:40:02 CET 2016 : Trying to start VPN connection...
get arguemnt protocol: pptp
get arguemnt name: 
get arguemnt retry: 4
get arguemnt interver: 10
Usage:
	vpnc_tool COMMAND [ARGS]

 

Modifié par Everlast03
Posté(e) (modifié)

Comme tu le vois, dans get argument name, le nom est vide, cause espace entre = et HMA

j'espère qu'il n'y a pas d'autres erreurs de syntaxe....

Modifié par roypelikan
Posté(e) (modifié)

Bonjour roypelikan,

Apparemment c'est bon comme ça !

Je vois ce que ça donne dans la journée.

Après quelques jours de tests je pense que j'ai un problème lors du ping. En effet, dans les log j'ai : 

kill client ...OK
Mon Dec 26 20:03:24 CET 2016 : VPN connection closed
Mon Dec 26 20:03:24 CET 2016 : Trying to start VPN connection...
get arguemnt protocol: pptp
get arguemnt name: HMAUS
get arguemnt retry: 4
get arguemnt interver: 10
Reconnect [HMAUS] ... done
Mon Dec 26 20:04:05 CET 2016 : Interface  ppp0  found but firewall is not configured...
Mon Dec 26 20:04:05 CET 2016 : Firewall configured successfully
Mon Dec 26 20:04:06 CET 2016 : DownloadStation is started
Mon Dec 26 20:05:15 CET 2016 : Ping failed to www.google.fr...
Mon Dec 26 20:05:19 CET 2016 : DownloadStation is stopped

kill client ...OK
Mon Dec 26 20:05:25 CET 2016 : VPN connection closed
Mon Dec 26 20:05:25 CET 2016 : Trying to start VPN connection...
get arguemnt protocol: pptp
get arguemnt name: HMAUS
get arguemnt retry: 4
get arguemnt interver: 10
Reconnect [HMAUS] ... done

Merci d'avance pour votre analyse ;-)

Modifié par Everlast03
Petit problème dans le script je pense :-(
  • 1 mois après...
Posté(e) (modifié)

Bonjour à tous,

 

@roypelikan, es tu passé en DSM 6 ?

 

Pour ma part, j'utilise ce script depuis longtemps mais depuis 2016 j'ai pas mal de souci avec Download station, et je pense que cela vient du script...

 

Par exemple, des fois, je lance la GUI de DS, et j'ai "Echec de l'opération"... je vois bien les dossiers à gauche (téléchargements, terminé, actifs etc) mais au milieu y'a juste "Echec de l'opération"... bon... j'ai installé une ancienne version de DownloadStation et je n'ai plus CE problème depuis hier soir... à suivre.

 

Autre problème : mes téléchargements sont souvent en erreur (pas tout le temps). Soit juste en "erreur" soit en "dupliquer le fichier le torrent".

 

Pour cette dernière erreur, je suspecte un souci lié au script en lui même : je pense que l'arrêt de DS ne se fait pas quand le VPN est en rade, par contre la relance fonctionne! Du coup, je me retrouve avec plusieurs process "scheduler"... et peut être que cela provoque cette erreur de fichier en double...

 

Quelqu'un peut me dire ou sont les logs de DS dans DSM6? j'aurai peut être des infos utiles qui m'aideront :(

 

 

Modifié par Grincheux41
Posté(e)

Pour cette erreur : Echec de l'opération

Je les eu lors d'une fresh installe sur mon ds916+, stoppé et relancé le paquet et c'était bon, l'erreur ne c'est jamais représenté. Certainement une erreur lors de son premier lancement pour la dernière version disponible.

Pour les logs va voir dans /var/packages/...

@Everlast03 & @Grincheux41 Vous pouvez cité une personne et la notifiée en fessant @ puis son pseudo.

Posté(e)

Bon je pense avoir trouvé un souci parmi d'autres.

Mon script a l'air de bien fonctionner. J'ai coupé le vpn, il l'a détecté, il a tout relancé... mais j'ai noté qu'à peine il avait tout relancé, que le script se déclenchait à nouveau... et je commence à penser qu'avec les performances médiocres de mon Syno, lancer le VPN puis DS peut prendre plus de 1 minute... et du coup, la tâche suivante se déclenche et voilà.

 

D'ailleurs j'ai testé. Si je démarre DS, alors je peux pas le lancer une deuxième fois, la commande start me retourne bien que le process est déjà là. Mais si je vais "vite", et que je lance la commande start 2 fois... alors j'arrive à créer 2 process scheduler ! et là, je me retrouve avec plein d'erreur dans l'interface de DS du genre "dupliquer le fichier torrent".

 

Solution vraiment basique : je passe le crontab à... 2 minutes. ça devrait fiabiliser un peu... à suivre!

  • 2 semaines après...
Posté(e) (modifié)

Bonjour à tous.

J'utilise Synology 5.2-5592 et mon VPN  est NordVPN.

Je privilégie une connection au VPN avec le protocol PPTP afain de pouvoir activer mon serveur VPN avec OVPN.

J'ai mis le script de cedcox dans le répertoire /volume1/startup
J'ai modifié le script pour qu'il se connecte avec le protocol pptp et j'ai modifié la variable interface_vpn="ppp0"

Dans mon répertoire /usr/syno/etc/synovpnclient/pptp, j'ai un fichier pptpclient.conf et plusieurs fichiers nommés : options_pXXXXXX.pptp et connect_pXXXXXXX µ

D'après les logs, j'ai un pb lors de la connection à DownloadStation dans la dernière partie du script :
Thr Mar 2 10:21:17 CET 2017 : VPN not started
Thr Mar 2 10:21:17 CET 2017 : DownloadStation is stopped
Thr Mar 2 10:21:17 CET 2017 : Trying to start VPN connection...
get arguemnt protocol: pptp
get arguemnt name: NordVPN_Austria3_PPTP
get arguemnt retry: 4
get arguemnt interver: 10
Reconnect [NordVPN_Austria3_PPTP] ... Thr Mar 2 10:26:29 CET 2017 : Interface  ppp0  found but firewall is not configured...
Thr Mar 2 10:26:29 CET 2017 : Firewall configured successfully
Thr Mar 2 10:26:29 CET 2017 : ERROR, DownloadStation is stopped

Apparemment ici :

        #VPN Connection and firewall are Ok, starting Download station
        $DLStation start
        if [ -n "$(ps | grep -v "grep" | grep "/sbin/scheduler")" ] ; then
            echo $(date)  ": DownloadStation is started" >> $logfile
        else
            echo $(date)  ": ERROR, DownloadStation is stopped" >> $logfile
        fi

A quoi correspondent ces tests ? Ai*je oublié une config ?

Merci d'avance.

Modifié par djtale
Posté(e)
Le 02/03/2017 à 16:19, djtale a dit :

 

Apparemment ici :

        #VPN Connection and firewall are Ok, starting Download station
        $DLStation start
        if [ -n "$(ps | grep -v "grep" | grep "/sbin/scheduler")" ] ; then
            echo $(date)  ": DownloadStation is started" >> $logfile
        else
            echo $(date)  ": ERROR, DownloadStation is stopped" >> $logfile
        fi

A quoi correspondent ces tests ? Ai*je oublié une config ?

 

J'ai un souci équivalent mais l'inverse :)

je pense être emmerdé avec le process "sbin/scheduler"...

Toi, tes logs te disent que DS  est stoppé... moi c'est linverse, j'ai souvent le cas suivant qui se présente :

> VPN détecté comme arrêté

> lancement de la commande "stop" de DS

> test de la présence du process "sbin/scheduler" et là je me retrouve avec un message "DS est toujours lancé"...

 

comme si la commande "stop" ne marchait pas! ou alors le fait de tester le process sbin/scheduler n'a pas de sens, j'en sais rien! j'ai pourtant mis un "wait 80000" après la commande stop lol

 

Quelqu'un a-t-il des soucis de ce genre aussi ?

 

  • 1 mois après...
Posté(e)

Bonjour, voir le post de @thennart page 2 il cite....

"Par contre le script ne fonctionnait tout de même pour plusieurs raisons. Notamment, le "ps" dans les tests qui ne suffit plus, j'ai du modifier pour faire un ps -aux. Voici le script qui fonctionne désormais correctement pour moi. "

 

dsl pour le suivi mais je ne reçoit plus les messages du sujet.

  • 3 mois après...
Posté(e) (modifié)

Hello,

Merci pour le travail sur ce script :)

1 - Il me semble qu'il serait judicieux de préciser l'interface utilisée lors du test du ping google. En effet, le ping peut fonctionner grâce à toute autre interface opérationnelle (ETH0 par exemple). Du coup cela donnerait :

if [ -z "$(ping -c 4 -I " $interface_vpn " www.google.fr | grep "64 bytes")" ] && [ -n "$(ifconfig | grep "$interface_vpn")" ]; then

2 - Le choix entre l'option connect ou reconnect de la commande synovpnc n'est pas très claire pour moi. Dans le script en page 1, reconnect est utilisé et, à partir de la page 2, reconnect est utilisé. Du coup, je ne sais trop lequel choisir, alors avant d'avoir un petit éclaircissement d'expert, j'ai testé les 2 et je n'arrive pas à faire de tests concluants avec le reconnect (ça ne fonctionne pas). Comment peut-on simuler une erreur qui ferait fonctionner cette commande ? (rappel de la commande : synovpnc reconnect --protocol=$vpn_proto --name=$vpn_configname --retry=4 --interval=10)

En effet, lorsqu'on déconnecte "manuellement" l'interface dans le panneau de config, l'option reconnect ne fonctionne pas, je l'ai changé en : synovpnc connect --id=$vpnconf_id et comme cela ça fonctionne (c'est logique me direz vous). Je me pose d'ailleurs la question si le reconnect peut fonctionner alors que l'interface VPN n'est pas visible avec ifconfig (l'option connect ne serait-elle pas plus juste ?)

Merci !

Modifié par kcahna
Posté(e) (modifié)

EDIT

J'ai essayé une autre solution que m'a soufflée PiwiLAbruti et qui consiste à lancer ces commandes depuis les scripts /etc/ppp/ip-down et ip-up qui sont lancés automatiquement par le système. En effet, en tâche planifiée toutes les minutes, ce script laisse le temps à DLStation de se reconnecter à travers l'IP publique de ma freebox. Cette solution fonctionne bien lorsque je fais des connexions et déconnexions  manuelles du VPN depuis l'interface DSM. Cependant, si je simule une erreur sur le chemin VPN en déconnectant manuellement le câble de l'ADSL, l'interface tombe (plus d'interface ppp0 dans ifconfig) mais le script /etc/ppp/ip-down n'est pas lancé par le système... Quelqu'un connait-il une solution pour détecter de manière rapide un problème sur la ligne VPN ? (sans tâche planifiée)

Merci !

Modifié par kcahna

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.