Configuração de VPN para Acesso Remoto Seguro

20/04/2025 Configuração de Redes Tempo de leitura: 15 minutos

Em um mundo cada vez mais conectado e com equipes trabalhando remotamente, garantir o acesso seguro aos recursos da empresa tornou-se uma necessidade crítica para organizações de todos os tamanhos. Uma Rede Privada Virtual (VPN) é uma solução essencial que permite aos colaboradores acessarem a rede corporativa de forma segura, independentemente de sua localização física.

Neste tutorial, vamos guiá-lo pelo processo completo de configuração de uma VPN corporativa para acesso remoto seguro, abordando desde os conceitos básicos até as melhores práticas de implementação e segurança.

O que é uma VPN e por que sua empresa precisa?

Uma VPN (Virtual Private Network) cria um túnel criptografado entre o dispositivo do usuário e a rede corporativa, permitindo uma conexão segura através da internet pública. Isso garante que todos os dados transmitidos permaneçam privados e protegidos contra interceptações.

As principais vantagens de implementar uma VPN corporativa incluem:

  • Segurança aprimorada: Criptografia de ponta a ponta protege dados sensíveis durante a transmissão
  • Acesso remoto: Funcionários podem acessar recursos internos da empresa de qualquer lugar
  • Economia de custos: Reduz a necessidade de infraestrutura física dedicada para cada local remoto
  • Escalabilidade: Facilidade para adicionar novos usuários conforme a empresa cresce
  • Conformidade: Ajuda a atender requisitos regulatórios de segurança de dados

Tipos de VPN para ambientes corporativos

Antes de iniciar a configuração, é importante entender os diferentes tipos de VPN disponíveis para ambientes corporativos:

1. VPN de Acesso Remoto

Este é o tipo mais comum para acesso de funcionários remotos. Conecta dispositivos individuais (laptops, smartphones) à rede corporativa. Ideal para equipes distribuídas ou trabalho híbrido.

2. VPN Site-a-Site

Conecta redes inteiras entre si, como escritórios em diferentes localizações geográficas. Não requer que os usuários finais iniciem conexões VPN individualmente.

3. VPN SSL/TLS

Utiliza o navegador como cliente VPN, eliminando a necessidade de software adicional. Geralmente mais fácil de implementar, mas pode oferecer menos recursos avançados.

4. VPN IPsec

Oferece alto nível de segurança e é amplamente suportada por dispositivos de rede empresariais. Requer configuração mais complexa, mas proporciona maior controle.

Para este tutorial, focaremos na configuração de uma VPN de Acesso Remoto utilizando o protocolo OpenVPN, que oferece um bom equilíbrio entre segurança, desempenho e facilidade de implementação.

Pré-requisitos para configuração

Antes de iniciar a configuração da VPN, certifique-se de que você possui:

  • Um servidor dedicado ou máquina virtual com sistema operacional Linux (recomendamos Ubuntu Server 22.04 LTS)
  • Endereço IP público estático
  • Acesso administrativo ao servidor e ao firewall/roteador da rede
  • Conhecimentos básicos de administração de sistemas Linux e redes
  • Domínio registrado (opcional, mas recomendado para facilitar o acesso)

Passo a passo: Configurando OpenVPN no Ubuntu Server

Passo 1: Atualizar o sistema

Primeiro, atualize o sistema operacional para garantir que você tenha as versões mais recentes dos pacotes:

sudo apt update
sudo apt upgrade -y

Passo 2: Instalar o OpenVPN e o Easy-RSA

O OpenVPN é o software de servidor VPN, enquanto o Easy-RSA nos ajudará a criar os certificados necessários:

sudo apt install openvpn easy-rsa -y

Passo 3: Configurar a Autoridade Certificadora (CA)

Vamos criar uma estrutura de diretórios para nossa CA e inicializar o ambiente:

