Configuração de um servidor VPN com OpenVPN e chave estática

Neste primeiro artigo da série será abordada a configuração do OpenVPN com chaves estáticas. Todos os procedimentos foram feitos na distribuição Debian.

[ Hits: 185.607 ]

Por: Magno Lima em 03/08/2009


Introdução



Esse artigo é o primeiro de uma série de três e trata da implementação de um servidor de VPN em seus vários aspectos de segurança e praticidade. Na primeira parte será abordado a configuração do OpenVPN com chaves estáticas. Na segunda parte será abordado a configuração com certificados digitais e na terceira parte a configuração do servidor em modo bridge.

A forma mais simples de configurar o OpenVPN é utilizar chaves estáticas, onde é criado um arquivo de 2048 bits utilizado para criptografar os dados transmitidos pelo túnel, essa chave oferece um nível de segurança mediano, devido a chave ser estática e seu algoritmo não mudar a cada conexão, sempre há a possibilidade de um atacante descobrir a chave. A solução mais simples e viável seria trocas as chaves periodicamente fazendo com que essas tentativas de invasão se tornem ineficazes.

O OpenVPN é um dos softwares de código aberto mais utilizados e seguros para implementação de uma "Virtual Private Network" ou "Rede Virtual Privada". Isto se deve ao fato de ser seguro, prático e de fácil implementação.

Uma VPN tem muitas vantagens em ambientes corporativos ou até mesmo residenciais. Trata-se de uma forma de compartilhar arquivos, impressoras ou até mesmo um sistema de gestão de forma segura. Antigamente a única forma de interligar redes era utilizando link dedicados com endereços IP públicos, mas o valor da infra-estrutura muitas vezes não era justificável. Com o OpenVPN podemos interligar um número de filiais indefinidos, com custos relativamente baixos e podemos utilizar endereços IP públicos não fixos, utilizando o serviço de DNS dinâmico. Sabemos que nenhuma VPN é 100% segura, mas com os serviços bem configurados e um firewall totalmente fechado os riscos de invasão são pequenos.

Uma observação importante é que a VPN cria interfaces virtuais no servidor, sendo que estas interfaces devem estar com endereço IP diferente dos da rede interna. A seguir mostrarei um esboço de como ficarão os endereços da rede interna e da VPN. No decorrer do artigo veremos que implementar uma VPN é uma tarefa simples, desde que fique bem entendido como é seu funcionamento.

Lets go!

Matriz:
  • eth0 - Velox com endereço DNS dinâmico: openvpn.no-ip.info;
  • eth1 - 192.168.0.1 - rede interna;
  • tun0 - 10.6.0.1 - endereço IP VPN.

Filial:
  • eth0 - Velox;
  • eth1 - 192.168.1.1 - rede interna";
  • tun0 - 10.6.0.2 - endereço IP VPN.

Linux: Configuração de um servidor VPN com OpenVPN e chave estática
    Próxima página

Páginas do artigo
   1. Introdução
   2. Instalando e configurando OpenVPN na matriz
   3. Instalando e configurando OpenVPN na filial
   4. Liberando portas no firewall
Outros artigos deste autor

Integrando Layer7 + IPP2P ao Iptables

Leitura recomendada

Reduzindo problemas de atualizações no Debian, Ubuntu e derivados

Instalando um servidor LAMP no Linux Ubuntu 7.10

Exemplos práticos de tabelas de partições

Instalando o Msn-Proxy no Mandriva 2008/2009

Teste de estresse entre software livre e soluções proprietárias

  
Comentários
[1] Comentário enviado por feliperossi em 03/08/2009 - 17:02h

Parabens Ótimo Artigo. Prático e Objetivo.

Só tenho uma dúvida quanto a distancia em que uma VPN pode ser implementada.
Hj estou implementando uma infra-estrutura de internet em um cliente.
A empresa tem filiais no Mato Grosso e a Matriz fica no Paraná.
Na matriz tem um link 1024/1024 Fibra Óptica, e se conectam em media 30 a 40 usuarios na matriz durante o dia.
Fica a pergunta, com essa distancia a VPN suportaria tranquilamente outro volume de igual ou maior valor
de usuários conectados?!?!?!

Grato

[2] Comentário enviado por magnolinux em 03/08/2009 - 21:10h

Boa noite feliperossi, fico feliz que tenha gostado do artigo. Em relação a sua duvida é dificil responder sem fazer uma analise da infraestrutura da empresa. A vpn nao tem distancia maxima, mais quanto mais distante, mais delay vc tera no acesso. você deve fazer um levantamento do que sera trafegado no tunel, quantos micros irao acessar simultaneo, qual sera o horario de pico e depois, analisar se o link de 1MB iria atender.

Estou a disposição para qualquer duvida..


abraço..

[3] Comentário enviado por predator em 03/08/2009 - 21:59h

opa

se precisar inclui mais filiais como fica a configuração??

abs

[4] Comentário enviado por leandrobrunoo em 04/08/2009 - 10:18h

Bom dia, Estou com uma duvida.
com o serviço da vpn montada,as maquinas da rede a q tao com o
SO Windows vao se comunicar com as maquinas da rede b com o SO windows ??

[5] Comentário enviado por magnolinux em 04/08/2009 - 13:04h

bom dia predator, para incluir mais filiais, voçê deve fazer o seguinte. Na matriz deve criar outro arquivo de configuração com nomes diferentes e no arquivo alterar o ip da filial, a interface tun e a porta de conexão da vpn. Ficaria da seguinte forma

# Copiando arquivo de conf
cp matriz.conf matriz2.conf

# Editando arquivo vim matriz2.conf
ifconfig 10.6.0.1 10.6.0.3 # Esse IP sera o ip da nova filial
tun1 # Interface virtual da vpn
port 1195 # Porta da vpn

desta forma pode incluir quantas filiais quiser, serão criado no servidor varias interface TUN, cada filial tera seu proprio tunel para trafegar os dados. O meu proximo artigo irei abordar a configuração com certificado digital onde é possivel conectar varios clientes no mesmo tunel e na mesma porta.

Espero que tenha lhe ajudado..

Abraços

[6] Comentário enviado por magnolinux em 04/08/2009 - 13:11h

