Blog do Nerd » OpenVPN – Servidor Ubuntu e Clientes Windows e Linux

18
Sobre Suporte em TI « 5 DIAS ATRÁS 0 tweets tweet Compartilhar / Favoritos O OpenVPN é uma ferramenta extremamente poderosa para permitir o acesso seguro à rede de sua empresa ou residência. Você pode utilizá-lo para permitir que os funcionários da empresa trabalhem de casa ou de qualquer lugar com acesso a Internet, de forma segura e transparente. Outro uso bastante comum é permitir a conexão de filiais à matriz da empresa, de forma a permitir o acesso das filiais aos arquivos e serviços disponibilizados pela matriz. Muitas empresas utilizam links dedicados justamente para fazer isso. Uma opção é, além de utilizar o link dedicado, usar um link ADSL como redundância e só conectar a VPN - pelo link ADSL - quando o link principal apresentar algum problema. Este tutorial irá ensiná-lo a instalar e configurar um servidor OpenVPN no sistema operacional Ubuntu 12.04 LTS ou superior e também como configurar clientes Windows e Linux para acessar o servidor de VPN. A topologia que estamos interessados esta ilustrada na figura abaixo, com um computador ligado à Internet e conectado à rede da empresa através da VPN, de forma que esse computador opere como se estivesse fisicamente conectado na rede da matriz. Pesquisar... Manutenção de Servidores Troca de peças, configuração, cria array, atualizar bios www.starlude.com.br Segurança 24 horas Segurança para condomínios, res comercial. Acesse. www.sekronalarmes.com.br Juniper Store Revendedor Autorizado Juniper N www.JuniperStore.com.br Professional IT Low Cost Use the best in technology and s Backup, Attack Protection, No Vir www.gxtechnology.com Windows 7 Sysprep: Criação de uma imagem de instalação personalizada (187) O objetivo deste artigo é demonstrar como gerar uma imagem personalizada para instalação em massa do Windows 7. Após concluir todos os […] 1 ANO ATRÁS Ir para o Topo Blog do Nerd » OpenVPN – Servidor Ubuntu e Clientes Windows e Linux http://blogdonerd.com.br/2012/06/openvpn-servidor-ubuntu-e-clientes-... 1 de 18 29/6/2012 18:43

description

Open vpn no ubuntu

Transcript of Blog do Nerd » OpenVPN – Servidor Ubuntu e Clientes Windows e Linux

Page 1: Blog do Nerd » OpenVPN – Servidor Ubuntu e Clientes Windows e Linux

Sobre Suporte em TI

«

5 DIAS ATRÁS

0tweets

tweet

Compartilhar / Favoritos

O OpenVPN é uma ferramentaextremamente poderosa para permitir oacesso seguro à rede de sua empresa ouresidência.

Você pode utilizá-lo para permitir que os funcionários da empresa trabalhem de casa oude qualquer lugar com acesso a Internet, de forma segura e transparente.

Outro uso bastante comum é permitir a conexão de filiais à matriz da empresa, de forma apermitir o acesso das filiais aos arquivos e serviços disponibilizados pela matriz. Muitasempresas utilizam links dedicados justamente para fazer isso. Uma opção é, além deutilizar o link dedicado, usar um link ADSL como redundância e só conectar a VPN - pelolink ADSL - quando o link principal apresentar algum problema.

Este tutorial irá ensiná-lo a instalar e configurar um servidor OpenVPN no sistemaoperacional Ubuntu 12.04 LTS ou superior e também como configurar clientes Windows eLinux para acessar o servidor de VPN.

A topologia que estamos interessados esta ilustrada na figura abaixo, com umcomputador ligado à Internet e conectado à rede da empresa através da VPN, de formaque esse computador opere como se estivesse fisicamente conectado na rede da matriz.

Pesquisar...

Manutenção de ServidoresTroca de peças, configuração, criação dearray, atualizar bioswww.starlude.com.br

Segurança 24 horasSegurança para condomínios, residencial ecomercial. Acesse.www.sekronalarmes.com.br

Juniper StoreRevendedor Autorizado Juniper NetWorkswww.JuniperStore.com.br

Professional IT Low CostUse the best in technology and saveBackup, Attack Protection, No Viruswww.gxtechnology.com

