Aller au contenu

Autoriser Download Station Uniquement Via Vpn


Piou2fois

Messages recommandés

Bonjour

J'aimerai savoir s'il est possible de forcer download station a n'utiliser qu'une connexion VPN et surtout ne pas accéder à internet si le vpn tombe. Je vous laisse imaginer ce que je veux faire...

J'ai bien tenté de mettre "refuser tout", faire les réglages pour encore avoir accés à l'administration (ssh, 5000,5001 9997)

Ensuite j'ai créé une règle pour BT, hote unique : l'ip de mon vpn et autoriser.

Mais même si le vpn n'est pas actif, mon torrent (libreoffice dernière version) se télécharge tranquillement...

Une idée ?

Lien vers le commentaire
Partager sur d’autres sites

Bon, en cherchant j'ai trouvé quelque chose : gérer les règles avec iptables via telnet (ou ssh)

Première chose à savoir : il faut déjà créé une règle dans le pare-feu / QOS

Seconde chose le pare-feu ne gère que les INPUT (pas FORWARD ni OUTPUT) donc il faut passer par iptables

J'ai créé les règles suivantes :

-A INPUT -i eth0 -p tcp -m multiport --dports 22,1234,5000,9997 -j ACCEPT : pour laisser l'interface utilisateur accessible etc.

-A INPUT -i eth0 -j DROP : je coupe toutes les connexions (dans l'interface graphique c'est le refuser tout en fait)

Et c'est là où je comprends plus

J'ai regardé quel interface utilisait le vpn avec la commande "ifconfig" ça me donne ppp0

J'ai donc créé 2 règles

-A INPUT -i ppp0 -p tcp -m tcp --dport 16881 -j ACCEPT : j'accepte sur l'interface ppp0 les entrèes sur 16881

-A OUTPUT -o ppp0 -p tcp -m tcp --dport 16881 -j ACCEPT : j'accepte sur l'interface ppp0 les sorties sur 16881

et bien ça fonctionne pas, download station ne télécharge rien sur un torrent

quelqu'un aurait une idée?

Lien vers le commentaire
Partager sur d’autres sites

Sérieusement je capte rien j'ai mis ça

DiskStation> iptables -A OUTPUT -p tcp --dport 22 -j ACCEPT
DiskStation> iptables -A OUTPUT -p tcp --dport 23 -j ACCEPT
DiskStation> iptables -A OUTPUT -p tcp --dport 1234 -j ACCEPT
DiskStation> iptables -A OUTPUT -p tcp --dport 5000 -j ACCEPT
DiskStation> iptables -A OUTPUT -p tcp --dport 9997 -j ACCEPT
DiskStation> iptables -P OUTPUT DROP
En gros, en sortie j'accepte les port 22 23 1234 5000 9997 puis je passe la chain OUTPUT en DROP, normalement les connexions sortantes sur les ports désignés devraient être valides, et pourtant dès que la commande iptables -P OUTPUT DROP est validées, je n'ai plus aucun accès
Je capte pas...
Lien vers le commentaire
Partager sur d’autres sites

  • 4 semaines après...

Bonjour,

Je me pose les mêmes questions que toi, enfin globalement, et je vous lais savoir ou tu en etais de ta mise en oeuvre.

Mon synology ayant plusieurs cartes réseaux je regarde en plus pour qu'une carte serve au tunnel openvpn dans lequel je veux faire passer un certains type de traffic et l'autre au reste.

Merci d'avance.

Niklos

Lien vers le commentaire
Partager sur d’autres sites

Sérieusement je capte rien j'ai mis ça

DiskStation> iptables -A OUTPUT -p tcp --dport 22 -j ACCEPT
DiskStation> iptables -A OUTPUT -p tcp --dport 23 -j ACCEPT
DiskStation> iptables -A OUTPUT -p tcp --dport 1234 -j ACCEPT
DiskStation> iptables -A OUTPUT -p tcp --dport 5000 -j ACCEPT
DiskStation> iptables -A OUTPUT -p tcp --dport 9997 -j ACCEPT
DiskStation> iptables -P OUTPUT DROP
En gros, en sortie j'accepte les port 22 23 1234 5000 9997 puis je passe la chain OUTPUT en DROP, normalement les connexions sortantes sur les ports désignés devraient être valides, et pourtant dès que la commande iptables -P OUTPUT DROP est validées, je n'ai plus aucun accès
Je capte pas...

Hum il me semble qu'il y a une grosse erreur dans cette configuration pour se que tu veux faire : Tu spécifies le port distant (--dport) pour une sortie.

Par exemple, pour le port 22 : tu autorises ton NAS à faire du ssh sur une machine distante pas à répondre aux requêtes ssh (lorsque tu te connecte depuis ton PC, celui-ci n'envoi pas les infos depuis le port 22 pour une connexion ssh mais pointe vers ce port, le retour se fait depuis le port 22 mais vers un autre port)

Il faut utiliser le port d'envoi (--sport) soit : iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT

Plus d'exemples là : http://www.thegeekstuff.com/2011/03/iptables-inbound-and-outbound-rules/

Après je ne sais pas si c'est réalisable sur le Syno (je n'ai pas testé)

