Вы находитесь на странице: 1из 10

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

Escrito por Carlos Valente Seg, 30 de Agosto de 2010 07:36 - ltima atualizao Sex, 21 de Janeiro de 2011 08:06

Esse artigo apresenta uma soluo de VPN para conectar diversas filiais a matriz, utilizando openVPN com chaves estticas e biblioteca lzo para compresso. Nosso cenrio Apresento uma soluo de VPN para conectar diversas filiais a matriz, utilizando openVPN com chaves estticas, biblioteca lzo para compresso e utilizao do MRTG para monitorar o trfego de cada filial. Nesse cenrio temos a matriz com IP fixo e as filiais com IPs dinmicos. Mas nada impede de se utilizar IP dinmico na matriz, voc pode criar um DNS dinmico. Seguem as configuraes utilizadas: Distribuio usada: CentOS-5.5 Matriz: - IP externo matriz= 200.200.200.200 - Rede interna matriz = 192.168.1.0/24 Filial1 (chamaremos de Esprito Santo): - Rede interna = 192.168.2.0/24 Filial2 (chamaremos de Rio de Janeiro): - Rede interna = 192.168.3.0/24 Filial3 (chamaremos de Minas Gerais): - Rede interna = 192.168.4.0/24

1 / 10

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


Escrito por Carlos Valente Seg, 30 de Agosto de 2010 07:36 - ltima atualizao Sex, 21 de Janeiro de 2011 08:06

Versoo download em: ex.php/open-source/documentation/change-log/71-21-change-log.html Efetue o download2.1.2 - http://www.openvpn.net/index.php/open-source/downloads.html Verso openVPN: em: lzo: 2.0.3 Efetue lanada em 15/08/2010, o changelog voc pode ver aqui: http://www.openvpn.net/ind - http://www.oberhumer.com/opensource/lzo/download/ Aps efetuar o download da biblioteca lzo e dos sources do openVPN, vamos compilar e instalar (esse procedimento ser idntico na matriz e em todas as filiais). Primeiro verifique se o pacote openSSL est instalado conforme o exemplo: # rpm -q openssl openssl-0.9.8e-12.el5_4.6 Se no estiver, execute o comando: # yum install openssl 1. LZO Entre no diretrio onde voc baixou os sources e descompacte o arquivo: # tar zxvf lzo-2.03.tar.gz Vamos compilar sem nenhuma configurao especfica: # ./configure # make check (para testar a biblioteca de compresso) # make # make install

Instalao

2 / 10

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


Escrito por Carlos Valente Seg, 30 de Agosto de 2010 07:36 - ltima atualizao Sex, 21 de Janeiro de 2011 08:06

2. openVPN Entre no diretrio onde voc baixou os sources e descompacte o arquivo: # tar zxvf openvpn-2.1.2.tar.gz Por padro ir utilizar o diretrio /usr/local com basedir, altere se houver necessidade. # ./configure # make # make install Vamos ver se o openVPN foi instalado: # type openvpn openvpn is /usr/local/sbin/openvpn Feito isso, vamos efetuar as configuraes.

Configurao MATRIZ
Vamos configurar a VPN na nossa matriz, que ir receber todas as filiais. Crie o diretrio openvpn-matriz em /etc para criar a configurao para cada filial : # mkdir /etc/openvpn-matriz # chown openvpn.openvpn /etc/openvpn-matriz (se sua instalao no criou esse usurio e grupo crie) Vamos criar o diretrio que ir armazenar os logs: # mkdir /var/log/openvpn # chown openvpn.openvpn /var/log/openvpn Comeamos o primeiro arquivo com configurao para a filial1 (Esprito Santo): # vi matriz-espiritosanto.conf Esse contedo da configurao para esta filial: ## FABIO S. SCHMIDT - fabio@improve.inf.br

3 / 10

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


Escrito por Carlos Valente Seg, 30 de Agosto de 2010 07:36 - ltima atualizao Sex, 21 de Janeiro de 2011 08:06

## 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

4 / 10

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


Escrito por Carlos Valente Seg, 30 de Agosto de 2010 07:36 - ltima atualizao Sex, 21 de Janeiro de 2011 08:06

#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 configurao 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

5 / 10

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


Escrito por Carlos Valente Seg, 30 de Agosto de 2010 07:36 - ltima atualizao Sex, 21 de Janeiro de 2011 08:06

#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 configurao 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

6 / 10

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


Escrito por Carlos Valente Seg, 30 de Agosto de 2010 07:36 - ltima atualizao Sex, 21 de Janeiro de 2011 08:06

#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 usurio e grupo openvpn como proprietrio dos 3 aquivos das chaves, e sete a permisso 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 permisso para execuo):

# more rotas-espiritosanto.up #!/bin/bash route add -net 192.168.2.0 netmask 255.255.255.0 gw 10.0.0.1

7 / 10

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


Escrito por Carlos Valente Seg, 30 de Agosto de 2010 07:36 - ltima atualizao Sex, 21 de Janeiro de 2011 08:06

# 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 so os comandos para inicializar as conexes (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 conexo irar gerar o seus arquivos de log e status no diretrio que configuramos: /var/log/openvpn

Nas filiais, aps seguir os passos de instalao, vamos criar o diretrio /etc/opevpn-filial que ir conter o arquivo para conexo com a matriz. # mkdir /etc/openvpn-filial # chown openvpn.openvpn /etc/openvpn-filial (se a instalao no criou esse usurio e grupo crie) Vamos criar o diretrio para os logs: # mkdir /var/log/openvpn # chown openvpn.openvpn /var/log/openvpn Copie para este diretrio de cada filial a sua respectiva chave: - key-filial1 - Esprito Santo - key-filial2 - Rio de Janeiro - key-filial3 - Minas gerais

Configurao FILIAIS

No diretrio criado, vamos criar o arquivo matriz.conf.

8 / 10

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


Escrito por Carlos Valente Seg, 30 de Agosto de 2010 07:36 - ltima atualizao Sex, 21 de Janeiro de 2011 08:06

Vamos ao exemplo com Esprito Santo (Filial1), est bem comentado para facilitar a criao das configuraes 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. #Endereo 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

9 / 10

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


Escrito por Carlos Valente Seg, 30 de Agosto de 2010 07:36 - ltima atualizao Sex, 21 de Janeiro de 2011 08:06

#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 conexo 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, no vou entrar em detalhes de liberao de portas no firewall, pois pode ser encontrada muita documentao sobre isso aqui no VOL.

Fonte: Viva o Linux

10 / 10

Вам также может понравиться