Aprenda como interligar dois locais através de uma VPN
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.
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
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 |
Configurar openvpn em Pplware-Guarda
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 |
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: Configurar Openvpn em Pplware-Viseu
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.
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.
Este artigo tem mais de um ano
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…
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 😉
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.
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
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 😉
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?
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
Questiono se é possível fazer algo do género com windows + Open VPN?
Não testei, mas encontrei este link:
https://community.openvpn.net/openvpn/wiki/Easy_Windows_Guide
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.
Utilize teamviewer. Disponivel aqui!
https://www.teamviewer.com/pt/index.aspx?pid=google.tv_ex.s.ptp&gclid=Cj0KEQjwstaqBRCT38DWpZjJotIBEiQAERS6_DvDpoAFbihNinRqbhecIyMKh75RGrROgINuhbaWT2YaAl7g8P8HAQ
Excelente artigo, no entanto para quando um exemplo em windows?
Obrigado
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.
tenho usado openvpn em ambiente windows há varios anos e funciona muito bem.
Interessante seria ver isto a funcionar com o Windows e configurado com o RaspBerry Pi.
Cmprs.
pois isso seria
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.
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!!
iptables? https://pplware.sapo.pt/linux/firewall-no-linux/
https://pplware.sapo.pt/resultados-da-pesquisa/?q=iptables#gsc.tab=0&gsc.q=iptables&gsc.page=1
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 🙁
Nós vamos tendo essa informação aqui pelo Pplware
Endereçamento privado
https://pplware.sapo.pt/truques-dicas/enderecos-publicos-e-privados/
É importante que as pessoas coloquem as duvidas nos comentários que nós vamos ajudando.
Abr
PP
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
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