Modifié par Addon-X
Lien vers le commentaire
Partager sur d’autres sites

  • 2 ans après...

Je sais pas si cette solution pourrais t aider mais voici mon fonctionnement.

Je télécharge obligatoirement par le vpn, mais je garde un accès depuis l extérieur sans passer par le vpn.

J'ai un script qui contrôle toutes les minutes le vpn et le relance et coupe DSDownload au cas ou, jusqu a ce que le vpn soit de nouveau up.

Modifie le en fonction de tes besoins.

Pour garder l’accès depuis l exterieur

Tu lance ton vpn

Tu va dans le panneau de config puis réseaux

Tu va dans option avancé tu décoche "multiple" gateway tu fais ok puis appliquer.

Tu refais la meme chose mais cette fois ci en le gardant cocher.

Le serveur recréera les routes pour l accès extérieur mais ne changera pas l'interface pour DSDownload

#!/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
vpn_tcp_port= " Tes ports de DLL"

# UDP port authorized
vpn_udp_port=" Tes ports de DLL"

# OpenVPN configuration
openvpn_confid="o..... bidule
openvpn_configname="Ton super 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;

 

Lien vers le commentaire
Partager sur d’autres sites

  • 8 mois après...

Bonjour Islandar,

Je suis intéressé par ton script seulement je n'y connais rien en linux... :-s

Pourrais-tu compléter en donnant le format du nom de fichier à mettre (extension ?), où et comment l'enregistrer sur le NAS stp ?

Citation

Tu va dans option avancé tu décoche "multiple" gateway tu fais ok puis appliquer.
Tu refais la meme chose mais cette fois ci en le gardant cocher.

Après avoir lancé le script je suppose ? D'ailleurs comment le lance-t-on ? :-)

En espérant que tu passes dans le coin ou que quelqu'un d'autre de passage puisse m'expliquer.

De toute façon merci pour ton partage :-)

eric

 

Lien vers le commentaire
Partager sur d’autres sites

  • 4 mois après...

Bonjour

Je serais aussi intéressé par le script.

Islandar pourrais tu stp revenir plus en détail sur la procédure de mise en route de ton script ?

Je possède un DS715 sous DSM 6.0.2-8451 Update 9 et suis chez PureVPN en OpenVPN.

Je sais très bien bidouillé sous Dos et Windows mais Linux je suis plutôt un Newbees (mais je m'entraine avec mon RasperryPi...)

Voila par avance merci de vos interventions

Lien vers le commentaire
Partager sur d’autres sites

  • 11 mois après...
  • 2 mois après...

Bonjour à tous,

Salut Islandar, j'ai pris ton script et l'ai adpaté pour chez moi. Il fonctionne parfaitement, mais il semblerait que dans le script la condition ci-dessous avec la fonction ps ne fonctionne pas.

 

 if [ -n "$(ps | grep -v "grep" | grep "/sbin/scheduler")" ] ; then
                    echo $(date)  ": DownloadStation is started" >> $logfile
                else
                    echo $(date)  ": ERROR, DownloadStation is stopped" >> $logfile

 

J'ai systématiquement "ERROR, DownloadStation is stopped" qui s'inscrit dans le fichier de log. alors que tout tourne.

quand je suis dans putty et je tape :

ps | grep -v "grep" | grep "/sbin/scheduler"

je n'ai aucun retour.

 

Si je tape :

ps ax  | grep -v "grep" | grep "/sbin/scheduler"

là j'ai bien en retour, mais si je remets cette commande dans le script, le script plante.

 

Peux tu me dire si le script fonctionne toujours chez toi ou si tu l'as modifié depuis ?

Merci

 

Lien vers le commentaire
Partager sur d’autres sites

Bonjour à tous, aprés avoir écrit à Synology pour préconiser une option comme sur la seedbox de Free qui n'autorise que le DL via le VPN, voici le retour que j'ai eu. Aussi je vous invite tous à leur écrire pour demander cette évolution.

 

Bonjour Monsieur ,

Je vous remercie pour votre retour.

Nous attachons une grande importance aux retours et suggestions de nos utilisateurs, qui nous permettent d’améliorer toujours plus nos produits.

Votre suggestion est donc bien prises en compte et je vais transmettre celle-ci à nos équipes de développement afin qu’elles étudient la possibilité d’ajouter ces fonctionnalités.
Notez cependant que l'intégration de fonctionnalités dépendra du nombre de retours de nos clients, ainsi que des ressources dont nous disposons et de notre stratégie. Plus nous avons de retours utilisateurs sur une fonctionnalité, plus forte est la possibilité que celle-ci soit intégrée et plus rapidement. Mais nous ne pourrons garantir que cela soit nécessairement ajoutée selon ces points.

Afin d'être tenu au courant des ajouts de fonctionnalités dans le futur, vous pourrez souscrire à notre newsletter depuis votre compte Synology.
Nous vous remercions encore pour votre demande d'évolution.

Bien cordialement

Lien vers le commentaire
Partager sur d’autres sites

  • 1 an après...

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.