Configurer la sortie du trafic d'un client Wireguard par un pair ou par sa passerelle locale

Laisser le choix au client d'un point de sortie de son trafic tout en le connectant au VPN

Le problème exposé dans ce sujet a été résolu.

Bonjour à tous !

J’administre un petit réseau privé virtuel sur lequel tournent différents services bien à l’abri de l’Internet mondial. Initialement, je souhaitais que les clients puissent accéder à Internet au travers d’un pair Wireguard (le hub) configuré à cet effet afin de bénéficier d’une connection sécurisée en particulier sur des réseaux publics lorsque ils activent l’interface WG. Tout allait bien dans le meilleur des mondes mais un nouveau besoin émerge: accéder aux services dans le réseau du VPN tout accédant aux Internet depuis le réseau où le client est connecté sans voir son trafic re-dirigé dans le pair «hub».

Ainsi je me pose la question: est ce que cela est possible ?

Je pensais simplement changer la configuration de pair «hub» afin de ne plus forcer le trafic des pairs connectés par lui mais cela empêcherais les clients qui le désire de conserver une connection sécurisée à l’Internet…

Comment concilier ces deux mondes ?

Pensez vous que la création de deux interfaces puisse résoudre le problème (une dont le trafic est redirigé, l’autre pas) ? À toutes fins utiles, je voici ma configuration Wireguard. Je précise que mes connaissances en réseau sont limités, peut être ma question relève d’une impossibilité technique, bref. En vous remerciant de m’avoir lu :).

# server-config
[Interface]
Address = 10.5.0.1/24
PostUp = ufw route allow in on wg0 out on enp2s0
PostUp = iptables -t nat -I POSTROUTING -o enp2s0 -j MASQUERADE
PostUp = ip6tables -t nat -I POSTROUTING -o enp2s0 -j MASQUERADE
PreDown = ufw route delete allow in on wg0 out on enp2s0
PreDown = iptables -t nat -D POSTROUTING -o enp2s0 -j MASQUERADE
PreDown = ip6tables -t nat -D POSTROUTING -o enp2s0 -j MASQUERADE
ListenPort = 51820
PrivateKey = kkkkkk

[Peer]
PublicKey = <pubkey>
AllowedIPs = 10.5.0.2/32
Endpoint = 192.168.1.10:38080
# client-config
[Interface]
Address = 10.5.0.2/24
PrivateKey = <privkey>
DNS = 81.62.134.41
SaveConfig = false

[Peer]
PublicKey = <pubkey>
Endpoint = 192.168.1.10:38080
AllowedIPs = 0.0.0.0/0, ::0/0
+0 -0

Hello, tu cherches à diriger quel trafic vers quelle(s) destination(s) au juste ?

viki53

Je cherche à offrir aux clients la possibilité d’accéder au service internes au VPN et:

  • à internet au travers du pair hub (aujourd’hui c’est la seule possibilité grâce à l’IP forwarding active et les règles ligne 4, 5 et 6 de server-config) ou
  • à internet par "l’interface locale" du client

selon son choix.

Et tes règles sortantes ressemblent à quoi sur ton réseau ?

viki53

Le pair «hub» est derrière un NAT: il n’y a pas de restrictions exceptés les règles iptable que tu peux voir dans config-server.

Tes clients dirigent que certains blocs d’IP vers ton VPN ou tout leur trafic ?

viki53

Tout leur trafic: c’est le rôle de la ligne 11 de client-config me semble -t-il :) :

AllowedIPs = 0.0.0.0/0, ::0/0

Salut, ce que tu veux faire c’est du split tunneling et apparemment ça se fait simplement en mettant le subnet derrière ton VPN dans les AllowedIPs.

Fantasio

En effet, cela y ressemble beaucoup Fantasio ^^ . De ce que j’en comprend, c’est le paramètre AllowedIPs qui permet de définir les destinations qui seront accédées par le pair hub ou non.

J’essaie cette configuration et je poste le résultat dès que possible !

Merci pour vos réponses.

PS: j’utilise le terme pair hub pour parler du serveur suite à la lecture de cet article n’hésitez pas à me faire savoir se cet usage est impropre dans ce contexte.

En effet: il suffit de changer le paramètre AllowedIPs dans la configuration du pairs afin que l’interface Wireguard ne route que le trafic qui leur est destinée vers ces hôtes, dans mon cas la configuration du client devient: 

# client-config
[Interface]
Address = 10.5.0.2/24
PrivateKey = <privkey>
DNS = 81.62.134.41
SaveConfig = false

[Peer]
PublicKey = <pubkey>
Endpoint = 192.168.1.10:38080
AllowedIPs = 10.5.0.0/24 # au lieu de 0.0.0.0/0, ::0/0

et le tour est joué.

Merci :D

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte