Quero configurar um servidor VPN para que a conexão VPN seja usada apenas ao acessar recursos dentro do servidor. Normalmente, eu faria isso usando o IP interno do servidor, mas quero usar o nome de domínio para acessar este servidor.
Existem algumas maneiras de conseguir isso:
Use um servidor DNS personalizado
Vincule outro IP a este servidor
Definido
Endpoint
como igualAllowedIPs
ao "cliente" (estou ciente de que o wg não usa arquitetura servidor-cliente, mas é mais fácil para mim entender dessa forma). Por exemplo:# client [Interface] PrivateKey = ... Address = 10.0.0.2/24 [Peer] PublicKey = ... AllowedIPs = 1.2.3.4/32 Endpoint = 1.2.3.4:51820
Resumindo, a opção 3 funciona melhor para o meu caso de uso, mas causaria um loop na tabela de roteamento. Depois de fazer algumas pesquisas (seção "Roteamento baseado em regras aprimorado" na página wireguard e nesta solução ), aprendi que usar FwMark
a configuração do "servidor" pode resolver o problema.
Então eu pensei nisso:
# server
[Interface]
PrivateKey = ...
ListenPort = 51820
Address = 10.0.0.1/24
FwMark = 51820
PostUp = ip route add default dev wg0 table 2468
PostUp = ip rule add not fwmark 51820 table 2468
PostDown = ip route del default dev wg0 table 2468
PostDown = ip rule del not fwmark 51820 table 2468
[Peer]
...
Escusado será dizer que isso não funciona (tanto a VPN quanto a comunicação direta expiram, então acho que errei a regra de roteamento). Minhas perguntas são:
- Por que isso não funciona?
- A configuração
FwMark = 51820
na configuração do "servidor" marca os pacotes roteados da VPN? Ou preciso de algo parecidoPostUp = wg set wg0 fwmark 51820
? - O que acontece se eu substituir
2468
pordefault
,main
ou mesmolocal
? Acho que não entendo por que o documento oficial teve que definir uma nova tabela para isso.
Obrigado
EDIT: Corrija erro de digitação na porta