Você está na página 1de 10

Instalando e configurando openVPN no Debian Lenny [Artigo] Página 1 de 10

Instalando e configurando openVPN no Debian Lenny

Autor: Darlan Baquer <baquer_darlan at hotmail.com>


Data: 12/12/2010

Passos para instalação do servidor - Parte 1

Utilizaremos como ferramentas os aplicativos openVPN, para gerenciamento da rede virtual, tanto
para os servidores e cliente, o openSSL para gerar os certificados necessários para a nossa segurança e
para aqueles que têm um link de internet com IP dinâmico, mostrarei de forma bem sucinta, como
utilizar um domínio dinâmico tornando fácil o acesso ao servidor openVPN.

Caso você tenha um IP fixo em sua empresa, não há a necessidade de utilizar um cadastro em um
sistema de IP dinâmico, pode começar configurando pelo 3° passo.

1° passo:

Acessar a página www.dyndns.org e realizar o cadastro da conta que administrará os domínios de IP


dinâmicos, é gratuito e muito simples.

Conta criada:

z Usuário: Pedro
z E-mail: pedro@meudominio.com.br
z Senha: senhadopedro
z Domínio IP dinâmico: meudominio.dyndns.info

Obs.: Após criar a conta, não se esqueça de ativar o domínio dinâmico configurado acessando na
página www.dyndns.org, clicar em My Hosts, clique no domínio configurado e ative o domínio criado.

2° passo:

Instalar no servidor o cliente ddclient, que será responsável por atualizar o IP na página dyndns.com
quando alterado.

# aptitude install ddclient

Após a realização do download do ddclient, realizado pelo gerenciador de aplicativos, abrirá uma tela
de configuração solicitando:

z Local onde foi configurado o domínio dinâmico: dyndns.com


z Domínio configurado: meudominio.dyndns.info

http://www.vivaolinux.com.br/artigos/impressora.php?codigo=12260 27/03/2011
Instalando e configurando openVPN no Debian Lenny [Artigo] Página 2 de 10

z O usuário cadastrado para o serviço de DNS dinâmico: pedro


z Senha para o serviço DNS dinâmico: senhadopedro
z A interface utilizada para conexão com a internet: eth0

3° passo:

Instalar no servidor os pacotes: openvpn e openssl

# aptitude install openvpn openssl

4° passo:

Copiar para o diretório /etc/openvpn os scripts do openvpn para facilitar nossas vidas, no Debian
encontramos estes scripts no diretório /usr/share/doc/openvpn/examples/easy-rsa/2.0/ copiamos todo o
conteúdo deste diretório para /etc/openvpn/easy-rsa/.

# mkdir /etc/openvpn/easy-rsa
# cp -rp /usr/share/doc/openvpn/examples/easy-rsa/2.0/. /etc/openvpn/easy-rsa/

5° passo:

Editamos o arquivo vars, no final deste arquivo encontramos os seguintes campos:

export KEY_COUNTRY="US"
export KEY_PROVINCE="CA"
export KEY_CITY="SanFrancisco"
export KEY_ORG="Fort-Funston"
export KEY_EMAIL="me@myhost.mydomain"

Para sua empresa podemos utilizar:

export KEY_COUNTRY="SEUPAIS"
export KEY_PROVINCE="SEUESTADO"
export KEY_CITY="SUACIDADE"
export KEY_ORG="Sua Empresa"
export KEY_EMAIL="emailadministrador@suaempresa.com.br"

Obs.: Por padrão, os certificados criados, são configurados para expirar em 3650 dias, caso queira
diminuir este período para algum cliente, antes de gerar as chaves editamos no arquivo vars e
alteramos o parâmetro "export KEY_EXPIRE=3650" e no local de 3650 colocamos o valor que
acharmos necessário, após essa alteração precisamos executar "source vars" para que sejam carregadas
as variáveis editadas no arquivo vars.

Após editarmos o arquivo vars, precisamos carregar as variáveis editas, no


diretório /etc/openvpn/easy-rsa/ executamos na linha de comando:

# source vars

http://www.vivaolinux.com.br/artigos/impressora.php?codigo=12260 27/03/2011
Instalando e configurando openVPN no Debian Lenny [Artigo] Página 3 de 10

Passos para instalação do servidor - Parte 2

6° passo

Criamos o diretório keys dentro de /etc/openvpn/easy-rsa, onde será criada todos os certificados:

# mkdir /etc/openvpn/easy-rsa/keys

Caso este diretório já exista e você queira apagar todas as informações contidas nele, você pode
executar na linha de comando:

# /etc/openvpn/easy-rsa/./clean-all

