WireGuard: além da configuração básica
(sloonz.github.io)-
Configuração básica
- Compartilhando a experiência da tentativa de substituir o OpenVPN pelo WireGuard.
- Resumo da configuração básica:
- Gerar um par de chaves para o servidor e outro para o cliente.
- Definir a rede VPN e os endereços IP.
- Escrever e executar os arquivos de configuração do servidor e do cliente.
- É possível separar a VPN e a conexão com a internet usando namespaces de rede.
-
NAT
- Resolvendo problemas de alguns aplicativos que não funcionam atrás de NAT.
- É possível resolver problemas de NAT usando UPnP.
- Como o WireGuard não oferece suporte a UPnP por padrão, é necessária configuração manual.
- É possível adicionar funcionalidade de UPnP instalando e configurando
miniupnpd.
-
IPv6
- Uma forma melhor de resolver problemas de NAT é não usar NAT.
- Com IPv6, é possível atribuir endereços publicamente roteáveis sem NAT.
- Ao atribuir endereços IPv6 ao servidor e ao cliente, é possível se comunicar sem NAT.
- Com a configuração de IPv6, é possível acessar a partir da internet pública sem UPnP.
1 comentários
Comentários no Hacker News
Está tentando configurar um servidor pessoal e oferecer serviços acessíveis pela web. Conseguiu usar o Caddy para mapear subdomínios para os serviços, mas o Tailscale Magic DNS não oferece suporte a subdomínios. Quer configurar o pihole para criar um servidor DNS privado e pergunta se isso é uma limitação do WireGuard
Encontrou um site útil para configurar o WireGuard: Procustodibus Wireguard Topologies
Ao configurar um registro DNS dinâmico para mapear um hostname para o IP dinâmico da rede doméstica, passa a ser possível usar uma VPN privada. Assim, dá para acessar serviços locais remotamente sem expô-los à internet pública
Existe o equívoco de que NAT é obrigatório ao usar WireGuard. Na prática, o roteamento normal entre sub-redes funciona bem se o host de destino reconhecer o servidor WireGuard como gateway. Basta configurar uma rota estática no roteador principal
Pergunta se existe algum bom livro sobre os princípios, a implementação e a configuração do WireGuard. Diz que há muitos livros sobre IPSEC, mas poucos sobre WireGuard
Acha estranho não haver uma maneira fácil de tunelar todo o tráfego no WireGuard exceto para determinados IPs. Seria necessário gerar programaticamente uma lista de todos os CIDRs, excluindo os IPs específicos
Sente falta de um recurso de RBAC. O WireGuard é mais rápido que o OpenVPN, mas por causa do RBAC precisa usar OpenVPN para funcionários e contratados
Está usando WireGuard com IPv6, mas a funcionalidade de delegação de prefixo IPv6 não funciona. Gostaria que os dispositivos pudessem escolher e alterar seus próprios endereços como em uma sub-rede Ethernet comum
Não conseguiu fazer o port forwarding funcionar corretamente no WireGuard sem masquerading. Para preservar o IP de origem, precisa adicionar
0.0.0.0/0em AllowedIPs, mas isso impede que as respostas da aplicação retornem à origemEstá construindo a infraestrutura com base em IPv6. Quer aproveitar a criptografia moderna e o design sem estado do WireGuard, mas sem adotar o esquema de endereçamento do WireGuard, mantendo o esquema de endereços IPv6