Anda di halaman 1dari 12

OpenVPN

Virtual Private Network ­ VPN

Este   capítulo   estuda   as   implementações   de   Redes   privadas   Virtuais   ­VPN   ­,   um   dos   serviços  
fundamentais para garantir segurança entre duas ou mais redes privadas  interligada pela Internet.

1. Introdução

VPN  –  Virtual  Private  Network    ­   A  Rede  Privada  Virtual foi  criada  para  interligar  duas  redes 
privadas através da Internet de forma segura. Sabemos que as máquinas com endereço IP nâo válido 
podem   acessar   a   Internet   através   de   um   Proxy   ou   IP   masquerade,   entretanto   existem   uma 
impossibilidade técnica para que máquina de uma rede privada comuniquem com máquinas de outra 
rede privada através da Internet. A VPN permite esta funcionalidade através de um tunel estabelecido 
entre duas máquinas destas redes que possuam IP válidos.

Além de estabelecer comunicação entre duas redes privadas, as VPNs garantem autenticidade de 
dados, sigilo de informação, controle de acesso através de criptografia do tráfego de informação entre 
uma rede e outra. Esta garantia é obtida através de criptografia, ou seja, todo dado que trafegar de uma 
rede  para  outra  será  criptografado   independente   de  qual   aplicação  for   utilizada.   Então  podemos 
concluir que se uma pessoa executar telnet ou qualquer outra aplicação que não criptografe seu dados 
de uma rede para outra estarão seguros na Internet.   

2. Pré­requisitos para implementação

Para implementação da VPN é necessário que as duas pontas da rede tenham IP válido, ou seja, para 
interligar duas redes será necessário dois endereços válidos, para interligar três redes será necessário 
três IP válidos e assim por diante.

3. Ferramentas disponíves para implementação

Existem   várias   ferramentas   diponíveis   para  Linux  atualmente,  entre  elas  temos  o  freeswan  e   o 
openvpn. Estas serão as ferramentas usadas neste material.

O  freeswan  é   a   implementação   do   protocolo  IPSec,  protocolo   suportado   por  vários   sistemas 


operacionais incluindo Linux e Windows.

Openvpn    ­   É   um   serviço   que   roda   sobre   a   camada  de   aplicação,   podendo  ser   utilizados  em 

Seja um Profissional Aprendendo com Profissionais


www.3way.com.br
OpenVPN

plataformas: Linux, FreeBSD, OpenBSD, NetBSD, Windows 2000/XP, Solaris e Mac OS X.

Um outro protocolo bastante utilizado em ambiente Windows é o PPTP –  Point to Point Tunneling 
Protocol . 

4. Arquitetura de VPNs

As VPNs podem ser estruturadas de três formas : 

1.   Host­>Host;   O  objetivo   desta  arquitetura  é  estabelecer  apenas um  canal  seguro  entre  as  duas 
máquinas, pois as mesmas já devem se comunicarem.

Fig1. Diagrama  de exemplo de arquitetura  VPN utilizando a configuração  Host­>Host.

2. Host­>Network; O objetivo deste é permitir um host externo comunicar com a rede privada. Está 
estrutura geralmente é utilizada quando deseja­se de sua casa comunicar com sua empresa.

Fig2. Diagrama de exemplo de arquitetura VPN utilizando a configuração Host­>Network

3. Network­>Network; Esta arquitetura permite que duas redes se comuniquem. Exemplo: você tem 
uma matriz em Goiânia­GO  e uma filial em Brasilia­DF e quer comuicar as duas redes privadas por 
meio da VPN.

Seja um Profissional Aprendendo com Profissionais


www.3way.com.br
OpenVPN

Fig3.  Diagrama de exemplo de arquitetura VPN utilizando a configuração Network­>Network

5. Segurança e VPN

É importante  saber a partir de que ponto em cada arquitetura os dados realmente estão seguros. 
Sabemos que para cada arquitetura de VPN estão envolvidas duas máquinas onde é estabelecido o 
canal  seguro.  Todos os dados que saem desta máquina é vai até a outra ponta desta máquina é 
criptografado. Vamos agora analizar a terceira arquitetura de VPN – Network­>Network: Observe que 
há três estágio no tráfego da informação:

1. Primeiro os dados saem de um cliente na rede privada 1 e vai até o roteador ­ Primeira ponta da 
VPN.

2. Os dados são criptografados e roteados no roteador VPN e caminham até a outra ponta da VPN

3. Na segunda ponta da VPN, os dados são decriptografados e reencaminhados para o cliente de 
destino na rede privada 2.

Vejamos como isto acontece:

Seja um Profissional Aprendendo com Profissionais


www.3way.com.br
OpenVPN

Fig4. Ilustração do processo de envio de informação através de uma VPN