ATENÇÃO: Este script clean-all só deve ser executado uma vez, a não ser que você queira limpar
todas as chaves e certificados criados do servidor e usuários da sua VPN para configurar tudo
novamente.

7° passo:

Vamos agora gerar o certificado raiz, no diretório /etc/openvpn/easy-rsa encontramos o script build-ca,
executamos:

# /etc/openvpn/easy-rsa/./build-ca

Ele pedirá as seguintes informações:

Generating a 1024 bit RSA private key


...................++++++
.....................++++++
writing new private key to 'ca.key'
-----
You are about to be asked to enter information that will be incorporated into your
certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [SEUPAIS]:
State or Province Name (full name) [SEUESTADO]:
Locality Name (eg, city) [SUACIDADE]:
Organization Name (eg, company) [SUAEMPRESA]:
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) []:
Email Address [emialadministrador@suaempresa.com.br]:

http://www.vivaolinux.com.br/artigos/impressora.php?codigo=12260 27/03/2011
Instalando e configurando openVPN no Debian Lenny [Artigo] Página 4 de 10

Podemos observar que ele sugere em alguns campos as variáveis que editamos no arquivo vars, caso
isso não aconteça e porque você esqueceu de executar o comando source vars ou não editou o arquivo
vars adicionando suas informações.

Podemos observar que no diretório /etc/openvpn/easy-rsa/keys encontramos os arquivos:

z ca.crt
z ca.key
z index.txt
z serial

8° passo:

Agora geramos o certificado do servidor, muita atenção agora, precisamos executar o script build-key-
server mais um nome qualquer como referência do servidor, este nome será informado quando o script
perguntar:

# /etc/openvpn/easy-rsa/./build-key-server nomeescolhido

Country Name (2 letter code) [SEUPAIS]:


State or Province Name (full name) [SEUESTADO]:
Locality Name (eg, city) [SUACIDADE]:
Organization Name (eg, company) [SUAEMPRESA]:
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) [nomeescolhido]:
nomeescolhido

Depois você terá a opção de digitar uma senha que será solicitada toda vez que o usuário conectar à
VPN, eu deixei em branco:

A challenge password []:

Finalizando o script será perguntado se você quer inscrever este certificado, você pressionará "y" para
as duas solicitações:

Sign the certificate? [y/n]:y


1 out of 1 certificate requests certified, commit? [y/n]y

9° passo:

Da mesma forma que geramos o certificado do servidor agora precisamos gerar o certificado para os
usuários da VPN, também precisamos definir um common name para os certificados dos usuários.
Para os certificados dos usuários usamos o script build-key:

http://www.vivaolinux.com.br/artigos/impressora.php?codigo=12260 27/03/2011
Instalando e configurando openVPN no Debian Lenny [Artigo] Página 5 de 10

# /etc/openvpn/easy-rsa/./build-key usuariodavpn

Country Name (2 letter code) [SEUPAIS]:


State or Province Name (full name) [SEUESTADO]:
Locality Name (eg, city) [SUACIDADE]:
Organization Name (eg, company) [SUAEMPRESA]:
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) []: usuariodavpn

Neste script também serão solicitados os campos:

A challenge password []:


Sign the certificate? [y/n]:y
1 out of 1 certificate requests certified, commit? [y/n]y

Eu deixei o campo de senha zerado.

Obs.: Toda vez que você precisar gerar um novo certificado é preciso executar o comando source vars
no diretório /etc/openvpn/easy-rsa mesmo não tendo alterado as opções do arquivo vars.

ATENÇÃO: Não execute o comando clean-all caso não queira criar todos os certificados novamente.

10° passo:

Para reforçar a segurança e permitir a troca de chaves entre o servidor e os clientes no momento da
conexão, executamos o script build-dh sem utilizar parâmetros com o script.

# /etc/openvpn/easy-rsa/./build-dh

11° passo:

Criamos uma assinatura secreta como chave para o servidor executando o comando:

# openvpn - -genkey - -secret chave.key

Com este comando geramos a chave chave.key no diretório corrente e não no


padrão /etc/openvpn/easy-rsa/keys.

Após criada a chave podemos copiá-la para o diretório /etc/openvpn/easy-rsa/keys para manter um
padrão de diretórios utilizados.

Por padrão, os scripts executados acima, geram as chaves e certificados necessários para o servidor e o
cliente no diretório /etc/openvpn/easy-rsa/keys.

Passos para instalação do servidor - Parte 3

http://www.vivaolinux.com.br/artigos/impressora.php?codigo=12260 27/03/2011
Instalando e configurando openVPN no Debian Lenny [Artigo] Página 6 de 10

