excuse moi, je n'y connait rien, c'est pour cela que je pose mes questions ici
j'avais juste pensé à rediriger ces ports, mais en effet d'après ce tu expliques pour un client torrent inutile
Mais je n'en savais rien
Je pense avoir trouvé le problème dans mon script ci-dessus
Au début on déclare l'ip et le gateway du vpn.
Mais ces derniers changent tout le temps, donc ça marche pas…
Est-ce qu'il existe une commande pour router le trafic sur l'interface réseau du vpn (tun0) plutôt que sur une ip ?
haha
mes conditions : je veux forcer l'application rtorrent de mon serveur à passer par mon vpn
Je ne peux pas faire passer tout le trafic de mon serveur via le vpn car sinon je n'arrive plus à y accéder
Et comme rtorrent n'utilise que deux ports… :)
J'ai tenté en m'inspirant des exemples du net de faire un script comme certains me le conseillaient ici.
Mais cela ne fonctionne pas.
Voilà mon script d'up
#!/bin/bash
TUNDEV=$1
TUNIP=$4
# Ici on met le réseau du VPN, pour le connaitre veuillez vous connecter au VPN avec la
# configuration fournie sans le "route-nopull" et faire un ifconfig sur l'interface tun créée
# Faites pareil pour la gateway avec un `route`
VPNNET="10.7.0.10/24"
VPNGW="10.7.0.9"
EXTIF=eth0
VPNNAME=vpntorrent
MARK=100 # spécifique a ce VPN, vous choisissez, mettez en un différent par vpn
# On commence par nettoyer au cas ou OpenVPN aurait violemment redémarré dans le passé
echo "- Flushing iptables"
iptables -t mangle -D OUTPUT -o $EXTIF -m owner --uid-owner $VPNNAME -j MARK --set-mark $MARK
iptables -t nat -D POSTROUTING -m mark --mark $MARK -j MASQUERADE
iptables -t nat -D POSTROUTING -m mark --mark $MARK -j SNAT --to-source $TUNIP
echo "- Flushing iproutes"
ip route flush table $VPNNAME
ip rule del fwmark $MARK
echo "- Flushing rp_filter"
for f in all $TUNDEV
do echo 1 > /proc/sys/net/ipv4/conf/$f/rp_filter ; done
echo "+ adding iptables"
# On marque tous les paquets appartenant au group $VPNNAME
iptables -t mangle -A OUTPUT -o $EXTIF -m owner --gid-owner $VPNNAME -j MARK --set-mark $MARK
iptables -t nat -A POSTROUTING -m mark --mark $MARK -j MASQUERADE
# L'IP source des paquets doit etre changée vu que l'on va les faire passer par l'interface VPN tun
iptables -t nat -A POSTROUTING -m mark --mark $MARK -j SNAT --to-source $TUNIP
echo "+ adding iproutes"
echo " + net ${NET} on main table"
ip route add $VPNNET dev $TUNDEV proto kernel scope link src $TUNIP
echo " + net ${NET} on ${VPNNAME} table"
ip route add $VPNNET dev $TUNDEV proto kernel scope link src $TUNIP table ${VPNNAME}
echo " + gw"
ip route add default via $VPNGW dev $TUNDEV table ${VPNNAME}
ip rule add fwmark $MARK table ${VPNNAME}
ip route flush cache table ${VPNNAME}
ip route flush cache
echo "+ adding rp_filter" # ca c'est la commande magique
for f in all $TUNDEV
do echo 0 > /proc/sys/net/ipv4/conf/$f/rp_filter ; done
echo "+ adding dns" # On utilise les DNS de google qui ont une meilleure latence quelque soit la position du serveur VPN
echo "nameserver 8.8.8.8
nameserver 8.8.4.4
nameserver 213.186.33.99
" > /etc/resolv.conf
Celui de down
#!/bin/bash
TUNDEV=$1
TUNIP=$4
VPNNET="10.7.0.10/16"
VPNGW="10.7.0.9"
EXTIF=eth0
VPNNAME=vpntorrent
MARK=100 # spécifique au vpn, meme que pour le up
echo "- Flushing iptables"
iptables -t mangle -D OUTPUT -o $EXTIF -m owner --gid-owner $VPNNAME -j MARK --set-mark $MARK
iptables -t nat -D POSTROUTING -m mark --mark $MARK -j MASQUERADE
iptables -t nat -D POSTROUTING -m mark --mark $MARK -j SNAT --to-source $TUNIP
echo "- Flushing iproutes"
ip route flush table $VPNNAME
ip rule del fwmark $MARK
echo "- Flushing rp_filter"
for f in all $TUNDEV
do echo 1 > /proc/sys/net/ipv4/conf/$f/rp_filter ; done
echo "+ flushing dns"
echo "nameserve ksxxxxx.kimsufi.com # votre nameserver habituel, au choix
" > /etc/resolv.conf
Et ma conf openvpn :
client
dev tun
proto udp
remote nl2.mullvad.net 53
resolv-retry infinite
nobind
persist-key
persist-tun
comp-lzo
verb 3
remote-cert-tls server
ping-restart 60
ping 10
ca master.mullvad.net.crt
cert mullvad.crt
key mullvad.key
route-noexec
script-security 2
up /usr/local/vpn/vpntorrent-up
down /usr/local/vpn/vpntorrent-down
persist-key
persist-tun
NB : il y avait ça comme script dans la conf par défaut de mon provider vpn
# Parses DHCP options from openvpn to update resolv.conf
up /etc/openvpn/update-resolv-conf
down /etc/openvpn/update-resolv-conf
Merci d'avance pour votre aide
Et bonne fin de journée :)
J'ai lu ailleurs qu'on pouvait mettre route-nopull dans le fichier de configuration openvpn pour ne pas utiliser les routes fournies.
Ainsi je pourrais faire du Policy-based routing comme le dit chaispaquichui.
Mais une fois ces modifications faites pour associer le trafic à la table de routage créée,ces modifications sont elles conservées après un reboot du serveur ?
Si non comment faire, à part un script au lancement d'open vpn ?
[^] # Re: Port + Adresse
Posté par mboss . En réponse au message rediriger un port sur une interface réseau. Évalué à 1. Dernière modification le 24 juin 2013 à 20:34.
excuse moi, je n'y connait rien, c'est pour cela que je pose mes questions ici
j'avais juste pensé à rediriger ces ports, mais en effet d'après ce tu expliques pour un client torrent inutile
Mais je n'en savais rien
# problème trouvé, mais solution ?
Posté par mboss . En réponse au message N'utiliser un vpn que pour une application. Évalué à 0.
Je pense avoir trouvé le problème dans mon script ci-dessus
Au début on déclare l'ip et le gateway du vpn.
Mais ces derniers changent tout le temps, donc ça marche pas…
Est-ce qu'il existe une commande pour router le trafic sur l'interface réseau du vpn (tun0) plutôt que sur une ip ?
MERCI
[^] # Re: Port + Adresse
Posté par mboss . En réponse au message rediriger un port sur une interface réseau. Évalué à 0. Dernière modification le 24 juin 2013 à 15:02.
Et comment je crée ce tunnel local ?
MERCI :D
[^] # Re: Port + Adresse
Posté par mboss . En réponse au message rediriger un port sur une interface réseau. Évalué à -1.
haha
mes conditions : je veux forcer l'application rtorrent de mon serveur à passer par mon vpn
Je ne peux pas faire passer tout le trafic de mon serveur via le vpn car sinon je n'arrive plus à y accéder
Et comme rtorrent n'utilise que deux ports… :)
[^] # Re: Port + Adresse
Posté par mboss . En réponse au message rediriger un port sur une interface réseau. Évalué à -1.
Là tu m'as compris :)
Mais quelle règle utiliser avec quel outil ?
Merci bcp
Bonne journée
# essai de script
Posté par mboss . En réponse au message N'utiliser un vpn que pour une application. Évalué à 0.
Re-Bonjour,
J'ai tenté en m'inspirant des exemples du net de faire un script comme certains me le conseillaient ici.
Mais cela ne fonctionne pas.
Voilà mon script d'up
Celui de down
Et ma conf openvpn :
NB : il y avait ça comme script dans la conf par défaut de mon provider vpn
Merci d'avance pour votre aide
Et bonne fin de journée :)
[^] # Re: setgid
Posté par mboss . En réponse au message changer le groupid d'un processus (ou le lancer avec un certain groupid). Évalué à 0.
et donc si je veux mettre rtorrent dans le groupe A, comment j fais ?
Excusez-moi de ma noobitude
# Merci pour toutes vos réponses
Posté par mboss . En réponse au message N'utiliser un vpn que pour une application. Évalué à 0.
J'ai lu ailleurs qu'on pouvait mettre route-nopull dans le fichier de configuration openvpn pour ne pas utiliser les routes fournies.
Ainsi je pourrais faire du Policy-based routing comme le dit
chaispaquichui
.Mais une fois ces modifications faites pour associer le trafic à la table de routage créée,ces modifications sont elles conservées après un reboot du serveur ?
Si non comment faire, à part un script au lancement d'open vpn ?
Merci et bonne soirée :)