VPN entre servidores CentOS 6 e Windows 7

OpenVPNs entre servidores GNU/Linux CentOS 6 e clientes Windows 7. Cenário: Servidor firewall com CentOS 6 + OpenVPN e estações de trabalhos, ou notebooks, de consultores externos com Windows 7.

[ Hits: 24.416 ]

Por: Carlos Eduardo Maciel Rodrigues em 09/08/2012


Configuração dos servidores e do OpenVPN



Neste artigo, estou explicando o passo a passo sobre como implantar uma VPN utilizando OpenVPN com servidores CentOS 6, ou Red Hat, e Clientes Windows 7.

Este cenário é muito usado em empresas que possuem uma matriz e tem consultores externos que precisam ter acesso aos servidores de dados da matriz.

Primeiro passo, vamos configurar o servidor OpenVPN que fará a autenticação dos usuários:

1. Instale os pacotes:

# yum install gcc rpm-build autoconf.noarch zlib-devel pam-devel lzo lzo-devel openssl-devel automake imake pkgconfig gcc-c++ libcrypto.so.6

2. Faça Download dos pacotes:

wget http://openvpn.net/release/openvpn-2.1.3.tar.gz
wget http://openvpn.net/release/lzo-1.08-4.rf.src.rpm
wget ftp://ftp.muug.mb.ca/mirror/fedora/epel/5/x86_64/pkcs11-helper-1.07-2.el5.1.i386.rpm
$ wget ftp://ftp.muug.mb.ca/mirror/fedora/epel/5/x86_64/pkcs11-helper-devel-1.07-2.el5.1.i386.rpm


3. Instale os pacotes baixados:

# rpmbuild --rebuild lzo-1.08-4.rf.src.rpm
# rpm -Uvh /root/rpmbuild/RPMS/i386/lzo-*.rpm
# rpm -ivh pkcs11-helper-*.rpm
# rpmbuild -tb openvpn-2.1.3.tar.gz
# rpm -Uvh /root/rpmbuild/RPMS/i386/openvpn-2.1.3-1.i386.rpm


4. Na sequência, crie um diretório chamado "openvpn" dentro do /etc:

# mkdir /etc/openvpn

5. Entre dentro do diretório /etc/openvpn:

# cd /etc/openvpn

6. Copie o diretório /usr/share/doc/openvpn-2.1.3/easy-rsa/2.0/ para dentro do /etc/openvpn:

# cp -r /usr/share/doc/openvpn-2.1.3/easy-rsa/2.0/

7. Dentro do diretório etc/openvpn/2.0, contém os scripts necessários para configuração da VPN:

8. Entre no diretório que acabou de copiar (/etc/openvpn/2.0) e vamos editar o arquivo vars (use o editor de texto de sua preferência, eu vou usar Vim):

# cd /etc/openvpn/2.0
# vim vars


9. Troque os parâmetros abaixo, pelos de sua empresa e salve o arquivo:

10. Agora, vamos carregar estes arquivos na memória, para que os mesmos sejam colocados com variáveis de ambiente:

# source ./vars

11. Vamos executar o script clean-all, para que seja limpo todas as chaves e não haja conflito de variáveis:

# ./clean-all

12. Agora vamos começar a criar as autoridades certificadoras e os certificados:

#./build-ca

O mesmo irá trazer os valores padrões, até mesmo porque editamos o arquivo vars, apenas confime pressionando ENTER, para concluir a criação da autoridade certificadora.

13. A partir de agora, foi criado um diretório chamado "Keys" onde contém os certificados da (CA).

Obs.: É importante que este certificado exista tanto no servidor como no cliente.

14. Vamos gerar os certificados do servidor:

#./build-key-server Matriz

Obs.: Matriz é o nome do meu server.

Eu não coloco atributos extras de segurança.

Confirme os dados.

15. Após a criação do certificado, verifique no diretório Keys, que agora existe o certificado Matriz, a chave de acesso e a requisição do certificado:
  • matriz.key
  • matriz.csr
  • matriz.crt