12° passo:

Agora criamos o diretório keys dentro de /etc/openvpn/:

# mkdir /etc/openvpn/Keys

E copiamos para o diretório criado acima, os seguintes arquivos: dh1024.pem, ca.crt, servervpn.crt,
servervpn.key, chave.key.

# cp -a /etc/openvpn/easy-rsa/keys/dh1024.pem ca.crt servervpn.crt servervpn.key


chave.key /etc/openvpn/keys/

13° passo:

Criamos o arquivo de configuração do servidor no diretório /etc/openvpn/ com o nome padrão


server.conf (você pode utilizar o nome que quiser, assim facilita a administração) com os seguintes
parâmetros:

# vim /etc/openvpn/server.conf

##Protocolo de conexão
#proto tcp / proto udp
proto udp
# Porta do servico
port 1194
# Drive da interface
dev tun
# Atribui enderecos dinamicos a varios clientes, ips para o túnel VPN
server 10.0.0.0 255.255.255.0
# Acrescenta rotas aos clientes, informações da rede local
push "route 192.168.0.0 255.255.255.0"
push "dhcp-option DNS 192.168.0.1"
push "dhcp-option WINS 192.168.0.1"
# Configuracoes adicionais no cliente
push "ping 10"
push "ping-restart 60"
# Rotas do servidor
route 10.0.0.0 255.255.255.0
# Compactacao lib LZO
comp-lzo
keepalive 10 120
float
#ifconfig-pool-persist ipp.txt
max-clients 10
persist-key
persist-tun
log-append /var/log/openvpn.log
verb 6
# Servidor TLS
tls-server

http://www.vivaolinux.com.br/artigos/impressora.php?codigo=12260 27/03/2011
Instalando e configurando openVPN no Debian Lenny [Artigo] Página 7 de 10

# Chaves necessarias
dh /etc/openvpn/keys/dh1024.pem
ca /etc/openvpn/keys/ca.crt
cert /etc/openvpn/keys/servervpn.crt
key /etc/openvpn/keys/servervpn.key
# Chave secreta do servidor
tls-auth /etc/openvpn/keys/chave.key
status /var/log/openvpn.stats

Reiniciamos o serviço openvpn:

# /etc/init.d/openvpn restart

Dicas de firewall:

Iptables -t filter -A INPUT -p udp --dport 1194 -j ACCEPT


Iptables -t filter -A FORWARD -p udp -s 192.168.0.0/24 --dport 1194 -j ACCEPT
Iptables -t filter -A FORWARD -p udp -d 192.168.0.0/24 --sport 1194 -j ACCEPT
Iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -d 10.0.0.0/24 -j ACCEPT
Iptables -t nat -A POSTROUTING -d 192.168.0.0/24 -s 10.0.0.0/24 -j ACCEPT
Iptables -t nat -I POSTROUTING -s 10.0.0.0/24 -o eth1 -j MASQUERADE

Fique a vontade para restringir os acessos da maneira que convier. As regras apresentadas acima
permitirão aos usuários da VPN acesso livre aos sistemas de sua empresa.

Para observar se a porta utilizada no arquivo acima está ativa podemos digitar na linha de comando:

# netstat -nau | grep 1194

O resultado provavelmente será:

udp 0 0 0.0.0.0:1194 0.0.0.0:*

Se você trocou o protocolo de comunicação para tcp, altere o comando "netstat -nau ..." para "netstat -
nat ...".

Se você digitar na linha de comando ifconfig provavelmente terá informações do dispositivo virtual
configurado no arquivos acima.

# ifconfig

Terá algo do tipo:

tun0
Link encap:NAo Especificado
Endereço de HW 00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet end.: 10.0.0.1 P-a-P:10.0.0.2 Masc:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metrica:1
RX packets:19802 errors:0 dropped:0 overruns:0 frame:0

http://www.vivaolinux.com.br/artigos/impressora.php?codigo=12260 27/03/2011
Instalando e configurando openVPN no Debian Lenny [Artigo] Página 8 de 10

TX packets:19433 errors:0 dropped:0 overruns:0 carrier:0


colisões:0 txqueuelen:100
RX bytes:4724842 (4.5 MiB) TX bytes:7234934 (6.8 MiB)

Configurando um cliente Linux

Configurando o cliente Linux, utilizei o Ubuntu 10.04, instalamos os seguintes pacotes:

# aptitude install openvpn openssl

No diretório /etc/openvpn criamos o diretório keys e copiamos para este diretório criado as seguintes
chaves criadas no servidor: dh1024.pem, ca.crt, usuariodavpn.crt, usuariodavpn.key, chave.key.

