Criar um túnel VPN com Android usando FreeBSD + WireGuard
Olá, sou um inútil.
No artigo anterior, eu apenas postei os resultados de velocidade, mas aqui estão os passos para criar um túnel.
Não encontrei nenhum outro artigo em japonês sobre isso, então estou registrando aqui.
WireGuard
Lado do smartphone (cliente)
É necessário gerar as chaves do WireGuard no lado do PC.
wg genkey | tee private.key
wg genpsk | tee psk.key
Se você criar apenas a chave privada, a chave pública será exibida no aplicativo WireGuard do smartphone, então não há problema em não criá-la aqui.
Alternativamente, você pode criá-la junto com wg genkey | tee private.key | wg pubkey > pub.key.
Uma vez que você transfere esta chave para o smartphone, no aplicativo WireGuard do smartphone:
Chave privada = Conteúdo de private.key
Chave pré-compartilhada = Conteúdo de psk.key
Endereço = IP para comunicação, desta vez usaremos `10.1.0.4/32`
Endpoint = IP global do servidor WireGuard:51820
Allowed IPs = 0.0.0.0/0 , ::/0 # Todo o tráfego via VPN
Insira isso e certifique-se de que a chave pública gerada neste momento possa ser enviada ou colada no lado do servidor.
Lado do PC (servidor)
Primeiro, assumindo que o WireGuard está instalado, adicione um Peer no final.
[Peer]
PublicKey = Chave pública exibida após inserir private.key no lado do smartphone, ou conteúdo de pub.key
PreSharedKey = Conteúdo de psk.key
AllowedIPs = 10.1.0.4/32
PersistentKeepalive = 25
Com isso, execute wg quick up wg0. Se o VPN estiver ativado no smartphone e a transferência estiver funcionando, está tudo bem. No entanto, como o tráfego só pode ocorrer dentro do túnel WireGuard, é necessário criar regras NAT.
FreeBSD
Primeiro, ative o encaminhamento de porta para IPv4 e IPv6.
vi /etc/sysctl.conf
Adicione o seguinte:
net.inet.ip.forwarding=1
net.inet6.ip6.forwarding=1
Em seguida, reinicie.
E crie regras com pf.
vi /etc/pf.conf
E adicione o seguinte:
wireguard_clients=10.1.0.4
wanint="vtnet0"
wg_ports="{51820}"
nat on $wanint inet from $wireguard_clients to any -> $wanint
pass in on $wanint proto udp from any to $wanint port $wg_ports
pass out quick
Em seguida, ative:
pfctl -nf /etc/pf.conf
Se não houver erros:
pfctl -f /etc/pf.conf
Isso aplicará as regras.
Verifique se o endereço IP é o do servidor, e se o endereço IP é o do servidor WireGuard no site simples e útil de Takashi-san.
bibi.moe/ip
Isso é tudo.
Se você conseguir fazer isso, será muito conveniente, pois poderá acessar a rede da sua casa a partir do navegador do seu smartphone se os serviços que você executa no ambiente local também estiverem sendo proxy para a rede WireGuard com o servidor doméstico conectado via VPN. Até a próxima. Obrigado.