Wireguard

Instalação

No Servidor

Atualize os repositórios e instale o Wireguard e o iptables em seu servidor:

apt update
apt install wireguard iptables

Habilite o IPv4 Forwarding tirando o comentário (#) na seguinte linha no arquivo /etc/sysctl.d/99-sysctl.conf

net.ipv4.ip_forward=1

Agora iremos aplicar as mudanças

sysctl -w net.ipv4.ip_forward=1

No Cliente

Agora no cliente vamos precisar das Ferramentas do Wireguard

apt install wireguard-tools

E então, criaremos chaves públicas e privadas para sua máquina:

bash -c "umask 077 ; wg genkey > /etc/wireguard/client_priv.key"
bash -c "wg pubkey < /etc/wireguard/client_priv.key > /etc/wireguard/client_pub.key"

Voltando para o Servidor

Vamos agora gerar chaves públicas e privadas para o servidor

umask 077 ; wg genkey > /etc/wireguard/server_priv.key
wg pubkey < /etc/wireguard/server_priv.key > /etc/wireguard/server_pub.key

Também criaremos um arquivo de configuração em /etc/wireguard/wg0.conf, onde wg será o nome sua interface.

Você pode colocar o que quiser, seja casa0.conf ou trampo.conf, o importante é lembrar para depois.

Importante mencionar que você deve trocar eth0 nas Regras do Firewall pela sua interface de rede de preferência.

[Interface]
Address = 192.168.2.1/24
ListenPort = 51820
PrivateKey = (CHAVE PRIVADA DO SERVIDOR VAI AQUI)
# Regras de Firewall
# Lembre de trocar *eth0* pela sua interface de rede!
# Na dúvida, cheque pelo comando: `ip a`
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

[Peer]
# Informações do Cliente aqui 
PublicKey = (CHAVE PÚBLICA DO CLIENTE VAI AQUI)
# Rota do cliente aqui
# Pode ser outro número em vez de 69,
# mas é importante estar na mesma rede 192.168.2.0
# que você decidiu anteriormente
AllowedIPs = 192.168.2.69/32

Preste bastante atenção ao substituir as chaves privadas e públicas tanto do cliente quanto do servidor.

Se você está seguindo o guia minuciosamente, a chave privada de seu servidor deve estar em /etc/wireguard/server_priv.key

Caso você queira adicionar mais clientes, nesta rede de exemplo poderiamos utilizar até 254 clientes. Para fazê-lo é só copiar a parte [Peer] e substituir a PublicKey e AllowedIPs conforme necessário. Não mude o 32, já que isso garante que cada túnel será isolado.

Agora iremos habilitar e iniciar o serviço do Wireguard.

systemctl enable --now wg-quick@wg0.service

Lembrando que o wg0 é o nome da interface que você colocou no arquivo de configuração.

Novamente no Cliente

Crie outra configuração em /etc/wireguard/vpndaora.conf:

[Interface]
Address = 192.168.2.69/24
PrivateKey = (CHAVE PRIVADA DO CLIENTE AQUI)
# Seu servidor de DNS preferido aqui 
# DNS = 9.9.9.9

[Peer]
PublicKey = (CHAVE PÚBLICA DO SERVIDOR AQUI)
# Endpoint
# Pode tanto ser um domínio ou um IP que aponte para seu servidor.
Endpoint = (IP DO SEU SERVIDOR AQUI):51820
# Rota do servidor aqui 
AllowedIPs = 0.0.0.0/0, ::/0

Preencha suas informações onde necessário, e utilize o IP público do seu servidor, não o da rede do wireguard.

Inicie o Wireguard em seu cliente:

sudo wg-quick up myvpn

Se tudo estiver configurado corretamente, você deverá conseguir pingar o 192.168.2.1 (ou o IP que você configurou a interface do wireguard), você pode estar atrás de uma rede corporativa, então vamos precisar utilizar um Túnel de WebSocket para camuflar nosso tráfego.

Related
Service