[TUTORIAL] - Wireguard - VPN
OBSERVAÇÕES
Procedimentos realizados e testados no CentOS 8, Fedora 31, Fedora 32 Beta e OpenSuse 15 Leap e até Windows 10.
Apenas no Fedora 31 houve problema, para subir o modulo do wireguard.
Todos os comandos devem ser executados com usuario root.
WIREGUARD SERVIDOR
https://www.wireguard.com/
INSTALAÇÃO
1 - Instalar repositorios elrepo e epel.
$ yum install elrepo-release epel-release
2- Instalar modulo e ferramenta wireguard.
$ yum install kmod-wireguard wireguard-tools
3 - Verifique se o modulo WireGuard foi carregado.
$ modprobe wireguard
GERANDO CHAVES PÚBLICAS E PRIVADAS NO SERVIDOR
1 - Criar diretorio para armazenamento.
$ mkdir -p /etc/wireguard/keys
2 - Alterar umask na pasta.
$ cd /etc/wireguard/keys
$ umask 077
3 - Criar a chave pública e privada.
A criação da chave privada é feita wg genkeye a chave pública é gerada através do pipeline wg pubkey.
$ wg genkey | tee privatekey | wg pubkey > publickey
CONFIGURANDO O SERVIDOR WIREGUARD
O primeiro passo é escolher um intervalo de IPs que será usado pelo servidor.
Para este tutorial, usaremos o 10.0.1.0/24.
O servidor terá o seguinte endereço IP: 10.0.1.1.
Também é necessário escolher uma porta, que será exposta publicamente, para o servidor escutar.
Aqui estará 8999. Observe que a porta de documentação padrão geralmente é 51820.
1 - Crie o arquivo /etc/wireguard/wg0.conf com o seguinte conteúdo:
$ vim /etc/wireguard/wg0.conf
[Interface]
PrivateKey = Cole aqui a chave privada do servidor
Address = 10.0.1.1/24
ListenPort = 8999
INICIANDO O SERVIDOR WIREGUARD
1 - Agora que tudo está configurado, você pode iniciar o servidor WireGuard.
$ wg-quick up wg0
2 - Ativar o início do WireGuard no momento da inicialização.
$ systemctl enable wg-quick@wg0.service
3 - Verificar a conexão com o wg comando (cliente ou servidor).
$ wg
ADICIONAR O CLIENTE NO SERVIDOR
Agora que o cliente está configurado, você precisa adicionar a configuração do cliente no mesmo arquivo do servidor.
$ vim /etc/wireguard/wg0.conf
[Peer]
PublicKey = Cole aqui a chave publica do cliente
AllowedIPs = 10.0.1.2/24
ARQUIVO COMPLETO DO SERVIDOR
$ cat /etc/wireguard/wg0.conf
[Interface]
PrivateKey = Cole aqui a chave privada do servidor
Address = 10.0.1.1/24
ListenPort = 8999
[Peer]
PublicKey = Cole aqui a chave publica do cliente
AllowedIPs = 10.0.1.2/24
OBS: Todo novo cliente você deve adicionar um novo Peer, atribuindo um IP diferente e com a sua chave publica ok.
CLIENTE WIREGUARD
1 - A instalação do cliente é parecida no servidor.
Mas dependendo da distribuição a insta pode mudar, portanto siga: https://www.wireguard.com/install/
2 - A geração de chaves publica e privada é o mesmo processo do que é feito no servidor. Portanto execute o mesmo processo.
3 - A configuração também é parecida, mas muda alguma coisas. Vamos lá.
$ vim /etc/wireguard/wg0.conf
[Interface]
PrivateKey = Cole aqui a chave privada do cliente
Address = 10.0.1.2/24
DNS = 8.8.8.8
[Peer]
PublicKey = Cole aqui a chave publica do servidor wireguard
Endpoint = Cole aqui o IP publico do servidor:8999
AllowedIPs = 10.0.1.0/24
PersistentKeepalive = 25
Obs.: Bora explicar
É bastante semelhante à configuração do servidor.
- A linha DNS especifica o resolvedor de DNS para o cliente.
O Endpoint informa ao WireGuard onde se conectar.
AllowedIPs configura qual intervalo de IPs será encaminhado para o servidor VPN. Se usar 0.0.0.0/0 significa que todo o tráfego do cliente passará pela VPN. Mas ai é preciso adicionar algumas regras no firewall do lado servidor. Se você deseja apenas se comunicar na rede VPN, você pode configurar 10.0.1.0/24.
E se além da rede wireguard você desejar acessar a rede local também ... você pode adicionar mais redes, ficando:
AllowedIPs = 10.0.1.0/24, 192.168.1.0/24.PersistentKeepalive diz ao WireGuard para enviar um pacote UDP a cada 25 segundos, isso é útil se você estiver atrás de um NAT e desejar manter a conexão ativa.
É isso pessoal, achei bem mais simples do que configurar um servidor de OpenVPN.
Fontes
https://www.wireguard.com/install/
https://www.wireguard.com/quickstart/
https://www.digitalocean.com/community/tutorials/how-to-create-a-point-to-point-vpn-with-wireguard-on-ubuntu-16-04
Salas de discussão
- 721 Todas as salas de discussão
- 5 Eventos
- 402 Fedora
- 7 CoreOS
- 137 Spins
- 11 CINNAMON
- 28 GNOME
- 63 KDE
- 10 LXDE
- 4 LXQT
- 13 MATE
- SOAS
- 3 XFCE
- 13 Server
- 84 Workstation
- 33 SilverBlue
- Atomic
- 3 Labs
- ARM®
- 3 Segurança
- 7 Servidores
- 222 Tutoriais
- 6 Críticas e Sugestões
- 16 Novidades e anuncios
- 5 CentOS
- 18 Games
- 31 Hardware
- 8 Linguagens de programação