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 :)
# 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 :)