Aprenda como interligar dois locais através de uma VPN

23 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 desta vez com o Ubuntu.

vpn_03

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 tele-trabalho, 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 Ubuntu (deverá funcionar em outras versões)

Nota: Para a realização deste artigo vamos considerar os nomes Pplware-Guarda (Sede) e Pplware-Viseu (Filial). Vamos considerar também as seguintes redes privadas:

  • Pplware-Guarda – 10.10.10.0/24
  • Pplware-Viseu– 10.10.20.0/24

openvpn_04

Instalação do Openvpn

O OpenVPN é um software multi-plataforma que permite a criação de uma VPN entre várias máquinas com sistemas operativos diferentes.

Passo 1 – Para instalar o OpenVPN basta que execute o seguinte comando:

sudo apt-get install openvpn

openvpn_00

Configurar openvpn em Pplware-Guarda

vpn_02

Passo 2 – Vamos agora criar uma chave privada. Para isso basta que execute o seguinte comando:

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

Para verem o conteúdo da chave basta que executem o comando

sudo cat /etc/openvpn/chaveprivada

openvpn_01

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

# interface TUN
remote 192.168.1.2
float
dev tun
ifconfig 10.0.0.1 10.0.0.2
cd /etc/openvpn
secret chaveprivada
port 5000
persist-tun
persist-key
persist-local-ip
user nobody
group nogroup
comp-lzo
ping 15
verb 3

ao fazer um ifconfig, deverá observar algo semelhante:
openvpn_02
Configurar Openvpn em Pplware-Viseu

vpn_03

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

Para esta acção poderá usar, por exemplo, a ferramenta scp.

Exemplo:

sudo scp ppinto@192.168.1.5:/etc/openvpn/chaveprivada /etc/openvpn

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

# interface TUN
remote 192.168.1.2
float
dev tun
ifconfig 10.0.0.2 10.0.0.1
cd /etc/openvpn
secret chaveprivada
port 5000
persist-tun
persist-key
persist-local-ip
user nobody
group nogroup
comp-lzo
ping 15
verb 3

Passo 6 – 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.

openvpn_03

 

Criação de rotas

Depois de todas as configurações é importante que se criem as rotas para que o tráfego entre edifícios seja sempre encaminhado via tunel.

Para começar devem activar dos dois lados o encaminhamento IPV4 usando o comando:

echo 1 > /proc/sys/net/ipv4/ip_forward

Rota para Pplware-Guarda

Do lado da máquina Pplware-Guarda devem incluir a seguinte rota:

route add -net 10.10.10.0 gw 10.0.0.2

Rota para Pplware-Viseu

Do lado da máquina Pplware-Viseu devem incluir a seguinte rota:

route add -net 10.10.20.0 gw 10.0.0.1

Alguma dúvida ou questão deixem as vossas mensagens nos comentários.

Comentários

23

