terça-feira, 1 de fevereiro de 2011

OpenVPN no CentOS

Oba oba!!! \0/

Estou de volta para guardar mais uma informação útil! A instalação do OpenVPN no CentOS. Vou mostrar aqui de maneira bem direta a instalação e configuração que já realizei em diversos ambientes.

STARTING...

1. Instale o repositório RPMForge:
wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.1-1.el5.rf.i386.rpm
rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt
rpm -K rpmforge-release-0.5.1-1.el5.rf.*.rpm
rpm -i rpmforge-release-0.5.1-1.el5.rf.*.rpm

2. Verifique se o RPMForge aparece na lista de repositórios:
yum check-update

3. Instale o OpenVPN
yum install openvpn -y

4. Iniciando a configuração:
cp -pra /usr/share/openvpn/2.0/easy-rsa /etc/openvpn
cd /etc/openvpn/easy-rsa
. ./vars
./clean-all
./build-ca

5. Criando a chave para o servidor:
./build-key-server server

6. Criando a chave para o cliente:
./build-key cliente

7. Gerando um Diff Hellman (DH) no servidor:
./build-dh

dentro do diretório /etc/openvpn/ encontra-se um arquivo chamado server.conf (se não existir crie ele). Nesse arquivo criamos a seguinte configuração:

8. Exemplo de configuração do servidor:
######################################
# CONFIGURAÇÃO DA VPN BÁSICA INICIAL #
# 13/07/2010 - ALAN MEC LACERDA #
######################################

proto tcp-server
port 1194
dev tap
mode server
tls-server

# Configuração dos certificados
ca easy-rsa/2.0/keys/ca.crt
cert easy-rsa/2.0/keys/server.crt
key easy-rsa/2.0/keys/server.key
dh easy-rsa/2.0/keys/dh1024.pem

# Configuração para prender/amarrar um IP a um determinado cliente
client-config-dir /etc/openvpn/ccd

# usando compressão para otimizar o link
comp-lzo

status openvpn-status.log
server 10.2.2.0 255.255.255.0

# guardar a lista de IPs designados num arquivo de log
ifconfig-pool-persist ippool.log

Aqui termina o arquivo de configuração do servidor. Conforme foi definido na configuração do mesmo, nós estamos usando uma configuração para prender/amarrar um IP específico para o cliente da VPN (isso se dá por que o IP é designado dinâmicamente aos clientes da VPN). Assim, temos de criar o arquivo que amarra o IP ao cliente:

###################################################
# Exemplo de um arquivo dentro do diretório ccd: #
###################################################

# OBSERVAÇÃO: O arquivo DEVE ter o nome do cliente
# (cliente esse que é gerado no arquivo de chave criptográfica:veja passo 6)

# Apenas é necessário a definição do IP classe /30 que
# será designado ao cliente na outra ponta.
ifconfig-push 10.2.2.2 255.255.255.252

O que segue agora é o arquivo que vai ser enviado para o cliente a fim de poder se conectar na VPN do servidor.

9. Exemplo de configuração do cliente:
######################################
# CONFIGURAÇÃO DA VPN BÁSICA INICIAL #
# 13/07/2010 - ALAN MEC LACERDA #
######################################

#Configurações iniciais
client
dev tap
proto tcp-client

#Servidor da VPN e porta a conectar
192.1.1.1 1194

#Otimizando o túnel
persist-key
persist-tun
comp-lzo
resolv-retry infinite
nobind

# Configurações do certificado digital
remote-cert-tls server
tls-client

# Esses arquivos devem ser copiados do servidor para a máquina do cliente
# Observem o caminho para os arquivos e configure corretamente.
ca c:\\tech\\keys\\ca.crt
cert c:\\tech\\keys\\Cliente.crt
key c:\\tech\\keys\\Cliente.key

# Verbose
verb 3

Aqui finaliza a configuração do arquivo do cliente.

FINISHING...

Bem, em termos bem simples, é isso aí a configuração básica para uma VPN usado o tão famoso OpenVPN. Lembre que no cliente será necessário instalar também o software do OpenVPN a fim de se conectar ao servidor.

Espero ter sido se ajuda, e se tiver alguma dúvida pode se sentir a vontade para perguntar.

Forte abraço,

4 comentários:

  1. Parece dificil pra quem vai fazer a primeira vez. Mas é muito mais simples do que parece.

    ResponderExcluir
  2. grande trabalho :) , isto é em centos 5 certo? estou a tentar em centos 6

    ResponderExcluir
  3. Estou vendo agora algumas opções extras para configuração do OpenVPN...

    como por exemplo a lista de revogação (CRL). Importante isso né? não pode ficar sem.

    ResponderExcluir