Podemos observar que a informaçao somente é seguraça entre os dois pontos da VPN. Assim se uma 
intruso dentro da rede rodar um sniffer irá conseguir obter os dados em texto limpo – cleartext ­ caso 
a aplicação usada não seja segura.

Portanto, VPN garante a segurança da informação entre as duas pontas, ou seja, garante que toda 
infomação quando trafegar na Internet e tiver destino a outra rede privada seja criptografado. Também 
deve­se ressaltar que toda informação que passe pelo roteador VPN e não tenha destino à outra rede 
privada não será criptografada, o tratamento do pacote será normal.

6. Implementação OpenVPN

O OpenVPN – é um serviço que trabalha na camada de aplicação por meio de uma porta. 

6.1 Características do OpenVPN

O OpenVPN também permite interligar os três tipos de arquitetura, utilizando para isto uma interface 
serial virtual, denominada tun0 primeira interface, tun1 segunda interface.As conexões VPN são 
estabelecidas ponto­a­ponto de forma que seja necessário um sistema de rota para que as duas redes 
possam comunicar. 

Todos os dados trafegados são criptografados utilizando o algoritmo Blowfish.

6.2 Instalando o OpenVPN

O  software  do  openVPN  pode  ser  obtido  em:  http://www.openvpn.net    O  código  fonte  pode  ser 
baixado  no  diretório  /usr/local/src,  onde deve ser  descompactado  conforme  o comando 
abaixo:

#tar xvfz openvpn­2.0.9.tar.gz ­C /usr/local/src/

Este comando irá gerar o diretório  openvpn.  No momento em que escrevemos este material a 


última versão era a versão 2.0.9. Para compilar o OpenVPN, entre no diretório gerado e execute:

#cd /usr/local/src/openvpn­2.0.9
#./configure ­­disable­lzo

Seja um Profissional Aprendendo com Profissionais


www.3way.com.br
OpenVPN

#make 
#make install
                     

Caracterização das máquinas:

Máquina torre:
Endereço IP:
eth0: 200.1.2.3     máscara : 255.255.255.0
eth1: 10.1.0.1       máscara: 255.255.0.0
                                          tun0: 192.168.0.1   máscara: 255.255.255.255
Máquina dama: 
Endereço IP:         
eth0: 200.163.1.79  máscara : 255.255.255.0
eth1: 10.2.0.1          máscara: 255.255.0.0
 tun0: 192.168.0.2      máscara: 255.255.255.255

6.3 Configurando o OpenVPN

6.3.1 Configuração do servidor OpenVPN

Máquina torre

A configuracão do servidor OpenVPN dever ser feita da seguinte forma:

Criar diretório de trabalho:

#mkdir /etc/openvpn

Seja um Profissional Aprendendo com Profissionais


www.3way.com.br
OpenVPN

Após a criação do diretório /etc/openvpn devemos copiar os arquivos de configuração que estão na 
pasta de instalação.

#cp sample­config­files/static­office.conf /etc/openvpn/torre­dama.conf
#cp sample­config­files/office.up /etc/openvpn/torre.up

A seguir edite o arquivo /etc/openvpn/torre­dama.conf e altere as seguintes opções:
ifconfig 192.168.0.1 192.168.0.2
cd /etc/openvpn
up ./torre­dama.up
secret static.key
port 5000
proto tcp­server

Todas as  alterações acima são baseadas no computador  torre  que foi definido como servidor 


OpenVPN. Vejamos o significado de cada opção:

ifconfig 192.168.0.1 192.168.0.2
Esta   opção   determina   qual   o   endereço  IP   utilizado   no   servidor  192.168.0.1  e   no   cliente 
192.168.0.2 para a interface tun0.

cd /etc/openvpn
Esta   opção  determina  em  qual  diretório  estará  contido  os   arquivos  de  configuração  e   as  chaves 
utilizadas para a conexão VPN.

up ./torre­dama.up
Está opção determina qual o arquivo será executado quando o daemon do openvpn for ativo. Neste 
arquivo deve­se conter as rotas utilizadas para conexão entre redes.

secret static.key
Esta opção determina qual o nome do arquivo chave utilizado para realizar a checagem dos hosts que 
iram estabelecer o túnel VPN.

port 5000
Esta opção determina qual a porta utilizada para estabelecer a conexão VPN. Para cada novo cliente 
que for realizar a conexão com este servidor devermos adicionar uma nova porta, afim de evitar 
conflitos.

proto tcp­server
Está opção determina a característica cliente­servidor deste computador, quando utilizado o parâmetro 
server, está máquina deverá ser obrigatoriamente o servidor VPN, enquanto o outro ponto VPN 
deverá ser cliente, ou seja utilizar o paramêtro proto tcp­client.

Após a edição do arquivo de configuração, devemos editar o arquivo de rotas, afim de definir e 

