OpenVPN – Como criar uma rede privada virtual

51 Comentários

Uma rede privada virtual (VPN – Virtual Private Network ) é uma rede cifrada e privada criada por cima da Internet, de maneira a garantir privacidade na comunicação entre os vários computadores.

Esta rede não necessita de estar no mesmo local físico, podendo-se configurar qualquer computador em quase qualquer lado para integrar a mesma rede. É uma rede bastante utilizada por várias instituições, fazendo com que seja possível trabalhar a partir de qualquer lado, como se estivesse na empresa.

Existem vários clientes de VPN que já possam ter usado, como por exemplo o “Hamachi” que é bastante utilizado pelas comunidades de “Gaming”, o OpenVPN, etc.

ovpntech_logo-s


Falando agora um pouco do OpenVPN, este software multi-plataforma permite a criação de uma VPN entre várias máquinas com sistemas operativos diferentes.

O OpenVPN tem como principais funções:

  • Fazer um túnel entre sub-redes ou adaptadores virtuais a partir de um porto TCP ou UDP.
  • Configuração de vários servidores com distribuição de carga para conseguir atender milhares de pedidos de ligações VPN de clientes.
  • Usa toda a biblioteca de cifra e autenticação do OpenSSL para proteger a rede de acessos indevidos.
  • Usa qualquer cifra, tamanho da chave, ou algoritmo de integridade suportado pela biblioteca do OpenSSL.
  • Escolha entre algoritmos de cifra simétrica ou assimétrica.
  • Utiliza algoritmos de compressão para diminuir o tráfego na rede.
  • Configuração de túneis entre clientes com IP dinâmico.
  • Túneis seguros sem ter que utilizar regras especificas nas “firewalls”.
  • Túneis entre NAT.

Configuração de um servidor OpenVPN em Windows XP:

Pré-requisitos:

  • OpenVPN 2.1 rc19 (Servidor e Clientes)
  • Ethernet Bridge 2.0 (Este programa é necessário no servidor, pois ajuda a fazer uma “bridge” entre as duas redes.)
  1. Instalar as aplicações

1.1  Após instalar o OpenVPN

1.1.1        Ir à pasta das Ligações de Rede (Painel de Controlo > Ligações de Rede)
1.1.2        Alterar o nome da placa de rede virtual “Ligação de área local #” com a descrição “TAP-Win32 adapter V9”, para “tap-bridge”.
ligacao_rede

Nota 1: Para alterar o nome da placa de rede virtual basta seleccionar a placa de rede e carregar em F2.

1.2 Após instalar o Ethernet Bridge 2.0 é necessário reiniciar.

2. Ir a pasta onde instalou o OpenVPN (C:\Programas\OpenVPN)

3. Abrir a pasta com o nome “easy-rsa”.
3.1 Copiar os ficheiros contidos na pasta “rsa” do pacote fornecido e colar na pasta “easy-rsa” do OpenVPN.
3.2  Abrir uma consola de DOS na pasta “easy-rsa” do OpenVPN e executar os seguintes comandos:
3.2.1  vars  (Colocação em memória das variáveis do sistema)

vars

Nota 2: É necessário fazer este comando em cada consola nova.

3.2.2 clean-all (Limpeza e criação da nova pasta de chaves)
clean-all
Nota 3:  A pasta “keys” irá conter as chaves e os certificados criados.

3.2.3  build-ca (Constrói a Autoridade Certificadora para assinar os certificados)
build-ca
Nota 4:  No campo “Common Name” escrever o nome do servidor. (ex: pplware)

3.2.4  build-key-server nomeServer ( Cria a chave e o certificado do servidor “nomeServer”)
build-key-server_1

build-key-server_2

Nota 5:  No campo “Common Name” escrever o endereço pelo qual se iram ligar a este (ex: pplware.sapo.pt)

