O WireGuard é um protocolo de comunicação de código aberto ponto a ponto popular usado para criar um túnel de Rede Privada Virtual seguro e rápido. Esta VPN foi projetada para uso no kernel do Linux. WireGuard é uma VPN leve que fornece velocidades extremamente rápidas aos usuários.
Este artigo mostra como instalar e configurar o WireGuard em seu sistema CentOS 8. A instalação e configuração do WireGuard são muito mais fáceis do que VPNs já existentes, como o OpenVPN, e esta é uma das principais razões por trás de sua popularidade crescente na comunidade Linux.
Visão geral
Este artigo é composto por duas seções:
- Na primeira seção, iremos instalar e configurar uma máquina CentOS 8 que funcionará como um Servidor VPN WireGuard.
- Na segunda seção, iremos instalar e configurar uma máquina CentOS 8 que funcionará como um Cliente VPN WireGuard.
Instalando e configurando o WireGuard em um servidor CentOS 8
Nesta seção, iremos configurar uma máquina CentOS 8 que atuará como um servidor instalando o WireGuard.
Etapa 1: Adicionar Repositórios EPEL e Elrepo
Para começar a instalar o WireGuard no CentOS 8, primeiro, adicione os repositórios EPEL e Elrepo para instalar os módulos do kernel e as ferramentas WireGuard.
$ sudo dnf install epel-release elrepo-release -y
Agora, depois de instalar os repositórios necessários, instale os módulos do kernel e as ferramentas WireGuard.
Etapa 2: instalar os módulos do kernel e as ferramentas WireGuard
Os módulos do kernel e as ferramentas WireGuard podem ser instalados rapidamente a partir dos repositórios EPEL e Elrepo emitindo o seguinte comando:
$ sudo dnf install kmod-wireguard wireguard-tools
Quando for solicitada permissão para importar e adicionar as chaves GPG ao sistema CentOS 8, permita esta ação digitando “Y” e pressionando “Enter.”
Depois de instalar com sucesso as ferramentas WireGuard, vamos agora realizar algumas configurações.
Etapa 3: criar chaves públicas e privadas
Primeiro, criaremos um novo diretório '/ etc / wireguard' para que possamos configurar o servidor VPN no diretório. Para criar um novo diretório '/ etc / wireguard' no sistema CentOS 8, emita o seguinte comando.
sudo mkdir / etc / wireguard
Depois de criar o diretório, crie as chaves públicas e privadas usando as ferramentas de linha de comando “wg” e “tee”. O comando para criar chaves privadas e públicas é o seguinte.
$ wg genkey | sudo tee / etc / wireguard / privatekey | wg pubkey | sudo tee / etc / wireguard / publickey
A chave gerada será impressa após a execução do comando acima.
Etapa 4: Configuração do dispositivo de túnel para roteamento de tráfego VPN
Para configurar um dispositivo, crie um arquivo de configuração no diretório '/ etc / wireguard' e abra o arquivo usando o editor nano.
Antes de criar o arquivo de configuração, obtenha a chave privada usando o seguinte comando.
$ sudo cat / etc / wireguard / privatekey
Salve a chave privada em algum lugar; você precisará desta chave mais tarde no arquivo de configuração.
Agora, crie o “wg0.arquivo conf ”.
$ sudo nano / etc / wireguard / wg0.conf
Adicione o conteúdo fornecido abaixo em “/ etc / wireguard / wg0.arquivo conf ”.
[Interface]## Endereço IP do servidor VPN ##
Endereço = 192.168.18.200/24
## Salve a configuração quando um novo cliente adicionar ##
SaveConfig = true
## número da porta do servidor VPN ##
ListenPort = 51820
## Chave privada do servidor VPN ##
PrivateKey = SERVER_PRIVATE_KEY
## Comando a ser executado antes de iniciar a interface ##
PostUp = firewall-cmd --zone = public --add-port 51820 / udp && firewall-cmd --zone = public --add-masquerade
## Comando a ser executado antes de desligar a interface ##
PostDown = firewall-cmd --remove-port 51820 / udp --zone = public && firewall-cmd --remove-masquerade --zone = public
Este arquivo de configuração contém os seguintes termos-chave:
- Endereço - o endereço IP privado para a interface (wg0).
- SaveConfig = true - salva o estado da interface na reinicialização ou desligamento do servidor.
- ListenPort - a porta onde o daemon WireGuard escuta.
- Chave privada - a chave que acabamos de gerar.
- PostUp - este comando será executado antes de iniciar a interface
- PostDown - este comando será executado antes de desligar a interface.
Agora que você entende o arquivo de configuração muito bem, pode salvar o arquivo e sair usando os atalhos do teclado (CTRL + S) e (CTRL + X).
Etapa 5: Definir privilégios de configuração e arquivo de "chave privada"
Agora, vamos tornar o servidor VPN um pouco mais seguro. Um usuário básico não deve ter privilégios para ler o arquivo de configuração e o arquivo de 'chave privada'. Para fornecer acesso a esses arquivos, vamos alterar o modo desses dois arquivos para 600. O comando para definir as permissões é dado abaixo.
$ sudo chmod 600 / etc / wireguard / privatekey$ sudo chmod 600 / etc / wireguard / wg0.conf
Depois de finalizar as permissões, iniciaremos a interface (wg0) usando a ferramenta de linha de comando wg-quick.
Etapa 6: iniciar a interface
Para iniciar a interface, emita o comando fornecido a seguir:
$ sudo wg-quick up wg0
Se você obteve o resultado mostrado na captura de tela acima, você iniciou a interface com sucesso. Vamos agora verificar o status da interface.
$ sudo wg
Habilite a interface para iniciar automaticamente a interface na inicialização do servidor CentOS 8.
$ sudo systemctl enable wg-quick @ wg0
Nesta fase, a configuração do servidor foi concluída. Agora, se você deseja configurar este servidor VPN para NAT, você precisará habilitar o encaminhamento de IPv4.
Etapa 7: Habilite o encaminhamento IPv4
Para habilitar o encaminhamento IPv4 para o NAT, crie um “99-customizado.arquivo conf ”no arquivo“ / etc / sysctl.d ”diretório usando o editor nano.
$ sudo nano / etc / sysctl.d / 99-custom.conf
Adicione o seguinte conteúdo ao arquivo “/ etc / sysctl.d / 99-custom.conf ”
## para habilitar o encaminhamento IPv4 ##internet.ipv4.ip_forward = 1
Para habilitar o encaminhamento IPv6, adicione o seguinte conteúdo ao arquivo “/ etc / sysctl.d / 99-custom.arquivo conf ”, também.
## para habilitar o encaminhamento IPv6 ##internet.ipv6.conf.tudo.encaminhamento = 1
Após habilitar o encaminhamento IPv4, salve o arquivo e saia usando os atalhos (CTRL + S) e (CTRL + X).
Vamos agora configurar a máquina WireGuard Client.
Instalação e configuração de VPN WireGuard no cliente CentOS 8
Nesta seção, iremos configurar uma máquina CentOS 8 que atuará como um cliente. O processo de instalação e configuração do cliente VPN WireGuard será quase o mesmo que era para o servidor VPN WireGuard.
Etapa 1: Adicionar Repositórios EPEL e Elrepo
Primeiro, vamos adicionar os repositórios EPEL e Elrepo para instalar os módulos do kernel e ferramentas WireGuard:
$ sudo dnf install epel-release elrepo-release -y
Agora, depois de instalar os repositórios necessários, vamos instalar os módulos do kernel e as ferramentas WireGuard.
Etapa 2: Instale os módulos do Kernel e as ferramentas WireGuard
Os módulos do kernel e ferramentas WireGuard agora podem ser instalados a partir dos repositórios EPEL e Elrepo emitindo o seguinte comando.
$ sudo dnf install kmod-wireguard wireguard-tools
Quando for solicitada permissão para importar e adicionar as chaves GPG ao sistema CentOS 8, permita as alterações digitando “Y” e pressionando “Enter.”
Após as ferramentas WireGuard terem sido instaladas com sucesso, a máquina Cliente CentOS 8 também precisa ser configurada.
Etapa 3: criar chaves públicas e privadas
Nesta etapa, criaremos um novo diretório '/ etc / wireguard' na máquina do cliente. Para criar o novo diretório '/ etc / wireguard' em seu sistema CentOS 8, digite o seguinte comando.
sudo mkdir / etc / wireguard
Depois de criar o diretório, crie as chaves públicas e privadas usando as ferramentas de linha de comando “wg” e “tee”. O comando para criar chaves privadas e públicas é fornecido abaixo.
$ wg genkey | sudo tee / etc / wireguard / privatekey | wg pubkey | sudo tee / etc / wireguard / publickey
As chaves geradas agora serão impressas.
Etapa 4: configuração para roteamento de tráfego VPN
Nesta etapa, criaremos um arquivo de configuração no diretório '/ etc / wireguard' e o abriremos usando o editor nano.
Antes de criar o arquivo de configuração, obtenha a chave privada usando o seguinte comando.
$ sudo cat / etc / wireguard / privatekey
Salve a chave privada em algum lugar; você precisará disso mais tarde no arquivo de configuração.
Agora, crie o “wg0.arquivo conf ”.
$ sudo nano / etc / wireguard / wg0.conf
Adicione o conteúdo fornecido abaixo em “/ etc / wireguard / wg0.arquivo conf ”
[Interface]## Chave Privada do Cliente VPN ##
PrivateKey = 8D8puLQCbUw + 51wPE3Q7KutGxQhUvsy + a + DBgamb + 3o =
## Endereço IP do Cliente VPN ##
Endereço = 192.168.18.201/24
[Par]
## Chave Pública do Servidor VPN CentOS 8 ##
PublicKey = VWndJ4oB7ZJwC / 7UOm ++ OLDrbAxMPsR2yd0cl3sEkUI =
## definir ACL ##
PermitidosIPs = 0.0.0.0/0
## Endereço IP e porta do servidor VPN CentOS 8 ##
Endpoint = 192.168.18.200: 51820
O arquivo de configuração contém os seguintes termos-chave:
- Chave privada - a chave gerada na máquina cliente.
- Endereço - o endereço IP para a interface (wg0).
- Chave pública - a chave pública da máquina do servidor VPN à qual queremos nos conectar.
- PermitidosIPs - todos os endereços IP permitidos para o fluxo de tráfego usando a VPN.
- Endpoint - forneceremos o endereço IP e o número da porta da máquina do servidor CentOS 8 à qual queremos nos conectar.
Agora configuramos a máquina cliente também. Salve o arquivo e saia usando os atalhos do teclado (CTRL + S) e (CTRL + X).
Etapa 5: Definir privilégios de configuração e arquivo de "chave privada"
Agora, vamos mudar o modo e definir os privilégios do arquivo de configuração e do arquivo "chave privada" para 600. Insira o seguinte comando para definir as permissões.
$ sudo chmod 600 / etc / wireguard / privatekey$ sudo chmod 600 / etc / wireguard / wg0.conf
Agora que finalizamos as permissões, podemos iniciar a interface (wg0) usando a ferramenta de linha de comando “wg-quick”.
Etapa 6: iniciar a interface
Para iniciar a interface, emita o comando fornecido a seguir:
$ sudo wg-quick up wg0
Agora iniciamos a interface com sucesso. A seguir, verificaremos o status da interface.
$ sudo wg
Habilite a interface para iniciar automaticamente a interface na inicialização do servidor CentOS 8.
$ sudo systemctl enable wg-quick @ wg0
Nesta fase, o cliente também está configurado.
Etapa 7: Adicionar Endereço IP e Chave Pública do Cliente ao Servidor CentOS 8
A etapa final é adicionar o endereço IP e a chave pública da máquina do cliente VPN ao arquivo de configuração da máquina do servidor CentOS 8 WireGuard VPN.
Retorne à máquina do servidor e adicione o seguinte conteúdo ao arquivo “/ etc / wireguard / wg0.arquivo conf ”.
[Par]## Chave Pública do Cliente VPN ##
PublicKey = dmfO9pirB315slXOgxXtmrBwAqPy07C57EvPks1IKzA =
## Endereço IP do cliente VPN ##
PermitidosIPs = 192.168.10.2/32
Após atualizar o arquivo de configuração do servidor VPN, salve o arquivo e saia usando os atalhos de teclado (CTRL + S) e (CTRL + X).
O túnel agora foi estabelecido, e todo o tráfego será passado através do servidor VPN CentOS 8 WireGuard.
Etapa 8: verificar a conexão do túnel
Para verificar se o servidor CentOS 8 WireGuard VPN foi instalado e configurado corretamente, emita o comando fornecido abaixo para verificar se o tráfego está fluindo através do servidor VPN WireGuard configurado.
$ sudo wg
E é isso! Você configurou e estabeleceu o servidor VPN WireGuard com sucesso.
Conclusão
Este artigo mostrou como instalar e configurar VPN WireGuard em sua máquina CentOS 8 e configurar o sistema como um servidor VPN. Também mostramos como configurar um Cliente VPN CentOS 8 WireGuard e configurar o cliente para rotear o tráfego através do servidor VPN WireGuard.