Seja um Profissional Aprendendo com Profissionais


www.3way.com.br
OpenVPN

carregar as rotas ao iniciar o daemon do openvpn.

#vi /etc/openvpn/torre­dama.up
#!/bin/sh
route add ­net 10.2.0.0/16 gw 192.168.0.2

6.3.2 Geração de chaves de criptografia no OpenVPN

Para gerar chaves de criptografia utiliza­se o comando openvpn.  O OpenVPN possui dois tipos de 
chaves de criptografia que pode ser utilizado para garantir a segurança entre as duas pontas da VPN, 
que são chaves estáticas e chaves dinâmicas. 

Para os dois tipos de formato de arquivo, a idéia é a seguinte: as chaves são geradas no servidor e deve 
ser repassada para o cliente. Novamente, chamamos a atenção do leitor para  a forma com que será 
feita a transmissão desta chave, pois está chave é a garantia de sua segurança.

Para gerar chaves do tipo estática devemos executar o seguinte comando:

#openvpn ­­genkey ­­secret static.key

O formato da chave gerado pode ser verificado no arquivo gerado.
#cat static.key
­­­­­BEGIN OpenVPN Static key V1­­­­­
e5e4d6af39289d53
171ecc237a8f996a
97743d146661405e
c724d5913c550a0c
30a48e52dfbeceb6
e2e7bd4a8357df78
4609fe35bbe99c32
bdf974952ade8fb9
71c204aaf4f256ba
eeda7aed4822ff98
fd66da2efa9bf8c5
e70996353e0f96a9
c94c9f9afb17637b
283da25cc99b37bf
6f7e15b38aedc3e8
e6adb40fca5c5463
­­­­­END OpenVPN Static key V1­­­­­

Após a geração da chave devemos mover este arquivo para a pasta /etc/openvpn/ , e em seguida  passar 
este arquivo para o outro roteador.  

Seja um Profissional Aprendendo com Profissionais


www.3way.com.br
OpenVPN

#cp static.key /etc/openvpn

6.3.3 Configuração do cliente OpenVPN 

Máquina dama

A configuração do cliente OpenVPN é muito similar ao servidor OpenVPN. 

Criar diretório de trabalho:

#mkdir /etc/openvpn

Após a criação do diretório /etc/openvpn devemos copiar os arquivos de configuração que estão na 
pasta de instalação.

#cp sample­config­files/static­home.conf /etc/openvpn/dama­torre.conf
#cp sample­config­files/home.up /etc/openvpn/dama.up

A seguir edite o arquivo /etc/openvpn/dama­torre.conf e altere as seguintes opções:
ifconfig 191.168.0.2 192.168.0.1
cd /etc/openvpn
up ./dama­torre.up
secret static.key
port 5000
proto tcp­client

Após a edição do arquivo de configuração, devemos editar o arquivo de rotas, afim de definir e 
carregar as rotas ao iniciar o daemon do openvpn.

#vi /etc/openvpn/dama­torre.up
#!/bin/sh
route add ­net 10.1.0.0/16 gw 192.168.0.1

Copiando o arquivo static.key do servidor ( torre ) para o nosso cliente ( dama )

#scp 200.1.2.3:/etc/openvpn/static.key /etc/openvpn

6.4 Inicialização do serviço OpenVPN
A inicialização do serviço pode ser feita manualmente ao através de um script de inicialização, para 

Seja um Profissional Aprendendo com Profissionais


www.3way.com.br
OpenVPN

iniciá­lo manualmente. 
Na máquina TORRE execute:

#openvpn ­­ config /etc/openvpn/torre­dama.conf ­­ daemon 

Na máquina DAMA execute:

#openvpn ­­ config /etc/openvpn/dama­torre.conf ­­ daemon 

Observe que, ao inicializar o serviço, é possível verificar a nova interface serial do OpenVPN através 
do comando ifconfig.
#ifconfig tun0
tun0      Encapsulamento do Link: SLIP VJ
          inet end.: 192.168.0.1  P­a­P:192.168.0.2  Masc:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Métrica:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
             compactados:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          colisões:0 compactados:0
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

6.5 Testes pós­implementação

Depois que todos os passos acima foram seguidos, é hora de verificar o funcionamento da VPN, o 
primeiro teste é verificar o principal arquivo de log do syslog, o arquivo /var/log/message. 

#ping 192.168.0.2

Onde 192.168.0.2 é o IP da interface serial VPN do outro roteador. 

Outro teste interessante é executar um sniffer em qualquer dos roteadores VPN, o sniffer apresentará 
conexões na porta 5000. Para verificar se realmente os dados estão sendo criptografados execute um 
ftp na interface serial do outro roteador e verifique os dados em trânsito. Isto pode ser bem observado 
utilizando o sniffit.

