Você está na página 1de 8

Congurando o OpenVPN para mltiplos clientes |...

http://www.rfranzen.com.br/2006/10/06/conguran...

Ricardo Franzen
out 6, 2006

Configurando o OpenVPN para mltiplos clientes


Muitas vezes precisamos interligar de forma segura diversos pontos que nao estao
prximos fisicamente, ou, devido a algum imprevisto acabamos tendo que acessar
remotamente e de forma segura os servidores de algum cliente.
Vou explicar aqui como configurar um servidor OpenVPN para aceitar conexes de
mltiplos clientes utilizando certificados gerados com o OpenSSL.
Download e instalaao do OpenVPN
Modelo do arquivo openssl.cnf
Gerando os certificados
Modelo do arquivo servidor.conf
Modelo do arquivo cliente.conf

Download e Instalaao do OpenVPN


Aqui temos aquele mamao com acar que a grande maioria sabe de cor e salteado.
## Download do OpenVPN
$wget http://openvpn.net/release/openvpn-2.0.9.tar.gz
## Descompactar o contedo do arquivo
$tar -zxvf openvpn-2.0.9.tar.gz
## Isto s para a organizaao
#mv openvpn-2.0.9/ /usr/src/
## Compilar e pronto
#cd /usr/src/openvpn-2.0.9
#./configure --prefix=/usr/local/openvpn
#make && make install ## Ou ainda mais simples que tudo isso...
#apt-get install openvpn

Sou usurio do Debian e do Ubuntu, entao por questes de comodidade prpria


prosseguir como se tivesse instalado via apt.

vou

Modelo do arquivo openssl.cnf


Vou assumir que voc j possui o OpenSSL instalado.
Voc pode alterar ou at mesmo usar o seu prprio openssl.cnf, estou fornecendo este
pra deixar tudo bem completo =).
Geralmente este arquivo encontra-se em /etc/ssl/openssl.cnf.
#
# OpenSSL example configuration file.
# This is mostly being used for generation of certificate requests.
#
RANDFILE = /dev/arandom
[ca]
default_ca = CA_default
[CA_default]
dir = /etc/openvpn
certificate = $dir/xx.crt
private_key = $dir/xx.key

1 of 8

10-08-2009 10:13

Congurando o OpenVPN para mltiplos clientes |...

http://www.rfranzen.com.br/2006/10/06/conguran...

serial = $dir/serial
database = $dir/index.txt
new_certs_dir = $dir/
default_md = md5
policy = policy_match
default_days = 3500
[policy_match]
countryName = match
stateOrProvinceName = match
organizationName = match
organizationalUnitName = optional
commonName = supplied
emailAddress = optional
####################################################################
[ req ]
default_bits = 1024
default_keyfile = privkey.pem
distinguished_name = req_distinguished_name
attributes = req_attributes
[ req_distinguished_name ]
countryName = Country Name (2 letter code)
#countryName_default = AU
countryName_min = 2
countryName_max = 2
stateOrProvinceName = State or Province Name (full name)
#stateOrProvinceName_default = Some-State
localityName = Locality Name (eg, city)
0.organizationName = Organization Name (eg, company)
#0.organizationName_default = Internet Widgits Pty Ltd
# we can do this but it is not needed normally
#1.organizationName = Second Organization Name (eg, company)
#1.organizationName_default = CryptSoft Pty Ltd
organizationalUnitName = Organizational Unit Name (eg, section)
#organizationalUnitName_default =
commonName = Common Name (eg, fully qualified host name)
commonName_max = 64
emailAddress = Email Address
emailAddress_max = 64
[ req_attributes ]
challengePassword = A challenge password
challengePassword_min = 4
challengePassword_max = 20
unstructuredName = An optional company name
[ x509v3_extensions ]
nsCaRevocationUrl = http://www.cryptsoft.com/ca-crl.pem
nsComment = "This is a comment"
# under ASN.1, the 0 bit would be encoded as 80
nsCertType = 0x40
#nsBaseUrl
#nsRevocationUrl
#nsRenewalUrl
#nsCaPolicyUrl
#nsSslServerName
#nsCertSequence

2 of 8

10-08-2009 10:13

Congurando o OpenVPN para mltiplos clientes |...

http://www.rfranzen.com.br/2006/10/06/conguran...

#nsCertExt
#nsDataType

