Tutorial – Como interligar dois locais através de uma VPN?

65 Comentários

Imagine por exemplo que  tem uma empresa na Guarda e uma filial em Viseu e pretende constituir uma única rede privada (Guarda+Viseu) sem contratar circuitos dedicados ou algum tipo de ligação adicional. Na prática, pretende-se que as duas redes privadas (da Guarda e Viseu) se “unam”  podendo um utilizador que se encontre em Viseu aceder localmente aos serviços da rede da Guarda (ex. um utilizador da Guarda poderá imprimir numa impressora localizada em Viseu, entre outros serviços).

Para a implementação de um cenário deste tipo, hoje vamos ensinar como poderão implementar uma VPN (Site-toSite VPN) entre dois locais, recorrendo ao OpenVPN e ao Linux.

vpn_01

As organizações que usam VPNs beneficiam com um aumento de flexibilidade e escalabilidade a nível de comunicações e até produtividade. As VPN’s permite “trazer” as máquinas remotas para dentro da rede interna, garantindo de certa forma uma nível de segurança idêntico como se o utilizador estivesse dentro da organização. Além dos benefícios referidos, realçar também a poupança de custos a nível de comunicações (já que não é necessário contratar circuitos dedicados). Para quem exerce teletrabalho, as VPNs são sem duvida uma forma de estar ligado à organização/empresa remotamente e de  forma segura.