e ae leandrobrunoo, as maquinas windows vao se comunicar perfeitamente, mais vc deve criar as rotas em ambos os servidores.

Abraço

[7] Comentário enviado por leandrobrunoo em 04/08/2009 - 20:46h

tudo bem entao, so mais uma duvida !
tenho q ter quantas placas de rede em cada servidor ?, pelo q eu entendi tenho q ter duas, em cada servidor.
as redes q quero junta atravez da vpn, sao iguais as q vc citou acima, devo uso as mesma rotas, citadas a cima, no seu artigo ?
por fim, qual a distro q vc usou ?


[8] Comentário enviado por magnolinux em 04/08/2009 - 22:48h

vc precisa somente de uma placa de rede em cada servidor, as interfaces TUN sao virtuais nao necessitam de placas de rede fisicas. Se os endereço da matriz e filial forem iguais citados acima, pode usar as rotas do artigo.. Fiz os testes em varias distro debian lenny, debian etch, ubuntu 9.10

Abraço.

[9] Comentário enviado por leandrobrunoo em 05/08/2009 - 16:53h

sei q estou te enxendo o saco, mais e q segui um artigo aqui da vol, e nao consegui acessar minha outra rede.
por isso q estou tirando minhas duvidas, pra depois por em pratica e seguir suas dica.
outra coisa, tenho q abri as porta no modem, estou certo ? Quais UDP OU TCP ?
e tenho q montar algum serviço samba, ou nao e preciso ?

[10] Comentário enviado por magnolinux em 05/08/2009 - 17:31h

que isso leandrobrunoo, de forma alguma esta enxendo o saco!! estou aqui para poder passar um pouco da minha experiencia para aqueles que querem aprender. Pelo contrario fico feliz que esteja perguntando e tentando colocar essa solução maravilhosa em funcionamento.

Let's go my friend.

A vpn se conecta atraves de uma porta udp, essa porta pode ser qualquer uma, basta vc adicionar no arquivo de configuração da filial e na matriz. E necessario vc liberar essa porta caso aja um firewall bloqueando as portas de entrada. Depois das rotas criadas, vc póde acessar um micro da outra rede apenas via \\IP_Micro.

Acredite simples assim.........


Caso vc queira colocar o samba ou um dominio, ira funcionar perfeitamente. Lembrando para a filiial acessar a matriz e a matriz acessar a filial e necessario criar as rotas..

Abraço...

[11] Comentário enviado por pettersonrobertp em 10/08/2009 - 21:35h

Boa noite, primeira quero parabenizar pelo procedimento que esta bem especificado!

Segui seu tutorial como exemplo, configurei as rotas o arquivo server.conf ambos dentro da pasta openvpn, mas quando tento restartar o serviço da falha, ou mesmo quando digito com comando ifconfig tun0 aparece a seguinte mensagem "tun0: erro obtendo informações da interface: %s: dispositivo não encontrado". Consultei o log e segue o erro :

Mon Aug 10 20:20:04 2009 Static Encrypt: Cipher 'BF-CBC' initialized with 128 bit key
Mon Aug 10 20:20:04 2009 Static Encrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Mon Aug 10 20:20:04 2009 Static Decrypt: Cipher 'BF-CBC' initialized with 128 bit key
Mon Aug 10 20:20:04 2009 Static Decrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Mon Aug 10 20:20:04 2009 LZO compression initialized
Mon Aug 10 20:20:04 2009 TUN/TAP device tun0 opened
Mon Aug 10 20:20:04 2009 TUN/TAP TX queue length set to 100
Mon Aug 10 20:20:04 2009 /sbin/ifconfig tun0 192.168.1.1 pointopoint 192.168.1.2 mtu 1500
Mon Aug 10 20:20:04 2009 /etc/openvpn/rotas.up tun0 1500 1545 192.168.1.1 192.168.1.2 init
Mon Aug 10 20:20:04 2009 script failed: could not execute external program
Mon Aug 10 20:20:04 2009 Exiting

Não sei onde errei, tenho ip fixo no server 10.0.0.2 adcionei o ip para interface virtual 192.168.1.1, criei uma rota "route add -net 10.0.0.2 netmask 255.0.0.0 gw 192.168.1.1 dev tun0"..


Agradeço a antenção, abraço!

[12] Comentário enviado por wfahham em 11/08/2009 - 14:50h

Primeiro, meus parabés pela clareza das informações fornecidas e direção dada ao texto.


segundo, eu procedi conforme vc descreveu e fiquei muito irritado, pois um tutorial tão perfeito e eu não conseguir executar, é muito triste, mas decidi tentar configurar de forma de unico servidor, sem haver filial, caso eu queira que de qualquer lugar um usuário possa acessar de seu notebook ou outro meu de acesso

alterei a seguinte linha para servidor unico:

#endereço servidor
x.x.x.x

pois tenho aqui na empresa um isa 2006 e quero substituir, e acredito que o openvpn vai substituir com total tranquilidade.

O servidor openvpn não start e pior ainda não gera log.


[13] Comentário enviado por wfahham em 11/08/2009 - 14:56h

E agora fazendo outros teste percebi que a interfece virtual tun não sobe.

Se puder me orientar agradeço.

VOL acima de tudo.

[14] Comentário enviado por magnolinux em 11/08/2009 - 18:30h

Boa noite pettersonrobertp, provavelmente o seu kernel nao tem o modulo tun, qual a versão do seu kernel e qual distro esta utilizando.

Digite o comando e ve se apareçe algum erro.!

modprobe tun

Se nao apareçer nenhum erro vamos ao segundo passo. Pelo que vc descreveu a configuração esta correta. dentro do arquivo de configuração do servidor, comenta o caminho para carregar as rotas e restarta a vpn e ve se vai apareçer algum erro.

#up /etc/openvpn/rotas.up
#down /etc/openvpn/rotas.down

Posta aí o resultado!!!!

abraço.

[15] Comentário enviado por magnolinux em 11/08/2009 - 18:35h

e ae wfahham, muito obrigado pelo elogio, pode ficar trankilo que nada vem de graça tudo tem um pouco de dificulodade a perfeição requer tempo...!!!!