Windows 7 Sysprep:Criação de uma imagemde instalaçãopersonalizada (187)O objetivo deste artigoé demonstrar comogerar uma imagempersonalizada parainstalação em massa doWindows 7. Apósconcluir todos os […]1 ANO ATRÁS

Ir para o Topo

Blog do Nerd » OpenVPN – Servidor Ubuntu e Clientes Windows e Linux http://blogdonerd.com.br/2012/06/openvpn-servidor-ubuntu-e-clientes-...

1 de 18 29/6/2012 18:43

Page 2: Blog do Nerd » OpenVPN – Servidor Ubuntu e Clientes Windows e Linux

Para a conexão OpenVPN é necessário a criação de chaves criptográficas, um par de chaves(pública e privada) para cada cliente, onde a chave pública fica no servidor de OpenVPN ea chave privada fica de posse do cliente. Para isso iremos criar nossa própria AutoridadeCertificadora (CA).

Em outro tutorial irei ensinar como utilizar um certificado digital emitido por umaAutoridade Certificadora pública como Certisign, Verisign, Caixa Econômica Federal ououtra.

Você não precisa se preocupar em entender a fundo a questão da criptografia, mas se tiverinteresse no tema, um bom começo é a Cartilha de Segurança disponibilizada pelo Centrode Estudos, Resposta e Tratamento de Incidentes de Segurança no Brasil.

Pré-RequisitosO OpenVPN está disponível em duas versões: Access Server e Community. A versão AccessServer necessita de uma licença paga para funcionar. Já a versão Community é gratuita enão oferece suporte. Este tutorial está focado na versão gratuita Community.

Você precisará:

Servidor com Ubuntu 10.04/12.04 LTS ou superior (x86 ou amd64). Você pode utilizara distribuição linux de sua preferência, inclusive utilizar um servidor Windows sedesejar, pois o OpenVPN é muito versátil, porém, terá que fazer as adaptaçõesnecessárias para seu ambiente. Este tutorial vai focar na instalação do OpenVPN serverno Ubuntu 12.04 LTS amd64. Este servidor pode ser - e é até recomendável que seja - oseu firewall.

1.

Cliente com Windows XP, Vista, 7, ou superior instalado. O cliente também pode seruma estação Linux. Este tutorial irá tratar dos passos necessário para instalar econfigurar o cliente da VPN em um computador executando WIndows.

2.

Endereço IP da rede VPN a ser criada. Você pode definir a rede que julgar maisapropriada, porém é bom que esta rede seja diferente da rede dos usuários. As redesmais comuns de uso doméstico são 192.168.0.0/24, 192.168.1.0/24 e 10.0.0.0/24. Émelhor você escolher uma faixa diferente dessas, porém dentro da faixa de endereçosprivados. Neste tutorial vou usar o endereço da rede VPN como sendo 10.15.0.0/24.Você pode usar outra máscara de sub-rede, de acordo com suas necessidades. Opteipela máscara 24 (255.255.255.0) por ser uma das mais usuais.

3.

Definir qual a porta e protocolo (UDP ou TCP) a ser utilizado para a conexão VPN. Aporta e protocolos padrão para o OpenVPN são 1194 e UDP. Neste tutorial irei utilizaresta porta e protocolo. Recomendo que o protocolo utilizado seja UDP, poisencapsular uma conexão TCP dentro de outra TCP pode trazer alguns problemas dedesempenho devido aos algoritmos de retransmissão de pacotes e de janelasdeslizantes do TCP. Vai funcionar, porém você poderá experimentar algum tipo delentidão.

4.

Definir o tipo de interface a ser utilizada TUN ou TAP. A interface mais comum é a5.

Blogueiro NERD

Indisponível no momento

Parceiros

Tweets Recentes

Tags

Utilizando o WinPE 3.0para backup einstalação do Windows7 (136)O WinPE (WindowsPreinstallationEnvironment) é umaversão reduzida doWindows destinadaespecificamente parapreparar umcomputador para […]1 ANO ATRÁS

Ir para o Topo

Blog do Nerd » OpenVPN – Servidor Ubuntu e Clientes Windows e Linux http://blogdonerd.com.br/2012/06/openvpn-servidor-ubuntu-e-clientes-...

2 de 18 29/6/2012 18:43

Page 3: Blog do Nerd » OpenVPN – Servidor Ubuntu e Clientes Windows e Linux

