Configurar uma VPN site-to-site entre dois servidores Debian pode ser feito usando o OpenVPN. Neste exemplo, vamos considerar que temos dois servidores:
- Servidor A: com IP fixo (por exemplo, 203.0.113.1)
- Servidor B: sem IP fixo (usando DDNS, por exemplo, servidorb.dyndns.org)
Vamos usar o OpenVPN para configurar a VPN entre esses dois servidores.
Passo 1: Instalar o OpenVPN em ambos os servidores
sudo apt update
sudo apt install openvpn
Passo 2: Gerar os certificados e chaves
Os certificados e chaves serão gerados no Servidor A. Você pode seguir as instruções do script easy-rsa fornecido pelo OpenVPN.
No Servidor A:
- Instale o Easy-RSA:
sudo apt install easy-rsa
- Configure o Easy-RSA:
make-cadir ~/openvpn-ca
cd ~/openvpn-ca
nano vars
Edite o arquivo vars
e ajuste os parâmetros de acordo com suas necessidades (como KEY_COUNTRY
, KEY_PROVINCE
, KEY_CITY
, etc.).
- Gere o CA, chave e certificados:
source ./vars
./clean-all
./build-ca
./build-key-server server
./build-dh
./build-key client1 # Para o cliente (Servidor B)
- Copie os arquivos gerados para o diretório do OpenVPN:
sudo cp keys/{server.crt,server.key,ca.crt,dh2048.pem} /etc/openvpn/
- Configure o servidor OpenVPN:
sudo nano /etc/openvpn/server.conf
Adicione as seguintes linhas:
port 1194
proto udp
dev tun
ca ca.crt
cert server.crt
key server.key
dh dh2048.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "route 10.8.1.0 255.255.255.0"
keepalive 10 120
cipher AES-256-CBC
user nobody
group nogroup
persist-key
persist-tun
status openvpn-status.log
verb 3
Passo 3: Configurar o cliente OpenVPN
No Servidor B:
- Instale o OpenVPN e copie os arquivos de configuração do Servidor A (ca.crt, client1.crt, client1.key):
sudo apt install openvpn
sudo scp user@203.0.113.1:/etc/openvpn/ca.crt /etc/openvpn/
sudo scp user@203.0.113.1:/etc/openvpn/keys/client1.crt /etc/openvpn/
sudo scp user@203.0.113.1:/etc/openvpn/keys/client1.key /etc/openvpn/
- Configure o cliente OpenVPN:
sudo nano /etc/openvpn/client.conf
Adicione as seguintes linhas:
client
dev tun
proto udp
remote 203.0.113.1 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client1.crt
key client1.key
remote-cert-tls server
cipher AES-256-CBC
verb 3
Passo 4: Configuração de IPs fixos (opcional)
Se o servidor B não tiver um IP fixo e usar DDNS, certifique-se de configurar o DDNS corretamente. No exemplo acima, o IP do servidor A é fixo, então não há necessidade de configurar DDNS para ele. Mas para o servidor B, verifique se o serviço de DDNS está atualizado corretamente.
Passo 5: Inicializar o OpenVPN em ambos os servidores
No Servidor A:
sudo systemctl start openvpn@server
sudo systemctl enable openvpn@server
No Servidor B:
sudo systemctl start openvpn@client
sudo systemctl enable openvpn@client
Passo 6: Verificar a conexão
Verifique os logs em ambos os servidores para garantir que a conexão foi estabelecida corretamente:
No Servidor A:
sudo tail -f /var/log/openvpn.log
No Servidor B:
sudo tail -f /var/log/openvpn.log
Passo 7: Configurar o roteamento (se necessário)
Certifique-se de que as rotas apropriadas estão sendo configuradas para permitir o tráfego entre as sub-redes dos dois sites.
No Servidor A (para rotear tráfego para a sub-rede do Servidor B):
sudo iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
No Servidor B (para rotear tráfego para a sub-rede do Servidor A):
sudo iptables -t nat -A POSTROUTING -s 10.8.1.0/24 -o eth0 -j MASQUERADE
Conclusão
Com isso, você configurou uma VPN site-to-site entre dois servidores Debian, mesmo que um dos servidores não tenha um IP fixo. Ajuste as configurações conforme necessário para sua rede específica e requisitos de segurança.
Comments are closed