let's go..

primeiramente vamos ver se o modulo tun esta habilitado no seu kernel. Digite o comando abaixo e observer se vai apareçer algum erro.

modprobe tun

um teste sempre valido e ir comentando linha por linha dentro do arquivo de configuração e ver se tem alguma linha gerando problema. Deixe o arquivo de conf somente com o basico, da seguinte forma

dev tun
ifconfig 10.6.0.1 10.6.0.2
port 1194
proto udp
secret /etc/openvpn/chave.key "Verifique se o caminho da chave e o nome esta correto"

Posta aí os resultados...

abraçãooo

[16] Comentário enviado por wfahham em 12/08/2009 - 08:15h

Bom dia a todos!


realmente a solução de comentar a linha de rotas estão corretas, o serviço iniciou sem erros,

E quando rodo o comando na mão apresenta o seguinte erro:

SIOCADDRT: Dispositivo inexistente.

Mas minhas máquinas xp não conseguem fazer uma conexção vpn com o servidor. Estou certo de que isso é possivel ?

Pois minha idéia e prover o serviço de vpn, para acesso de qualquer lugar com opções de acesso e não de matriz para filial.


Agradeço a todos.


[17] Comentário enviado por leandrobrunoo em 17/08/2009 - 15:30h

no server matriz consigo subi o serviço
BJC-MATRIZ:/etc/openvpn# /etc/init.d/openvpn start
Starting virtual private network daemon: matriz(OK).

agora no server da filial nao
BJC-FILIAL:/etc/openvpn# /etc/init.d/openvpn start
Starting virtual private network daemon: filial(FAILED).

oq a de errado ?

[18] Comentário enviado por leandrobrunoo em 17/08/2009 - 16:44h

Consegui, era so da permisão aos arquivos !

[19] Comentário enviado por magnolinux em 17/08/2009 - 16:58h

isso aí leandrobrunoo, precisando posta aí no artigo..

abraço..

[20] Comentário enviado por leandrobrunoo em 18/08/2009 - 11:15h

Agora ver a onda !
nao tou conseguindo pingar do server central pra o server filial !
do server central # ping 10.6.0.2 erro
do server filial # ping 10.6.0.1 erro

agora se eu pingar do server central pra ele mermo da certo # ping 10.6.0.1 da ok
oq pode ser, alguem sabe me ajudar !
tenho q por essa vpn pra funfar o mais rapido, pra garantir o meu trampo, e pagar uns curso linux.
ajuda aew galera, se for o caso eu libero o acesso remoto.
please

[21] Comentário enviado por magnolinux em 18/08/2009 - 12:18h

leandrobrunoo, vc liberou a porta da vpn e o trafego dos tunel em ambos os servidores. Como vc esta conseguindo pingar no proprio servidor isso quer dizer q a interface tun esta ok, mais o tunel nao deve ter sido fechado. Outra coisa de uma olhada nos arquivos de logs, sao muito importante para descobrir os problemas.

posta aí os logs.

[22] Comentário enviado por leandrobrunoo em 18/08/2009 - 14:09h

vc fala abri as portas no modem ?
se for isso liberei sim, nao sei mais oq fazer !
amigo magnolinux, se for o caso, e vc tiver tempo claro, eu libero o acesso remoto aqui pra vc da uma olhada, me passa um e-mail com o seu tel q eu te ligo.
leandrobrunoo@msn.com

BJC-MATRIZ:/etc/openvpn# route -n
Tabela de Roteamento IP do Kernel
Destino Roteador MáscaraGen. Opções Métrica Ref Uso Iface
10.6.0.2 0.0.0.0 255.255.255.255 UH 0 0 0 tun0
192.168.1.0 10.6.0.1 255.255.255.0 UG 0 0 0 tun0
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
0.0.0.0 192.168.0.1 0.0.0.0 UG 0 0 0 eth0


BJC-FILIAL:/etc/openvpn# route -n
Tabela de Roteamento IP do Kernel
Destino Roteador MáscaraGen. Opções Métrica Ref Uso Iface
10.6.0.1 0.0.0.0 255.255.255.255 UH 0 0 0 tun0
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
192.168.0.0 10.6.0.2 255.255.255.0 UG 0 0 0 tun0
0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eth0



[23] Comentário enviado por gostt em 03/09/2009 - 11:04h

Ola Magno,
Parabêns, o artigo esta bem detalhado e objetivo, continui assim contribuindo para o mundo linux.. :)

Eu ja usei o openvpn apenas entre uma matriz e felial, agora quero ver como fica usando o mesmo tunel e a mesma porta para vários clientes..
Apreça logo o próximo artigo.. rsrsr

Abraços

Paulo Henrique

[24] Comentário enviado por magnolinux em 08/09/2009 - 11:50h

Bom Dia gostt, fico feliz q o artigo tenha sido util, o outro artigo esta em andamento, mais estou com
alguns projetos q estao me consumindo boa parte do meu tempo, mais assim q possivel, venho a
publicalo.

um grande abraço.

[25] Comentário enviado por sandrojo em 10/09/2009 - 08:41h

Bom dia,

Não esqueçam de dar permissão de execução para os scripts de rotas:

chmod +x /etc/openvpn/rotas.up
chmod +x /etc/openvpn/rotas.down

[]s

Sandro

[26] Comentário enviado por gostt em 10/09/2009 - 20:31h

Ola magnolinux

Hoje fiz uma VPN ente dos pontos

Ponto A
LAN 10.0.0.0/24
eth0 10.0.0.254/24
WAN
eth1 192.168.15/25 WinMax
tun0 192.168.0.1
host: ponto1.dyndns.org

Ponto B

LAN 10.0.2.0/24
eth0 10.0.2.254/24
eth1 lincada no medem adsl
tun0 192.168.0.2
ppp0 dynimica
host ponto2.dyndns.org

A vpn levanta legal e pinga no ip do tunel na pontaA e vice versa

porem quando adiciono as rotas
PontoA
route add -net 10.0.0.0 netmask 255.255.255.0 gw 192.168.0.2 dev tun0

PontoB
route add -net 10.0.2.0 netmask 255.255.255.0 gw 192.168.0.1 dev tun0