mkdir -p ~/openvpn-ca
cp -r /usr/share/easy-rsa/* ~/openvpn-ca/
cd ~/openvpn-ca

Agora, edite o arquivo vars para configurar os detalhes da sua CA:

nano vars

Localize e modifique as seguintes linhas com as informações da sua empresa:

set_var EASYRSA_REQ_COUNTRY    "BR"
set_var EASYRSA_REQ_PROVINCE   "Sao Paulo"
set_var EASYRSA_REQ_CITY       "Sao Paulo"
set_var EASYRSA_REQ_ORG        "CPD Brasil"
set_var EASYRSA_REQ_EMAIL      "admin@cpdbrasil.com.br"
set_var EASYRSA_REQ_OU         "TI"

Inicialize a PKI (Public Key Infrastructure):

./easyrsa init-pki

Passo 4: Criar a Autoridade Certificadora

Agora vamos criar o certificado raiz da CA:

./easyrsa build-ca nopass

Quando solicitado, forneça um nome comum para sua CA, como "CPD-Brasil-CA".

Passo 5: Gerar o certificado e a chave do servidor

./easyrsa gen-req server nopass

Quando solicitado, forneça um nome comum para o servidor, como "vpn-server".

Agora, assine o certificado do servidor:

./easyrsa sign-req server server

Digite "yes" quando solicitado para confirmar a assinatura.

Passo 6: Gerar parâmetros Diffie-Hellman e HMAC

Os parâmetros Diffie-Hellman são usados para a troca segura de chaves:

./easyrsa gen-dh

Gere uma chave HMAC para fortalecer a segurança do servidor:

openvpn --genkey --secret pki/ta.key

Passo 7: Configurar o servidor OpenVPN

Copie os arquivos necessários para o diretório do OpenVPN:

sudo cp pki/ca.crt pki/dh.pem pki/ta.key pki/issued/server.crt pki/private/server.key /etc/openvpn/

Baixe e configure o arquivo de exemplo do servidor:

sudo cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf /etc/openvpn/

Edite o arquivo de configuração do servidor:

sudo nano /etc/openvpn/server.conf

Faça as seguintes alterações:

  • Descomente a linha tls-auth ta.key 0 e adicione abaixo: key-direction 0
  • Descomente as linhas cipher AES-256-CBC e auth SHA256
  • Descomente a linha user nobody e group nogroup
  • Descomente as linhas push "redirect-gateway def1 bypass-dhcp" e push "dhcp-option DNS 208.67.222.222" (você pode usar os servidores DNS da sua preferência)

Passo 8: Configurar o encaminhamento de pacotes

Edite o arquivo sysctl.conf:

sudo nano /etc/sysctl.conf

Descomente a linha:

net.ipv4.ip_forward=1

Aplique as alterações:

sudo sysctl -p

Passo 9: Configurar o firewall

Ajuste as regras do firewall para permitir o tráfego VPN:

sudo ufw allow OpenSSH
sudo ufw allow 1194/udp
sudo ufw allow from 10.8.0.0/24

Configure o mascaramento de IP:

sudo nano /etc/ufw/before.rules

Adicione as seguintes linhas antes da linha *filter:

# NAT table rules
*nat
:POSTROUTING ACCEPT [0:0]
# Allow traffic from OpenVPN client to eth0
-A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
COMMIT

Edite o arquivo de configuração do UFW:

sudo nano /etc/default/ufw

Altere DEFAULT_FORWARD_POLICY="DROP" para DEFAULT_FORWARD_POLICY="ACCEPT"

Reinicie o firewall:

sudo ufw disable
sudo ufw enable

Passo 10: Iniciar e habilitar o serviço OpenVPN

sudo systemctl start openvpn@server
sudo systemctl enable openvpn@server

Verifique o status do serviço:

sudo systemctl status openvpn@server

Criando certificados para clientes

Agora que o servidor está configurado, precisamos criar certificados para cada usuário que acessará a VPN:

Passo 1: Gerar certificado e chave para o cliente

cd ~/openvpn-ca
./easyrsa gen-req cliente1 nopass
./easyrsa sign-req client cliente1

Passo 2: Criar arquivo de configuração do cliente

Crie um diretório para armazenar as configurações dos clientes:

mkdir -p ~/cliente-configs/files

Crie um arquivo de configuração base:

nano ~/cliente-configs/base.conf

Adicione o seguinte conteúdo (substitua YOUR_SERVER_IP pelo IP público do seu servidor):

client
dev tun
proto udp
remote YOUR_SERVER_IP 1194
resolv-retry infinite
nobind
persist-key
persist-tun
remote-cert-tls server
cipher AES-256-CBC
auth SHA256
key-direction 1
verb 3

Passo 3: Criar script para gerar configurações de cliente

nano ~/cliente-configs/make_config.sh

Adicione o seguinte conteúdo:

#!/bin/bash

# Primeiro argumento: Nome do cliente

KEY_DIR=~/openvpn-ca/pki
OUTPUT_DIR=~/cliente-configs/files
BASE_CONFIG=~/cliente-configs/base.conf

cat ${BASE_CONFIG} \
    <(echo -e '') \
    ${KEY_DIR}/ca.crt \
    <(echo -e '\n') \
    ${KEY_DIR}/issued/${1}.crt \
    <(echo -e '\n') \
    ${KEY_DIR}/private/${1}.key \
    <(echo -e '\n') \
    ${KEY_DIR}/ta.key \
    <(echo -e '') \
    > ${OUTPUT_DIR}/${1}.ovpn

Torne o script executável:

chmod +x ~/cliente-configs/make_config.sh

Passo 4: Gerar arquivo de configuração do cliente

cd ~/cliente-configs
./make_config.sh cliente1

O arquivo de configuração do cliente será gerado em ~/cliente-configs/files/cliente1.ovpn. Este arquivo deve ser transferido com segurança para o dispositivo do usuário.

Instalando e configurando clientes VPN

Windows

  1. Baixe e instale o cliente OpenVPN GUI do site oficial: https://openvpn.net/community-downloads/
  2. Copie o arquivo .ovpn para a pasta C:\Program Files\OpenVPN\config\
  3. Execute o OpenVPN GUI como administrador
  4. Clique com o botão direito no ícone na bandeja do sistema e selecione "Conectar"

macOS

  1. Baixe e instale o Tunnelblick: https://tunnelblick.net/downloads.html
  2. Dê um duplo clique no arquivo .ovpn para importá-lo para o Tunnelblick
  3. Clique no ícone do Tunnelblick na barra de menus e selecione "Conectar"

Linux

  1. Instale o cliente OpenVPN: sudo apt install openvpn network-manager-openvpn-gnome
  2. Importe o arquivo .ovpn através das configurações de rede ou conecte via linha de comando: sudo openvpn --config cliente1.ovpn

Android

  1. Instale o aplicativo OpenVPN Connect da Google Play Store
  2. Transfira o arquivo .ovpn para o dispositivo
  3. Abra o aplicativo OpenVPN Connect e importe o perfil

iOS

  1. Instale o aplicativo OpenVPN Connect da App Store
  2. Transfira o arquivo .ovpn para o dispositivo (via e-mail, AirDrop ou iTunes)
  3. Abra o arquivo e selecione "Abrir com OpenVPN"

Melhores práticas de segurança para VPN corporativa

Para garantir a máxima segurança da sua implementação VPN, recomendamos as seguintes práticas:

  • Autenticação de dois fatores (2FA): Implemente 2FA para adicionar uma camada extra de segurança além de usuário e senha
  • Política de senhas fortes: Exija senhas complexas e troca periódica
  • Revogação de certificados: Estabeleça um processo para revogar certificados quando funcionários saem da empresa
  • Atualizações regulares: Mantenha o servidor OpenVPN e todos os componentes atualizados
  • Monitoramento de logs: Configure alertas para tentativas de acesso suspeitas
  • Segmentação de rede: Limite o acesso dos usuários VPN apenas aos recursos necessários
  • Testes de penetração: Realize testes periódicos para identificar vulnerabilidades

Solução de problemas comuns

Problema: Cliente não consegue conectar ao servidor

Possíveis soluções:

  • Verifique se a porta 1194 UDP está aberta no firewall
  • Confirme se o endereço IP do servidor está correto no arquivo de configuração do cliente
  • Verifique os logs do servidor: sudo tail -f /var/log/syslog

Problema: Cliente conecta, mas não consegue acessar recursos internos

Possíveis soluções:

  • Verifique as configurações de encaminhamento de IP no servidor
  • Confirme se as regras de firewall permitem tráfego da rede VPN (10.8.0.0/24)
  • Verifique se as rotas estão sendo corretamente enviadas aos clientes

Problema: Conexão lenta

Possíveis soluções:

  • Experimente mudar o protocolo de UDP para TCP no servidor e nos clientes
  • Ajuste o parâmetro MTU: adicione tun-mtu 1500 ao arquivo de configuração
  • Considere usar um algoritmo de compressão: adicione compress lz4-v2 às configurações

Conclusão

A implementação de uma VPN corporativa é uma medida essencial para garantir o acesso seguro aos recursos da empresa em um ambiente de trabalho cada vez mais distribuído. Seguindo este guia, você configurou com sucesso um servidor OpenVPN que oferece uma conexão segura e criptografada para seus usuários remotos.

Lembre-se de que a segurança é um processo contínuo. Mantenha seu servidor atualizado, monitore regularmente os logs em busca de atividades suspeitas e revise periodicamente suas políticas de acesso para garantir que apenas usuários autorizados tenham acesso aos recursos corporativos.