TUN, que opera em camada 3 do modelo OSI em modo roteamento. A Interface TAPtrabalho em camada 2 do modelo OSI e é utilizada para modo bridge. Neste tutorialiremos usar modo roteamento com interface TUN.IP público de seu roteador de Internet. Se você não possui um IP fixo, pode utilizaralgum serviço de DNS dinâmico para manter seu IP atualizado e permitir a conexãoVPN. O que costumo usar é o No-IP.

6.

Regra de redirecionamento (NAT) em seu roteador Internet, encaminhando ospacotes destinados ao IP público de seu roteador na porta 1194 e protocolo UDP parao IP interno de seu servidor OpenVPN. A forma de fazer o NAT difere de roteador pararoteador. Você pode pesquisar no Google por "como abrir portas" para o modelo deseu roteador. Se o seu servidor OpenVPN já estiver usando um IP público então esseNAT não é necessário.

7.

OpenVPN Community Windows - Cliente Windows com interface gráfica para oOpenVPN. Você pode obtê-lo aqui.

8.

A versão server do OpenVPN Community será obtida via apt-get no Ubuntu. Vocêpode obter o instalador ou código fonte para outras distribuições na páginado OpenVPN Community.

9.

Privilégios administrativos no servidor Linux e no cliente Windows, permitindo ainstalação de softwares e configuração dos equipamentos.

10.

ResumoSão esses os passos que iremos seguir:

Instalação do Servidor OpenVpn e Criação da CA Local1.Criação do Certificado do Servidor2.Configuração do Servidor OpenVPN3.Regras de Firewall4.Criando Certificados para Clientes5.Instalando e configurando o OpenVPN nos Clientes6.Revogando Certificados de Clientes7.Informações Adicionais8.

TutorialDepois de conferido todos os pré-requisitos, vamos por a mão na massa.

1. Instalação do Servidor OpenVPN e Criação da CA LocalPara instalar o OpenVPN no Ubuntu execute:

Após a instalação, copie os arquivos de exemplo de configuração da pasta /usr/share/doc/openvpn/examples/easy-rsa/2.0/ para a pasta /etc/openvpn.

Renomeie ou crie uma cópia do arquivo /etc/openvpn/openssl-1.0.0.cnf para /etc/openvpn/openssl.cnf.

Edite o arquivo /etc/openvpn/vars ajustando as últimas linhas iniciadas por KEY pararefletir o seu ambiente.

É interessante, porém não obrigatório, que o parâmetro KEY_CN tenha o mesmo valorque o hostname do servidor OpenVPN.

Se existir, remova as últimas linhas referentes as chaves PKCS11_MODULE_PATH ePKCS11_PIN. Se existir uma chave duplicada KEY_EMAIL, remova-a também.

O tempo padrão para a expiração do certificado da CA e das chaves a serem geradas é de

1

1

1

Ir para o Topo

Blog do Nerd » OpenVPN – Servidor Ubuntu e Clientes Windows e Linux http://blogdonerd.com.br/2012/06/openvpn-servidor-ubuntu-e-clientes-...

3 de 18 29/6/2012 18:43

Page 4: Blog do Nerd » OpenVPN – Servidor Ubuntu e Clientes Windows e Linux

10 anos (3650 dias). Se preferir altere estes valores editando os parâmetros CA_EXPIRE eKEY_EXPIRE.

O tamanho da chave de criptografia está definido como 1024 bits. Se quiser mudar estevalor edite o parâmetro KEY_SIZE.O conteúdo de meu /etc/openvpn/vars segue abaixo:

Agora execute os comandos abaixo:

010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869

12

Ir para o Topo

Blog do Nerd » OpenVPN – Servidor Ubuntu e Clientes Windows e Linux http://blogdonerd.com.br/2012/06/openvpn-servidor-ubuntu-e-clientes-...

4 de 18 29/6/2012 18:43

Page 5: Blog do Nerd » OpenVPN – Servidor Ubuntu e Clientes Windows e Linux

Confirme os valores solicitados pelo build-ca, que serão os mesmos definidos no arquivo/etc/openvpn/vars.

A saída dos comandos será semelhante a abaixo:

A pasta /etc/openvpn/keys será gerada e dentro dela, 5 arquivos referentes a nova CAcriada:

ca.crt - Certificado Público de sua CA.1.ca.key - Chave Privada de sua CA.2.dh1024.pem - Parâmetros do Diffie-Hellman.3.index.txt - Controle das chaves geradas pela nova CA.4.serial - Controle de número serial das chaves geradas pela nova CA.5.