Gerando os certificados
Certificado da entidade certificadora (apenas um)
openssl req -nodes -new -x509 -keyout my-ca.key -out my-ca.crt -days 3650
Certificado do cliente (um para cada cliente)
openssl req -nodes -new -keyout xx.key -out xx.csr
openssl ca -out xx.crt -in xx.csr
Parametros Diffie Hellman no servidor.
openssl dhparam -out dh1024.pem 1024

Modelo do arquivo servidor.conf


Como o prprio nome diz, este o arquivo de configuraao do servidor. Este arquivo
deve ficar localizado em /etc/openvpn.
Lembrando que no servidor devemos ter os certificados da unidade certificadora, do
servidor e as chaves pblicas dos clientes.
port 443 #modifiquei a porta padrao do openvpn
proto tcp
dev tun
ca pmg.crt #certificado da unidade certificadora
cert xx.crt #chave pblica do cliente
key xx.key #chave privada do cliente
dh dh1024.pem
client-config-dir ccd #criar o diretorio ccd diretorio no /etc/openvpn
route 10.0.1.0 255.255.255.0
server 10.0.1.0 255.255.255.0
ifconfig-pool-persist ipp.txt
keepalive 10 120
comp-lzo
persist-key
persist-tun
status openvpn-status.log
verb 3

Modelo do arquivo cliente.conf


Hum em qual das mquinas vai este arquivo ?? Claro que na mquina cliente, no
diretorio /etc/openvpn.
Lembrando que no cliente devemos ter a chave publica da unidade certificadora, do
servidor e as chaves publica e privada do proprio cliente.
dev tun0
proto tcp
remote 111.111.111.11 443 #endereco IP do servidor
nobind
persist-key
persist-tun
ca xx.crt #certificado do orgao certificador
cert xx.crt #certificado publico do cliente
key xx.key #chave privada do cliente
comp-lzo

3 of 8

10-08-2009 10:13

Congurando o OpenVPN para mltiplos clientes |...

http://www.rfranzen.com.br/2006/10/06/conguran...

verb 3

Com essas configuraes podemos iniciar o openvpn e sair conectando os clientes. Os


endereos IP serao atribuados dinamicamente.
#openvpn --config /etc/openvpn/servidor.conf --daemon

Categorias: Artigos Tcnicos


Tags: Linux, OpenVPN, Software Livre

19 Respostas
1.

Dudu disse:
17 de setembro de 2007 s 13:03
Ol, gostaria de saber se o openvpn funciona bem no Ubuntu como servidor e windows
como estao.
Abraos

2.

Marcelo Coelho disse:


10 de julho de 2008 s 10:56
Realmente faltou configurar um cliente Windows.

3.

Ricardo Franzen disse:


10 de julho de 2008 s 11:04
Fala Marcelo!
Foi para a pauta. Esta semana devo estar postando um artigo de como configurar o
cliente openvpn no windows.
abraos!

4.

Black6 disse:
13 de julho de 2008 s 22:55
cara muito bom tudo q preciso so q n saquei nada. preciso muito fazer isso aqui. tenho
um mini-provedor wireless e isso ajudaria mt so q n to sacando mt alguema pode me
ajuda com a configuracao? seria mt bom tbm se o Ricardo coloque a conf do cliente
windows

5.

Ricardo Franzen disse:


13 de julho de 2008 s 23:03
Pessoal, j encontra-se disponvel um artigo sobre como configurar o cliente do
OpenVPN no Windows
http://www.rebit.com.br/2008/07/10/como-configurar-o-cliente-openvpn-no-windows-xp/
Abraos!

6.

joelson disse:
14 de agosto de 2008 s 11:57
Kara, antes de td, parabns pelos artigos
Ento, gostaria se possvel que vc me esclarecesse sobre alguns pontos. Quero dizer q
no entendo nada de VPN, portanto, desculpa alguna ignorncia da minha parte.
o seguinte, inicialmente, gostaria de saber, por exemplo, depois de confugurada a rede
VPN posso acessar qualquer mquina da rede matriz onde se encontra o

4 of 8

10-08-2009 10:13

Congurando o OpenVPN para mltiplos clientes |...

http://www.rfranzen.com.br/2006/10/06/conguran...

servidor?tipo assim, preciso deixar a rede de matriz e da filial como se fosse uma soh e
eu podesse acessar, por exemplo, um dos servidores de sistemas que temos na matriz.
Na verdade apenas um sistema DOS, baseado em clipper, ou eu soh posso ter acesso
ao servidor onde estah configurada a VPN, como eh isso???
Eu preciso rodar esse programa DOS na filial, mas mapeando a partir do servidor na
matriz, entende, como se fosse local, essa eh a minha necessidade?
RESUMINDO: eu preciso saber o seguinte, depois de configurada e funcianal oq
exatamente eu posso fazer a partir da filial com as mquinas da matriz( ou mquina
servidora do dito programa DOS)???
7.