Tanto as estações do pontoA e pontoB perdem a saida para a interner e nao ping nem no ip da lando servidor.

PontoA sem adicionar a roda citada acima

route -n
Tabela de Roteamento IP do Kernel
Destino Roteador MáscaraGen. Opções Métrica Ref Uso Iface
192.168.0.2 0.0.0.0 255.255.255.255 UH 0 0 0 tun0
10.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
192.168.15.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
0.0.0.0 192.168.15.1 0.0.0.0 UG 0 0 0 eth1

Com a rota


route -n
Tabela de Roteamento IP do Kernel
Destino Roteador MáscaraGen. Opções Métrica Ref Uso Iface
192.168.0.1 0.0.0.0 255.255.255.255 UH 0 0 0 tun0
200.217.89.8 0.0.0.0 255.255.255.255 UH 0 0 0 ppp0
10.0.2.0 192.168.0.1 255.255.255.0 UG 0 0 0 tun0
10.0.2.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
0.0.0.0 0.0.0.0 0.0.0.0 U 0 0 0 ppp0




PontoB

Sem rota
# route -n
Tabela de Roteamento IP do Kernel
Destino Roteador MáscaraGen. Opções Métrica Ref Uso Iface
192.168.0.1 0.0.0.0 255.255.255.255 UH 0 0 0 tun0
200.217.89.8 0.0.0.0 255.255.255.255 UH 0 0 0 ppp0
10.0.2.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
0.0.0.0 0.0.0.0 0.0.0.0 U 0 0 0 ppp0


com rota

route -n
Tabela de Roteamento IP do Kernel
Destino Roteador MáscaraGen. Opções Métrica Ref Uso Iface
192.168.0.2 0.0.0.0 255.255.255.255 UH 0 0 0 tun0
10.0.0.0 192.168.0.2 255.255.255.0 UG 0 0 0 tun0
10.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
192.168.15.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
0.0.0.0 192.168.15.1 0.0.0.0 UG 0 0 0 eth1

del qual quer forma so pinta no io do tunel

Alaguma dica ?

ATT

PH

[27] Comentário enviado por magnolinux em 10/09/2009 - 23:31h

Boa noite gosst

Deleta todas rotas que vc criou com a vpn e roda as seguintes rotas.

PontoA
route add -net 10.0.2.0 netmask 255.255.255.0 gw 192.168.0.1 dev tun0

PontoB
route add -net 10.0.0.0 netmask 255.255.255.0 gw 192.168.0.2 dev tun0

Faz o teste e posta aí o resultado.

abraço.

[28] Comentário enviado por gostt em 11/09/2009 - 09:33h

Maguino,

[29] Comentário enviado por gostt em 11/09/2009 - 09:34h

Maguino,
Deo certo, obrigo.

Vendo com mais cuido, percebi que estava fazendo a rota local para o GW que nao dava saida para a lan.
Calro, isso hoje cedo depois que vi sua reposta, muito obrigado.

Os comando rotas.up e rotas.down, não deixa o vpn levantar, tive que comentar esse linhas para a vpn subir.
Sabe se no openvpn2 mudou ? da para por no rc.local, mas no script da tunel e bem melhor.

OBS: rodei o chmod +x neles

Abraços

[30] Comentário enviado por magnolinux em 11/09/2009 - 12:30h

blz q funcionou gostt.

è o seguinte, eu utilizo o openvpn2, e nunca tive problema em colocar os scripts junto a conf da vpn. Se vc colocar dentro
do rc.local, vai funcionar normal, mais tem uma desvantagem.

Quando vc coloca os scripts, rotas.up e rotas.down dentro do arquivo do openvpn, quando vc inicia a vpn e levanta as rotas, quando vc para a vpn
ele deleta as rotas, nao tem o risco de vc criar uma enorma tabela de roteamento.

qual distro vc esta utilizando e qual a versao do openvpn.

abraço...

[31] Comentário enviado por gostt em 14/09/2009 - 12:44h

Ola

Esdou usando o Debian Lenny 5.02 e openvpn 2.1~rc11-1 do repositŕio


me rotas.up esta assim:

route add -net 10.0.2.0 netmask 255.255.255.0 gw 192.168.0.1 dev tun0

meu matriz.conf assim:

# Interface da VPN
dev tun

# EndereçIP servidor/filial
ifconfig 192.168.0.1 192.168.0.2

# Protocolo
proto udp

# Porta VPN
port 1194

# Chave estáca
secret /etc/openvpn/chave.key

# Monitoramento da conexã primeiro nú ping, segundo restart da vpn em segundos
keepalive 10 120

# Compressãde dados
comp-lzo

# Mantéa interface tun carregada quando a vpn éeiniciada
persist-tun

# Mantéa chave carregada quando a vpn éeiniciada
persist-key

# Caso o IP mude, o túcontinua estabelecido
float

# Níl do log
verb 6

# Informaçs de status da conexãstatus
status /var/log/openvpn/matriz-staus.log

# Arquivo de log
log-append /var/log/openvpn/matriz.log

# Criando rotas
#up /etc/openvpn/rotas.up
#route 10.0.0.0 255.255.255.0
# Apagando rotas
#down /etc/openvpn/rotas.down

Quando descomento as linhas up e down a vpn não sobe, e ja rodei chmod +x nos rotas.up e rotas.down

ha, o aquivo matriz-log não esta sendo atualizado no log.append

Abraços


[32] Comentário enviado por magnolinux em 14/09/2009 - 18:55h

E ae gostt, tenta colocar a conf das rotas da seguinte forma dentro do arquivo de conf do openvpn

up /etc/openvpn/./rotas.up
down /etc/openvpn/./rotas.down

Antes de reiniciar a vpn deleta as rotas criadas e roda o openvpn..

Posta o resultado aí.

abraço

[33] Comentário enviado por gostt em 15/09/2009 - 09:13h

Ola Maguino.

Deixei a preguiça de lado e fui ler o manual do openvpn, meu inglês é péssimo, mas deu para entender alguma coisa.

no script da matriz fiz assim:

route 10.0.2.0 255.255.255.0 192.168.0.1
e nao use o parâmetro UP