16. Agora, vamos gerar as chaves dos meus clientes, ou consultores externos, vou chamar de "consultor1":

#./build-key consultor1

Confirme os dados (não utilizo senha, assim, num primeiro momento poderá validar se suas chaves estão funcionando):
  • consultor1.key
  • consultor1.csr
  • consultor1.crt

17. E por fim, vamos criar o certificado Diffie hellman. Este certificado é muito importante, pois o mesmo garante que toda troca de chaves será feito com toda segurança:

# ./build--dh

18. Verifique no diretórios "Keys", que as chaves foram criadas as chaves do CA, MATRIZ, CONSULTOR1 e DH1024.

Caso não aconteceu, verifique se não pulou nenhum passo.

19. Vamos criar um link simbólico que vai apontar para o diretório Keys:

# ln -s /2.0/keys keys

Isto vai facilitar o acesso ao diretório.

20. O próximo passo será configurar a matriz para fazer a autenticação dos usuários. Vamos criar um arquivo chamado "matriz.conf" dentro do diretório /etc/openvpn/:

# touch matriz.conf

21. Agora, só falta reiniciar o serviço VPN:

# /etc/init.d/openvpn restart

Caso exista algum problema, por favor, verifique em log.

22. Vamos configurar os cliente que será o nosso consultor1

23. Neste artigo estou utilizando o OpenVPNPortable, este aplicativo permite que o mesmo seja utilizado em um pendrive e seja executado em qualquer computador que possua Windows 7.

O Pacote contém algumas pastas:

24. No arquivo "OpenVPNPortable.ini", temos as seguintes configurações:

* Observação: Neste arquivo, precisa ser trocado o parâmetro AutoConnect para o nome da chave criada, no caso do exemplo, estou utilizando: Consultor1

25. Dentro do diretório data, existe um diretório config que contém as chaves e o arquivo com a extensão ".ovpn", os mesmos devem ficar da seguinte forma:

26. Acima, contém as chaves criadas no servidor que foram copiadas para dentro do diretório config, e junto com as chaves, é contido o arquivo "consultor1.ovpn".

Neste arquivo exitem os parâmetros de configuração do cliente para conexão com o servidor. Os parâmetros devem ficar da seguinte forma:

27. Após o término das configurações do cliente, execute o arquivo OpenVPNPortable.exe:

28. O mesmo fará a conexão automática com o Servidor VPN.

29. Como dica, existem algumas observações:
  • No Windows 7, desabilite a UAC (User Account Control), caso contrário, o Windows bloqueará a criação do adaptador de rede virtual.
  • Verifique as rotas dos firewall, para liberar as portas que irão utilizar para conexão com a VPN.

Caso tenham dúvidas, segue o meu e-mail: cadurodrigues[at]hotmail.com

   

Páginas do artigo
   1. Configuração dos servidores e do OpenVPN
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Consegue guardar um segredo?

Uma breve abordagem sobre Criptografia

Protegendo seu Linux de ataques de brute force via ssh

Resumo da Norma ISO/IEC 13335-3

MSN-Proxy no Debian Etch

  
Comentários
[1] Comentário enviado por haereticus em 10/08/2012 - 10:14h

Caramba muito show, a tempos to tentando implementar um servidor com estrutura parecida, vou analisar com calma o tutorial e por em prática em breve.

Valeu !

[2] Comentário enviado por rodrigo.kiyoshi em 10/08/2012 - 11:00h

Bom artigo, parabéns!

[3] Comentário enviado por cadurodrigues14 em 10/08/2012 - 11:10h

Olá Clockworklinux,

Obrigado pela contribuição, este cenário já tenho funcionando em alguns clientes, caso precise de ajuda só entrar em contato.

Abç.

Carlos Rodrigues


[1] Comentário enviado por clockworklinux em 10/08/2012 - 10:14h:

Caramba muito show, a tempos to tentando implementar um servidor com estrutura parecida, vou analisar com calma o tutorial e por em prática em breve.

Valeu !



[4] Comentário enviado por cadurodrigues14 em 10/08/2012 - 11:12h

Olá Rodrigo,

Obrigado pela contribuição, caso precise de ajuda para implementar só entrar em contato.

Abç.

Carlos Rodrigues
cadurodrigues@hotmail.com


[2] Comentário enviado por rodrigo.kiyoshi em 10/08/2012 - 11:00h:

Bom artigo, parabéns!



[5] Comentário enviado por LuizOtavio em 11/08/2012 - 23:47h

Muito bom o artigo, utilizamos VPN na empresa, porém na plataforma Windows.
Estarei repassando a informação para nosso Adm Redes, para atribuirmos em um projeto de melhorias.

Obrigado.

Abç.

[6] Comentário enviado por JOSERF em 18/08/2012 - 15:45h

bacana o artigo mas deveria ter colocado os aqruivos para download e poder copiar, colocar em imagem foi mancada.

[7] Comentário enviado por cadurodrigues14 em 20/08/2012 - 00:38h

Ok, muito obrigado !

Carlos Rodrigues.

[4] Comentário enviado por cadurodrigues14 em 10/08/2012 - 11:12h: Olá Rodrigo, Obrigado pela contribuição, caso precise de ajuda para implementar só entrar em contato. Abç.Carlos Rodriguescadurodrigues@hotmail.com
[2] Comentário enviado por rodrigo.kiyoshi em 10/08/2012 - 11:00h:Bom artigo, parabéns!



[8] Comentário enviado por cadurodrigues14 em 20/08/2012 - 00:41h

Amigo boa noite.

Obrigado pelo comentário porém os artigos para Download já estão com os links disponibilizados para downloads o aplicativo do windows pode ser encontrato na www.openvpn.net

abç.

Carlos Rodrigues.

[6] Comentário enviado por JOSERF em 18/08/2012 - 15:45h: bacana o artigo mas deveria ter colocado os aqruivos para download e poder copiar, colocar em imagem foi mancada.



[9] Comentário enviado por fernandowx em 22/08/2012 - 23:57h

Parabéns pelo artigo.Obrigado por esclarecer as minhas dúvidas.
Abraço ...

[10] Comentário enviado por Linuxlrt em 04/10/2012 - 16:12h

Muito bom.
Ajudou bastante

[11] Comentário enviado por eduardo.beltran em 29/01/2015 - 20:56h

boa noite, sei que o topico é um pouco antigo mas gostaria muito de saber se estas configuraçoes se aplicam tbem a um servidor centos 6 samba4 como dominio. Obrigado!!!

[12] Comentário enviado por cadurodrigues14 em 15/07/2016 - 19:56h


[11] Comentário enviado por eduardo.beltran em 29/01/2015 - 20:56h

boa noite, sei que o topico é um pouco antigo mas gostaria muito de saber se estas configuraçoes se aplicam tbem a um servidor centos 6 samba4 como dominio. Obrigado!!!



Eduardo, boa noite.

Já tem um tempo que não acesso mais nao deixo de responder ninguem, amigo toda VPN sempre é estabelecida com o um firewall, seja ele qual for, porém depois que a conexão está estabelecida você cria regra para acessar qualquer servidor.

Mesmo tarde espero ter ajudado.

Abs.

[13] Comentário enviado por walckiers em 17/05/2018 - 14:28h

Olá,

Depois de tudo pronto não consigo conectar, vou te dizer meu cenário acesso a internet via roteador > 192.168.2.1 e meu servidor de dados é 192.168.2.105
o dhcp é o roteador 192.168.2.1 . Creio que o problema seja de firewall no sevidor de dados na teoria o firewall esta desabilitado, digo na teoria porque não sei exatamente como verificar rs No roteador coloquei o ip do servidor de dados que está a vpn como DMZ, quando testo as portas que vc indicou 7980 e 1194 e as mesmas aparecem como inacessíveis no site testedeportas.com.br. Voce pode me orientar como resolver esta questão?

Muuuito obrigado e parabéns pelo trabalho.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts