Puteți folosi iptables.
A inlocui eth0
cu interfața de rețea care se conectează la internet și 10.6.0.1/24
cu subrețeaua dvs. client.
Introduceți acest lucru undeva în configurația Wireguard de mai jos [INTERFACE]
# Eliminați toate pachetele de ieșire din subrețeaua client
PreUp = iptables -I FORWARD -s 10.6.0.1/24 -o eth0 -j DROP
## Adăugați aici excepțiile dvs
De exemplu:
[Interfață]
PrivateKey =...
Adresa = 10.6.0.1/24
MTU = 1420
ListenPort = 51820
## Înainte ca interfața wg0 să fie activată
# Eliminați toate pachetele de ieșire din subrețeaua client
PreUp = iptables -I FORWARD -s 10.6.0.1/24 -o eth0 -j DROP
# Permiteți clienților să se conecteze la rețeaua locală 192.168.0.1/24
PreUp = iptables -I FORWARD -s 10.6.0.1/24 -d 192.168.0.1/24 -j ACCEPT
# Permite clienților să se conecteze la portul tcp 80 (de obicei http) pe 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
## După ce interfața wg0 este oprită
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]
...
Pentru o experiență perfectă din partea clientului, trebuie, de asemenea, să configurați IP-uri permise
în configurația clientului. În caz contrar, clienții vor încerca să folosească VPN-ul pentru a accesa internetul și acele solicitări vor expira.
Urmând exemplul de mai sus, configurația clientului ar putea arăta astfel:
[Interfață]
PrivateKey =...
Adresa = 10.6.0.2/24
DNS = 10.6.0.1
[Peer]
PublicKey =...
IP-uri permise = 192.168.0.1/24, 10.10.0.5
Punct final =...
PresharedKey =...
Documentație: