Criando VPN site-to-site, conectando diversas filiais a matriz com openVPN

Olá ! Nesse artigo apresento uma solução de VPN para conectar diversas filiais a matriz, utilizando openVPN com chaves estáticas e biblioteca lzo para compressão.

[ Hits: 130.962 ]

Por: Fabio Soares Schmidt em 28/08/2010


Configuração FILIAIS



Nas filiais, após seguir os passos de instalação, vamos criar o diretório /etc/opevpn-filial que irá conter o arquivo para conexão com a matriz.

# mkdir /etc/openvpn-filial
# chown openvpn.openvpn /etc/openvpn-filial

(se a instalação não criou esse usuário e grupo crie)

Vamos criar o diretório para os logs:

# mkdir /var/log/openvpn
# chown openvpn.openvpn /var/log/openvpn


Copie para este diretório de cada filial a sua respectiva chave:
  • key-filial1 - Espírito Santo
  • key-filial2 - Rio de Janeiro
  • key-filial3 - Minas gerais

No diretório criado, vamos criar o arquivo matriz.conf.

Vamos ao exemplo com Espírito Santo (Filial1), está bem comentado para facilitar a criação das configurações das outras filiais:

## FABIO S. SCHMIDT - fabio@improve.inf.br
## INTERFACE VPN PARA CONEXAO DA FILIAL XXXX COM A MATRIZ

## REDE LOCAL MATRIZ: 192.168.1.
## REDE LOCAL ESPIRITO SANTO: 192.168.2.

#Endereço do servidor Matriz
#remote IP

remote 200.200.200.200

# Interface para a conexao
# Ex.: tun0, tun1, tun2
#Em cada filial so havera uma interface tun, pode setar todas como tun0
dev tun0

# Aqui é o inverso da MATRIZ
ifconfig 10.0.0.1 10.0.0.2

# Diretorio que contem as chaves e configuracoes
cd /etc/openvpn-filial

# Indica qual chave utilizar para esta conexao
secret key-filial1

#protocolo
proto udp
#Cada tunel deve utilizar uma porta diferente
#Coloque a porta conforme a configuracao de cada filial na matriz
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 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-filial/rotas-matriz.up

#Envia um ping para a outra ponta para mantera 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-matriz.log

#Nao vamos enviar as mensagens para o syslog
log-append /var/log/openvpn/matriz.log

Como você pode ver, setamos o comando "/etc/openvpn-matriz/rotas-matriz.up" que irá levantar as rotas para a rede da matriz, como o exemplo:

(Filial1)

#!/bin/bash
route add -net 192.168.1.0 netmask 255.255.255.0 gw 10.0.0.2

Lembrando que 192.168.1.0/24 é a rede local na Matriz e 10.0.0.2 o IP da VPN setado para a matriz para a conexão da Filial1.

Este é o script para inicializar a VPN em cada filial:

openvpn --config /etc/openvpn-filial/matriz.conf --script-security 3 system -daemon &

Feito isso, nossa vpn está pronta para funcionar em cada filial, não vou entrar em detalhes de liberação de portas no firewall, pois pode ser encontrada muita documentação sobre isso aqui no VOL.

Já estou preparando um artigo para vocês monitorarem o tráfego na vpn de cada filial com MRTG.

Qualquer dúvida ou contribuição por favor deixe seu comentário, e visite meu blog:
Página anterior    

Páginas do artigo
   1. Nosso cenário
   2. Instalação
   3. Configuração MATRIZ
   4. Configuração FILIAIS
Outros artigos deste autor

Controle de acesso à internet com Squid

Implementação de NIDS com EasyIDS

SeamlessRDP - Executando aplicações Windows

Instalação do Oracle 10g R2 no SUSE Linux Enterprise Server 11

Leitura recomendada

Monitorando o uso do MSN com o IM Sniffer

Implementação de VPN com OpenVPN

Como configurar uma rádio virtual no Linux (Fedora Core 4)

Por que eu pago por 10 megas, mas só faço download a 1 mega?

FreeBSD + Asterisk

  
Comentários
[1] Comentário enviado por ctavares em 29/08/2010 - 11:07h

Legal, estou no aguardo do material sobre monitoramento das redes com MRTG. Abraços.

[2] Comentário enviado por irado em 29/08/2010 - 20:36h

parabéns fs.schimidt. Frequentemente surgem colegas aqui no VOL com muitas perguntas sobre VPN e o seu artigo é bem claro. Até fiquei com vontade de pegar um projetinho dêsses para poder aplica-lo :)

[3] Comentário enviado por cruzeirense em 30/08/2010 - 13:25h

