How to install OpenVPN inside a jail in FreeNAS 9.2.1.6+ with access to remote hosts via NAT

 Clusterweb, ClusterWeb, Firewall, FreeNAS, Leitura Recomendada, Linux, Profissional de TI, Redes  Comentários desativados em How to install OpenVPN inside a jail in FreeNAS 9.2.1.6+ with access to remote hosts via NAT
Maio 252017
 

Requirements

  • FreeNAS 9.10+
  • Domain updated by DDNS or a static IP
  • Internet access
  • Router forwarding of your port of choice (in my case 10011 UDP internal to 443 UDP external).
  • SFTP Client (Winscp, Transmit or plain scp)

Route all traffic?
If you want to route all traffic through the VPN Tunnel, be sure to read the Know This section

Overview
In this guide, we’ll do the server/client configuration as follows:

Server configuration:

  • Creating the Jail.
  • Optional: mounting local storage.
  • Installing OpenVPN inside the jail.
  • Creating all the certificates needed: the server root cert, the OpenVPN server cert and each of the client’s cert.
  • OpenVPN configuration file.
  • Firewall settings so NAT can work.
  • Registering OpenVPN as a service so it can start automatically with the jail.

Client configuration:

  • OpenVPN configuration file.
  • Certificate installation in client

Continue reading »

VPN entre servidores CentOS 6 e Windows 7

 Leitura Recomendada, Linux, Redes  Comentários desativados em VPN entre servidores CentOS 6 e Windows 7
ago 092012
 

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.