schoon Posté(e) le 20 janvier 2016 Posté(e) le 20 janvier 2016 (modifié) Bonjour, Je cherche depuis quelque temps à stopper automatiquement les téléchargements Bitorrent de Download Station lors de la déconnexion de mon VPN. J'ai lu ceci sur le site HideMyAss, ce sont les dires d'un certain vicotornan: "Ce que je recommande pour les possesseurs de Synology qui souhaitent que certaines applications, prenons l'exemple de BitTorrent, ne passent que par le VPN. Dans ce cas, il suffit de créer une règle dans le Pare-feu sur votre connexion au réseau local qui bloque les ports de BitTorrent. Du coup, en cas de déconnexion du VPN, aucun risque de télécharger en "ouvert"" J'ai testé plusieurs réglages avec le pare-feu mais la je sèche complètement. Avez-vous un idée lumineuse pour stopper le protocole Bitorrent lors d'une coupure VPN? Merci. Modifié le 20 janvier 2016 par schoon Fautes d'orthographe
Fenrir Posté(e) le 20 janvier 2016 Posté(e) le 20 janvier 2016 iptables -I OUTPUT -o eth0 -p udp --dport xxxx -j DROP iptables -I OUTPUT -o eth0 -p udp --sport yyyy -j DROP à adapter en fonction des ports et des interfaces que tu utilises
schoon Posté(e) le 21 janvier 2016 Auteur Posté(e) le 21 janvier 2016 Bonjour, Merci pour la réponse ultra rapide. Je vais tester ça ce soir. Si c'est aussi simple que 2 lignes de code, c'est cool. Merci encore.
schoon Posté(e) le 21 janvier 2016 Auteur Posté(e) le 21 janvier 2016 Il y a 22 heures, Fenrir a dit : iptables -I OUTPUT -o eth0 -p udp --dport xxxx -j DROP iptables -I OUTPUT -o eth0 -p udp --sport yyyy -j DROP à adapter en fonction des ports et des interfaces que tu utilises Bonjour, Bon je viens de me mettre devant mon PC. N'hésite pas à me dire si j'ai fait fausse route! Bon voilà ce que j'ai fait: -Activation des services Telnet et SSH sur le Syno -Connexion à mon NAS avec PuTTY en mode root -J'ai tapé les deux lignes de commande: iptables -I OUTPUT -o eth0 -p udp --dport 6881 -j DROP iptables -I OUTPUT -o eth0 -p udp --sport 6881 -j DROP -J'ai ensuite couper mon VPN. Le débit de téléchargement des torrents baisse jusqu'à 0kb/s et ensuite le téléchargement repart de plus belle. Et donc ça ne fonctionne pas. Ma question: -Est-ce que l'interface eth0 représente t-elle bien ma connexion au réseau local? (j'ai regardé avec la commande ifconfig et eth0 représente apparemment l'adresse IP du NAS et pas celle de ma BOX) Merci.
Fenrir Posté(e) le 21 janvier 2016 Posté(e) le 21 janvier 2016 il y a 6 minutes, schoon a dit : -Activation des services Telnet et SSH sur le Syno telnet est de trop il y a 7 minutes, schoon a dit : Est-ce que l'interface eth0 représente t-elle bien ma connexion au réseau local très probablement il y a 9 minutes, schoon a dit : j'ai regardé avec la commande ifconfig et eth0 représente apparemment l'adresse IP du NAS et pas celle de ma BOX c'est ton nas que tu veux empêcher de sortir, pas ta box ... si ? il y a 7 minutes, schoon a dit : ensuite le téléchargement repart de plus belle tu n'as probablement pas tout bloqué mes 2 commandes étaient des exemples avec port de destination et port source (selon ce dont tu as besoin), il y a peut être plein d'autres ports à bloquer
schoon Posté(e) le 21 janvier 2016 Auteur Posté(e) le 21 janvier 2016 OK, c'est un peu plus clair. Mais pas encore tout à fait. Si je veux bloquer totalement les téléchargement en BiTorrent, je dois juste bloquer le traffic sur les ports TCP et UDP ? C'est bien ça?
Islandar Posté(e) le 21 janvier 2016 Posté(e) le 21 janvier 2016 (modifié) Si tu veut tu as plus simple. Tu a dans ton nas: Panneau de config => Planificateur de tache) > tu créé une tache utilisateur qui se lance toutes les minutes. Tu copie ce script: Tu dois juste modifier ton planning DS pour être en pause si activé. Et complété le script avec tes info (Port a ouvrir/nom+id du vpn) Citation Il lance un test afin de savoir si le vpn est up. Si il es pas up il met en pause ton downloadstation (plus de dll) Il relance la connection vpn que tu a inscrite dans le scripte. il retest afin de voir si le vpn est up la prochaine minute Si up il fait rien et relance #!/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="tun0" # Log file logfile="/root/vpn.log" # TCP port authorized / Tu inscris tes ports TCP pour tes downloads vpn_tcp_port= # UDP port authorized /Tu inscris tes ports UDP pour tes downloads vpn_udp_port= # OpenVPN configuration / Tu rentre le nom de ta connection ainsi que son ID openvpn_confid=o111111111 openvpn_configname= VPN ############### 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; ownloadStation Modifié le 21 janvier 2016 par Islandar
Fenrir Posté(e) le 21 janvier 2016 Posté(e) le 21 janvier 2016 il y a 12 minutes, schoon a dit : je dois juste bloquer le traffic sur les ports TCP et UDP ? C'est bien ça? tu dois bloquer ce que tu veux bloquer, je ne te donnes pas un truc tout cuit car ça dépend de ta config il y a 3 minutes, Islandar a dit : Si tu veut tu as plus simple. c'est une autre approche, qui a des avantages et des inconvénients
schoon Posté(e) le 21 janvier 2016 Auteur Posté(e) le 21 janvier 2016 il y a 1 minute, Fenrir a dit : tu dois bloquer ce que tu veux bloquer, je ne te donnes pas un truc tout cuit car ça dépend de ta config c'est une autre approche, qui a des avantages et des inconvénients Très bien merci Fenrir, je vais continuer de tester tout ça. Merci bien pour ton aide. Merci aussi à Islandar, je ne sais pas si c'est beaucoup plus simple, lol. Mais je vais aussi creuser de ce côté là. En tout cas c'est super sympa. Merci encore à vous deux.
Fenrir Posté(e) le 21 janvier 2016 Posté(e) le 21 janvier 2016 il y a 19 minutes, schoon a dit : Très bien merci Fenrir, je vais continuer de tester tout ça. Si tu n'arrives pas à identifier le trafic torrent, tu peux le faire autrement : iptables -I OUTPUT -d tonréseaulocal -j ACCEPT iptables -A OUTPUT -o eth0 -j DROP ça bloquera tout trafic sortant par eth0, sauf si c'est à destination du réseau local (ça veut aussi dire que le nas n’aura pas du tout accès à internet sans le vpn, y compris pour les mises à jour, les paquets, ...)
Islandar Posté(e) le 22 janvier 2016 Posté(e) le 22 janvier 2016 Simple en réalisation car tu copie le script et tu le le met dans le planificateur de tache de ton syno. Si tu a besoin de plus de renseignement n’hésite pas.
roypelikan Posté(e) le 31 janvier 2016 Posté(e) le 31 janvier 2016 (modifié) Bjr, comme le script est celui de CEDCOX tiré d'ARGENOS, tu trouvera matière à réflexion sur le sujet original ici: http://www.nas-forum.com/forum/topic/34262-arret-automatique-de-downloadstation/ Bon courage roy Modifié le 31 janvier 2016 par roypelikan
ale66 Posté(e) le 11 février 2016 Posté(e) le 11 février 2016 Bonjour à tous, Une question de noob, que faut il mettre à la place tonréseaulocal dans : iptables -I OUTPUT -d tonréseaulocal -j ACCEPT J'ai essayer l'adresse de ma passerelle local mais ce n'est pas cela... Merci pour votre aide bonne soirée
Fenrir Posté(e) le 11 février 2016 Posté(e) le 11 février 2016 il y a 31 minutes, ale66 a dit : Une question de noob, que faut il mettre à la place tonréseaulocal dans : ça dépend de ton réseau, c'est probablement un truc du genre : 192.168.x.0/24
ale66 Posté(e) le 13 février 2016 Posté(e) le 13 février 2016 Ok soit toutes la plage des adresse de mon réseau locale. Merci pour votre réponse.
leptitnico Posté(e) le 19 février 2016 Posté(e) le 19 février 2016 Bonjour à tous, j'utilise le script cité par Islandar, j'ai une question de noob : comment on récupérè les logs dans /root ? Citation # Log file logfile="/root/vpn.log"
roypelikan Posté(e) le 19 février 2016 Posté(e) le 19 février 2016 (modifié) Pour plus de confort, tu peux creer un dossier par exemple sur le volume1 qui s'appelle ´public' accessible uniquement par admin et tu dirige vers celui-lci au lieu de root, et il sera visible par l'editeur du nas et tu pourra en outre le telechager facilement sur ton pc... Modifié le 19 février 2016 par roypelikan
leptitnico Posté(e) le 19 février 2016 Posté(e) le 19 février 2016 Merci Roypelikan, je n'avais pas pensé a modifier l'emplacement, c'est vrai que c'est plus simple ainsi !
kcahna Posté(e) le 27 août 2017 Posté(e) le 27 août 2017 Hello, J'ai parcouru ce post fort intéressant. J'ai implémenté le script en job en faisant quelques modifs et ça fonctionne. J'ai cependant une question : ce script lancé toutes les minutes en tâche planifiée ne laisse-t-il pas le temps à Download Stationplus de switcher sur l'interface ETH0 en cas de coupure ? Et même si ça ne représente que quelques secondes de téléchargement, on laisse une trace de notre IP publique qu'on ne souhaiterait pas laisser... Je ne suis pas très linux et pose donc une seconde question aux experts si ma première question a du sens : Y-aurait-il une solution plus instantanée avec un daemon de type event handler de catcher l'erreur sur le réseau VPN ? (un filewatcher sur les notifs par exemple ?) En espérant ne pas être trop à côté de la plaque sur mes questions. merci et A+
PiwiLAbruti Posté(e) le 27 août 2017 Posté(e) le 27 août 2017 (modifié) Oui, c'est faisable avec les scripts /etc/ppp/ip-up et /etc/ppp/ip-down pour lesquels tu trouveras facilement de la documentation. Je les avais utilisés pour définir des règles de routage spécifiques lors des connexions VPN. Modifié le 27 août 2017 par PiwiLAbruti Moi écrire français pas bien XD
kcahna Posté(e) le 27 août 2017 Posté(e) le 27 août 2017 Avant de passer à l'étape ip-up / ip-down, quelques petits points sur ce chouette script partagé : 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 - Comment peut-on simuler une erreur qui ferait fonctionner la commande suivante ? (sans intervention physique sur le SYno) : 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 !
Einsteinium Posté(e) le 27 août 2017 Posté(e) le 27 août 2017 Plus haut ce trouve le lien du sujet original, qui ce trouve en tête de la section de download station, je clos ce topic redondant.
Messages recommandés