4. Criação da chave de criptografia
# cd /etc/openvpn
# openvpn --genkey --secret vpnkey
5. Arquivos de configuração
No servidor da MATRIZ, crie o arquivo
/etc/filial.conf com o seguinte conteúdo:
#Módulo de interface tun
dev tun
#IP remoto (da Filial)
Remote 189.aaa.bbb.ccc
#Túnel criado com IP Matriz Filial (nesta ordem)
ifconfig 10.0.0.1 10.0.0.2
push "route 192.168.1.0 255.255.255.0"
# Chave de criptografia
secret /etc/openvpn/vpnkey
#Porta UDP que será usada na VPN
#Usar portas diferentes se tiver mais de uma VPN
#a porta fica a mesma na matriz e na filial
port 5003
#Testa a conexão VPN
ping 15
ping-restart 45
ping-timer-rem
persist-tun
persist-key
#Tipos de retorno de erros
#0 - Reporta somente erros fatais
#1 - Poucos erros, mostra erros não fatais de rede
#3 - Mostra erros, bom para operação normal
#9 - Mostra tudo, bom para resolver problemas
verb 3
#Scripts a serem executados para iniciar e parar a VPN
up /etc/openvpn/filial.up
down /etc/openvpn/filial.down
Crie o arquivo
/etc/openvpn/filial.up:
#!/bin/sh
echo
echo -n "Criando rotas da rede VPN para a Filial ... "
ip route add 192.168.1.0/24 via 10.0.0.2
echo "OK"
Crie o arquivo
/etc/openvpn/filial.down:
#!/bin/sh
echo
echo -n "Removendo rotas da rede VPN para a Filial ... "
ip route del 192.168.1.0/24 via 10.0.0.2
echo "OK"
# chmod 755 /etc/openvpn/filial*
# chmod 644 /etc/openvpn/filial.conf
Edite o arquivo
/etc/rc.d/rc.local:
/sbin/sysctl -w net.ipv4.ip_forward=1
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE
No servidor da FILIAL, instale todos os pacotes do item 2 e crie o arquivo
/etc/openvpn/matriz.conf similar ao feito no servidor da Matriz.
#Módulo de interface tun
dev tun
#IP remoto (da Matriz)
Remote 201.xxx.yyy.zzz
#Túnel criado com IP Filial Matriz (nesta ordem)
ifconfig 10.0.0.2 10.0.0.1
push "route 192.168.0.0 255.255.255.0"
# Chave de criptografia
secret /etc/openvpn/vpnkey
#Porta UDP que será usada na VPN
#Usar portas diferentes se tiver mais de uma VPN
#a porta fica a mesma na matriz e na filial
port 5003
#Testa a conexão VPN
ping 15
ping-restart 45
ping-timer-rem
persist-tun
persist-key
#Tipos de retorno de erros
#0 - Reporta somente erros fatais
#1 - Poucos erros, mostra erros não fatais de rede
#3 - Mostra erros, bom para operação normal
#9 - Mostra tudo, bom para resolver problemas
verb 3
#Scripts a serem executados para iniciar e parar a VPN
up /etc/openvpn/matriz.up
down /etc/openvpn/matriz.down
Crie o arquivo
/etc/openvpn/matriz.up:
#!/bin/sh
echo
echo -n "Criando rotas da rede VPN para a Matriz ... "
ip route add 192.168.0.0/24 via 10.0.0.1
echo "OK"
Crie o arquivo
/etc/openvpn/matriz.down:
#!/bin/sh
echo
echo -n "Removendo rotas da rede VPN para a Matriz ..."
ip route del 192.168.0.0/24 via 10.0.0.1
echo "OK"
# chmod 755 /etc/openvpn/matriz*
# chmod 644 /etc/openvpn/matriz.conf
Edite o arquivo
/etc/rc.d/rc.local:
/sbin/sysctl -w net.ipv4.ip_forward=1
Iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE
Copie o arquivo de chave de criptografia vpnkey para o servidor da filial em /etc/openvpn.
Se você tem um servidor de arquivos em pelo menos uma das pontas, seria interessante ter o serviço de WINS, que ajuda a localizar nomes netbios na rede. O serviço WINS pode ser instalado em Windows Server ou Samba Server. Também existe o arquivo C:\windows\system32\drivers\etc\hosts que podem ser associados IPs a nomes netbios.
Para que uma estação de um lado "pingue" a estação do outro lado é necessário que os gateways estejam configurados de acordo, ou seja, as estações da Matriz deverão ter como gateway o IP do servidor
Linux Matriz 192.168.0.254 e as estações da Filial deverão ter como gateway o IP do servidor Linux Filial 192.168.1.254 - se estiverem usando outro gateway, o pacote de dados vai por um caminho e tenta voltar por outro, e dessa forma não funcionará.
As redes locais da Matriz e da Filial tem que ter IPs de faixas diferentes. Se elas estiverem com IPs na mesma faixa de rede, o roteamento não funcionará, se você quiser acessar um IP fora da sua rede, mas ele está na mesma faixa de IP dela, ele não usará o gateway (não saberá que tem que procurar fora), tenta procurar na sua própria rede e dará erro. Por outro lado, se o IP que você está tentando acessar não pertencer a faixa de IP da sua rede, ele vai tentar "perguntar" ao gateway, que conhecerá o caminho para atingí-lo.
Para iniciar o serviço de VPN execute o seguinte script:
# /etc/init.d/openvpn start