Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 04/06/2023, à 22:24

crocodudule

[RESOLU] Wireguard: imposer que le client utilise son accès internet

[TITRE ORIGINAL: VPN Wireguard: imposer que les clients utilisent leurs accès internet]

Bonjour à tous.

J’ai monté un serveur VPN Wireguard qui fonctionne très bien (j’arrive à « pinguer » le serveur depuis les clients et inversement, et effectivement, il n’y a pas photo s’agissant des performances par rapport à OpenVPN).

Néanmoins, je constate une difficulté ; les clients ressortent sur internet avec l’IP publique de l’accès à internet du serveur (et donc utilisent l’accès à internet du serveur) alors que je souhaitent qu’ils utilisent leurs accès.

J’ai monté ce petit VPN pour dépanner à distance la famille et des amis, pas pour qu’ils utilisent mon accès à internet.

Je n’arrive pas à identifier dans la configuration le paramètre qui fait que les clients utilisent mon accès à internet.

A mon avis, cela vient des règles IpTables qui routent tout vers le serveur, mais hélas je n'ai jamais compris grand chose à IpTables...

Merci de votre aide smile

- Serveur :
Raspberry pi 4 – 2g sous Ubuntu (22.04.2 LTS)
Forwarding d’ip activé ( sysctl -w net.ipv4.ip_forward=1  , puis   sysctl -p )
Fibre optique (chez free)
Plage IP réseau local : 192.168.0.X

. configuration :

[Interface]
Address = 10.5.5.1/32
PrivateKey = CLEF-PRIVEE-SERVEUR
ListenPort = 51820
# On exécute les commandes d'ajout des règles lorsque le VPN démarre
PostUp = sysctl -w net.ipv4.ip_forward=1 ; sysctl -p ; iptables -A FORWARD -i %i -j ACCEPT ; iptables -A FORWARD -o %i -j ACCEPT ; iptables -t nat -A POSTROUTING -s 10.5.5.0/32 -o eth0 -j MASQUERADE
# Et on rajoute des commandes pour les supprimer lorsque le VPN est éteint
PostDown = iptables -D FORWARD -i %i -j ACCEPT ; iptables -D FORWARD -o %i -j ACCEPT ; iptables -t nat -D POSTROUTING -s 10.5.5.0/32 -o eth0 -j MASQUERADE

[peer]
PublicKey = CLEF-PUBLIQUE-CLIENT
AllowedIPs = 10.5.5.2/32

- Client :
PC sous Windows 10 (64bits)
Fibre optique (chez orange)
Plage IP réseau local : 192.168.10.X

. configuration client :

[Interface]
PrivateKey = CLEF-PRIVEE-CLIENT
Address = 10.5.5.2/32

[Peer]
PublicKey = CLEF-PUBLIQUE-SERVEUR
AllowedIPs = 192.168.10.0/0, 0.0.0.0/1, 128.0.0.0/1
Endpoint = domaine.serveur:51820
PersistentKeepalive = 25

Dernière modification par crocodudule (Le 09/06/2023, à 11:38)

Hors ligne

#2 Le 04/06/2023, à 22:54

geole

Re : [RESOLU] Wireguard: imposer que le client utilise son accès internet

Bonsoir.
Sauf erreur de ma part la fonctionnalité de base d'un VPN est de fournir sa propre adresse IP au destinataire du message au lieu de la vraie adresse IP du demandeur.
Pas mal de sites fournisseurs d'information savent voir cette arnaque.


Les grilles de l'installateur https://doc.ubuntu-fr.org/tutoriel/inst … _subiquity
"gedit admin:///etc/fstab" est proscrit,  utilisez "pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY xdg-open /etc/fstab" Voir  https://doc.ubuntu-fr.org/gedit
Les partitions EXT4 des disques externes => https://forum.ubuntu-fr.org/viewtopic.p … #p22697248

Hors ligne

#3 Le 04/06/2023, à 23:10

crocodudule

Re : [RESOLU] Wireguard: imposer que le client utilise son accès internet

geole a écrit :

Bonsoir.
Sauf erreur de ma part la fonctionnalité de base d'un VPN est de fournir sa propre adresse IP au destinataire du message au lieu de la vraie adresse IP du demandeur.
Pas mal de sites fournisseurs d'information savent voir cette arnaque.

Bonsoir,

Non, un VPN n'a pas pour fonction première de faire passer tout le trafic d'un poste vers le serveur pour utiliser son IP publique, cet usage est devenu populaire pour contourner certaines limitations géographiques ou masquer sa véritable IP (ne comprenant d'ailleurs pas pourquoi il n'est pas plutôt utilisé des proxy+anonymisation des headers pour cela), mais l'objet premier d'un VPN c'est (comme son nom l'indique) de créer un réseau local virtuel pour sécuriser les échanges entre postes. (Par exemple, j'ai utilisé des années Hamachi, OpenVPN ou encore Neorouter sans que les clients utilisent l'accès internet de mon serveur).

A mon avis, dans ma configuration les paramètres IPTables sont en cause et routent tout sur le serveur, mais je n'ai jamais réussi à vraiment comprendre les règles d'IPTables donc je ne sais pas quoi modifier.

Dernière modification par crocodudule (Le 04/06/2023, à 23:21)

Hors ligne

#4 Le 09/06/2023, à 11:36

crocodudule

Re : [RESOLU] Wireguard: imposer que le client utilise son accès internet

Autoréponse:

En réalité IpTables n'y est pour rien, c'est dans la configuration du client qu'il faut restreindre dans "AllowedIPs" les plages IP (ou IP) que le tunnel Wireguard traite :

. configuration client corrigée :

[Interface]
PrivateKey = CLEF-PRIVEE-CLIENT
Address = 10.5.5.2/32

[Peer]
PublicKey = CLEF-PUBLIQUE-SERVEUR
AllowedIPs = 10.5.5.0/24, 192.168.10.0/32
Endpoint = domaine.serveur:51820
PersistentKeepalive = 25

En limitant les IP autorisées au réseau virtuel de Wireguard (10.5.5.0/24) et au réseau local du client (192.168.10.0/32), le client ressort bien avec l'IP publique de son accès à internet et non celui du serveur.

Néanmoins, si quelqu'un a une formule générique pour désigner la plage d'IP locale je suis preneur, ça permet d'éviter de devoir vérifier la plage d'IP locales du client avant de lui transmettre la configuration. Merci smile

Dernière modification par crocodudule (Le 09/06/2023, à 11:45)

Hors ligne