Excelente artigo!!!
Utilizo vpn quando tenho que dar manutenção num cliente e tanto eu quanto ele não temos um IP valido.
Deixei um servidor que tem um ip válido fixo (poderia ser dinamico também) como servidor para a vpn e assim posso acessar qualquer máquina da vpn via 3g no netbook.
Eu utilizo o neorouter, que apesar de não ser open source ele tem uma licença free "para sempre" para até 256 máquinas (o que na maioria dos casos é mais do que o suficiente).
O melhor do neorouter é que a configuração é praticamente zero.
Basta você informar o nome de usuário, senha e o endereço do servidor que você já recebe um ip válido na vpn.
Outro ponto positivo é que o neorouter funciona em windows, linux, mac, android e tem algumas versões para você instalar no seu roteador de internet.
quem quiser conhecer o produto:
www.neorouter.com

Abraços,

Renato

[4] Comentário enviado por _Dener_ em 09/09/2010 - 08:57h

Ótimo Post, contribuiu muito aqui no VOL e também sanou algumas duvidas minha.

Caso você não possua um IP fixo, você também pode usar o Serviço da Winco que trabalha com VPN, eles tem o serviço DDNS (Dynamic Domain Name System) que resolve muitos problemas de endereços IP dinamicos e o serviço é grátis.
http://www.winco.com.br/ddns

Deixo ai a minha dica, Abraços.

Dener

[5] Comentário enviado por diegoo em 09/09/2010 - 17:03h

Andei pesquisando sobre o neorouter, mas não encontrei muito material, porque no meu caso tenho a matriz e filias (pequenas 2 a 3 pcs) e queria tipo de controle da rede dessas pequenas filias sem montar servidor e tal, o netrouter faz isso??

[6] Comentário enviado por cruzeirense em 13/09/2010 - 16:56h

prezado diegoo,

O neorouter precisa de um servidor para funcionar.
Você pode utilizar qualquer máquina que tenha um ip válido na internet, mesmo que seja ip dinâmico.
você pode utilizar um serviço de dns dinamico conforme sugerido acima caso não tenha o ip fixo.

Para o neorouter funcionar você deve designar uma máquina para ser servidor, mas é importante lembrar que a máquina não precisa ser dedicada para isso.
Qualquer maquininha fraca pode ser um servidor para o neorouter.

O bom do neorouter é que tem versões para diversos sistemas operacionais, e inclusive em alguns roteadores pode ser instalado o neorouter.

Estou usando já ha algum tempo e tenho me surpreendido com ele.

No meu caso tenho um servidor slackware que uso para compartilhar a internet e aproveitei para colocar o servidor do neorouter.
Configurei todos os meus clientes para conectarem automaticamente na vpn e assim já tenho um ip valido para conectar diretamente nas máquinas para utilizar, vnc, terminal server, compartilhamento de arquivos e impressoras, e qualquer serviço que se possa utilizar em uma rede.

Abraços,

Renato

[7] Comentário enviado por andrefreire em 18/11/2010 - 15:11h

Bom tarde !

Fiz uns testes seguindo seu artigo e tudo funcionou muito bem. Logo em seguida me surgiu uma dúvida. Será que existe, nesta configuração, como as filiais se comunicarem entre si ? Como seria então as rotas no firewall ?

[8] Comentário enviado por fs.schmidt em 29/11/2010 - 14:50h

Olá André ! Desculpe a demora em responder.

Esta configuração não abrange a comunicação entre as filiais, para isto você deve procurar sobre a configuração do Openvpn em modo Bridge.

Obrigado, espero em breve publicar um novo artigo abrangendo a sua necessidade.

[9] Comentário enviado por egohernan em 22/10/2012 - 17:22h

Fábio, boa tarde!

Perfeito seu material. Tinha algumas dúvidas quanto ao funcionamento da VPN com mais de uma filial e através desse material consegui entender onde estava errando. Agora uma dúvida, tem acontecido da conexão cair e voltar somente quando reinicio os equipamentos (matriz e filiais). Como poderia resolver isso?

Agradeço.


Abraços,

Diego

[10] Comentário enviado por eduardotb em 18/12/2013 - 12:25h

Boa tarde Fabio,

Como deve ficar a configuração do modem para a conexão da vpn entre a matriz e filial? Deve ficar em modo bridge?

Obrigado. Abs!

[11] Comentário enviado por maucosta80 em 08/09/2015 - 16:49h

Boa tarde, sei que o post é antigo mas estava precisando de ajuda com a vpn.
Eu não entendi como configuro o IP publico de origem, IP publico de destino, rede interna de origem e rede interna remota.

Grato.

[12] Comentário enviado por rjdiniz em 26/12/2017 - 16:20h

Olá... você tem algo mais atualizado?

OpenVPN 2.3.4 x86_64-pc-linux-gnu [SSL (OpenSSL)] [LZO] [EPOLL] [PKCS11] [MH] [IPv6] built on Jun 26 2017
library versions: OpenSSL 1.0.1t 3 May 2016, LZO 2.08

Obrigado!
Raul Júnior


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts