Vamos configurar a VPN na nossa matriz, que irá receber todas as filiais.
Crie o diretório openvpn-matriz em /etc para criar a configuração para cada filial :
# mkdir /etc/openvpn-matriz
# chown openvpn.openvpn /etc/openvpn-matriz
(se sua instalação não criou esse usuário e grupo crie)
Vamos criar o diretório que irá armazenar os logs:
# mkdir /var/log/openvpn
# chown openvpn.openvpn /var/log/openvpn
Começamos o primeiro arquivo com configuração para a filial1 (Espírito Santo):
# vi matriz-espiritosanto.conf
Esse é conteúdo da configuração para esta filial:
## FABIO S. SCHMIDT - fabio@improve.inf.br
## INTERFACE VPN PARA CONEXAO DA MATRIZ COM A FILIAL ESPIRITO SANTO
## REDE LOCAL MATRIZ: 192.168.1.
## REDE LOCAL ESPIRITO SANTO: 192.168.2.
# Interface para a conexao, identificar para cada filail
# Ex.: tun0, tun1, tun2
dev tun0
# 10.0.0.2 IP que sera estabelicido para a matriz na vpn
# 10.0.0.1 IP que sera estabelecido para a filial1 na vpn
ifconfig 10.0.0.2 10.0.0.1
# Diretorio que contem as chaves e configuracoes
cd /etc/openvpn-matriz
# Indica qual chave utilizar para esta conexao
secret key-filial1
#Cada tunel deve utilizar uma porta diferente
port 5001
# Usuario e grupo que executam o daemon Openvpn
user openvpn
group openvpn
#Utilizar a biblioteca de compressao de dados
comp-lzo
#256-bit AES
#Se nao for setado o openvpn usa por padrao Blowfish, 128 bits
cipher AES-256-CBC
#Ativar rotas automaticamente
up /etc/openvpn-matriz/rotas-espiritosanto.up
#Envia um ping para a outra ponta para manter a conexao em firewalls statefull
ping 15
#Nivel de log
verb 4
#Manter o tunel ativo e chave em caso de perda de conexao
persist-tun
persist-key
#Escreve um pequeno status sobre a conexao, reescrito a cada minuto
status /var/log/openvpn/status-filial1.log
#Vamos utilizar um arquivo para o log da conexao de cada filial
log-append /var/log/openvpn/filial1.log
Criaremos agora a configuração para a filial2 (Rio de Janeiro):
# vi matriz-riodejaneiro.conf
## FABIO S. SCHMIDT - fabio@improve.inf.br
## INTERFACE VPN PARA CONEXAO DA MATRIZ COM A FILIAL RIO DE JANEIRO
## REDE LOCAL MATRIZ: 192.168.1.
## REDE LOCAL RIO DE JANEIRO: 192.168.3.
# Interface para a conexao, identificar para cada filail
# Ex.: tun0, tun1, tun2
dev tun1
# 10.2.0.2 IP que sera estabelicido para a matriz na vpn
# 10.2.0.1 IP que sera estabelecido para a filial2 na vpn
ifconfig 10.1.0.2 10.1.0.1
# Diretorio que contem as chaves e configuracoes
cd /etc/openvpn-matriz
# Indica qual chave utilizar para esta conexao
secret key-filial2
#Cada tunel deve utilizar uma porta diferente
port 5002
# Usuario e grupo que executam o daemon Openvpn
user openvpn
group openvpn
#Utilizar a biblioteca de compressao de dados
comp-lzo
#256-bit version of AES (Advanced Encryption Standard)
#Se nao for setado o openvpn usa por padrao Blowfish, 128 bits
cipher AES-256-CBC
#Ativar rotas automaticamente
up /etc/openvpn-matriz/rotas-riodejaneiro.up
#Envia um ping para a outra ponta para manter a conexao em firewalls statefull
ping 15
#Nivel de log
verb 3
#Manter o tunel ativo e chave em caso de perda de conexao
persist-tun
persist-key
#Escreve um pequeno status sobre a conexao, reescrito a cada minuto
status /var/log/openvpn/status-filial2.log
#Vamos utilizar um arquivo para o log da conexao de cada filial
log-append /var/log/openvpn/filial2.log
Criaremos agora a configuração para a filial3 (Minas gerais):
# vi matriz-riodejaneiro.conf
## FABIO S. SCHMIDT - fabio@improve.inf.br
## INTERFACE VPN PARA CONEXAO DA MATRIZ COM A FILIAL MINAS GERAIS
## REDE LOCAL MATRIZ: 192.168.1.
## REDE LOCAL MINAS GERAIS: 192.168.3.
# Interface para a conexao, identificar para cada filail
# Ex.: tun0, tun1, tun2
dev tun2
# 10.1.0.2 IP que sera estabelicido para a matriz na vpn
# 10.1.0.1 IP que sera estabelecido para a filial2 na vpn
ifconfig 10.2.0.2 10.2.0.1
# Diretorio que contem as chaves e configuracoes
cd /etc/openvpn-matriz
# Indica qual chave utilizar para esta conexao
secret key-filial3
#Cada tunel deve utilizar uma porta diferente
port 5003
# Usuario e grupo que executam o daemon Openvpn
user openvpn
group openvpn
#Utilizar a biblioteca de compressao de dados
comp-lzo
#256-bit version of AES (Advanced Encryption Standard)
#Se nao for setado o openvpn usa por padrao Blowfish, 128 bits
cipher AES-256-CBC
#Ativar rotas automaticamente
up /etc/openvpn-matriz/rotas-minasgerais.up
#Envia um ping para a outra ponta para manter a conexao em firewalls statefull
ping 15
#Nivel de log
verb 4
#Manter o tunel ativo e chave em caso de perda de conexao
persist-tun
persist-key
#Escreve um pequeno status sobre a conexao, reescrito a cada minuto
status /var/log/openvpn/status-filial3.log
#Vamos utilizar um arquivo para o log da conexao de cada filial
log-append /var/log/openvpn/filial3.log
Vamos gerar as chaves de criptografia de cada filial:
# openvpn --genkey --secret /etc/openvpn-matriz/key-filial1
# openvpn --genkey --secret /etc/openvpn-matriz/key-filial2
# openvpn --genkey --secret /etc/openvpn-matriz/key-filial3
Sete o usuário e grupo openvpn como proprietário dos 3 aquivos das chaves, e sete a permissão para 400.
Você pode ter visto que adicionamos o comando "up /etc/openvpn-matriz/rotas-NOMEDAFILIAL.up" para criar as rotas para cada filial, segue o conteudo de cada um (obviamente o usuario openvpn deve ter permissão para execução):
# more rotas-espiritosanto.up
#!/bin/bash
route add -net 192.168.2.0 netmask 255.255.255.0 gw 10.0.0.1
# more rotas-riodejaneiro.up
#!/bin/bash
route add -net 192.168.3.0 netmask 255.255.255.0 gw 10.1.0.1
# more rotas-minasgerais.up
#!/bin/bash
route add -net 192.168.4.0 netmask 255.255.255.0 gw 10.2.0.1
Estes são os comandos para inicializar as conexões (você pode criar um script para inicializar):
# openvpn --config /etc/openvpn-matriz/matriz-espiritosanto.conf --script-security 3 system -daemon &
# openvpn --config /etc/openvpn-matriz/matriz-minasgerais.conf --script-security 3 system -daemon &
# openvpn --config /etc/openvpn-matriz/matriz-riodejaneiro.conf --script-security 3 system -daemon &
Assim que você inicializar, cada conexão irar gerar o seus arquivos de log e status no diretório que configuramos: /var/log/openvpn