Deixe um comentário

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

  1. Avatar de diz quem não sabe
    diz quem não sabe

    Este é um tutorial para quem “domina” um pouco a materia. Gostaria de ver explicado o que é 10.10.10.0/24 visto as redes internas serem do tipo 192.168.X.X, acho que falta explicar que os ips usados no “# interface TUN – remote – 192.168.10.130”, serem os ips das máquinas a usar. O que significa esta rota “route add -net 10.10.10.0 gw 10.0.0.2”?, pois já tentei configurar open VPN e nos tutoriais da net serem para entendidos e não para curiosos… de resto acho este tutorial bem explicito. Quando perceber as minhas duvidas irei tentar instalar…

    1. Avatar de Carlos
      Carlos

      Pelo que sei:
      10.10.10.0/24 – Gama de IPs da rede interna (definido no DHCP do router/srv)
      # interface TUN – remote – 192.168.10.130 – o “192.168……” penso ser o IP publico do router(que deve ser fixo)
      route add -net 10.10.10.0 gw 10.0.0.2 – Serve para redirecionar todo o trafego para a gama de IPs do escritorio A para o GateWay do escritorio B interligando assim as redes

      Corrijam-me se estiver errado 😉

    2. Avatar de DG
      DG

      10.10.10.0/24 – é uma subnet de IP’s privados (rede local) que vai desde 10.10.10.0 até 10.10.10.255
      O mesmo acontece com os endereços do tipo 192.168.1.0/24.

    3. Avatar de Pedro Pinto

      Boas diz quem não sabe

      Desculpa só responder agora. Fiz uma pequena alteração na conf para se perceber melhor (estava a usar os IPs da minha plataforma de testes)

      IP máquina da Guarda: 192.168.1.1
      IP máquina de Viseu: 192.168.1.2
      10.0.0.1 IP do lado do túnel de Viseu
      10.0.0.2 IP do lado do túnel de Viseu

      Redes Internas
      Pplware-Guarda – 10.10.10.0/24
      Pplware-Viseu– 10.10.20.0/24

      1. Avatar de lmx
        lmx

        Boas Pedro,

        Pedro, não trocas-te as rotas?
        acho que deveria ser :
        Guarda(para routeares trafego para viseu via p-t-p)
        route add -net 10.10.20.0 gw 10.0.0.1
        Viseu(para routeares trafego para guarda via p-t-p)
        route add -net 10.10.10.0 gw 10.0.0.2

        Bom artigo, eu ainda tenho dhcp, e rotas de routing feitas por push no sevidor para os clientes 😉

  2. Avatar de Nothing to!
    Nothing to!

    Bom artigo.

    Uma pergunta para o Pedro Pinto, que pelos vistos é o Linux guy do pplware, reparei que para o maior parte dos tutoriais de Linux aqui usa sempre o ubuntu. Isto deve-se por ser a sistro mais conhecida e usada ou por ser a distro que usa diaramente? Caso não seja, por mera curiosidade, qual considera a sua main distro?

    1. Avatar de Pedro Pinto

      Boas Nothing to!

      Normalmente uso o CentOS para servidores/serviços de rede e o Ubuntu como distro doméstica e até porque é a quem tem melhor suporte pela comunidade. “Dominando” o Debian (que é a base do Ubuntu) domina-se quase todas as outras variantes (Ubuntu, Xubuntu, Lubuntu, Mint…etc)

      Depois vem o Arch :)…nesse ainda não perdi muito tempo

  3. Avatar de Zau
    Zau

    Questiono se é possível fazer algo do género com windows + Open VPN?

  4. Avatar de Eric Drumond
    Eric Drumond

    Oi, alguém sabe de algum sistema desses para usuários domésticos ou algo parecido? As vezes acessar do trabalho um computador em casa é necessário. No meu caso trabalho em uma cidade muito distante da qual fica minha residencia.

  5. Avatar de Jorge Matias
    Jorge Matias

    Excelente artigo, no entanto para quando um exemplo em windows?

    Obrigado

  6. Avatar de nickteste
    nickteste

    Muito bom artigo, agora o próximo pode ser sobre a alternativa IPSEC, Libreswan (Fork/continuação do freeswan).

    No outro dia descobri ao navegar na shell de um CPE Draytek , que alguns CPEs deles utilizam o Freeswan, como gestor das suas vpns.

  7. Avatar de oi
    oi

    tenho usado openvpn em ambiente windows há varios anos e funciona muito bem.

  8. Avatar de Daniel Fernandes
    Daniel Fernandes

    Interessante seria ver isto a funcionar com o Windows e configurado com o RaspBerry Pi.

    Cmprs.

    1. Avatar de joao
      joao

      pois isso seria

  9. Avatar de João
    João

    Bom dia Pedro Pinto.
    As máquinas com linux terão que estar a desempenhar o papel de router nas redes de ambos os locais? Ou seja, têm que atribuir elas as definições de DHCP para os clientes, e terão que possuir 2 placas de rede?

    Creio que falta neste manual, referenciar o possível encaminhamento de portos nos routers, para que as máquinas OpenVPN possa comunicar.

  10. Avatar de Tiago Santos
    Tiago Santos

    Pplware, acho que está na hora de fazerem um tópico de segurança em Sistemas Linux Server, neste mundo fora andamos a bater com a cabeça nas paredes para aprender a fazer tuneis com sentido de “firewall”, uns scripts etc! Vamos lá Pplware!!

  11. Avatar de Luiz
    Luiz

    Acho que não existiram algumas explicações importantes a nível de Rede.
    As duas máquinas que estabeleceram o túnel vão conseguir comunicar, mas dado os Routers não saberem para aonde devem enviar o tráfego, e os mesmos serem a Default-Gateway das redes internas irá existir essa lacuna.

    Pelo que deveria ter sido criado uma rota estática a apontar que o tráfego da rede que se está a tentar alcançar fosse para a máquina Linux, para que o tráfego siga pelo túnel.
    Também deveria ter sido explicado que tipo de túnel está a ser estabelecido ? PPTP ? GRE ? IPSec ? Outro ?

    Poderia ter sido dito que pode ser feito em routers que tenha a opção de estabelecer um túnel LAN-to-LAN.

    Por que não cria-se uma secção Networking com explicações ? 🙂
    Como muita gente mencionou, falta compreender o básico do que é um Endereçamento Privado (10.0.0.0/8, 172.16.0.0/13, 192.168.0.0/16).
    Qual a diferença de Packet Switching e Packet Routing ?
    Também poderia criar uma L2VPN, fazendo com que entre os 2 sites parece que estejam no Mesmo L2, isto é, ligado a um Switch só, fazendo com que os broadcasts e multicasts funcionem entre locais.

    Tanta coisa que este artigo utilizou que não teve explicações prévias que atrapalha, fazendo com que as pessoas tentem fazer algo, mas realmente não entenda o que está por trás 🙁

    1. Avatar de Pedro Pinto

      Nós vamos tendo essa informação aqui pelo Pplware

      Endereçamento privado
      https://pplware.sitedev.pt/truques-dicas/enderecos-publicos-e-privados/

      É importante que as pessoas coloquem as duvidas nos comentários que nós vamos ajudando.

      Abr
      PP

  12. Avatar de Andre Simoes
    Andre Simoes

    Boa tarde. Tenho uma questão referente ás vpns.
    Imaginemos tenho o gatway com gama 192.168.1.0, e vpn a correr noutro router cuja gama é 192.168.0.0, o router com vpn está ligado ao gatway por cabo.
    A minha questão é a seguinte eu ao aceder á vpn não queria ter acesso aos equipamentos que estão na gama 192.168.1.0 e aos da gama 192.168.0.0. so quero que quem aceda á vpn aceda a uma máquina. imaginemos a máquina cujo ip é 192.168.0.64.
    Isto é possivel só com a vpn ou tem que ser criada uma vlan?
    Cumps

  13. Avatar de micke
    micke

    Olá caros amigos instalei o openvpn em dois dedicados e ao executar o seguinte comando:
    “openvpn –config /etc/openvpn/pplware-viseu.conf –daemon”

    encontrei o seguinte erro:

    “Options error: Unrecognized option or missing or extra parameter(s) in [CMD-LINE]:1: config (2.4.4)”

    Podem me ajudar