Est-il possible de configurer le serveur fil-câble de sorte que seule une liste d'IPS [A, B, C, ...] soit tunnelé via WireGuard - tandis que le reste du trafic est ignoré et passe par l'interface non métallique?
Dit différemment, j'essaie de donner accès à un VPN WireGuard à certaines personnes externes, mais je ne veux pas qu'ils puissent utiliser le VPN pour parcourir d'autres ips/sites que celui que j'ai spécifié (tout en les laissant à ce qu'ils soient. vouloir sur leur propre interface/connexion non VPN.
Merci
Vous pouvez utiliser iptables.
[.____] remplacer eth0
Avec l'interface réseau qui se connecte à Internet et 10.6.0.1/24
Avec votre sous-réseau clientèle.
Insérez cela quelque part dans votre configuration métallique ci-dessous [Interface]
# Drop all outgoing packets from the client subnet
PreUp = iptables -I FORWARD -s 10.6.0.1/24 -o eth0 -j DROP
## Add your exceptions here
Par example:
[Interface]
PrivateKey = ...
Address = 10.6.0.1/24
MTU = 1420
ListenPort = 51820
## Before interface wg0 is up
# Drop all outgoing packets from the client subnet
PreUp = iptables -I FORWARD -s 10.6.0.1/24 -o eth0 -j DROP
# Allow clients to connect to the local network 192.168.0.1/24
PreUp = iptables -I FORWARD -s 10.6.0.1/24 -d 192.168.0.1/24 -j ACCEPT
# Allow clients to connect to tcp port 80 (usually http) on 10.10.0.5
PreUp = iptables -I FORWARD -s 10.6.0.1/24 -d 10.10.0.5 -p tcp --dport 80 -j ACCEPT
## After interface wg0 is down
PostDown = iptables -D FORWARD -s 10.6.0.1/24 -o eth0 -j DROP
PostDown = iptables -D FORWARD -s 10.6.0.1/24 -d 192.168.0.1/24 -j ACCEPT
PostDown = iptables -D FORWARD -s 10.6.0.1/24 -d 10.10.0.5 -p tcp --dport 80 -j ACCEPT
[Peer]
...
Pour une expérience transparente du côté du client, vous devez également configurer le AllowedIPs
dans la configuration du client. Sinon, les clients essaieront d'utiliser le VPN pour accéder à Internet et que ces demandes seront exactes.
Après l'exemple ci-dessus, la configuration du client pourrait ressembler à ceci:
[Interface]
PrivateKey = ...
Address = 10.6.0.2/24
DNS = 10.6.0.1
[Peer]
PublicKey = ...
AllowedIPs = 192.168.0.1/24, 10.10.0.5
Endpoint = ...
PresharedKey = ...
Documentation: