OpenVPN – Como criar uma rede privada virtual
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.
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.)
- 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”.
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)
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) 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) 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”)
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é )
3.2.6 build-key nomeCliente (Cria a chave e o certificado do Cliente) 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”
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"
OpenVPN
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]
Este artigo tem mais de um ano
Muito bem explicado
Parabéns Francisco !!! Excelente artigo
Execelente artigo, para colocar numa acção formação em COMPUSEC.
Cada cliente gasta 4 IPs: Rede, Server, Cliente e Broadcast…
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,
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.
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…
O site não está alojado na Sapo. Já o dissémos inúmeras vezes. 😉
Também já reparei nisso.
Grande explicação. No entanto uma dúvida: isto dá para MAC ?
Não faço ideia, mas podes verificar no site da openVPN.
Cumprimentos
obrigado Francisco
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 😛
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.
Quem está interessado no assunto.. pode dar uma olhada no hamachi também:
https://pplware.sapo.pt/2006/12/11/hamachi-1013/
https://secure.logmein.com/PT/products/hamachi2/
Artigo muito bom.
Vai fazer muito jeito.
Um óptimo artigo, Francisco!
Vai directo para os favoritos. 😉
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 🙂
O TeamViewer não será mais “descomplicado”?
Tentei usar mas em modo VPN deu complicaçoes na intalaçao da placa de rede 🙂
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.
o programa “Ethernet bridge” só funciona com o XP.
tenta fazer uma bridge com o 7.
Cumprimentos
Hmm… então… alguém poderia me explicar como fazer uma BRIDGE no windows 7 por favor?
Acho que deves experimentar correr o OpenVPN sem o ethernet bridge.
Vou colocar uma observação no tutorial.
Cumprimentos
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…
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
Infelizmente o artigo não ajudou muito. Aguardando um novo artigo voltado para o windows 7!
Alguém poderia me ensinar a usar o 7 pra fazer bridge manual?
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
Licença: Freeware
A licença do OpenVPN não é open source?
Já rectifiquei a licença.
Ainda bem que reparaste.
Cumprimentos
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??
Tem o IP certo?
As placas estão em bridge?
Cumprimentos
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
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
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
Esperimenta correr como administrador, ou desligar o UAC.
Cumprimentos
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
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
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
precisas de copiar para a configuração do cliente, o certificado do servidor, o certificado do cliente e a chave do cliente.
Cumprimentos
Obrigado..
Cumps
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
O servidor não liga a lado nenhum, mas o cliente liga ao servidor.
Era essa a dúvida?
Cumprimentos
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.
Estou com um problema semelhante, as duas últimas chaves vpn que criei dão-me esse erro quando os clientes tentam ligar-se.
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?
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…
Pessoal algum vídeo tutorial que aconselham?
Boas não à nenhum vídeo que se possa ver como se faz. Obrigado
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