Nota:Como este teste está sendo realizado de um roteador para o outro roteador, você deve utilizar,  
no ftp ou qualquer outra aplicação, a interface VPN do outro roteador, caso  você utilize o IP da 
interface ethernet ou qualquer outra interface, os dados não irão fluir via VPN, e consequentemente  
não haverá criptografia.

Nota: A configuração das máquina da rede interna é baseada em apenas uma rota padrão para  o  
roteador VPN.

Seja um Profissional Aprendendo com Profissionais


www.3way.com.br
OpenVPN

Links Indicados

http://www.freeswan.org   –  Site   oficial   do  freeswan.   Este   endereço   disponibiliza   download, 


documentação e FAQ. 

Http://www.vpnc.org  ­   Virtual  Private   Network   Consortium   é   uma  associação  internacional  para 


fabricante no mercado de VPN. Este site disponibiliza documentação, exemplo e listas de email sobre 
várias tecnologia voltada para VPN.

http://www.ietf.org/html.charters/ipsec­charter.html–   Neste   endereço  são   encontradas  as   principais 


RFC – Request For Comments.

http://www.wlan.uib.no/vpn­linux.html  –   Este   site   fornece   software   e   documentação   para 


implementação do PPTP no Linux.

http://www.linuxdoc.org – Possue vários HOWTOs e FAQs sobre VPN. Fornece alguns exemplo de 
configuração de VPN com firewall.

http://openvpn.net  ­ Site oficial do OpenVPN. Possue download, FAQ e documentação incluindo 
exemplos sobre o OpenVPN.  

Seja um Profissional Aprendendo com Profissionais


www.3way.com.br
OpenVPN

Terminologia utilizada

IP masquerade – Tem a função de compartilhar a Internet, disponibilizando recurso da Internet para 
rede interna.

Proxy – Traduzido como intermediário ou procurador. Tem a função de compartilhar a Internet assim 
como o IP masquerade, entretanto utiliza de conexões TCP para tal objetivo.

IP válido – Endereço IP utilizado na Internet, ou seja, IP que conecta uma máquina diretamente na 
Internet sem a necessidade de serviços como IP masquerade ou Proxy. Também é chamado de IP 
público

IP não válido – Endereço IP utilizado em redes privadas. Para que esta máquina acesse a Internet, ela 
precisa necessariamente de serviços como: IP masquerade ou Proxy. 

Túnel – Canal criptografado onde será transmitido os dados de forma segura.

Sniffers  –   Traduzido   como   farejaradores.   São  ferramentas   utilizadas  para  capturar  os   dados  em 
trânsito na rede.

Criptografia simétrica – Tipo de criptografia onde a chave para criptografar é a mesma chave para 
descriptografar.

Criptografia assimétrica  – Tipo de criptografia que utiliza de um par de chave – chave pública e 
privada.  Neste tipo de criptografia as chaves para criptografar e descriptografar são diferentes. 

Pingar – Termo oriundo do comando ping utilizado para testar a comunicação entre computadores.

Left – Roteador VPN definido na diretiva left do arquivo ipsec.conf

Right – Roteador VPN definido na diretiva righ do arquivo ipsec.conf 

Daemon – Pode ser entendido como serviço: daemon vpnd é o mesmo que serviço vpnd

Seja um Profissional Aprendendo com Profissionais


www.3way.com.br
OpenVPN

Exercícios de Revisão

1. Quais os dois principais objetivos de uma VPN? 

2. Quais as principais ferramentas de implementação de VPN? Site quais sistemas operacionais são 
suportados por estas ferramentas. 

3. Comente sobre os três tipos de arquiteturas de VPN. Quando uma máquina de uma rede interna 
comunicar com outra máquina de outra rede interna, em quais etapas desta comunicação em que os 
dados não se encontram criptografados pela VPN – Considere a arquitetura Network­>Network.

4. O freeswam implementa qual protocolo? Explique como este protocolo funciona dentro da pilha de 
protocolo TCP/IP.

5. Explique literalmente o processo de instalação do freeswan a partir de seu código fonte. 

6. Quais são os arquivos utilizados na configuração do freeswan? Explique também quais os tipos de 
criptografia são suportados pelo freeswan.

7. Qual a diferença entre o Freeswan e o OpenVPN?

8. Descreva literalmente o princípio de configuração do OpenVPN? Apresente as principais opções 
que devem ser alteradas no arquivo de configuração do OpenVPN.

9. Crie um exemplo de arquitetura de rede e apresente os comandos de roteamento necessários para 
estabelecer conectividade entre as duas redes privadas. Mostre como estas rotas podem ser executadas 
automaticamente pelo OpenVPN.

Seja um Profissional Aprendendo com Profissionais


www.3way.com.br

Anda mungkin juga menyukai