Dica: Se sua empresa tiver IP fixo e você preferiu não configurar o serviço de domínio dinâmico, no
arquivo abaixo no campo "remote meudominio.dyndns.info" altere para "remote SEUIPVÁLIDO".

No diretório /etc/openvpn configuramos o arquivo client.conf com os seguintes parâmetros:

client
dev tun
proto udp
remote meudominio.dyndns.info
port 1194
persist-key
persist-tun
pull
comp-lzo
keepalive 10 120
float
tls-client
persist-tun
persist-key
dh /etc/openvpn/keys/dh1024.pem
ca /etc/openvpn/keys/ca.crt
cert /etc/openvpn/keys/usuariodavpn.crt
key /etc/openvpn/keys/usuariodavpn.key
tls-auth /etc/openvpn/keys/chave.key
route-method exe
route-delay 2

Para estabelecer a conexão digitamos na linha de comando:

# openvpn - -config /etc/openvpn/client.conf &

Se você digitar na linha de comando ifconfig provavelmente terá informações do dispositivo virtual
configurado no arquivos acima.

# ifconfig

http://www.vivaolinux.com.br/artigos/impressora.php?codigo=12260 27/03/2011
Instalando e configurando openVPN no Debian Lenny [Artigo] Página 9 de 10

Terá algo do tipo:

tun0
Link encap:Não Especificado
Endereço de HW 00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet end.: SEUIP P-a-P:IPSERVIDOR Masc:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Métrica:1
RX packets:19802 errors:0 dropped:0 overruns:0 frame:0
TX packets:19433 errors:0 dropped:0 overruns:0 carrier:0
colisões:0 txqueuelen:100
RX bytes:4724842 (4.5 MiB) TX bytes:7234934 (6.8 MiB)

Configurando um cliente Windows

Como cliente Windows utilizei o Windows XP, mas já configurei o cliente no Windows 7 e funciona
perfeitamente.

Realizar o download do cliente Windows no link:

z http://www.openvpn.net/release/openvpn-2.1.3-install.exe

Instalamos mantendo as opções padrões do sistema, famoso next, next, continuar assim mesmo, next e
finish.

Dica: Se sua empresa tiver IP fixo e você preferiu não configurar o serviço de domínio dinâmico, no
arquivo que será criado abaixo, no campo "remote meudominio.dyndns.info" altere para "remote
SEUIPVÁLIDO".

No diretório c:/Arquivos de programas/openVPN criamos o diretório config.

Neste diretório criamos um novo diretório keys e copiamos para este diretório criado (keys) as
seguintes chaves criadas no servidor: dh1024.pem, ca.crt, usuariodavpn.crt, usuariodavpn.key,
chave.key.

No diretório c:/Arquivos de programas/openVPN/config criamos um arquivo chamado cliente.ovpn (a


extensão *.ovpn é obrigatória para o cliente Windows), neste arquivo configuramos os parâmetros:

client
dev tun
proto udp
remote meudominio.dyndns.info
port 1194
pull
comp-lzo
keepalive 10 120
float
tls-client

http://www.vivaolinux.com.br/artigos/impressora.php?codigo=12260 27/03/2011
Instalando e configurando openVPN no Debian Lenny [Artigo] Página 10 de 10

persist-tun
persist-key
dh keys/dh1024.pem
ca keys/ca.crt
cert keys/usuariodavpn.crt
key keys/usuariodavpn.key
tls-auth keys/chave.key
route-method exe
route-delay 2

Salvamos e fechamos o arquivo criado.

Clicamos em Iniciar > Programas > OpenVPN > e clicamos em OpenVPN GUI, este abrirá próximo
ao seu relógio, clique com o botão direito do mouse e em conectar.

Acredito que sua rede privada virtual já esteja funcionando, como dica não utilize a faixa de IP de sua
empresa para sua VPN em alguns casos pode dificultar na criação das rotas e para o cliente Windows
XP ou Windows 7 o usuário da VPN precisa ser administrador local para criar as rotas de acesso.

Referências:

z http://openvpn.net/index.php/access-server/howto-openvpn-as.html
z http://www.guiadohardware.net/tutoriais/openvpn/
z http://www.dicas-l.com.br/arquivo/implementando_solucoes_com_o_openvpn.php

http://www.vivaolinux.com.br/artigo/Instalando-e-configurando-openVPN-no-Debian-Lenny

Voltar para o site

http://www.vivaolinux.com.br/artigos/impressora.php?codigo=12260 27/03/2011