2. Criação do Certificado do ServidorÉ necessário a geração de um certificado para o servidor OpenVPN.Para fazer isso execute:

Você pode substituir a palavra server por outra que desejar, só que se fizer isso, lembre-sede fazer os devidos ajustes no arquivo /etc/openvpn/server.conf que será configuradono próximo passo.A saída do comando será semelhante a abaixo.Ajuste o parâmetro Name para o nome que julgar mais apropriado para seu servidor.Recomendo não atribuir um challenge password.Confirme a assinatura e a atualização do certificado com a tecla 'y'.

34

010203040506070809101112131415161718192021222324252627282930313233343536373839404142

1

01Ir para o Topo

Blog do Nerd » OpenVPN – Servidor Ubuntu e Clientes Windows e Linux http://blogdonerd.com.br/2012/06/openvpn-servidor-ubuntu-e-clientes-...

5 de 18 29/6/2012 18:43

Page 6: Blog do Nerd » OpenVPN – Servidor Ubuntu e Clientes Windows e Linux

Dois arquivos serão gerados na pasta /etc/openvpn/keys:server.crt - Certificado público do servidor OpenVPN.server.key - Chave privada do servidor OpenVPN.

3. Configuração do Servidor OpenVPNGere uma chave TLS (opcional) para aumentar ainda mais a segurança da conexão VPN,permitindo a verificação de integridade de cada pacote TLS, digitando o seguintecomando:

A configuração do OpenVPN é realizada em qualquer arquivo que termine em .conf,localizado na pasta /etc/openvpn/. Neste tutorial iremos usar o arquivo /etc/openvpn/server.conf. Você pode alterar este arquivo para o nome que desejar, desde que eletermine em .conf. Você pode inclusive ter mais de um serviço OpenVPN ouvindo emoutras portas, basta configurar outro arquivo .conf.

Crie um /etc/openvpn/server.conf vazio e preencha-o conforme segue.

Se preferir, você pode iniciar usando o arquivo de configuração de exemplo do OpenVPN,bastando para isso copiar e descomprimir o arquivo /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz para /etc/openvpn/server.conf:

Ajuste o arquivo /etc/openvpn/server.conf conforme abaixo, tomando o cuidado dealterar as linhas destacadas para refletir a realidade de seu ambiente.

A linha local 10.0.0.1 indica o IP local do servidor em que OpenVPN irá ouvir por

0203040506070809101112131415161718192021222324252627282930313233343536373839404142434445

1

1

Ir para o Topo

Blog do Nerd » OpenVPN – Servidor Ubuntu e Clientes Windows e Linux http://blogdonerd.com.br/2012/06/openvpn-servidor-ubuntu-e-clientes-...

6 de 18 29/6/2012 18:43

Page 7: Blog do Nerd » OpenVPN – Servidor Ubuntu e Clientes Windows e Linux

novas conexões.A configuração server 10.15.0.0 255.255.255.0 informa ao servidor OpenVPN que arede VPN será 10.15.0.0/24. Altere para a rede que definiu durante a fase depré-requisitos. O primeiro IP dessa rede será o IP do servidor OpenVPN.Se desejar você pode ajustar a linha push "route 10.0.0.0 255.0.0.0" informando aoOpenVPN para adicionar uma rota na tabela de rotas dos clientes VPN no momento daconexão. Neste caso todo o tráfego para a rede 10.0.0.0/8 será redirecionado pelaVPN. Você pode ser mais radical e direcionar todo o tráfego de rede pela VPN,incluindo o tráfego de Internet. Para fazer isso, substitua a linha push "route 10.0.0.0255.0.0.0" por push "redirect-gateway def1".As configurações push "dhcp-option" são opcionais e relativas aos parâmetros deDNS a serem informados para o computador cliente. Você pode informar os servidoresde DNS locais da rede da sede para que os clientes possam resolver nomes de domínioe acessar os serviços internos com maior facilidade.

Muitos dos parâmetros são opcionais e o OpenVPN é extremamente versátil e se adapta apraticamente qualquer ambiente. Você pode verificar o manual do OpenVPN para exploraroutras configurações.O arquivo /etc/openvpn/server.conf sugerido é o seguinte:

001002003004005006007008009010011012013014015016017018019020021022023024025026027028029030031032033034035036037038039040041042043044045046047048049050051052053054055 Ir para o Topo

Blog do Nerd » OpenVPN – Servidor Ubuntu e Clientes Windows e Linux http://blogdonerd.com.br/2012/06/openvpn-servidor-ubuntu-e-clientes-...

7 de 18 29/6/2012 18:43

Page 8: Blog do Nerd » OpenVPN – Servidor Ubuntu e Clientes Windows e Linux

Crie a pasta /var/log/openvpn para manter os logs do OpenVPN:

Se desejar crie o arquivo /etc/logrotate.d/openvpn com o conteúdo a seguir para fazeruma rotação automática dos logs do OpenVPN:

Inicie o OpenVPN executando:

056057058059060061062063064065066067068069070071072073074075076077078079080081082083084085086087088089090091092093094095096097098099100101102103104105106107108109110111

1

0102030405060708091011

1Ir para o Topo

Blog do Nerd » OpenVPN – Servidor Ubuntu e Clientes Windows e Linux http://blogdonerd.com.br/2012/06/openvpn-servidor-ubuntu-e-clientes-...

8 de 18 29/6/2012 18:43

Page 9: Blog do Nerd » OpenVPN – Servidor Ubuntu e Clientes Windows e Linux

Verifique se o serviço está em execução com o comando:

Se tudo ocorreu com sucesso, a saída será semelhante a seguinte:

Se ocorreu algum problema, verifique o arquivo /var/log/openvpn.log:

Uma nova interface de rede (tun0) será criada, conforme ilustra a execução do comandoifconfig abaixo.

O servidor já está no ar. Agora precisamos configurar regras de firewall, se necessário, criaras chaves para os clientes e configurá-los.

4. Regras de FirewallSe seu servidor OpenVPN está configurado no mesmo equipamento que seu firewall, ou se

1

123456

010203040506070809101112131415161718192021222324

01020304050607080910111213141516171819202122232425262728

Ir para o Topo

Blog do Nerd » OpenVPN – Servidor Ubuntu e Clientes Windows e Linux http://blogdonerd.com.br/2012/06/openvpn-servidor-ubuntu-e-clientes-...

9 de 18 29/6/2012 18:43

Page 10: Blog do Nerd » OpenVPN – Servidor Ubuntu e Clientes Windows e Linux

a comunicação precisa atravessar por um firewall para chegar até o servidor OpenVPN, éimportante configurar as regras adequadamente.

Não vou ensinar aqui a criar as regras para um ambiente específico, pois existe umadiversidade enorme de ferramentas para gerenciar regras de firewall e cada caso é umcaso.

Vou tratar apenas de regras de uma forma genérica.

Vamos ao pontos importantes:

O primeiro IP definido no parâmetro server do /etc/openvpn/server.conf é o IP localdo OpenVPN e o segundo IP é o endereço considerado remoto. No exemplo destetutorial:

O endereço da rede é 10.15.0.0 com máscara 255.255.255.0.1.O endereço 10.15.0.0 é o endereço da rede e, por definição, não pode seratribuído a nenhum equipamento.

2.

O IP 10.15.0.1 é o IP atribuído a interface tun0 local3.O IP 10.15.0.2 é um IP lógico, atribuído genericamente ao gateway dos clientes.Você pode utilizar este IP para fazer regras de roteamento, por exemplo, se seucliente está na rede 10.2.0.0/24, você pode criar uma regra de roteamento queencaminhe todos os pacotes destinados a rede 10.2.0.0/24 para o gateway10.15.0.2: route add -net 10.2.0.0/24 gw 10.15.0.2 dev tun0

4.

1.

É necessário criar uma regra que permita que comunicação oriundas da internet edestinadas ao IP do seu servidor OpenVPN na porta 1194 UDP sejam aceitas. Umaregra iptables seria: iptables -A -i eth0 -d 10.0.0.1/32 -p udp -m udp --dport 1194-j ACCEPT

2.

Uma vez permitida a conexão é necessário criar regras que permitam que seu clienteconverse com os serviços de sua rede e vice-versa. Neste caso, cada rede vai ter suasparticularidades. Por exemplo, para permitir que qualquer cliente da rede OpenVPN(10.15.0.0/24) acesse um servidor de DNS de IP 10.0.0.15 em sua rede, a regraiptables seria: iptables -A -i tun0 -s 10.15.0.0/24 -d 10.0.0.15/32 -p tcp -m tcp--dport 53 -j ACCEPT

3.

Lembre-se de que para estas regras funcionarem é importante permitir o roteamentoentre as interfaces. Isto pode ser feito atribuindo o valor 1 ao parâmetro /proc/sys/net/ipv4/ip_forward. Você pode colocar uma linha com o comando a seguir emalgum script de inicialização de seu servidor, ou ajustar este parâmetro diretamente noseu firewall, se ele assim o permitir: echo 1 > /proc/sys/net/ipv4/ip_forward

4.

5. Criando Certificados para ClientesPara cada novo cliente VPN de sua rede, é necessário criar um certificado exclusivo. Isto éfeito através do comando /etc/openvpn/build-key ou /etc/openvpn/build-key-pass:

Troque nome-do-cliente por um nome único e exclusivo para cada cliente. Ele será oCommon Name do certificado gerado. É importante que no nome-do-cliente não hajaespaços em branco, nem caracteres especiais ou acentuados. Até é possível, mas se vocênão usá-los, terá menos problemas. Você pode usar números, a matricula dos funcionários,CPF, ou o Nome completo, lembrando de trocar o separador do nome por _ ousimplesmente suprimi-lo. Por exemplo, a Caixa Econômica Federal costuma emitir seuscertificados usando o nome completo do solicitante, seguido do caracter : e dos númerosdo CPF.

Antes de executar o build-key é importante executar source /etc/openvpn/vars paraatribuir as informações de sua CA às variáveis de ambiente da sessão corrente.

Lembre-se de responder as perguntas adequadamente. Elas já virão pré-preenchidas pelosvalores de /etc/openvpn/vars. Você pode colocar qualquer informação no campo name,inclusive espaços em branco e caracteres acentuados.

É recomendável usar o build-key-pass ao invés do build-key, visto que o primeiro irásolicitar uma senha secreta para cada cliente. Essa senha sera utilizada em cada conexão

1

Ir para o Topo

Blog do Nerd » OpenVPN – Servidor Ubuntu e Clientes Windows e Linux http://blogdonerd.com.br/2012/06/openvpn-servidor-ubuntu-e-clientes-...

10 de 18 29/6/2012 18:43

Page 11: Blog do Nerd » OpenVPN – Servidor Ubuntu e Clientes Windows e Linux

OpenVPN. Isso é importante pois caso um notebook que contenha as configurações ecertificados de determinado usuário seja perdido ou furtado um meliante não seria capazde fechar a conexão VPN sem ter a senha. É claro que nestes casos recomenda-se aindarevogar o certificado do cliente.

Para gerar um novo certificado para o usuário João da Silva você pode digitar o seguinte:

Três novos arquivos serão gerados na pasta /etc/openvpn/keys:

joao_da_silva.csr - Solicitação do novo certificadojoao_da_silva.crt - Certificado públicojoao_da_silva.key - Chave privada

Será necessário copiar estes arquivos para o computador do cliente no próximo passo.

6. Instalando e configurando o OpenVPN nos ClientesWindows ou LinuxBaixe e instale a versão mais recente do OpenVPN. Para clientes Ubuntu basta executarapt-get install openvpn.

No Windows se aparecer uma mensagem solicitando para sua permissão para instalar umnovo adaptador de rede TAP-Win32 (conforme abaixo), clique no botão Instalar.

0102030405060708091011121314151617181920212223242526272829303132333435363738394041424344454647

Ir para o Topo

Blog do Nerd » OpenVPN – Servidor Ubuntu e Clientes Windows e Linux http://blogdonerd.com.br/2012/06/openvpn-servidor-ubuntu-e-clientes-...

11 de 18 29/6/2012 18:43

Page 12: Blog do Nerd » OpenVPN – Servidor Ubuntu e Clientes Windows e Linux

No Windows, um ícone do OpenVPN GUI será instalado na área de trabalho.

Se seu sistema operacional for Windows Vista ou 7, clique com o botão direito do mousenesse ícone e escolha Propriedades. Na guia Atalho clique no botão Avançados e nanova janela marque a opção Executar como administrador.

Isto é importante porque as regras de roteamento enviadas pelo servidor OpenVPN sóserão atribuídas se o cliente OpenVPN tiver privilégios administrativos.

Agora vamos configurar o cliente OpenVPN.