Requisitos para a implementação deste tutorial

  • As máquinas que vão estabelecer a VPN deverão ter um IP Publico (num cenário real)
  • As máquinas deverão ter instalado o Linux CentOS 6.2  (deverá funcionar em outras versões

Nota: Vamos considerar os nomes Pplware-Guarda (Sede) e Pplware-Viseu (Filial)

Para a instalação e configuração do cenário, devem seguir os seguintes passos:

Passo 1 – Adicionar o Repositório EPEL (fazer em ambas as máquinas)

rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-5.noarch.rpm

Passo 2 – Instalar o OpenVPN (fazer em ambas as máquinas)

yum install openvpn

Configurar openvpn em Pplware-Guarda

vpn_02

Passo 3  – Criar uma chave privada

openvpn --genkey --secret /etc/openvpn/chaveprivada

Passo 4 – Criar o ficheiro /etc/openvpn/pplware-guarda.conf e acrescentar a seguinte informação:

# interface TUN
dev tun
ifconfig 10.0.0.1 10.0.0.2
cd /etc/openvpn
secret chaveprivada
port 5000
user nobody
group nobody
comp-lzo
ping 15
verb 3

Passo 5 – Para colocar a VPN a funcionar no Pplware-Guarda, deverão executar o comando

openvpn --config /etc/openvpn/pplware-guarda.conf –daemon

ao fazer um ifconfig,deverá observar algo semelhante:

tun0 Link encap:Point-to-Point Protocol
inet addr:10.0.0.1 P-t-P:10.0.0.2 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1255 Metric:1
RX packets:138353257 errors:0 dropped:0 overruns:0 frame:0
TX packets:1144923568 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:10
RX bytes:82865921 (3245.0 Mb) TX bytes:383951667 (2321.1 Mb)

Configurar openvpn em Pplware-Viseu

vpn_03

Passo 6 – Copie a chave privada que foi gerada no passo 3 para este servidor e coloque-a em /etc/openvpn/chaveprivada

Passo 7 – Criar o ficheiro etc/openvpn/pplware-viseu.conf e acrescentar a seguinte informação:

# interface TUN
dev tun
ifconfig 10.0.0.2 10.0.0.1
remote IP_DA_MÀQUINA_Pplware-Guarda
cd /etc/openvpn
secret chaveprivada
port 5000
user nobody
group nobody
comp-lzo
ping 15
verb 3

Nota: Não se esqueçam de alterar o parâmetro

Passo 8 – Para colocar a VPN a funcionar no Pplware-Viseu, deverão executar o comando

openvpn --config /etc/openvpn/pplware-viseu.conf –daemon

Para testar se tudo funciona, experimente se consegue pingar o 10.0.0.1  a partir do Pplware-Viseu e assim confirmar se o tunel VPN foi estabelecido corretamente entre as máquinas e assim criado um ponto de ligação entre as redes. É claro que serão necessárias configurações adicionais para que os clientes de um lado cheguem a serviços do outro…mas isso analisaremos em próximos artigos caso haja interesse por parte dos nossos leitores.

Agradecimento ao Hélio Silva pelo teste das configurações.

Partilhar:
Tags:

Comentários

65

Deixe um comentário

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

  1. Avatar de Nelson Santos
    Nelson Santos

    Muito bom este Tut. vão haver bastantes comentarios positivos. Espero que continues . Abraço!

    1. Avatar de Pedro Pinto

      Obrigado Nelson. Com uns leitores assim, a motivação aumenta ainda mais. Um Abraço

      1. Avatar de Cisco
        Cisco

        Se não for indiscrição, qual é a tua formação, licenciatura em Redes De Comunicação + CCNA?

        1. Avatar de Pedro Pinto

          Boas Cisco,
          Sou instrutor Cisco e mestre em computação móvel.

          Abraço
          Ppinto

          1. Avatar de Mike
            Mike

            Olá Pedro Pinto, parabéns pelo excelente artigo.
            Sabes onde poderei arranjar material de estudo sobre configuração de VPNs s2s em firewalls da CheckPoint? Obrigado! 🙂

  2. Avatar de M. Manuelito
    M. Manuelito

    Pedro Pinto, da minha parte há total interesse nesta matéria. A abordagem das VPN´s em máquinas com SO Windows também seria bem vinda 🙂

    1. Avatar de Cristiano Alves
      Cristiano Alves

      Sim uso windows server e gosraria de saber como se faz tal coisa la, e se tambem em Mac OSX, para aceder de ao windows sei que dá porque ja uma vez me fizeram isso, mas nao sei qual o melhor metodo.

      1. Avatar de Rafa
        Rafa

        Existe um cliente para windows que aceita o mesmo ficheiro de configuração, só tens de alterar a extensão de .conf para .ovpn.. depois tens o cliente por command line “openvpn –config /etc/openvpn/configuracao.ovpn” ou tens uma GUI que faz isso por ti.

      2. Avatar de Lm
        Lm

        Ha uma solucao simples, para casos simples…
        Procurem por NeoRouter.

        Para casos exigentes ‘e fundamental dominar todo o conceito de VPN, ter experiencia em redes (TCP/IP) e em Linux.

        Estes tutoriais sao excelentes mas nao se esquecam que ha materias que devem ser dominadas…. por questoes de seguranca das vossas redes locais.

        Cumps,

    2. Avatar de Viriato
      Viriato

      Thumbs UP!

    3. Avatar de Pedro Pinto

      Vou ver se arranjo um tempinho para testar isso. Mas em Windows não é sempre mais fácil que em Linux? 🙂

      1. Avatar de Vagner
        Vagner

        Otima materia, sempre acompanho o site e as materias.. Sou do Brasil e descobri por acaso.. Se conseguir postar uma materia sobre VPN no Windows agredeceria tambem.

        Abraços!!

        1. Avatar de Pedro Pinto

          Cumps para o Brasil (e que bem se deve estar por aí :))
          Ok, mais um pedido registado.O numero de pedidos já se está a tornar numa petição 🙂

  3. Avatar de Hugo Santos
    Hugo Santos

    Muito bom, parabéns!
    Mais um excelente tutorial, gostava que continuassem com os proximos capitulos dado ser um capitulo de especial interesse para mim.

    Aguardar a segunda parte…

  4. Avatar de Cris.
    Cris.

    Awesome ! 😀 Parabens pelo artigo

  5. Avatar de varader0zs
    varader0zs

    Boas. Também gostaria de um tutorial destes mas em ambiente windows.
    Continuação de um bom trabalho

  6. Avatar de k
    k

    Questão:

    Usar o ip publico funciona, ok, mas na maioria das ligações, é dinâmico e irá ser alterado em pouco tempo. Pode ser configurado um dns em vez de um ip? (com serviço tipo dyndns). Em caso negativo, o que se terá que fazer para isto funcionar em ambientes de ip dinâmico?

    Obrigado!

    1. Avatar de Rafa
      Rafa

      Também funciona por nome, sem problemas.

    2. Avatar de Caudio Oliveira
      Caudio Oliveira

      @k

      Funciona perfeitamente com IPs dinâmicos, e os serviços como dydns e no-ip, por ex, funcionam na perfeição com os túneis VPN. Em ambiente Linux não te sei precisar como fazê-lo, mas em Windows posso explicar-te “step-by-step” como fazê-lo. Sucintamente, basta fazeres port-forwarding para as portas TCP e UDP do serviço VPN; configurar no teu router/switch o serviço de dynamic-dns que utilizas (nos routers MEO e ZON já existe essa possibilidade); configurar no teu servidor A uma ligação de recepção VPN e no teu servidor B uma ligação VPN a apontar para o domínio de dynamic-dns que configuras-te…

    3. Avatar de Pedro Pinto

      Na pratica o que tem de haver é conectividade entre os dois pontos. O dyndns e o no-ip são bons serviços, mas para ambientes profissionais nunca testei..não sei se o eventual delay causado ajudará…so testando.

      1. Avatar de César Araújo

        Gostaria de aditar um pequeno ponto.
        “As máquinas deverão ter instalado o Linux CentOS 6.2 (deverá funcionar em outras versões)” funciona obviamente com varias versões e talvez mais fácil de instalar em debian ou ubuntu.

        Quanto ao facto de se fazer com dyndns, funciona igualmente bem em ambiente profissional, porque actualmente os ips’s não estão a mudar com tanta frequência quanto isso, mas obviamente é muito mais eficiente com ips fixos. Pessoalmente prefiro interligar 2 locais usando router’s, maior facilidade de gestão e menor susceptibilidade a falhas (reboots de updates)

        1. Avatar de @lmx
          @lmx

          reboots de updates ?so para carregares o kernel novo de resto…é sempre a curtir!! 😉

          cmps

  7. Avatar de SGomes
    SGomes

    Boas, ya em Windows ia dar imenso jeito.

  8. Avatar de Osvaldo Spencer
    Osvaldo Spencer

    Parabéns, aguardo o mesmo para o windows vai dar jeito.

  9. Avatar de Rui Peixeiro
    Rui Peixeiro

    Muito bom… Venha a segunda parte, pois isto poderá ser uma boa opção para muitas empresas pouparem muitos €€€, criando as suas próprias VPNs em vez de as contratarem aos ISPs.

    1. Avatar de Caudio Oliveira
      Caudio Oliveira

      Rui, depende do que as empresas queiram fazer com a ligação entre as redes! Se estamos a falar por exemplo de backups remotos de dados com mais de 100Gb uma VPN será insuficiente, terão de recorrer ás linhas dedicadas. Numa ligação que exija grandes transferências de dados as linhas dedicadas continuarão a ser a melhor solução.

      Se o que pretendem é acesso remoto ás máquinas, mail, file-sharing, etc dá perfeitamente, como dizes, para poupar umas massas. Para pequenas e médias empresas esta solução é ideal!

  10. Avatar de José Crasto
    José Crasto

    Também fico á espera do tutorial para Windows.

  11. Avatar de Leonardo Coutinho
    Leonardo Coutinho

    OK

  12. Avatar de Rui Santos
    Rui Santos

    Muito porreiro… aceder a serviços de um lado e de outro era o ideal, para o caso de IPs dinamicos pode-se faze um nó central e colocar os offices como clientes, assim só é preciso um IP publico. Fica a ideia.

  13. Avatar de Marco Cleyder
    Marco Cleyder

    Muito bom o tutorial, mas gostaria que fizessem um para windows.

  14. Avatar de Pardinha
    Pardinha

    Acho que para próximo tutorial não deveria ser esquecida a encriptação da vpn, foi um dos passos cruciais quando criei a minha primeira vpn para ser avaliado… No inicio na nossa vpn os dados não eram encriptados e com um sniffer verificaram-se os dados a passar em plain text, depois de encriptação os dados deixaram de poder ser decifrados a olho nu… Continuem com o bom trabalho.

  15. Avatar de Canelas
    Canelas

    Só o facto de ter “Guarda” demonstra que é um grande post.

  16. Avatar de Caudio Oliveira
    Caudio Oliveira

    Muito bom tutorial… no entanto existe a possibilidade de fazer o mesmo em ambiente Windows, que é bem mais simples.

    Se a solução é para contenção de custo, a que apresentam é a ideal. Num cenário em que o cliente já tem o equipamento, seria interessante que o pplware mostrásse um tutorial.

    Um dos serviços interessantes a explorar numa VPN site-to-site seria um Sistema de Backups Remotos para garantir a integridade dos dados e fiabilidade no “Disaster Recovery”. Há pouco tempo implementei algo deste género num cliente!

    Abraço e continuem com o bom trabalho

  17. Avatar de Miguel
    Miguel

    Muito bom tutorial, 5 estrelas era existir em paralelo paar windows.

  18. Avatar de Alexandre Neiva
    Alexandre Neiva

    Tutorial muito bom mesmo, por acaso andava á procura de algo assim, o problema era encontrar algum bem explicado como este está. E sim, como o Marco Cleyder menciona, para Windows também dava jeito 😉

    Cumprimentos

  19. Avatar de Pedro Cunha
    Pedro Cunha

    Só para dizer que existe uma “interface” web para gerir servidores que tem um módulo OpenVPN que funciona lindamente. Chama-se webmin e cria .confs e .ovpn (que também servem para ser usados em Linux além de em Windows).

    Bom artigo, espero que continue. 🙂

  20. Avatar de Pedro Pinto

    E agora o pessoal a pedir-me para fazer para Windows… O que eu faço??? tenho de o fazer mesmo 🙂

    1. Avatar de Rafa
      Rafa

      Apesar de não ter as imgs todas do PPT, fica aqui uma explicação de como se fazer em Linux – Linux e Linux – Windows
      http://www.slideshare.net/rafarsimoes/aula-src-openvpnconfigurao-com-chave-publica

      1. Avatar de Rafa
        Rafa

        Afinal o SlidShare cortou as animações 🙁

    2. Avatar de Nuno A.
      Nuno A.

      Faz!!! 🙂 Era muito fixe 😀

  21. Avatar de djx
    djx

    what the… O.o
    Por que raio não fizeste a configuração nos routers de acesso à Internet?
    Não me digas que estás a passar todo o tráfego para a máquina, ficando a ligação dos utilizadores mais lenta…
    Os pacotes vão cifrados com que protocolo?

    1. Avatar de rascas
      rascas

      Pois é falta a parte da configuração das portas nos respectivos routers nos dois locais. A porta por defeito é a 1194 UDP. Sem isto, nada feito.

      O openVPN vem por defeito com SSL/TLS. O openVPN utiliza a libraria openSSL e portanto dependente das suas capacidades criptograficas.
      É bastante configuravél e dá para adicionar medidas extra de segurança.
      Mas não só. Suporta tb IPSec por ex.

      Mais info: https://wiki.archlinux.org/index.php/OpenVPN
      http://openvpn.net/index.php/open-source/documentation/howto.html

  22. Avatar de IG
    IG

    Tenho varios cenarios com routers da draytek, funcionam 100%, sem falhas. Um dos cenarios é onde só na sede tenho ipfixo, nas filiais e dinamico com dyndns.
    Configurei a vpn PPTP onde são as filiais que iniciem o tunel para a sede, se falhar cada 5 seg tenta voltar a ligar.
    Depois existem varios parametros no tunel para que possa pingar ip de um local para outro. Ja a 3 anis e que funciona assim.

    1. Avatar de Vitor
      Vitor

      IG poderias disponibilizar uma imagem com essa configuração?
      Tenho muito interesse em ver essa configuração.
      Obrigado

    2. Avatar de Wolverine
      Wolverine

      Estás a falar da funcionalidade LAN-to-LAN dos Draytek, não é? Eu uso essa funcionalidade e não tenho problemas com nada. Funciona até com todos os routers num ambiente de IP dinâmico e com variadas encriptações.
      Sempre que um cliente quer implementar uma VPN, é este o método que uso. É só ver os Thompson a sair de cena! 🙂

  23. Avatar de FalconVPM
    FalconVPM

    Otimo tutorial !

    Deixo como dica, um outro tutorial usando o Windows Server.

    Abraços

  24. Avatar de Jean
    Jean

    Muito bom tutorial, parabéns!

  25. Avatar de Ricardo Aroso
    Ricardo Aroso

    Boa tarde,
    Deixo uma sugestão.
    Também é possível fazer isto com a aplicação Untangle que permite ter um servidor e um cliente.
    Uso o Untangle para ligar 6 filiais à sede e sem dúvida não quero outra coisa, e é OpenSource e muito fácil de instalar.

    1. Avatar de Marcos Lins
      Marcos Lins

      vc poderia me passar o seu email, preciso de ajuda no que diz respeito e até agora não consegui ninguém me ajude

      1. Avatar de Marcos Lins
        Marcos Lins

        Desculpe, a interligação das filiais aqui da empresa que por enquanto são apenas 5, mas esse numero vai subir para 18 até o final do ano que vem

  26. Avatar de tchessetiger
    tchessetiger

    Um tutorial windows é que era!

    1. Avatar de Lm
      Lm

      Ve o meu post mais em cima…

  27. Avatar de André Silva
    André Silva

    Em configurações Windows-Windows é possível recorrer às ferramentas VPN nativas para configurar túneis PPTP ou L2TP.

    Agora resta saber se os leitores querem esta opção (útil quando se pretende uma configuração sem demoras) ou com openvpn 🙂

  28. Avatar de Vasco
    Vasco

    Olá, saudações lusitanas, sou português e moro no Brasil há 4 anos, gostei muito dessa matéria.. excelente Pedro Pinto, parabéns.. será que é possível uma matéria dessa em Windows Server 2008 ? grato 🙂

  29. Avatar de Deus
    Deus

    Muitos parabéns, gostei muito deste tópico e espero mais…

  30. Avatar de Luís Nabais

    Há interesses em continuação, sim senhor 🙂

    Muito bom artigo! Obrigado!

  31. Avatar de Manuel Martins
    Manuel Martins

    Boas

    Para quem precisa deste tipo de ligações (VPN) o Hamachi do log me in funciona muito bem e é facil de configurar.

    Pena é a versão gratuita só permitir ate 5 pc’s ligados na mesma VPN.

  32. Avatar de Joel Paiva
    Joel Paiva

    Excelente trabalho.
    Boas férias a todos.
    Mas antes das férias que tal o mesmo em Windows?

    Um abraço

  33. Avatar de Tiago Camilo
    Tiago Camilo

    Pplware boa noite,
    Gostaria de saber se há alguma previsão para postagem da da segunda parte desse tutorial que achei muito interessante fazer isso no Linux.

    Fique Com Deus, Abraços!!!

  34. Avatar de ElectroescadaS
    ElectroescadaS

    Correndo o risco de fazer uma pergunta super estúpida mas há maneira através de VPN (ou algo similar) de ligar o PC do emprego ao router de casa (MEO Thomson 784n)?

    A ligação aqui no emprego é através de rede (ip interno + porta 80) para fora e é super limitada. Se houvesse uma forma “fácil” para me pendurar no router de casa poderia usufruir um pouco mais de acesso.

    Estou a pedir o impossível não estou?

    Caso seja possível poderiam-me encaminhar alguma leitura nesse sentido caso não me queiram ensinar? :mrgreen:

    Desde já agradecendo…

    1. Avatar de MR SOARES
      MR SOARES

      Possivelmente a questão do limitado resolve-se com o uso de proxies….
      Outro caso é o do teu patrão não vos deixar aceder a certos sites…nesse caso, a conversa já é outra…

  35. Avatar de Rafa
    Rafa

    é super limitada

    referes-te ao facto de teres conteúdo bloqueado, ou ao facto da velocidade ser baixa?

  36. Avatar de Alan Teixeira
    Alan Teixeira

    Bem simples de configurar.

  37. Avatar de Paulo Ferreira
    Paulo Ferreira

    Olá Pedro,

    Ao fazer o download do EPEL diz que o url não foi encontrado.
    Podes dar uma ajuda.
    Obrigado.

    PS: Os tutotiriais e artigos são excelentes. Obrigado pelo excelente trabalho.