Estou experimentando o Wireguard VPN e, embora acredite que finalmente consegui conectar, não tenho acesso à Internet e não consigo pingar vários sites na Internet.
Peguei um arquivo .conf do Wireguard fornecido pelo meu fornecedor de VPN, renomeei-o e copiei-o para /etc/wireguard/wg0.conf.
[Interface]
PrivateKey = redacted
ListenPort = 51820
Address = redacted/32
DNS = 10.100.0.1
[Peer]
PublicKey = redacted
PresharedKey = redacted
AllowedIPs = 0.0.0.0/0
Endpoint = redacted:51820
PersistentKeepalive = 25
Se eu fizer sudo wg-quick up wg0
isso, parece conectar, mas não tenho acesso à Internet.
$ sudo wg-quick up wg0
[#] ip link add wg0 type wireguard
[#] wg setconf wg0 /dev/fd/63
[#] ip -4 address add redacted/32 dev wg0
[#] ip link set mtu 1420 up dev wg0
[#] resolvconf -a tun.wg0 -m 0 -x
[#] wg set wg0 fwmark 51820
[#] ip -4 route add 0.0.0.0/0 dev wg0 table 51820
[#] ip -4 rule add not fwmark 51820 table 51820
[#] ip -4 rule add table main suppress_prefixlength 0
[#] sysctl -q net.ipv4.conf.all.src_valid_mark=1
[#] iptables-restore -n
$ sudo wg show
interface: wg0
public key: redacted
private key: (hidden)
listening port: 51820
fwmark: 0xca6c
peer: redacted
preshared key: (hidden)
endpoint: redacted:51820
allowed ips: 0.0.0.0/0
transfer: 0 B received, 2.89 KiB sent
persistent keepalive: every 25 seconds
Eu tentei desabilitar o firewall sem sorte. Eu tentei sysctl -w net.ipv4.ip_forward=1
sem sorte.
Todas as idéias por que não há Internet?
Tenho sucesso na solução de problemas de links do Wireguard analisando os principais pontos da configuração:
Os endpoints do wireguard são reiniciados para que ambos reconheçam as outras teclas laterais e não gerem mensagens de erro?
O intervalo da rede VPN é diferente de todos os intervalos presentes nos endpoints para que a VPN possa ter sua própria rede separada?
Os firewalls locais estão permitindo a entrada de tráfego através das portas UDP usadas em cada nó?
Cada nó tem um endereço IP exclusivo no intervalo da VPN?
As máscaras do endereço/intervalo IP da VPN permitem a visibilidade dos nós necessários?
Se o endereço DNS estiver configurado, o servidor está acessível e respondendo diretamente ou por meio de intervalos permitidos pela VPN?
O endpoint declarado no peer é acessível diretamente por ele?
As rotas criadas no peer por sua linha de IPs Permitidos estão se referindo a ranges presentes no outro lado do link?
As regras de firewall adicionadas pelo wg-quick permitem tráfego através/da VPN e intervalos de IP locais/remotos?
A variável ip_forward do kernel está habilitada?
O NAT no tráfego de saída é necessário?
Notas
Diretamente : Não usando a VPN.
Intervalo de VPN : O intervalo de IP selecionado para a linha de endereço do peer e a máscara de todos os nós.
Cada uma das perguntas requer regras/técnicas diferentes para testar/resolver, mas é necessário algum conhecimento de endereçamento IP e acesso a ferramentas de rede como
ping
,nmap
ounslookup/dig
e os comandos correspondentes do sistema operacional para solicitar o status atual da rede de endereços de interface, rotas e firewall. Algumas ações podem ser:2,4,5,8. Calcule os intervalos de endereços IP para todos os intervalos/máscaras envolvidos e desenhe um diagrama indicando como eles estão interconectados e como o tráfego fluirá entre eles. Verifique se há inconsistências.
3,9. Verifique o firewall atual usado (iptables, ufw, nftables, etc.) e as regras atualmente aplicadas.
Use
dig
ou para verificar a resolução do DNS (nslookup
cada comando para aumentar a verbosidade, se necessário).host
man
A linha Endpoint deve usar um endereço IP público ou um diretamente acessível sem usar a VPN.
Último, 11.( Tive que adicionar a palavra "Último" para evitar a renumeração automática de "11" para "8" ) Se os hosts remotos (além do nó de peer remoto) aos quais queremos ter acesso não tiverem rotas para nosso endereço IP local/intervalo através do nó VPN/peer, então precisamos da tradução NAT no peer.
Por exemplo, se precisarmos rotear todo o tráfego através da VPN, o nó de peer remoto deve fazer NAT de todo o tráfego direcionado à Internet da VPN para que os hosts remotos, como Google/Facebook, respondam diretamente ao peer e, assim, os dados possam ser reencaminhados corretamente para nós.
Obtive um novo arquivo .conf wireguard do meu fornecedor de VPN, usando um nome de host de peer diferente (correto), e meu teste inicial indica que está funcionando agora.