Vá até o servidor e copie os seguintes arquivos da pasta /etc/openvpn/keys:

ca.crt - Certificado público de sua CAta.key - Chave privada para assinatura de pacotes TLS de forma a aumentar a segurançana comunicaçãojoao_da_silva.crt - Certificado público do usuário a ser configuradojoao_da_silva.key - Certificado privado do usuário a ser configurado

Talvez você tenha dificuldades para copar os arquivos .key que são privados e nãopossuem permissão de leitura para usuários comuns. Se necessário, copie os arquivos parauma pasta temporária (/tmp por exemplo) e altere as permissões com o comando chmod:chmod 644 /tmp/joao_da_silva.key.

ATENÇÃO: Lembre-se o arquivo joao_da_silva.key contém a chave privada do João enão deve ser distribuida livremente para não comprometer a segurança, especialmente seele não possuir uma challenge password.

Copie estes arquivos para a pasta C:\Program Files\OpenVPN\config para o clienteIr para o Topo

Blog do Nerd » OpenVPN – Servidor Ubuntu e Clientes Windows e Linux http://blogdonerd.com.br/2012/06/openvpn-servidor-ubuntu-e-clientes-...

12 de 18 29/6/2012 18:43

Page 13: Blog do Nerd » OpenVPN – Servidor Ubuntu e Clientes Windows e Linux

Windows ou para /etc/openvpn no caso de um cliente Linux.

Renomeie os arquivos joao_da_silva.crt e joao_da_silva.key no cliente, conforme segue:

joao_da_silva.crt -> client.crtjoao_da_silva.key -> client.key

Se preferir, ao invés de renomear estes arquivos, você pode ajustar osparâmetros cert e key no arquivo openvpn.conf (Linux) ou openvpn.ovpn (Windows)que será configurado no próximo passo.

7.1. Particularidades do Cliente WindowsPara um cliente Windows, crie o arquivo C:\Program Files\OpenVPN\config\openvpn.ovpn com o conteúdo abaixo.

Ajuste o parâmetro remote para o endereço público IP ou FQDN se seu servidorOpenVPN seguido da porta de conexão com o servidor. No meu exemplo usei o FQDNblogdonerd.no-ip.com. Se você configurou o servidor como TCP, então ajuste oparâmetro proto.

0102030405060708091011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556

Ir para o Topo

Blog do Nerd » OpenVPN – Servidor Ubuntu e Clientes Windows e Linux http://blogdonerd.com.br/2012/06/openvpn-servidor-ubuntu-e-clientes-...

13 de 18 29/6/2012 18:43

Page 14: Blog do Nerd » OpenVPN – Servidor Ubuntu e Clientes Windows e Linux

A pasta C:\Program Files\OpenVPN\config ficará assim:

Execute o OpenVPN GUI. Um ícone de dois computadores com uma tela vermelhaaparecerá no canto próximo ao relógio.

Clique duas vezes neste ícone ou clique com o botão direito no ícone e em seguida cliqueem Connect.

57585960616263646566676869707172737475767778798081828384858687

Ir para o Topo

Blog do Nerd » OpenVPN – Servidor Ubuntu e Clientes Windows e Linux http://blogdonerd.com.br/2012/06/openvpn-servidor-ubuntu-e-clientes-...

14 de 18 29/6/2012 18:43

Page 15: Blog do Nerd » OpenVPN – Servidor Ubuntu e Clientes Windows e Linux

A tela de conexão e logs do OpenVPN será mostrada. Se você configurou uma challengepassword para o certificado do cliente ela deveria ser solicitada agora. Se tudo ocorreubem o ícone passara de vermelho para verde e uma mensagem informando que a conexãofoi bem sucedida será apresentada.

Para desconectar é só clicar com o direito no ícone dos computadores verdes e escolher aopção Disconnect.

7.2. Particularidades do Cliente LinuxCrie o arquivo /etc/openvpn/openvpn.conf com o conteúdo abaixo.

Ajuste o parâmetro remote para o endereço público IP ou FQDN se seu servidorOpenVPN seguido da porta de conexão com o servidor. No meu exemplo usei oFQDN blogdonerd.no-ip.com. Se você configurou o servidor como TCP, então ajuste oparâmetro proto.

0102030405060708091011121314151617181920212223242526272829303132333435

Ir para o Topo

