web-dev-qa-db-fra.com

Garde-fil - Comment tuer seulement une partie du trafic

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

2
Symeof

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:

1
Trigus