O WireGuard é um aplicativo que pode fornecer uma rede virtual privada (VPN) segura, sendo simples de usar e configurar. Ele usa protocolos e algoritmos criptográficos fortes para cifrar os dados. Projetado exclusivamente para o kernel do Linux, ele pode ser implantado no Windows, macOS, FreeBSD, iOS e Android. Em nosso caso, usaremos o CentOS 8.3 para a configuração do WireGuard.
Como instalar o servidor VPN WireGuard no CentOS 8.3:
- Como instalar o servidor WireGuard no CentOS
- Como gerar chaves públicas e privadas
- Como ajustar a configuração do servidor
- Como configurar o FireWall
- Como iniciar o WireGuard e ativá-lo na inicialização
Instalando o WireGuard Server no CentOS
Faça o download das atualizações mais recentes usando os dados do comando:
sudo yum update
sudo dnf update
Adicione os repositórios EPEL e Elrepo para instalar os módulos do kernel e as ferramentas do WireGuard.
sudo dnf install epel-release elrepo-release -y
Certifique-se de que o repositório PowerTools esteja ativado, pois os pacotes EPEL podem depender de pacotes desse repositório,
sudo yum install 'dnf-command(config-manager)'
sudo yum config-manager --set-enabled PowerTools
Agora vamos instalar o WireGuard do repositório epel:
sudo dnf install kmod-wireguard wireguard-tools
Geração de chaves públicas e privadas
O WireGuard funciona criptografando a conexão usando um par de chaves criptográficas. O par de chaves é usado passando a chave pública para a outra parte, que pode então criptografar sua mensagem de modo que ela só possa ser descriptografada com a chave privada correspondente. Para proteger a comunicação bidirecional, cada lado deve ter suas próprias chaves públicas e privadas, pois cada par fornece apenas uma comunicação unidirecional.
Antes de gerar o par de chaves, vá para a seção:
cd /etc/wireguard
Defina a permissão para esse diretório:
umask 077
Para gerar um par de chaves, digite o seguinte comando:
wg genkey | tee private.key | wg pubkey > public.key
Definindo a configuração do servidor
Para começar a configurar o servidor WireGuard, vá para a pasta /etc/wireguard e crie o arquivo wg0.conf
sudo nano /etc/wireguard/wg0.conf
Adicione as seguintes diretivas ao arquivo de configuração:
[Interface]
PrivateKey = <contents-of-server-privatekey>
Address = 10.0.0.1/24
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
ListenPort = 51820
[Peer]
PublicKey = <contents-of-client-publickey>
AllowedIPs = 10.0.0.2/32
Copie a chave privada que geramos anteriormente e cole-a na PrivateKey.
Da mesma forma, temos de gerar um par de chaves para o cliente, copiar a chave pública do cliente e colá-la em PublicKey.
Para copiar o valor da chave, execute o seguinte comando:
sudo cat /etc/wireguard/public.key
sudo cat /etc/wireguard/private.key
Configuração do firewall
Por padrão, o firewall interrompe toda a comunicação entre a rede interna (wg0) e a rede pública (eth0).
Vamos alterar isso com estes comandos:
sudo firewall-cmd --add-interface=wg0 --zone=internal
sudo firewall-cmd --permanent --zone=internal --add-masquerade
Inicie o WireGuard e faça-o iniciar na inicialização
Agora estamos prontos para iniciar o servidor. Para iniciar o WireGuard, usamos o wg-quick e especificamos o nome da nova interface:
wg-quick up wg0
Se a configuração estiver perfeita, você verá a seguinte tela,
Para verificar o status do servidor WireGuard, digite:
wg show
Parabéns, iniciamos com sucesso o servidor WireGuard!