Com isso, ja cria as rotar quando levanta a VPN e deleta quado da um stop.

De qual quer forma, preciso fazer rodar um script na conf do vpn, ja que vou implementar um servidor onde terá vários cliente remotos e os mesmos receberão ip via dhcp, e quero usa ssl para ter mais segurança.

Abrigado pela força.
Se tiver alguma dica, esta valendo.


[34] Comentário enviado por magnolinux em 18/09/2009 - 08:15h

Otimo gostt..

nessa situação sua, aconselho configurar o openvpn com certificado digital, é o tema do meu proximo artigo,
com o certificado digital, vc consegue acrescentar as rotas nas filiais automatica, alem de poder colocar todas filiais
em um unico tunel.

Espere e vc vai gostar do artigo, em relação a segurança tem uma enorme diferença..

abraço..

[35] Comentário enviado por lincolngadea em 23/09/2009 - 11:08h

Olá amigos, estou usando o ubuntu server 8.10, estou configurando minha vpn e dá o seguinte erro nos logs, o mesmo do peterson no inicio do forum....

"Script failed: could not execute external program"

Verifiquei as rotas e estao aparentemente ok.

minha rede local na matriz é : 192.168.0.1
rede da filial: 192.168.1.1

rotas.up da matriz : route -net 192.168.1.0 netmask 255.255.255.0 gw 10.6.0.1 dev tun0

[36] Comentário enviado por magnolinux em 23/09/2009 - 12:04h

bom dia lincolngadea.

Tenta rodar as rotas manualmente, e ve se ira apraçer os erros.

/etc/openvpn/./rotas.up

Posta o resultado ai

abraço.

[37] Comentário enviado por cabriocario em 30/09/2009 - 12:09h

MAgnolinux, gostei do seu artigo. Veio a contribuir na minha busca de um solução do seguinte problema:
Montei um servidor-gateway-dhcp-squid. Preciso fazer minha rede interna acessar uma vpn que é autenticada no gateway.
Aí seguindo uma orinetacao realizei os procedimentos:

Instalei o open vpn
Apt-get install openvpn

Criei o usuário
Useradd openvpn

Digitei as linhas de comando no arquivo /etc/rc.local

Modprobe tun
Openvpn –daemon –config /etc/openvpn/config-generic.ovpn
Iptables –t nat –A POSTROUTING –o tun0 –J MASQUERADE
Echo 1 > /proc/sys/net/ipv4/ip_forward

Extraí os certificados no diretorio /etc/openvpn

Executei o arquivo e funcionou. Só que quando reiniciei o servidor a vpn parou de funcionar.
Tentei ver o log do openvpn, e não consigo achar esse arquivo. openvpn.log.
Que dica poderia me dá para esse problema?

[38] Comentário enviado por magnolinux em 30/09/2009 - 14:56h

o caminho do arquivo de log, vc seta dentro da configuração do openvpn. O primeiro passo
é analisar o log e ver aonde que esta esse problema.

coloca essa linha dentro da conf

# Arquivo de log
log-append /var/log/openvpn/matriz.log

e posta aí o resultado do log...

abraço.

[39] Comentário enviado por cabriocario em 01/10/2009 - 16:21h

O (s) aquivo(s) de configuracao (certificados) eu recebo no ponto de copiar para a pasta openvpn. Mesmo assim adicionei a linha
log-append /var/log/openvpn/openvpn.log. Criando o ditetorio e o arquivo antes.
Restartei o openvpn e mesmo assim não ví registro de log ainda.

[40] Comentário enviado por cabriocario em 01/10/2009 - 17:46h

Preciso fazer com que módulo tun0 suba.
Mesmo digitando ou colocando nosript de inicializacao,"modprobe tun", como n comentário do 30.09.2209, mesmo assim não funciona. E não aparece mensagem de rro nenhuma.

[41] Comentário enviado por cabriocario em 02/10/2009 - 12:31h

Consegui desenrolar os arquivos de log, e consegui fazer funcionar. Encontrei onde era o erro. Vou postar maiores detalhes. De qualquer forma, valeu mesmo a força.

[42] Comentário enviado por magnolinux em 02/10/2009 - 13:47h

Otimo garoto..

Posta sim, as vezes tem mais pessoas com o mesmo problema, já é uma fonte de consulta.

abraço..

[43] Comentário enviado por cabriocario em 02/10/2009 - 19:36h

Depois de dá uma olhada no log do openvpn, e interpretar a LINHA: cannot open file key file 'NOMEDOARQUIVO.KEY', no surch file or directory (errno=2), ví que o arquivo de conf não estava encontrando esse arquivo. E eu me certifiquei que el existia. Aí foi só apontar o endereço correto pra ele.
Resolvido o problema. Valeu aí.

[44] Comentário enviado por magnolinux em 08/10/2009 - 09:23h

Qualquer outras duvidas flavio, so postar..


flw....

[45] Comentário enviado por xanddydf em 07/11/2009 - 23:46h

Boa noite amigo, gostaria de parabenizar pelo tutorial, muito bom, mas sou novato no mundo linux, ja tenho um conhecimento até básico.
estou precisando subir uma vpn urgente, estou utilizando a distro Debian Lenny. instalei a openvpn pela apt-get, segui todos os seu passos, mas na hora que vou subir a vpn está dando o seguinte erro:

Starting virtual private network daemon: filial failed!

log:
Sat Nov 7 22:53:42 2009 /usr/sbin/openvpn-vulnkey -q /etc/openvpn/vpnkey
Sat Nov 7 22:53:42 2009 WARNING: file '/etc/openvpn/vpnkey' is group or others accessible
Sat Nov 7 22:53:42 2009 Static Encrypt: Cipher 'BF-CBC' initialized with 128 bit key
Sat Nov 7 22:53:42 2009 Static Encrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Sat Nov 7 22:53:42 2009 Static Decrypt: Cipher 'BF-CBC' initialized with 128 bit key
Sat Nov 7 22:53:42 2009 Static Decrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Sat Nov 7 22:53:42 2009 LZO compression initialized
Sat Nov 7 22:53:42 2009 TUN/TAP device tun0 opened
Sat Nov 7 22:53:42 2009 TUN/TAP TX queue length set to 100
Sat Nov 7 22:53:42 2009 /sbin/ifconfig tun0 10.0.0.2 pointopoint 10.0.0.1 mtu 1500
Sat Nov 7 22:53:42 2009 /etc/openvpn/rotas.up tun0 1500 1545 10.0.0.2 10.0.0.1 init
Sat Nov 7 22:53:42 2009 openvpn_execve: external program may not be called due to setting of --script-security level
Sat Nov 7 22:53:42 2009 script failed: external program fork failed
Sat Nov 7 22:53:42 2009 Exiting

