Páginas

terça-feira, 29 de novembro de 2011

Instalando OpenVPN no Linux



Olá Galera, neste post vou ensinar como instalar e configurar o Openvpn no Linux no modo Road Warrior, ou seja cliente-servidor.

A distribuição que usei foi o Debian, portanto algumas configurações podem variar de distribuição.

Vamos lá...mão na massa

Primeiramente  dar o seguinte comando no shell para instalação.

# apt-get install openvpn openssl

Em seguida, mover os scripts de instalação do VPN para o diretório /etc/openvpn

# mv /usr/local/share/doc/openvpn/easy-rsa /etc/openvpn/

Agora edite a configuração do Daemon para quando reiniciarmos ele achar o arquivo de configuração.

# vim /etc/init.d/openvpn

Procurar pela linha CONFIG_DIR e acrescentar o caminho dos arquivos de configuração da VPN

/etc/openvpn/easy-rsa/2.0

Em seguida,  crie o arquivo de configuração da VPN dentro do diretório /etc/openvpn/easy-rsa/2.0/ e coloque os seguintes parâmetros

# vim servidor.conf
---------------------------------------------------------------------------------------------------------


|# Identifica como servidor e habilita o multi-client
|Mode server
|#Iniciar a interface tun
|dev tun
|# Porta VPN padrão 1194
|port 1194
|# Protocolo UDP (maior desempenho)
|proto udp
|# Ativar Criptografia TSL
|tls-server
|# Certificado CA
|ca  keys/ca.crt
|# Certificado Servidor
|cert keys/servidor.crt
|# Chave servidor
|key  keys/servidor.key
|# Diffie Hellman
|dh  keys/dh1024.pem
|#client-config-dir ccd
|# IP REDE vpn clientes
|server 10.8.0.0 255.255.255.0
| IP VPN
|ifconfig 10.8.0.1 255.255.255.0
|# Rede Interna exportada
|push "route 192.168.0.10 255.255.255.0"
|
|# Logs
|status /var/log/openvpn/servidor-status.log
|log-append /var/log/openvpn/servidor.log
|# Mantém conexões ativas 
|keepalive 10 120
|# Clientes Máximos
|max-clients 15
|# Habilita a compressão de pacotes ( melhora o desempenho)
|comp-lzo
|user nobody
|group nogroup
|persist-key
|persist-tun
|# Nível de logs gerados
|verb 3

----------------------------------------------------------------------------------------------------------

Agora, edite o arquivo var que está dentro do diretório abaixo:

vim /etc/openvpn/easy-rsa/2.0/var

Preencha os campos abaixo, conforme necessidade.
----------------------------------------------------------------------------------------------------

|export KEY_COUNTRY="BR"
|export KEY_PROVINCE="SP"
|export KEY_CITY="SÃOPAULO"
|export KEY_ORG="EMPRESA"
|export KEY_EMAIL="LEANDRO@EMPRESA.COM.BR"
---------------------------------------------------------------------------------------------------

Em seguida criar o diretorio Keys onde ficarão as chaves dentro da pasta /easy-rsa/

# mkdir keys

A partir de agora iremos gerar o certificado.

O primeiro e o segundo comando irão limpar as chaves e os certificados contidos dentro do diretório var 
( lembrando de executar isso dentro do diretório do openvpn)

# source ./vars
# ./clean-all

Em seguida, executar o seguinte script.

# ./build-ca. 

No meu caso preenchi Organizational Unit como "TI" e Name: como "CERT". Não tem necessidade de preencher o resto.

Agora executar o comando para gerar a chave do servidor.
Lembrar de preencher o mesmo Organization TI  que você utilizou para gerar a CA e no name digitar o nome do certificado do servidor. Ex: server

# ./build-key-server

Agora executar o script para gerar o certificado do cliente. Proceder do mesmo modo do item acima,  no entanto no item name, alterar. EX: cliente

# ./build-key cliente

Por fim gerar os parâmetros Diffie-Hellman, Dependendo da máquina, este processo pode demorar um pouco.

./build-dh

Se quiser agregar uma camada extra de segurança execute o seguinte comando

# openvpn -genkey -secret /etc/openvpn/easy-rsa/2.0/keys/ta.keys.

Agora vamos criar os arquivos de log do VPN.


# touch /var/log/openvpn/servidor-status.log
# touch /var/log/openvpn/servidor.log

Podemos configurar o nível de log de 0 até 9, sendo que nível 0 só mostra erro fatal e o 9 ( barulhento) ideal para procura de error.

Agora vamos dar um start no Openvpn para ver se está tudo funcionando

#  ./etc/init.d/openvpn start

Finalizando...
Agora vamos criar o arquivo de conf do cliente, onde o mesmo ficará dentro do arquivo de configuração do cliente open-vpn.

# vim cliente.ovpn
------------------------------------------------------------------------------------------------

client
dev tun
proto udp
remote IPDOSERVIDOR 1194
script-security 2 system
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt # nome do CA que foi criado
cert cliente.crt  # nome da certificado do cliente 
key cliente.key   # nome da chave do cliente
ns-cert-type server
comp-lzo
verb 3
ip-win32 netsh
ping 10
ping-restart 60

----------------------------------------------------------------------------------------
Finalizando, Baixe e instale o cliente do Open VPN no link abaixo para ambiente windows

   http://openvpn.net/index.php/open-source/downloads.html

Agora que está tudo rodando copie o ca.crt, cliente.crt, cliente.key e cliente.ovpn que estão no diretório /keys dentro do arquivo config do diretório do Openvpn no Windows.

Pronto.  È só executar o OpenVpn GUI e o mesmo irá conectar.

Dúvidas, é só postarem.

Até a proxima =D