Blog do Nerd » OpenVPN – Servidor Ubuntu e Clientes Windows e Linux http://blogdonerd.com.br/2012/06/openvpn-servidor-ubuntu-e-clientes-...

15 de 18 29/6/2012 18:43

Page 16: Blog do Nerd » OpenVPN – Servidor Ubuntu e Clientes Windows e Linux

A pasta /etc/openvpn ficará assim:

Agora basta executar service openvpn start para que a conexão com o servidor sejarealizada.Para encerrar a conexão execute service openvpn stop.Para controlar se a conexão será executada automaticamente na inicialização docomputador, edite o arquivo /etc/default/openvpn.Descomente ou inclua a linha abaixo para que a conexão seja realizada automaticamentena inicialização:

Para impedir a inicialização automática do openvpn descomente ou inclua a seguintelinha:

7. Revogando Certificados de ClientesCaso um computador contendo um certificado seja perdido, ou ainda para impedir que

36373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687

123

1

1

Ir para o Topo

Blog do Nerd » OpenVPN – Servidor Ubuntu e Clientes Windows e Linux http://blogdonerd.com.br/2012/06/openvpn-servidor-ubuntu-e-clientes-...

16 de 18 29/6/2012 18:43

Page 17: Blog do Nerd » OpenVPN – Servidor Ubuntu e Clientes Windows e Linux

determinado usuário realize a conexão VPN você deve revogar o certificado.

Uma vez revogado, não há volta, você terá que gerar um novo certificado para permitir aconexão de detreminado cliente.

A lista de certificados revogados é armazenada no arquivo /etc/openvpn/keys/crl.pem.O problema é que o OpenVPN, após entrar em execução, não possui permissão de leiturapara essa pasta. Então teremos ainda que copiar o arquivo /etc/openvpn/keys/crl.pem para a pasta /etc/openvpn, que é o motivo da última linha dos comandosabaixo.

Para revogar o certificado de joao_da_silva execute os seguintes comandos:

A saída será a seguinte:

Precisamos ainda informar ao servidor OpenVPN para considerar esse arquivo naverificação das conexões.

Para fazer isso, edite o arquivo /etc/openvpn/server.conf e inclua a seguinte linha nofinal do arquivo:

Reinicie o OpenVPN para que esta nova configuração entre em ação:

Você não precisará reiniciar ou recarregar o OepnVPN a cada vez que revogar umcertificado. Somente na primeira vez em que configurar a diretiva crl-verify.

Para gerar um arquivo crl.pem inicial você pode executar o comando revoke-full com umnome qualquer:

8. Informações AdicionaisPara controlar se o servidor OpenVPN será inicializado automaticamente junto com ainicialização do computador, edite o arquivo /etc/default/openvpn.

Descomente ou inclua a linha abaixo para que o servidor OpenVPN inicieautomaticamente na inicialização:

Para impedir a inicialização automática do OpenVPN descomente ou inclua a seguintelinha:

Desculpe pelo artigo extremamente longo. Espero que ele seja útil. Qualquer dúvida,sugestão ou relato de erros é só postar nos comentários.

Referências

OpenVPN How To - http://openvpn.net/index.php/open-source/documentation/howto.html

123

123456789

1

1

1

1

1

Ir para o Topo

Blog do Nerd » OpenVPN – Servidor Ubuntu e Clientes Windows e Linux http://blogdonerd.com.br/2012/06/openvpn-servidor-ubuntu-e-clientes-...

17 de 18 29/6/2012 18:43

Page 18: Blog do Nerd » OpenVPN – Servidor Ubuntu e Clientes Windows e Linux

Compartilhar / Favoritos

Este artigo foi publicado por Nerd em 21 de junho de 2012às 16:15, nas categorias Linux, Tutoriais, Windows. Siga oscomentários deste artigo através do RSS 2.0. Você podepular para o fim e deixar um comentário. Fazer ping não épermitido no momento.

Artigos Relacionados

Nome (obrigatório)

E-mail (obrigatório, não será publicado)

Site

Digite seu comentário

Você pode utilizar estas tags HTML:

Notique-me via e-mail sobre alterações nos comentários desta página.

Comentários (0)

Ir para o Topo

Blog do Nerd » OpenVPN – Servidor Ubuntu e Clientes Windows e Linux http://blogdonerd.com.br/2012/06/openvpn-servidor-ubuntu-e-clientes-...

18 de 18 29/6/2012 18:43