agradeço pela atenção, qualquer coisa meu e-mail é carlos.alexandre@bsconstrutora.com.br

[46] Comentário enviado por cabriocario em 09/12/2009 - 16:59h

Magno, sobre o comentário {38}, no meu arquivo de log está ssim: cannot load private nome do arquivo /endereco do arquivo/nomedoarquivo.extensao
abaixo:private extensao password verification fail..........
exiting.
Que interpretacao devo ter dessa mesnagem? Já que o arquivo se encontra no endereco correto.

[47] Comentário enviado por cabriocario em 13/12/2009 - 12:56h

Sobre o comentário [46], o problema foi resolvido.

[48] Comentário enviado por magnolinux em 18/12/2009 - 10:26h

Flavio, me desculpe a ausencia de responder o post, realmente está muito corrido as coisas para mim
mais fico feliz que tenha resolvido. Precisando só postar..

Flw...

[49] Comentário enviado por cabriocario em 18/03/2010 - 21:33h

Magnum, como faço para minha placa de rede adotar o ipfixo que eu configurei no arquivo interfaces (debian lenny). Eu configurei a placa de rede interna com ip fixo mas de repente ele muda de ip. Aí fico sem internet na rede interna, porque o gateway (ip da placa de rede interna) configurado no dhcp de repente muda.

[50] Comentário enviado por magnolinux em 19/03/2010 - 16:07h

e ae cabriocario..

se vc configurou no arquivo /etc/network/interface , para sua placa receber um endereço de ip estatico, é impossivel isso se desfazer....

da uma olhada nesta dica que escrevi de como configurar placas de rede no debian...

http://www.vivaolinux.com.br/dica/Configurando-rede-no-Debian/


duvidas posta aíi

abraço..

[51] Comentário enviado por cabriocario em 19/03/2010 - 20:12h

Magnum, não tinha quase nada de diferente da dica ue você escreveu não. Eu só coloquei o address e a netmask, gw e dns eu nao coloquei no interfaces não. Mas acho que não é isso que vai fazer a minha eth da rede interna de repente mudar de 192.168.0.x para 192.168.0.xx.
basta dá um dhclient que a eth muda de ip.

[52] Comentário enviado por rudielle em 14/04/2010 - 10:03h

Bom dia Magno, cara, estou com um problema a uns 10 dias tentando implementar uma vpn e não consigo. Minha situação é a seguinte, meu cliente tem 12 lojas, e preciso interliga-las por causa de transações de TEF. Minha estrutura lá é a seguinte, na matriz, tenho um servidor HP com uma placa de rede, nela chega a internet do roteador, a internet la é speedy com ip fixo, esse ip chega la no roteador 201.26.75.xx, porém, no servidor hp a placa esta configurada com o Ip 191.168.1.150, mascara de rede 255.255.255.0, gateway 192.168.1.1 (ip do roteador), e com os dns do speedy 200.100.38.xx e o outro dns do speedy que nao me lembro. Estou com o SuSe 11.2 instalado la, só que estou apanhando demais na configuração. As filiais todas tem windows xp, e preciso acessar esse servidor, porém a duvida esta nesse ip que na minha placa de rede é o ip local, interno da rede, e o ip fixo que chega no modem. Voce pode me ajudar a esclarecer minha dúvida?

[53] Comentário enviado por rudielle em 26/04/2010 - 22:44h

Mágno, me salva pelo amor de Deus, ou alguém aqui. Estou pra desistir, não dá certo nem com reza brava essa vpn.
Meu cenário é esse:

Matriz:
Rede Local Interna: 192.168.1.xx
Rede VPN: 10.6.1.1

Filial 1:
Rede Local Interna: 192.168.2.xx
Rede VPN: 10.6.2.1

Filial 2:

Rede Local Interna: 192.168.3.xx
Rede VPN: 10.6.3.1

e por ai vai, até a décima segunda filial, o problema é que conecta em uma filial com a matriz, quando vai conectar a outra aparece a seguinte mensagem:

Mon Apr 26 22:40:52 2010 OpenVPN 2.1.1 i686-pc-mingw32 [SSL] [LZO2] [PKCS11] built on Dec 11 2009
Mon Apr 26 22:40:52 2010 NOTE: OpenVPN 2.1 requires '--script-security 2' or higher to call user-defined scripts or executables
Mon Apr 26 22:40:52 2010 Static Encrypt: Cipher 'BF-CBC' initialized with 128 bit key
Mon Apr 26 22:40:52 2010 Static Encrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Mon Apr 26 22:40:52 2010 Static Decrypt: Cipher 'BF-CBC' initialized with 128 bit key
Mon Apr 26 22:40:52 2010 Static Decrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Mon Apr 26 22:40:52 2010 LZO compression initialized
Mon Apr 26 22:40:52 2010 There is a problem in your selection of --ifconfig endpoints [local=10.6.7.7, remote=10.6.7.1]. The local and remote VPN endpoints must exist within the same 255.255.255.252 subnet. This is a limitation of --dev tun when used with the TAP-WIN32 driver. Try 'openvpn --show-valid-subnets' option for more info.
Mon Apr 26 22:40:52 2010 Exiting

é como se a minha sub-mascara nao suporta-se mais de 1 loja ou algo do tipo.

Se eu colocar no config do cliente o ip 10.6.1.2 e do servidor 10.6.1.1 conecta beleza, porém, se eu for conectar a próxima filial,
crio lá o outro arquivo dentro do servidor, com o ip 10.6.2.1 e do servidor 10.6.2.1 já da a mensagem que exemplifiquei acima.

Peço encarecidamente ajuda.
Obrigado.



