Preciso que alguns dos clientes tenham acesso a internet quando conectados através do wireguard, e alguns só vejam a rede local para acesso ao samba, mas sem acesso a internet. Eu tenho Centos
com configurações padrão que tirei da Internet
wg0.conf
[Interface]
Address = 10.8.0.1/24
PrivateKey = SERVER_PRIVATE_KEY
ListenPort = 35053
[Peer]
PublicKey = CLIENT_PUBLIC_KEY
AllowedIPs = 10.8.0.2/32
Para obter acesso à internet para um cliente que se conecta ao wireguard, faço o seguinte
vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
sysctl -p
firewall-cmd --permanent --zone=public --add-port=35053/udp
firewall-cmd --permanent --zone=public --add-masquerade
firewall-cmd --reload
Eu adiciono isso no cliente e tudo funciona bem, eu me conecto no servidor e o cliente tem internet, ele também tem acesso a rede local do servidor e samba
client.conf
[Interface]
PrivateKey = CLIENT+PRIVATE_KEY
Address = 10.8.0.2/24
DNS = 1.1.1.1
[Peer]
PublicKey = SERVER_PUBLIC_KEY
AllowedIPs = 0.0.0.0/0
Endpoint = SERVER_IP:35053
PersistentKeepalive = 20
Como posso adicionar outro cliente para que ele tenha acesso a rede local e samba, mas não tenha acesso a internet através de mascaramento?
Tentei adicionar outra interface wireguard wg2
que só funcionaria na rede local. Isso não funciona, pois o public zone
já possui mascaramento e está sendo aplicado ao wg2
. Você pode comprar outro IP externo e funcionará, mas talvez existam outras soluções?
Dê uma olhada aqui: https://unix.stackexchange.com/a/714015/537971
Basicamente, no lado do servidor, você precisa adicionar seu LAN CIDR a,
AllowedIPs = 10.8.0.2/32
por exemplo:AllowedIPs = 10.8.0.2/32, 192.168.1.0/24
.A segunda instância do Wireguard deve ter um CIDR diferente
10.9.0.0/24
e o mascaramento deve ser configurado para apenas um CIDR e Interface, exemplo iptables:iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -j MASQUERADE
ouiptables -t nat -A POSTROUTING -i wg0 -o eth0 -j MASQUERADE
Você deve tentar imitar esse comportamento no firewalld ou se livrar dele em tal configuração com requisitos complexos.