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.328 ]

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

Convergência entre segurança física e lógica

Chroot + Bind sem stress

Um dia depois da inundação

Criptografia em roteadores

Seguraça extrema com LIDS

  
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