Script: Passer d'une connexion dhcp à un tunnel Openvpn

Salut,
J’essaye de faire un script, mais j’ai un peu de mal…
Je suis connecté en ethernet, j’obtiens mon ip en dhcp.

L’idée c’est, quand je lance le script, de faire passer tout mon trafic par un tunnel (créé par openvn).

  1. Vérifier que le vpn n’est pas lancé si oui > sortie
  2. lancer le vpn et le tester
  3. régler l’ip_forward et iptables (forward, masquerade…)
  4. les routes… Et c’est là que je sèche…

Je suppose qu’il faut enlever la route par défaut attribuée au moment de la demande d’ip au serveur dhcp ?
Je suppose aussi qu’il faut que j’ajoute l’ip de tun0 comme route par défaut ?

Est-ce qu’il ne serait pas plus simple pour moi de faire:

if down eth0
copie d’un nouveau /etc/network/interfaces avec une ip fixe
if up eth0

puis lancer le vpn…

A moins qu’il n’y ait une solution plus élégante à laquelle je n’ai pas pensé.

Je viens de penser qu’il est plus simple de lancer openvpn au démarrage de la machine (de toute façon il essaiera jusqu’a ce qu’il se connecte);
Tester s’il est connecté (ou pas) et passer mon trafic dessus.

Et c’est là que… :017

Salut Lol,

Je suis pas certain de comprendre ce que tu veux faire. Tu veux que quand tu te connectes avec Openvpn, ton trafic passe automatiquement par le VPN, c’est ça ? Pour avoir installer un client VPN il y a peu de temps (Tu m’avais d’ailleurs filé un coup de main), dès que je lance openvpn, hop, ma connexion passe automatiquement par le tunnel.

Salut,
Oui, tu as raison, j’ai mal exprimé ma demande.
Openvpn est lancé en daemon maintenant, mais il ne me donne pas de route par défaut (c’est un choix, je ne souhaite pas passer tout le temps par le VPN).

Il se trouve que régionalement j’ai une très bonne connexion avec quelques serveurs (ça passe par la fibre, il n’y a que rarement des coupures).
Il se trouve que ma connexion (adsl qui n’en a que le nom) rame parfois au point que je n’arrive pas à ouvrir une simple page Web (alors que les serveurs dont je te parlais plus haut ont un débit assuré…).

Dans ces cas là, et seulement dans ces cas là, je souhaite passer mon trafic sur le tunnel, puis revenir à ma connexion dés que c’est possible.
Je voudrais donc faire script qui me bascule mon trafic - et qui me le rétabli quand je lui demande.

Voilà. :smiley:

Je n’ai pas bien compris la problématique ni le besoin, mais il me semble qu’il devrait suffire d’ajouter ou modifier des routes.

Je rejoins PascalHambourg. J’ai pas tout compris, mais les modifications des routes semblent être LA solution.
En revanche, je n’ai pas les compétences pour t’aider. Bonne chance :smiley:

Re,
Oui c’est une histoire de routes, d’interface eth configurée en dhcp et éventuellement (il faut que je vérifie) de dns.
Ce n’est pas insurmontable, il faut que je mette les commandes dans le bon ordre.

Le but étant de me raccrocher à une connexion vpn existante quand je veux.

Salut,
J’ai réglé mon problème simplement avec les routes:

Passer par mon FAI:

ip route flush all ip route add 10.10.10.0/24 dev eth0 ip route add default via 10.10.10.1

Passer par mon VPN;

ip route flush all ip route add 10.10.9.5 dev tun0 proto kernel scope link src 10.10.9.6 ip route add 10.10.10.0/24 dev eth0 proto kernel scope link src 10.10.10.2 ip route add 0.0.0.0/1 via 10.10.9.5 dev tun0 ip route add default via 10.10.10.1 dev eth0 ip route add 10.9.8.0/22 via 10.10.9.5 dev tun0 ip route add 10.10.9.0/24 via 10.10.9.5 dev tun0 ip route add 41.188.26.122 via 10.10.10.1 dev eth0 ip route add 128.0.0.0/1 via 10.10.9.5 dev tun0

J’ai bien essayé les commande ip route save et ip route restore, mais je n’y suis pas parvenu… Je n’ai pas trouve de doc, ou je n’ai pas compris l’utilisation de ces commandes (j’espérais que ça fonctionne comme iptables -save et -restore mais il semble que non.).

Quand je disais que je n’avais pas bien compris le besoin…
J’avais cru comprendre que tu avais un VPN monté en permanence (démon) avec un certain nombre de routes mais pas la route par défaut, et que tu voulais basculer la route par défaut vers celui-ci ou vers la connexion ADSL à la demande. Or dans ton premier jeu de routes, le VPN n’apparaît pas du tout. Donc tu as le choix entre pas de VPN du tout et toutes les routes par le VPN sauf quelques-unes (réseau local, pair VPN forcément).

Le flush, ce n’est pas un peu violent ?
Je vois que tu gardes une route par défaut par l’ADSL et crées deux demi-routes par défaut par le VPN. Pourquoi avoir gardé la route par défaut par l’ADSL ? D’autre part, il aurait été plus élégant de jouer sur la métrique des routes plutôt que de scinder une route en deux pour la rendre prioritaire.

PS : Je ne connais pas ip route save et restore, il faudra que je regarde ça.

Salut,
Oui, c’est tout par le vpn ou rien.

[quote=“PascalHambourg”]Le flush, ce n’est pas un peu violent ?[/quote]Je n’ai pas trouvé plus doux…

[quote=“PascalHambourg”]Je vois que tu gardes une route par défaut par l’ADSL et crées deux demi-routes par défaut par le VPN. Pourquoi avoir gardé la route par défaut par l’ADSL ? D’autre part, il aurait été plus élégant de jouer sur la métrique des routes plutôt que de scinder une route en deux pour la rendre prioritaire.[/quote]Je ne me suis pas emmerdé.
Pour les routes j’ai pris celle configurées par le client VPN lorsqu’il reçoit ses instructions du serveur. Si tu as quelque chose de plus simple/élégant à me proposer, je suis preneur!

Ne compte pas sur le man…

[quote=“man ip route”] ip route save SELECTOR

   ip route restore[/quote]

[quote=“lol”]Oui, c’est tout par le vpn ou rien.
Pour les routes j’ai pris celle configurées par le client VPN lorsqu’il reçoit ses instructions du serveur. Si tu as quelque chose de plus simple/élégant à me proposer, je suis preneur![/quote]
Si c’est tout ou rien, il suffit d’une route pour le réseau local, une route pour le point distant du VPN et d’une route par défaut qui fait passer tout le reste par le VPN :

ip route add 10.10.10.0/24 dev eth0 ip route add default dev tun0 ip route add 41.188.26.122 via 10.10.10.1 dev eth0

[quote=“PascalHambourg”]

ip route add 10.10.10.0/24 dev eth0 ip route add default dev tun0 ip route add 41.188.26.122 via 10.10.10.1 dev eth0[/quote]

Merci c’est bien plus clair comme ça.