Вы находитесь на странице: 1из 10

Montando uma VPN com o OpenVPN

Historicamente as empresas faziam sua ligao entre matriz e filial atravs de


linhas de frame-relay. Esta conexo feita por um link dedicado que oferece
64 Kbits entre os pontos, sendo que esta ligao tem um custo mensal, e
dependendo da quantidade de links utilizado, este valor ser alterado. H
outros meios de fazer estas ligaes que so oferecidos por operadoras, mas
em muitos casos o custo X benefcio fica fora do oramento de empresas de
pequeno porte. Para resolver esta questo de custo e de velocidade de link,
surgiu a Virtual Private Network.
VPN (Virtual Private Network) uma rede privada virtual, na qual as
informaes de uma rede local so passadas por um tnel, em uma rede
publica qualquer. Entretanto, os dados estaro protegidos neste tunelamento,
que est usando recursos de criptografia de dados, que no caso do OpenVPN,
so extrados da biblioteca do OpenSSL, a qual utiliza protocolos
criptogrficos como: SSL e TLS, protocolos das camadas 2 e 3 do modelo
OSI. Os dados trafegados neste tnel virtual sero gerenciados por alguns
protocolos, que podem ser: o IPSec (Internet Protocol Security), L2TP (Layer
2 Tunneling Protocol), PPTP (Point-to-Point Tunneling Protocol) e o L2F
(Layer 2 Forwarding), um desses protocolos ir trabalhar no gerenciamento e
na segurana da rede.

Figura 1: Esquema de comunicao entre redes


A ligao de duas redes distintas utilizando VPN oferece alguns benefcios. Essa
conexo pode ser via ADSL ou cabo. Dependendo do fluxo de dados da rede, h uma
necessidade de ter outra conexo para a VPN, estes fatos devem ser analisados antes de
implementar a VPN no local.

No nosso artigo utilizaremos o software livre OpenVPN para fazer os testes da VPN. O
OpenVPN foi desenvolvido por James Yonan e publicado pela GNU (General Public
Licence). um software destinado a VPN, o qual tem muitos recursos para
administrao da VPN. O OpenVPN est disponvel para vrios sistemas operacionais,
entre eles: Mac OS X, Windows Server/XP/7, Linux, Solaris e entre outros. O
OpenVPN no compatvel com o protocolo IPsec, para a autenticao entre os pontos
existe varias formas. O OpenVPN trabalha com chaves secretas compartilhadas,
autenticao de usurios com senha e autenticao com certificados. Existe uma
vantagem na utilizao desse software que a forma de transmisso dos pacotes, que
pode utilizar o protocolo UDP ou TCP, sendo que o UDP o mais adequado, porque
este protocolo transmite os pacotes diretamente, sem repetio, o que melhor para o
desempenho da rede.
Para maior segurana ser instalado junto ao OpenVPN, o OpenSSL que um software
que trabalha com os protocolos SSL e TLS, e tm a funo de criptografar. Estes
protocolos promovem a integridade e privacidade dos dados entre a comunicao das
redes, permitindo assim autenticao das duas partes envolvidas.

Instalao e configurao
Para montar a VPN utilizaremos o OpenVPN. Neste exemplo prtico, ser utilizada uma
mquina para a empresa matriz com o sistema operacional Linux Debian Squezze,
outra para o cliente que ter o sistema operacional Windows 7, e uma conexo de
internet. Aps tais procedimentos comearemos a configurao da VPN.

Instalao da Matriz
Com o Linux Instalado, vamos proceder a instalao dos pacotes necessrios para
montar nossa VPN.
Listagem 1: Fazendo a instalao do OpenVPN e do OpenSSL
# apt-get install openvpn openssl
Aps a instalao, criaremos um diretrio que receber os arquivos de configurao que
esto em uma diretrio padro:
Listagem 2: Criando um diretrio para os arquivos de configurao
# mkdir /etc/openvpn/easy-rsa
Depois de instalado, necessrio efetuar cpia dos arquivos do diretrio padro para o
diretrio que foi criado anteriormente, da seguinte forma:

Listagem 3: Copiando arquivos


# cp -rp /usr/share/doc/openvpn/examples/easy-rsa/2.0/.
/etc/openvpn/easy-rsa/
Aps copiar os arquivos, devemos acessar a diretrio /etc/openvpn/easy-rsa/ e editar o
documento vars, sero feito algumas modificaes no final do arquivo. Neste
exemplo utilizaremos o editor de texto vim, mas possvel utilizar qualquer editor de
sua preferncia, entre eles o nano, emacs entre outros. Dando prosseguimento com a
configurao, faa as alteraes como no exemplo abaixo:
Listagem 4: Contedo alterado do arquivo vars
# vim /etc/openvpn/easy-rsa/vars
export KEY_COUNTRY=BR
export KEY_PROVINCE=SE
export KEY_CITY=Aracaju
export KEY_ORG=Organizao
export KEY_EMAIL=seumail@dominio.com
Temos: KEY_COUNTRY = Pas, Key_PROVINCE=Estado, KEY_CITY=cidade,
CEY_ORG=nome da empresa e KEY_EMAIL=email do administrador.
Aps esta etapa, salve o arquivo, agora vamos acessar o diretrio easy-rsa para dar
andamento em nossa configurao.
Listagem 5: Acessando o diretrio easy-rsa
# cd /etc/openvpn/easy-rsa
Depois de acessar o diretrio, devemos executar o comando source vars para ativar as
mudanas que foram feitas anteriormente e, em seguida, o comando ./clean-all para
ativar e criar o diretrio /etc/openvpn/easy-rsa/keys, onde sero guardadas as chaves e
os certificados para nosso servidor de VPN:
Listagem 6: Ativando modificaes
/etc/openvpn/easy-rsa# source vars
/etc/openvpn/easy-rsa# ./clean-all
Depois de executar os comandos, vamos criar o conjunto de certificados e chaves
necessrios ao funcionamento da nossa VPN. Primeiramente vamos criar o certificado
raiz que ficar neste servidor, para isto devemos executar o script build-ca, que est
no diretrio /easy-rsa. Ao executar este script observe que haver algumas perguntas
correspondentes ao arquivo configurado anteriormente vars.
Listagem 7: Criando o certificado

# ./build-ca
Aps a execuo do build-ca, vamos criar agora a chave do servidor utilizando o
comando build-key-server seguido do nome do servidor:
Listagem 8: Criando a chave
# ./build-key-server nome do servidor
As perguntas sero as mesmas, mas pedir uma senha, que por motivos de segurana
deve ser informada. Agora, vamos criar as chaves de acesso para os usurios:
Listagem 9: Criando chaves de acesso para usurios
# ./build-key nome do usurio da vpn
Responda s opes e aceite a configurao no final com um y. Aps esta
configurao, executar o ltimo script que pode demorar um pouco a terminar no
processo:
Listagem 10: ltimo comando
# ./build-dh
Aps criar as chaves, entraremos no diretrio keys, no qual criaremos a chave:
Listagem 11: Acessando diretrio das chaves
# cd /etc/openvpn/easy-rsa/Keys
Dentro do diretrio, primeiramente vamos verificar o contedo com o comando ls e
vamos verificar se tem os certificados gerados anteriormente. Se no tiver estes
certificados, verificar o passo a passo novamente. Depois de analisar se tudo est
correto at aqui, passaremos para a criao da chave.
Listagem 12: Criao da chave
# openvpn --genkey --secret chave.key
Agora vamos criar o diretrio keys dentro do diretrio openvpn, para copiar os
certificados para este diretrio, pois no arquivo de configurao estar o caminho dos
certificados.
Listagem 13: Criando o diretrio keys
# mkdir /etc/openvpn/Keys

Este diretrio deve conter cinco chaves de acesso, so elas: chave.key, dh1024.pem,
ca.crt, servervpn.crt e servervpn.key. Para isso s copiar estas chaves que esto no
diretrio /etc/openvpn/easy-rsa/keys para o diretrio que foi criado antes.
Listagem 14: Copiando as chaves para o diretrio Keys
# cp -a /etc/openvpn/easy-rsa/keys/chave.key dh1024.pem
ca.crt servervpn.crt server.key /etc/openvpn/Keys/
Depois de criar todos os certificados e a chave, vamos digitar o arquivo principal para
detalhar a configurao da VPN, este arquivo deve ficar dentro do diretrio
/etc/openvpn, com o nome desejado pelo usurio. Neste exemplo vamos utilizar como
server.conf, as configuraes seguem abaixo:
Observao: o que tiver # so comentrios, ou seja, explicaes sobre os parmetros
descritos, portanto no h a necessidade de escrev-los no arquivo de configurao.
Listagem 15: Arquivo de configurao da VPN
# vim /etc/openvpn/server.conf
# Arquivo de configurao do OpenVPN.
proto udp # protocolo usando na conexo, pode ser udp ou
tcp.
port 1194 # porta do servio, pode ser outra porta que
estiver aberta para este tipo de comunicao.
dev tun # driver da interface de rede virtual, so
utilizadas duas interfaces virtuais a tun e a tap, a
interface virtual tap mais utilizada para o cliente
Windows.
server 10.0.0.0 255.255.255.0 # rede de ip que ser
distribuindo para os clientes vpns.
push "route 192.168.0.0 255.255.255.0" # faz com que haja
roteamento do ip local para o IP do tnel.
push "dhcp-option DNS 192.168.0.1" # IP da sua rede
#push "dhcp-option WINS 192.168.0.1" # IP da sua rede, para
redes que contenham servidores Windows.
route 10.0.0.0 255.255.255.0 # roteamento do cliente
comp-lzo # necessrio um software que faa a compactao
dos dados que so passados na rede.
keepalive 10 120 # o nmero 10 o intervalo de ping, 120
o tempo em que a vpn reiniciada, faz o monitoramento da
conexo entre servidor e cliente.
float # serve para IP dinmico, para que o tnel continue
aberto mesmo que o IP mude.

ifconfig-pool-persist /etc/openvpn/ipp.txt # onde fica


armazenado a lista de IPs, e a mesma maquina sempre vai
ter o mesmo IP.
max-clients 10 # mximo de clientes acessando no mesmo
momento.
persist-key # mantm as chaves disponveis, mesmo que o
servio da VPN seja reiniciado.
persist-tun # mantm a interface TUN aberta, mesmo quando a
VPN reiniciada.
log-append /var/log/openvpn.log # local onde est
armazenado o log da VPN.
verb 6 # permite gerar logs da operao, ajuda o
administrador a visualizar eventuais erros ou problemas da
VPN, ento possui nveis de informao, que vo do 0 ao 11.
tls-server # protocolo TLS para criptografia.
dh /etc/openvpn/keys/dh1024.pem # caminho da chave que foi
criada anteriormente.
ca /etc/openvpn/keys/ca.crt # caminho da chave que foi
criada anteriormente.
cert /etc/openvpn/keys/servervpn.crt # caminho da chave que
foi criada anteriormente.
key /etc/openvpn/keys/servervpn.key # caminho da chave que
foi criada anteriormente.
tls-auth /etc/openvpn/keys/chave.key # caminho da chave que
foi criada anteriormente.
status /var/log/openvpn.stats # caminho onde o log de
status da VPN se encontra.
Aps digitar estas linhas, salvar e sair deste arquivo, reiniciar o servio da OpenVPN:
Listagem 16: Reiniciando o servio do OpenVPN
# /etc/init.d/openvpn restart
Depois que reiniciar, observe se inicia perfeitamente. Se ocorrer erro, deve verificar os
passos anteriores, feito isso, utilize o comando ifconfig para verificar se est ativa a
interface virtual tun0.
Para que as informaes passem pelo tunelamento de forma compactada, para facilitar a
entrega dos pacotes e ser gil o fluxo de dados pelo tnel virtual, deve-se instalar o
pacote lzop.
Listagem 17: Instalando o Izop
# apt-get install lzop

Aps estes passos, para que a segurana seja melhor e mais eficaz, devemos executar
alguns comandos no firewall. Temos uma explicao abaixo do que firewall e de como
vamos utilizar este recurso de segurana na nossa conexo da VPN.

Regras de Firewall pelo Iptables


O firewall um tipo de dispositivo de gerenciamento de segurana, com o objetivo de
filtrar os pacotes que trafegam na rede. Utilizaremos a tabela do iptables, que um filtro
de pacotes que tem uma arquitetura netfilter, que define regras de manipulao de
pacotes que passam pela rede.
H uma necessidade de ativar as regras de firewall para rotear os pacotes dos clientes da
VPN para a rede local, na qual haver uma comunicao e tambm para auxiliar na
segurana. Ento utilizaremos as regras a seguir:
Listagem 18: Roteamento de pacotes
# echo 1 > /proc/sys/net/ipv4/ip_forward
O comando anterior faz roteamento de pacotes no Kernel.
# iptables -t nat -A POSTROUTING -d 192.168.0.0/24 -s 10.0.0.0/24 -j ACCEPT
Neste comando o roteamento orientado a encaminhar os pacotes enviados da interface
local para o IP do cliente.
# iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -o eth0 -j MASQUERADE
No comando anterior o roteamento orientado a encaminhar os pacotes recebidos do IP
do cliente para a interface local.
Lembrando que quando o sistema operacional for reiniciado, perder todas as
configuraes feitas no firewall. Para que isso no ocorra, adicione estes comandos em
um dos scripts de inicializao do sistema /etc/rc.local, toda vez que o sistema iniciar,
os comandos sero ativados junto a inicializao.

Configurao do Microsoft Windows 7


Quando todas as configuraes do OpenVPN estiverem prontas, com os passos corretos,
podemos prosseguir para a configurao do cliente, que ser no sistema operacional
Windows 7. Ento copiaremos os certificados que j foram criados na mquina do
servidor, para que a comunicao entre eles seja possvel, ento seguiremos estas
etapas:

Baixar o software da OpenVPN e instal-lo no computador, depois de instalado,


os diretrios e os arquivos j estaro em um diretrio padro em Program Files
dentro de C:;

Criando o diretrio keys para colocar os certificados:

Em C:\Program Files\OpenVPN\config, criaremos o diretrio "keys";

Copiar os arquivos que esto no servidor no diretrio /etc/openvpn/easyrsa/Keys, so eles: dh1024.pem, ca.crt, usuariovpn.crt, usuariovpn.key e
chave.key. Aps isso, colar estes arquivos no diretrio que criamos
anteriormente C:\Program Files\OpenVPN\config\keys;

Dentro de C:\Program Files\OpenVPN\config, devemos criar o arquivo no bloco


de notas, chamado cliente;

Observao: o que tiver # so comentrios, ou seja, explicaes sobre os parmetros


descritos, portanto no h a necessidade de escrev-los no arquivo de configurao.
Este arquivo deve conter as seguintes linhas:
Listagem 19: Arquivo de configurao cliente
dev tun # driver utilizado para a comunicao da interface
virtual do cliente.
proto udp # protocolo utilizado para o trafego de pacotes,
no qual pode ser udp ou tcp.
remote 200.200.200.2000 # IP fixo da sua rede, sendo
compatvel com a da configurao da matriz.
port 1194 # porta por onde haver a comunicao dos dados.
pull # Significa puxar as configuraes do servidor, ou
seja, obter os dados para conciliar na conexo.
comp-lzo # software que ser utilizado para criptografar os
dados, deve ser igual a configurao do servidor.
keepalive 10 120 # 10 Intervalo de pings de comunicao da
rede, 120 tempo de resposta da VPN, caso ela seja
reiniciada, assim no perder a comunicao.
float # Para IPs dinmico, caso o IP seja mudado o tnel
ficar aberto.
tls-client # protocolo TLS que criptografar os dados do
cliente at o servidor, para isso foi instalado o software
livre OpenSSL que contm este protocolo de criptografia.
persist-tun # Fora a interface TUN para que fique aberta,
mesmo quando o VPN reiniciado.

persist-key # Faz com que as chaves fiquem disponveis,


mesmo quando o VPN reiniciado, facilita na reconexo do
VPN.
remote-cert-tls server # Certificado de acesso remoto do
cliente ao servidor, utilizando o protocolo TLS, para
permitir o acesso do cliente com segurana.
dh keys/dh1024.pem # Chave de segurana que deve est na
diretrio keys na maquina do cliente.
ca keys/ca.crt # Chave de segurana que deve est na
diretrio keys na maquina do cliente.
cert keys/seuusuario.crt # Chave de segurana que deve est
na diretrio keys na maquina do cliente.
key keys/seuusuario.key # Chave de segurana que deve est
na diretrio keys na maquina do cliente.
tls-auth keys/chave.key # Chave de segurana que deve est
na diretrio keys na maquina do cliente.
route-method exe
route-delay 2
Aps escrever a configurao, salvar o arquivo na extenso .ovpn. Depois de salvar
nessa extenso, o arquivo ficar com o logotipo da OpenVPN. Se o arquivo no for
salvo com este tipo de extenso, no funcionar.
Depois de instalado o programa, ficar um cone na rea de trabalho, execute o
OpenVPN.GUI. Observe que aparecer um cone de computadores de tela de cor
vermelha na barra de ferramentas. Clicando com o boto direito, confirme Conectar,
ir abrir uma pgina de conexo. Se o arquivo de configurao estiver certo, o cone
ficar verde ou continuar vermelho, ento deve verificar a configurao.
Aps todas estas configuraes e explicaes sobre a definio de uma VPN e de como
configur-la, a sua VPN estar totalmente configurada e funcionando. E com a
configurao correta e os certificados protegidos, a VPN pode ser usada com segurana
e suas informaes entre as redes distantes sero passadas com proteo do tunelamento
da VPN, tambm com o custo melhor, velocidade boa, entre outros fatores, existem
inmeras vantagens na utilizao da VPN.

Lanay Marques
Primeiro lugar na Olmpiada do Conhecimento 2012 na fase Estadual, na modalidade
de Instalao e Manuteno de Redes, alm de ser Graduanda no curso de Sistemas
de Informao.

Вам также может понравиться