3.2.5   build-dh ( Gera um número primo seguro para ser usado no protocolo Defiie-Hellman. (Demora algum tempo, pode ir tomar café )

build-dh

3.2.6    build-key nomeCliente (Cria a chave e o certificado do Cliente)
build-key_1
build-key-server_2
Nota 6: No campo “Common Name” escrever o nomeCliente.


Nota 7: O campo “Organization Name” tem que ser igual ao da CA.

Nota 8: Os clientes têm que ter nomes diferentes do servidor e de outros clientes.

Nota 9: Fazer este comando para quantos clientes se forem ligar.

4. Criar uma pasta “servidor” na pasta config do OpenVPN (C:\Programas\OpenVPN\config)
4.1  Copiar do pacote o ficheiro “Server.ovpn” e colar na pasta criada.
4.2  Copiar da pasta keys criada no ponto 3.2.2 os ficheiros “ca.crt”, nomeServer.crt, nomeServer.key, “dh2048.pem” e colocar na pasta “servidor”, criada no ponto 3.3.

5. Editar o ficheiro “Server.ovpn” com as seguintes alterações:
5.1  Alterar a primeira linha caso queira alterar o porto da ligação.
5.2  Alterar a linha 2 caso queira alterar o protocolo da ligação.
5.3  Substituir os nomes do certificado do servidor e da respectiva chave, na linha 6 e 7 respectivamente:
“cert server.crt -> cert nomeServer.crt
key server.key -> key nomeServer.key”

5.4  Substituir na linha 9:
5.4.1  O IP “190.160.0.2” pelo IP local da máquina do servidor.
5.4.2 Os IP’s “190.160.0.100” e “190.160.0.109” pelos IP’s para atribuírem aos clientes.

Nota 10: A diferença de IP’s dá a quantidade de clientes para se ligarem. (ex: com os Ip’s que estão em cima podem se ligar 10 clientes.)

5.5  Se quiser que o tráfego dos clientes seja todo redireccionado pelo servidor, basta “descomentar” as linhas 11, 12 e 13 e alterar o endereço IP “190.160.0.1” para o IP da vossa “gateway” e correr o ficheiro “a.reg” para o servidor poder redireccionar o tráfego entre os clientes e o exterior através do servidor.

Nota 11: Para “descomentar” pasta retirar o ‘;’ do inicio da linha.

Breve descrição dos restantes campos no ficheiro de configuração do servidor:

  • keepalive 10 120 – tempo que a ligação é mantida caso a ligação caia.
  • comp-lzo – compressão dos pacotes transmitidos para diminuir o tráfego na rede.
  • client-to-client – Permite ligações entre os clientes.
  • cipher AES-256-CBC – Cifra usada na ligação
  • status openvpn-status.log – Ficheiro de Log
  • verb 3 – nível de Log

6. Correr a aplicação “Ethernet Bridge 2.0” e colocar no campo “Bridge Network Adapters” a placa de rede de onde vem a Internet e a placa de rede virtual “bridge-tap”

ethernet_bridge_1

ethernet_bridge_2

Nota 11: Apenas usar este programa se efectuou o passo 5.5.

Nota importante : Antes de iniciar o servidor é obrigatório fazer o passo 6, pois sem este passo as ligações não funcionaram correctamente.

Não esquecer: Abrir os portos no “router” se for caso disso.

Passando agora à configuração do cliente:
1. Ir ao endereço “C:\Programas\OpenVPN\config\” e criar uma nova pasta.
2. Ir ao pacote e copiar o ficheiro “Client.ovpn” para a pasta criada anteriormente.
3. Editar o ficheiro “Client.ovpn” com as seguintes alterações:
3.1 Alterar a segunda linha caso deseje alterar o protocolo da ligação.
3.2 Na linha 4 alterar o nome “server.domain” para o endereço externo do servidor e definir o porto de ligação à frente. (Ex. “pplware.sapo.pt 465”)
3.3  Alterar os nomes dos ficheiros do certificado do cliente e da respectiva chave:
“cert client.crt -> cert nomeCliente.crt
key client.key -> key nomeCliente.key”
Breve descrição dos restantes campos no ficheiro de configuração do Cliente:

  • cipher AES-256-CBC – cifra usada na ligação
  • comp-lzo – compressão dos pacotes transmitidos para diminuir o tráfego na rede.
  • verb 3 – Nível de Log.

Para ligarem o servidor e o cliente pasta carregar no botão direito do rato em cima do ícone na área de notificação e carregar em “Connect”

ligarOpenVPN

Licença:  GPL license version 2

Sistemas Operativos: Windows XP/Vista/Win7/

Download: OpenVpn_2.1_rc19 [1.60MB]
Homepage: OpenVpn Open Source Project

Ethernet Bridge 2.0

Licença: Freeware
Sistemas Operativos: Windows XP
Download: Ethernet bridge 2.0 [431 KB]
Homepage: NtKernel

Pack

Licença: Freeware
Download: pack [6 KB]

Partilhar:
Tags:

Comentários

51

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *

  1. Avatar de Bruno Mota
    Bruno Mota

    Muito bem explicado

  2. Avatar de Pedro Pinto

    Parabéns Francisco !!! Excelente artigo

  3. Avatar de João Faria
    João Faria

    Execelente artigo, para colocar numa acção formação em COMPUSEC.

  4. Avatar de JMCS
    JMCS

    Cada cliente gasta 4 IPs: Rede, Server, Cliente e Broadcast…

  5. Avatar de Ortho
    Ortho

    Não sei se já repararam, mas o site do Pplware está cada vez mais lento nos últimos dias. Não sei se mais alguém já «reclamou», mas vejam lá o que podem fazer, para aumentar a velocidade disto – não é da minha net/browser, pq este é único site em que tenho sentido isso; está demasiado tento a tentar aceder ao site.

    Cumprimentos,

    1. Avatar de Vítor M.

      Bom dia meu caro.

      Hoje, em especial, está lento pois estamos de casa às costas (novamente) a mudar o site de servidor. Estamos a transferir os muitos gigas e nota-se sim senhor.

      Pedimos desculpas pelo incomodo mas será por uma boa causa 😀 em breve teremos melhores velocidades no nosso e vosso site.

      Obrigado pela paciência.

      1. Avatar de Marco Faria
        Marco Faria

        Não tenho nada contra a sapo… nem sei se é aí que está hospedo actualmente mas acho muito bem, pois apesar de estar particularmente lento hoje… nota-se a nivel geral nos ultimos tempos uma certa lentidão…

        1. Avatar de Ana Narciso

          O site não está alojado na Sapo. Já o dissémos inúmeras vezes. 😉

    2. Avatar de Luis A.
      Luis A.

      Também já reparei nisso.

  6. Avatar de tiago vieira

    Grande explicação. No entanto uma dúvida: isto dá para MAC ?

    1. Avatar de Francisco Aragão
      Francisco Aragão

      Não faço ideia, mas podes verificar no site da openVPN.

      Cumprimentos

  7. Avatar de NT
    NT

    Muito bom, agora é fazer com que isto funcione em multi plataforma Windows/Mac/*nix, sei que é possível. :p
    Na minha opinião acho que as redes P2P vão passar a ser P2PoVPN ou algo do género com o pessoal de Hollywood a pressionar tanto… 🙂 Fica a ideia 😛

  8. Avatar de Preto
    Preto

    Sim como diz o nosso amigo NT penso que a solução para está pressão toda (com o exemplo da França) será uma derivação, ou adaptação disto.

    Vamos lá ver.

  9. Avatar de Shote
  10. Avatar de Malamen
    Malamen

    Artigo muito bom.

    Vai fazer muito jeito.

  11. Avatar de Ana Narciso

    Um óptimo artigo, Francisco!

    Vai directo para os favoritos. 😉

  12. Avatar de RichardCooper

    Ta muito bem explicadinho, mas mesmo assim requer algum trabalho 🙂

    Adei a testar algumas VPN,s para jogar Age of Empires3 com uns amigos.

    Inicialmente usei o Hamachi, mas tem o problema de passar pelos Proxies dedeicados ao programa o que reduz subestancialmente a velocidade, isto na versao free, a versao paga faz ligação directa sem proxies ou servidores pelo meio.

    Agora uso a Comodo VPN http://easy-vpn.comodo.com/ é free facil de usar sem complicaçoes de configuraçao ou proxies ou servidores pelo meio. Com o Age of Empires resulta na perfeiçao 🙂

  13. Avatar de Ruben Nunes
    Ruben Nunes

    O TeamViewer não será mais “descomplicado”?

    1. Avatar de RichardCooper

      Tentei usar mas em modo VPN deu complicaçoes na intalaçao da placa de rede 🙂

  14. Avatar de Jordan Humberto de Souza

    Preciso de uma explicação para o Windows 7. Pois fiz tudo como diz… só que usando cmd como adm e mesmo assim quando cheguei na parte do ethernet to bridge, as placas não estavam na listagem…

    OBS: uso um modem 3g HUAWEI E156 para me conectar a internet.

    1. Avatar de Francisco Aragão
      Francisco Aragão

      o programa “Ethernet bridge” só funciona com o XP.
      tenta fazer uma bridge com o 7.

      Cumprimentos

  15. Avatar de Jordan Humberto de Souza

    Hmm… então… alguém poderia me explicar como fazer uma BRIDGE no windows 7 por favor?

    1. Avatar de Francisco Aragão
      Francisco Aragão

      Acho que deves experimentar correr o OpenVPN sem o ethernet bridge.

      Vou colocar uma observação no tutorial.

      Cumprimentos

      1. Avatar de Jordan Humberto de Souza

        Poutz… POR FAVOR FRANCISCO… =\ Eu preciso de VPN… a vivo é muito safada… durante o dia ela fica embaçando com certos protocolos: IRC, TORRENT e talz…

        1. Avatar de Francisco Aragão
          Francisco Aragão

          O servidor não pode estar na rede vivo.

          experimenta assim:

          http://forums.cnet.com/5208-19411_102-0.html?threadID=326988

          deve haver uma chave de registo algures no 7 que deve disponibilizar o route de pacotes. algo do tipo “IPEnableRouter”, mas não tenho a certeza.

          Cumprimentos

          1. Avatar de Jordan Humberto de Souza

            Infelizmente o artigo não ajudou muito. Aguardando um novo artigo voltado para o windows 7!

  16. Avatar de Jordan Humberto de Souza

    Alguém poderia me ensinar a usar o 7 pra fazer bridge manual?

    1. Avatar de Francisco Aragão
      Francisco Aragão

      Podes sempre instalar uma Virtual machine com o XP, se ainda tiveres o cd, caso não tenhas, o 7 tem o XP mode.

      Cumprimentos

  17. Avatar de EacHTimE
    EacHTimE

    Licença: Freeware

    A licença do OpenVPN não é open source?

    1. Avatar de Francisco Aragão
      Francisco Aragão

      Já rectifiquei a licença.

      Ainda bem que reparaste.

      Cumprimentos

  18. Avatar de lincoln

    Olá amigo,

    segui seu tutorial, consegui conectar a vpn, meu client pega o ip mas não consigo pingar no servidor…

    tem alguma solução??

    1. Avatar de Francisco Aragão
      Francisco Aragão

      Tem o IP certo?

      As placas estão em bridge?

      Cumprimentos

  19. Avatar de Liberal
    Liberal

    Boas..
    Estava a tentar configurar ao seguir os passos (isto é exactamente o trabalho que tenho de fazer para uma cadeira) mas a partir da nota 3 e instrução 3.2.3 buil-ca já não faz nada. Alguém me ajuda?
    Cumps

    1. Avatar de Francisco Aragão

      Estando no terminal de DOS e na pasta easy-rsa onde foi instalado o openVPN, tens que correr os comandos de seguida, ou seja o 1o “vars”, depois o “clean-all” e por fim o “build-ca”. Se fechares o terminal tens sempre que correr os 2 comandos iniciais.

      cumprimentos

  20. Avatar de Liberal
    Liberal

    Eu fiz esse processo, o problema é que a pasta “keys” não existe, e depois ao fazer o “build-ca” dá erro e não pede para efectuar introdução de dados como refere no tópico. Depois disso o resto dos passos deverão dar erro também, poderá ser do windows 7? Falta-me algum ficheiro ou programa?

    Cumprimentos

    1. Avatar de Francisco Aragão
      Francisco Aragão

      Esperimenta correr como administrador, ou desligar o UAC.

      Cumprimentos

  21. Avatar de Liberal
    Liberal

    Boa tarde

    Continuo a obter o mesmo erro, na instrução 3.2.3 “buil-ca” aparecem outros comandos que posso executar mas o em questão não funciona. Alguma ideia/solução?

    Cumprimentos

    1. Avatar de Francisco Aragão
      Francisco Aragão

      Boa tarde, experimenta correr a janela de DOS em modo de administrador e na pasta “easy-rsa” retira das extensões dos ficheiros a palavra “sample”, por fim refaz o tutorial.

      Cumprimentos

  22. Avatar de Liberal
    Liberal

    Finalmente consegui, agora só me resta uma dúvida é necessário para o cliente copiar para a pasta de configuração o certificado e key, como feito para o servidor no ponto 4.2?

    Cumprimentos

    1. Avatar de Francisco Aragão
      Francisco Aragão

      precisas de copiar para a configuração do cliente, o certificado do servidor, o certificado do cliente e a chave do cliente.

      Cumprimentos

  23. Avatar de Liberal
    Liberal

    Obrigado..
    Cumps

  24. Avatar de Liberal
    Liberal

    Bom Dia

    Mais uma vez gostava de colocar uma questão, se possível. Depois de tudo configurado coloquei na máquina que será o cliente os ficheiros de configuração do mesmo e na minha os do servidor.
    O curioso é que não consigo ligar ao cliente, mas sim ao servidor e do outro lado não liga nenhum lado. Alguma sugestão?

    Cumprimentos

    1. Avatar de Francisco Aragão
      Francisco Aragão

      O servidor não liga a lado nenhum, mas o cliente liga ao servidor.
      Era essa a dúvida?

      Cumprimentos

  25. Avatar de Mauro
    Mauro

    Boa noite Francisco!

    Parabéns pelo artigo.

    Realizei as configurações exatamente como apresentado. No Common Name do servidor coloquei e no Common Name do cliente coloquei . O arquivo server.ovpn deixei exatamente como o do artigo, já o client.ovpn comentei a linha: remote-cert-tls server, por não ter segurança tls. Em remote, coloquei: e não modifiquei mais nada.

    O dominio é registrado no no-ip e está vinculado a máquina pelo DUC 3.0. O e um nome qualquer para o cliente.

    O servidor eu consigo conectar perfeitamente mas os clientes não consigo, ocorre o seguinte erro: failed, will try again in 5 seconds: Connection timed out (WSAETIMEDOUT).

    Obs:
    1) o acesso a internet é atraves de um roteador sem fio com rede 192.168.1.0.
    2) não realizei o passo 5.5, por isso não coloquei a tap-bridge e a rede local em bridge.

    Acredito ser questão de roteamento mas não sei como resolver.

    Obrigado.

    1. Avatar de zacarias
      zacarias

      Estou com um problema semelhante, as duas últimas chaves vpn que criei dão-me esse erro quando os clientes tentam ligar-se.

  26. Avatar de João Matos
    João Matos

    Boa tarde,
    Tenho uma duvida.
    Cenario edentico, mas imaginemos que tenho um leitor biometrico ligado numa filial e na sede quero com o programa de recolha fazer essa recolha.
    OpenVPN serve?

  27. Avatar de Daniel
    Daniel

    Caros, Muito bom!!

    Fiz o passo-a-passo e deu tudo certo, consigo de qlqr lugar pingar todos os elementos da minha rede.

    Só um problema, preciso os outros elementos via ssh.

    Por que consigo pingar, mas não consigo ssh?

    podem me ajudar?

    desde já agradeço…

  28. Avatar de Vando
    Vando

    Pessoal algum vídeo tutorial que aconselham?

  29. Avatar de Alves
    Alves

    Boas não à nenhum vídeo que se possa ver como se faz. Obrigado

  30. Avatar de Diogo Victoriano
    Diogo Victoriano

    boas amigos, muito bom, ajudou imenso,

    apenas tenho uma duvida, não consigo fazer ping ao ip, mas quando faço ping pelo nome da maquina o mesmo funciona, alguem me pode ajudar? obrigado