Ricardo Franzen disse:


14 de agosto de 2008 s 13:00
Fala Joelson! Primeiramente obrigado pela visita.
Sorbe a tua dvida, se nos seus servidores voc configurar uma rota que ligue a rede da
vpn com a sua rede interna, sim, possvel fazer com que as mquinas se enxerguem de
forma transparente.

8.

Fabio disse:
22 de agosto de 2008 s 17:37
prezado Ricardo
quando fui gererar a segunda cheve do clente no servidor deu o seguinte erro.
root@fwproxy:/home/fabio# openssl ca -out xx.crt -in xx.csr
Using configuration from /usr/lib/ssl/openssl.cnf
Error opening CA private key ./demoCA/private/cakey.pem
4904:error:02001002:system library:fopen:No such file or directory:bss_file.c:35
2:fopen(./demoCA/private/cakey.pem,'r)
4904:error:20074002:BIO routines:FILE_CTRL:system lib:bss_file.c:354:
unable to load CA private key
root@fwproxy:/home/fabio# openssl ca -out xx.crt -in xx.csr
Using configuration from /usr/lib/ssl/openssl.cnf
Error opening CA private key ./demoCA/private/cakey.pem
4905:error:02001002:system library:fopen:No such file or directory:bss_file.c:35
2:fopen(./demoCA/private/cakey.pem,'r)
4905:error:20074002:BIO routines:FILE_CTRL:system lib:bss_file.c:354:
unable to load CA private key
eu uso o ubuntu e debian

9.

Ricardo Franzen disse:


22 de agosto de 2008 s 18:24
Fala Fbio! valeu pela visita
cara, o problema a o seu openssl.cnf que est com as configuraes default. Para gerar
os certificados voc precisa fazer umas alteraes nele. Ali no artigo eu mostro um
exemplo de arquivo padro que funciona. Confere l!
Abraos.

10.

5 of 8

Fabio disse:
25 de agosto de 2008 s 9:17

10-08-2009 10:13

Congurando o OpenVPN para mltiplos clientes |...

http://www.rfranzen.com.br/2006/10/06/conguran...

ok obrigado pela, resposta valeu vou da uma olhada e retorno se deu certo..
11.

Fabio disse:
27 de agosto de 2008 s 17:51
prezado Ricardo
quando eu dou o comando ifconfig tun0 para levantar a interface da esse erro oq pode
ser me dar um luz de resto fou bem
error fetching interface information: Device not found

12.

Ricardo Franzen disse:


27 de agosto de 2008 s 18:47
A interface tun0 sobe junto com o servio do openvpn, voc no precisa fazer isso
manualmente. D uma conferida nos logs se ela no est aparecendo
automaticamente quer dizer que tem algo de errado a
[]s

13.

Fabio disse:
28 de agosto de 2008 s 14:09
Prezado Ricardo
Olhei os lg com o comando tail /var/log/messages
e apareceu essas Menssagens Aug 28 13:54:10 fwproxy kernel: [ 46.057549] input:
ImPS/2 Generic Wheel Mouse as /devices/platform/i8042/serio1/input/input4
Aug 28 13:54:10 fwproxy kernel: [ 48.581911] parport_pc 00:08: reported by Plug and Play
ACPI
Aug 28 13:54:10 fwproxy kernel: [ 48.583319] parport0: PC-style at 0378, irq 7
[PCSPP,TRISTATE]
Aug 28 13:54:10 fwproxy kernel: [ 68.940296] NET: Registered protocol family 10
Aug 28 13:54:10 fwproxy kernel: [ 68.944566] lo: Disabled Privacy Extensions
Aug 28 13:54:10 fwproxy kernel: [ 72.526598] loop: module loaded
Aug 28 13:54:10 fwproxy kernel: [ 72.630611] lp0: using parport0 (interrupt-driven).
Aug 28 13:54:10 fwproxy kernel: [ 73.365581] Adding 979924k swap on /dev/sda1.
Priority:-1 extents:1 across:979924k
Aug 28 13:54:10 fwproxy kernel: [ 74.035591] EXT3 FS on sda2, internal journal
Aug 28 13:54:10 fwproxy kernel: [ 76.755192] ip_tables: (C) 2000-2006 Netfilter Core
Team
se puder ajudar sobre oq se trata eu agradeo

14.

Ricardo Franzen disse:


29 de agosto de 2008 s 0:57
Fabio, no tem nada do openvpn a.. ehehehe no seu conf, mude o valor do parmetro
verb para um nmero maior (algo como 6.. no me recordo e no tenho como olhar
aqui), reinicie o openvpn ele vai criar um arquivo de log especfico do openvpn. No
me lembro se vai ser na pasta do openvpn (/etc/openvpn) ou no /var/log
nestes logs provavelmente vai mostrar o que est acontecendo de errado pra voc
conseguir resolver!
[]s

6 of 8

10-08-2009 10:13

Congurando o OpenVPN para mltiplos clientes |...

http://www.rfranzen.com.br/2006/10/06/conguran...

15.

Fabio disse:
29 de agosto de 2008 s 12:06
ok valeu deu certo era o driver tun que no estava carregando valeu pela fora

16.

Fbio disse:
11 de setembro de 2008 s 17:34
Boa tarde Ricardo
Blz com vc olha eu aqui de novo cara minha vpn conecta normal blz, mas estou como
uma duvida minha rede base 100, e a vpn esta conectando 10mbps tem alguma
configurao pare ser alterada?? se puder me respoder agradeo, pois j pesquisei na
net e no ache nada para solucionr o problema obrigado.

17.

Ricardo Franzen disse:


11 de setembro de 2008 s 19:42
E ai Fbio cara, at onde eu sei, no existe nenhuma opo de velocidade no
openvpn agora, qualquer rede, sempre trabalha na velocidade mais baixa disponvel
na rede. Se voc utiliza um HUB na sua rede e tem algum computador com uma placa de
rede 10mbps, sua rede vai trabalhar a esta velocidade

18.

Genival disse:
22 de junho de 2009 s 17:37
Ricardo,
Estou tentando colocar o openVPN para funcionar e no estou conseguindo. Meu
servidor e meu cliete esto em uma mquina windows XP. Configurei os arquivos
conforme sua orientao.
Estou pingando os IPs do tunel criado (172.17.0.1 & 172.17.0.6), porm a partir do cliente
no pingo o endereo e nem a rede do servidor (192.168.1.128/24).
Da mesma forma, a partir do servidor no pingo o IP do cliente e nem a rede do
mesmo(172.18.12.16/24).
Eis os endereos envolvidos:
Lado do servidor:
rede 192.168.1.0
Mascara 255.255.255.0
Default gateway 192.168.1.1
Lado do Cliente:
rede 172.18.12.16
Mascara 255.255.255.0
Default gateway 172.18.12.1
Gostaria da sua gentileza de criar os arquivos (sevidor e cliente), pois no sei mais o que
fazer.
A internet em ambos os lados est funcionando corretamente, pois o tnel fecha.
Deve ser feita mais alguma configurao no windows (roteamento, rede compartilhada,
ponte ou algo assim)???
Desde j agradeo sua ateno e pacincia, pois necessito desta VPN funcionando para
um trabalho de faculdade.
Se preferir pode me responder por e-mail.

7 of 8

10-08-2009 10:13

Congurando o OpenVPN para mltiplos clientes |...

19.

8 of 8

http://www.rfranzen.com.br/2006/10/06/conguran...

Ricardo Franzen disse:


22 de junho de 2009 s 19:55
Genival, agradeo muito a visita e o comentrio, mas vamos pensando
Se voc est na faculdade, quer dizer que est preparado para perder noites de sono
pesquisando e estudando (eu fao isso). Significa que est disposto a perder sua vida
social e preferir ficar varrendo o Google atrs de alguma coisa que lhe seja vivel.
Corrija-me se eu estiver errado, mas voc deve estar no incio do curso. Fica aqui uma
dica de algum que j est nessa merd.. chamada curso superior. Uma fonte NUNCA
resolve seu problema. Pesquise em mais de um lugar e junte tudo. Faa seu MIX e a
voc vai encontrar uma soluo.
Este artigo est muito mastigado. Desculpe, no vou criar um arquivo pra voc. No por
preguia. Por falta de tempo e pelo seu bem. Pesquisa.
Quando comecei a trabalhar com informtica, no sabia nada e a primeira coisa que ouvi
do meu superior:
Quando tiver um problema, TE VIRA e RESOLVE!. Hoje sou a prova viva que essa a
melhor forma.
Ento eu te digo cara, TE VIRA!

10-08-2009 10:13

Você também pode gostar