Openvpn - tout le traffic passe par le serveur

Bonsoir,

Je viens de mettre en place un vpn avec openvpn, avec un serveur et 2 clients.

Le vpn fontionne en mode routé (tun).

Mon problème est que pour échanger un fichier entre les 2 clients, le flux a l’iar de passer par le serveur. Existe t’il une option pour faire en sorte que le serveur se contente de réaliser la mise en raltion/authentification et que le flux passe directement entre les 2 clients ?

non, pas possible.
Le principe est que ton routeur se comporte comme un hub. Tu dois passer par lui, sauf si tu mets un serveur sur un client et que tu te connectes en direct de l’un à l’autre.
Comme tu as déjà toutes les clés et le service installé, c’est juste une nouvelle config à faire.
Mais les deux liaisons peuvent coexister sans aucun pb. J’ai des sites openvpn en treillis et il n’y a quasiment rien à faire pour que les paquets prennent la bonne route.

mais ça fontionne comment alors ?
il faut mettre un serveur et un client sur chaque poste ? ou il y a une option spécifique ?

Ca fonctionne comme je te l’ai dit: le serveur fait office de hub.
Je le répète, si tu veux aller directement d’une machine à une autre, il faut qu’une des deux fasse serveur.
Tous les systêmes de vpn que je connais fonctionnent comme ça, et ça m’etonnerais pour des raisons de sécurité que ça puisse fonctionner autrement.

je voudrais quand même éclaircir un point (vu que je ne peux pas tester actuellement) :

Je vais donc me retrouver dans la situation suivante :

PC1

  • serveur (1194 udp)

PC2

  • serveur (1194 udp)
  • client (PC1 : 1194 udp)

PC3

  • client (PC1 : 1194 udp / PC2 : 1194 udp)

C’est bien ça ?

En admettant que ce soit bien ça, j’ai toutefois une interrogation par rapport aux adresses IP…
Je voudrais avoir quelquechose du genre :
PC1 : 10.8.0.1
PC2 : 10.8.0.2
PC3 : 10.8.0.3

Hors, lors de la config du serveur on précise l’option :

et le serveur devient 10.8.0.1
Lorsque le PC2 est éteind, pas de problème, le PC3 va se connecter au PC1.

Par contre lorsque que les 3 PCs sont allumés, on va avoir :
PC1 : 10.8.0.1
PC3 : 10.8.0.x (déterminé via un des deux serveurs)
Mais pour le PC2 ? Sa aprtie serveur va lui créer une ip 10.8.0.1 et la partie client va vouloir recevoir une ip 10.8.0.y.

Y aurait-il deux interfaces tun (tun0 et tun1) créées sur le PC2 ? Ceci permettrait de résoudre le fait qu’on ait 2 configs (serveur et client) sur le PC2. Mais ça ne résoud aps le conflit d’IP.

Comment faire ? (utiliser des réseaux différents ? 10.8.* et 10.9.* ?)

Merci pour les réponses en tout cas.

personne n’a une idée ?
j’ai mis un truc en place en suivant mon raisonnement du dessus, mais ça donne une gestion des IPs très complexe (juste pour 3 serveurs) alors j’ai du mal à imaginer plus de serveurs mis en treilli…

aller, je continue mon monologue avec une petite question :

Quand je fais un ifconfig, j’obtiens le résultat suiavnt pour l’interface tun0 :

tun0 Lien encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 inet adr:10.8.1.1 P-t-P:10.8.1.2 Masque:255.255.255.255 UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 lg file transmission:100 RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)

C’est la partie inet adr:10.8.1.1 P-t-P:10.8.1.2 qui m’intrigue : à quoi correspondent ces 2 ips (enfin, surtout la P-t-P) ?
Du peu que j’ai trouvé sur google, ça correspondrait au tunnel… mais quand je fais un ssh user@ip, ça ne marche que sur les ip de “inet adr” et pas sur les “P-t-P”.

PS : pour répondre à mes précédentes question, on peut peut être utiliser l’option “ifconfig ip1, ip2”, mais j’aimerais déjà éclaircir ce point ci (P-t-P) avant d’aller plus loin…

toujours pas d’idée ?

Euh là, je dois dire que je ne comprends rien de ce que tu veux faire.

en gros, je veux que chaque site (un pc par site) sur le vpn puisse communiquer directement avec n’importe lequel des autres sites sans que le flux passe par un serveur unique

si j’ai bien compris, je veux faire ce que tu appelles un “treilli”, mais je n’y arrive pas…

Tu mets en place un premier V autour de PC1 (Serveur, IP 10.8.0.1/24), PC2 et PC3 s’y connectent en prenant les adresses respectives (tun0/PC2)10.8.0.2/24 et (tun0/PC3) 10.8.0.3/24 (attribuées ou non par PC1, mais fixe pour chaque machine).
Ensuite tu fermes le triangle avec PC3 (client, (tun1/PC3) 10.8.1.3/24) se connectant sur PC2 (serveur, (tun1/PC2) 10.8.1.2).
donc sur
PC1: tun0=10.8.0.1/24
PC2: tun0=10.8.0.2/24
tun1=10.8.1.2/24
PC3: tun0=10.8.0.3/24
tun1=10.8.1.3/24
tu les mets tous en ip_forward, et
sur PC2 tu ajoutes une route pour faire passer le traffic vers 10.8.0.3 par 10.8.1.3/tun1
sur PC3 tu ajoutes une route pour faire passer le traffic vers 10.8.0.2 par 10.8.1.2/tun1

je teste ça ce soir !

Merci

attention !
j’ai bien dit du /24 partout (càd 255.255.255.0 comme netmask).

bien vu pour le attention… j’aurais mis du 8…