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