VPN entre servidores CentOS 6 e Windows 7

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 configque 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.
Rolar para cima