[54] Comentário enviado por magnolinux em 27/04/2010 - 07:12h

Bom dia rudielle...

Analisando a mensagem de erro, pude notar que provavelmente esse erro está na definição dos endereços de IP para a matriz e filial..

faça as seguintes alterações e efetue os testes..

dentro do servidor, vc criou varios arquivos de configurações para suas filiais. dentro desses arquivos a linha

ifconfig 10.6.1.1 10.6.1.2 - Primeiro IP Servidor/ Segundo Ip cliente

No outro arquivo de configuração dentro do servidor, o IP da Matriz nao muda, somente o da filial
ifconfig 10.6.1.1 10.6.1.3

e assim por diante fica a configuração na matriz, já nos clientes vc defini ao inverso IP do cliente / ip servidor, lembrando que o servidor so tera um IP e nao varios IPs como vc está criando e outra, todas as filiais ficarao na mesma classe de IP, mudando somente o final.

Abaixo irei exemplificar como ficaria.

*** Matriz ***

filial1.conf
ifconfig 10.6.1.1 10.6.1.2

filial2.conf
ifconfig 10.6.1.1 10.6.1.3

filial3.conf
ifconfig 10.6.1.1 10.6.1.4

Etc.......

*** Filial1 ***
ifconfig 10.6.1.2 10.6.1.1

*** Filial2***
ifconfig 10.6.1.3 10.6.1.1

***Filial3***
ifconfig 10.6.1.4 10.6.1.1

Espero ter ajudado, qualquer duvida posta aí..

abraço..




[55] Comentário enviado por leandrobrunoo em 06/05/2010 - 11:30h

Magno, a tempo que estou tentando subi a vpn aqui, só que estar me apresentando esse erro.

root@bjconf:/etc/openvpn# /etc/init.d/openvpn start
* Starting virtual private network daemon(s)... * Autostarting VPN 'filial' [fail]

tanto na matriz, como também na filial. a range da rede da matriz e o seguinte 10.0.0.0, e o da filial e o 10.1.1.0, sera que e isso que ta tando errado, ou melhor conflito com o ip do túnel ?

o log do erro e esse

root@bjconf:/etc/openvpn# tail -f /var/log/openvpn/filial.log
Thu May 6 11:19:35 2010 Static Encrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Thu May 6 11:19:35 2010 Static Decrypt: Cipher 'BF-CBC' initialized with 128 bit key
Thu May 6 11:19:35 2010 Static Decrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Thu May 6 11:19:35 2010 LZO compression initialized
Thu May 6 11:19:35 2010 TUN/TAP device tun0 opened
Thu May 6 11:19:35 2010 TUN/TAP TX queue length set to 100
Thu May 6 11:19:35 2010 /sbin/ifconfig tun0 10.6.0.2 pointopoint 10.6.0.1 mtu 1500
Thu May 6 11:19:35 2010 /etc/openvpn/rotas.up tun0 1500 1545 10.6.0.2 10.6.0.1 init
Thu May 6 11:19:35 2010 script failed: could not execute external program
Thu May 6 11:19:35 2010 Exiting

[56] Comentário enviado por leandrobrunoo em 06/05/2010 - 12:41h

opa eu comentei a linha rotas dos conf, tanto da matriz quanto da filial, e deu certo
ai essas rotas eu adicionei ao meu firewall.

deu certo, bem ta rodando, mais se alguem soube algo mais simples posta aqui que irei estudar.

abraços a todos

[57] Comentário enviado por cabriocario em 01/09/2010 - 00:41h

Magnum, eu montei um servidor (gateway) com o DEBIAN LENNY, onde eu compartilho a internet com minha rede interna. Consegui me conectar via VPN com outro servidor.
Porém, não estou conseguindo disponibilizar a VPN para minha rede interna. Já fiz o procedimento do comentário número:37.
Pode me dá uma dica de como resolver esse problema?

[58] Comentário enviado por rctcunha@hotmail em 29/03/2011 - 13:13h

Boa tarde, estou começando a usar linux agora e tenho que fazer uma VPN no caso escolhi o OpenVpn para usar.Historico: tenho uma matriz que tem o link da embratel(nosso sistema é via esse link). Na matriz nossas maquinas tem windows XP e pegam o sistema muito bom. Hj temos 2 filiais e minha solução quebra-galho foi usar o winconnect(provisoriamente)para que as filiais usem nosso sistema, em cada filial tenho 8 computadores. Quero saber:Vou ter que montar 1 servidor em cada filial e 1 na matriz?

[59] Comentário enviado por teoyemal em 20/05/2011 - 23:40h

Segui as regras acima mas estou tendo problemas e o erro segue abaixo:

Starting virtual private network daemon: matriz failed!

e o log esta da seguinte forma

Fri May 20 20:38:37 2011 OpenVPN 2.1.3 x86_64-pc-linux-gnu [SSL] [LZO2] [EPOLL] [PKCS11] [MH] [PF_INET6] [eurephia] built on Oct 22 2010
Fri May 20 20:38:37 2011 NOTE: OpenVPN 2.1 requires '--script-security 2' or higher to call user-defined scripts or executables
Fri May 20 20:38:37 2011 /usr/sbin/openvpn-vulnkey -q /etc/openvpn/chave.key
Fri May 20 20:38:37 2011 Static Encrypt: Cipher 'BF-CBC' initialized with 128 bit key
Fri May 20 20:38:37 2011 Static Encrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Fri May 20 20:38:37 2011 Static Decrypt: Cipher 'BF-CBC' initialized with 128 bit key
Fri May 20 20:38:37 2011 Static Decrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Fri May 20 20:38:37 2011 LZO compression initialized
Fri May 20 20:38:37 2011 Socket Buffers: R=[124928->131072] S=[124928->131072]
Fri May 20 20:38:37 2011 TUN/TAP device tun0 opened
Fri May 20 20:38:37 2011 TUN/TAP TX queue length set to 100
Fri May 20 20:38:37 2011 /sbin/ifconfig tun0 10.6.0.1 pointopoint 10.6.0.2 mtu 1500
Fri May 20 20:38:37 2011 /etc/openvpn/rotas.up tun0 1500 1545 10.6.0.1 10.6.0.2 init
Fri May 20 20:38:37 2011 openvpn_execve: external program may not be called unless '--script-security 2' or higher is enabled. Use '--script-security 3 system' for backward compatibility with 2.1_rc8 and earlier. See --help text or man page for detailed info.
Fri May 20 20:38:37 2011 script failed: external program fork failed
Fri May 20 20:38:37 2011 Exiting

[60] Comentário enviado por GPaseto em 13/09/2011 - 11:44h

Olá,

Muito bom artigo...
Gostaria de saber se é possível, usar Openvpn na mesma rede.
Pórem interligando duas sub-redes, por exemplo:
192.168.1.1/25 - Diretoria
192.168.1.128/25 - Financeiro

é possível?

[61] Comentário enviado por cabriocarico em 28/05/2012 - 15:21h

Magnum,
Eu uso o DEBIAN LENNY, antes eu instalava o openvpn pelo apt-get install openvpn.
Agora, não consigo mais instalar pelos mesmos repositórios que antes eu utilizava.
Disponibiliza alguns repositórios onde eu possa instalar o openvpn, ou uma outra forma de eu instalar o openvpn que não seja via apt-get.
Desde já eu agradeço.

[62] Comentário enviado por removido em 05/12/2012 - 10:27h

Olá, ao tentar conectar o cliente ocorre erro abaixo no log, poderiam me ajudar?

Tue Dec 04 22:54:14 2012 OpenVPN 2.1.3 i686-pc-mingw32 [SSL] [LZO2]
[PKCS11] built on Aug 20 2010
Tue Dec 04 22:54:14 2012 NOTE: OpenVPN 2.1 requires '--script-security
2' or higher to call user-defined scripts or executables
Tue Dec 04 22:54:14 2012 Cannot load private key file
keys/clifilial.key: error:0906D06C:PEM routines:PEM_read_bio:no start
line: error:140B0009:SSL routines:SSL_CTX_use_PrivateKey_file:PEM lib
Tue Dec 04 22:54:14 2012 Error: private key password verification failed
Tue Dec 04 22:54:14 2012 Exiting

[63] Comentário enviado por Neo_X em 03/01/2013 - 18:39h


[17] Comentário enviado por leandrobrunoo em 17/08/2009 - 15:30h:

no server matriz consigo subi o serviço
BJC-MATRIZ:/etc/openvpn# /etc/init.d/openvpn start
Starting virtual private network daemon: matriz(OK).

agora no server da filial nao
BJC-FILIAL:/etc/openvpn# /etc/init.d/openvpn start
Starting virtual private network daemon: filial(FAILED).

oq a de errado ?


Leandro, como vc aplicou a permissão? estou com o mesmo problema srsr...

[64] Comentário enviado por wimpactus em 23/05/2013 - 14:20h

Boa tarde pessoal, consegui funcionar quase tudo, só que minha rede matriz não consegue ver a filial. o que fiz de errado?

Já tentei mudar a rota da matriz e não adiantou, por enquanto a configuração está a seguinte.

Matriz
IP: 192.168.0.1
TUN 10.0.6.1 -- 10.0.6.2
rota 192.168.2.0 para 10.0.6.2

Ping 192.168.2.xxx falha

Filial
IP: 192.168.2.1
TUN 10.0.6.2 -- 10.0.6.1
rota 192.168.0.0 para 10.0.6.1
Ping 192.168.0.xxx OK, perfeito

Abraço

Win




[65] Comentário enviado por rogergordo em 08/07/2013 - 14:31h

boa tarde, estou mexendo agora com linux devido a segurança etc... o problema meu é que nao tenho acesso ao modem para liberar portas, pq!!!
pq e um framerelay da OI (CISCO2500) e nao temos acesso a ele, como poderia configurar este servidor?

a resposta e de grande importancia para mim.

obrigado.

[66] Comentário enviado por leandrops em 14/11/2013 - 00:01h

Olá,

preciso de uma ajuda,

eu configurei a VPN igual esse tutorial... consegui conectar normal...

mas o ip 10.0.6.1 não pinga no 10.0.6.2 e vice-versa.

Alguem tem uma solução?

Obrigado

[67] Comentário enviado por renatoredes em 16/01/2014 - 12:30h

magnolinux bom dia !
como que eu faço para interliga a rede com o DNS DINAMICO ?
renatoredes@live.com

[68] Comentário enviado por danpessoa2010 em 15/08/2014 - 17:23h

Galera, fiz todo o passoa passo ai, só que na hora de dar o Start o serviço não levanta, meu log está ficando assim...

Fri Aug 15 17:21:10 2014 OpenVPN 2.2.2 i686-redhat-linux-gnu [SSL] [LZO2] [EPOLL] [PKCS11] [eurephia] built on Apr 5 2012
Fri Aug 15 17:21:10 2014 NOTE: the current --script-security setting may allow this configuration to call user-defined scripts
Fri Aug 15 17:21:10 2014 Static Encrypt: Cipher 'BF-CBC' initialized with 128 bit key
Fri Aug 15 17:21:10 2014 Static Encrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Fri Aug 15 17:21:10 2014 Static Decrypt: Cipher 'BF-CBC' initialized with 128 bit key
Fri Aug 15 17:21:10 2014 Static Decrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Fri Aug 15 17:21:10 2014 LZO compression initialized
Fri Aug 15 17:21:10 2014 Socket Buffers: R=[110592->131072] S=[110592->131072]
Fri Aug 15 17:21:10 2014 TUN/TAP device tun0 opened
Fri Aug 15 17:21:10 2014 TUN/TAP TX queue length set to 100
Fri Aug 15 17:21:10 2014 /sbin/ip link set dev tun0 up mtu 1500
Fri Aug 15 17:21:10 2014 /sbin/ip addr add dev tun0 local 10.1.0.1 peer 10.1.0.2
Fri Aug 15 17:21:10 2014 /etc/openvpn/rotas.up tun0 1500 1545 10.1.0.1 10.1.0.2 init
Fri Aug 15 17:21:10 2014 WARNING: Failed running command (--up/--down): could not execute external program
Fri Aug 15 17:21:10 2014 Exiting


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts