CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICA
PAULA SOUZA
FACULDADE DE TECNOLOGIA DE LINS PROF. ANTONIO SEABRA
CURSO SUPERIOR DE TECNOLOGIA EM REDES DE COMPUTADORES
FERNANDO CÉSAR CREMONESI
LUÍS GUSTAVO CREMONESI
ESTUDO SOBRE VPN:
UMA ANÁLISE COMPARATIVA ENTRE IPSEC E OPENVPN
LINS/SP
1°SEMESTRE/2012
CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICA
PAULA SOUZA
FACULDADE DE TECNOLOGIA DE LINS PROF. ANTONIO SEABRA
CURSO SUPERIOR DE TECNOLOGIA EM REDES DE COMPUTADORES
FERNANDO CÉSAR CREMONESI
LUÍS GUSTAVO CREMONESI
ESTUDO SOBRE VPN:
UMA ANÁLISE COMPARATIVA ENTRE IPSEC E OPENVPN
Trabalho de Conclusão de Curso apresentado a
Faculdade de Tecnologia de Lins para obtenção
do
título
de
tecnólogo
em
Redes
Computadores.
Orientador: Prof. Alexandre Ponce de Oliveira
LINS/SP
1°SEMESTRE/2012
de
FERNANDO CÉSAR CREMONESI
LUÍS GUSTAVO CREMONESI
ESTUDO SOBRE VPN:
UMA ANÁLISE COMPARATIVA ENTRE IPSEC E OPENVPN
Trabalho de Conclusão de Curso apresentado a
Faculdade de Tecnologia de Lins, como parte dos
requisitos necessários para a obtenção do título de
Tecnólogo em Redes de Computadores sob
orientação do Prof. Me. Alexandre Ponce de
Oliveira.
Data de aprovação: ______/_______/_______
______________________________________
Orientador: Alexandre Ponce de Oliveira
______________________________________
Examinador 1: Adriano de Souza Marques
______________________________________
Examinador 2: Naylor Garcia Bachiega
Dedicamos este trabalho aos nossos pais
Ivon Carlos Cremonesi e Nilva Tereza Moura e aos
nossos irmãos Jane Nazareth Cremonesi e Jean
Carlos Cremonesi, que nos incentivam a buscar
nossos objetivos e que nos ensinaram a ser pessoas
honestas e dedicadas aquilo que façamos e
sonhamos.
AGRADECIMENTOS
A Deus em primeiro lugar, por nos dar saúde física e mental para o cumprimento de
mais essa etapa de nossas vidas.
Agradecemos ao Prof. Alexandre Ponce de Oliveira, por sua orientação, apoio e
paciência ao nos guiar neste trabalho.
A Profa. Luciane Noronha do Amaral, por sua importante colaboração na revisão
ortográfica.
Aos professores e coordenadores do curso que contribuíram para nossa formação
acadêmica e desenvolvimento profissional.
Aos amigos acadêmicos que sempre mostraram união e companheirismo.
Aos nossos pais, irmãos e outros familiares que nos incentivaram e compreenderam
nossa ausência neste período.
Aos colegas de trabalho e a todos que de alguma forma, contribuíram para a
concretização deste objetivo.
“A imaginação é mais importante que a ciência,
porque a ciência é limitada, ao passo que a
imaginação abrange o mundo inteiro”.
Albert Einstein
RESUMO
A necessidade das redes de computadores associadas a trocas de informações
sigilosas entre empresas e outras entidades é a realidade atual, mas para ter esses
benefícios com baixo custo levou-se a criação de uma tecnologia chamada de
Redes Privadas Virtuais. A Rede Privada Virtual é uma ótima solução para interligar
entidades utilizando a Internet como meio de comunicação, com resultados tão bons
quanto de outras soluções e com um custo significantemente menor que ao das
demais. Para que seja possível o entendimento sobre o funcionamento desta
tecnologia, este trabalho aborda os princípios das redes de computadores, como
seus tipos, suas classificações, seus protocolos, os tipos de ataques,
vulnerabilidade, ameaças e os métodos de defesa para sua segurança. Também
são abordados com mais detalhes os principais elementos da tecnologia de Redes
Privadas Virtuais que são os algoritmos criptográficos, protocolos de segurança e
meios de comunicação seguros que são a base para a implementação da mesma,
entretanto, a implementação e uso destes itens é algo para ser estudado, pois há
varias soluções de redes privadas virtuais inseguras distribuídas no mercado. Este
trabalho realiza a análise sobre dois modos de interligação de uma rede privada
virtual, utilizando o protocolo IPSec e o software OpenVPN, que são alternativas
viáveis, muito conhecidas e economicamente atrativas.
Palavras-Chaves: Redes de Computadores, VPN, IPSec, OpenVPN, Segurança em
Redes, Criptografia, FreeBSD.
ABSTRACT
The need for computer networks linked to exchange confidential information between
companies and other entities is the current reality, but to have these benefits with low
cost led to the creation of a new technology called Virtual Private Networks. The
Virtual Private Network is a great solution for connecting entities using the internet as
a means of communication, with results as good as other solutions and at a cost
significantly lower than that of others. To be able to understand the functioning of this
technology, this paper discusses the principles of computer networks, such as their
types, their ratings, their protocols, the types of attacks, vulnerabilities, threats and
methods of defense for safety. Are also discussed in more detail the main elements
of the technology of Virtual Private Networks that are cryptographic algorithms,
security protocols and media insurance that are the basis for the implementation of it,
however, the implementation and use of these items is something to be studied as
there are several solutions, virtual private networks insecure distributed in the market.
This paper performs analysis on two modes of interconnection of a virtual private
network, using IPSec and OpenVPN software, which are viable alternatives, wellknown and economically attractive.
Key Words: Computer Networking, VPN, IPSec, OpenVPN, Network Security,
Cryptography, FreeBSD.
LISTA DE ILUSTRAÇÕES
Figura 1.1 – Redes WAN .......................................................................................... 17
Figura 1.2 – Exemplo de rede ponto-a-ponto ............................................................ 19
Figura 1.3 – Desempenho do pedido de um arquivo ................................................. 21
Figura 1.4 – Funcionamento da camada de aplicação .............................................. 23
Figura 1.5 – Exemplo de funcionamento do protocolo TCP ...................................... 25
Figura 2.1 – Remetente, destinatário e intruso (Alice, Bob e Trudy) ......................... 27
Figura 2.2 – Tipos básicos de ataques ...................................................................... 29
Figura 2.3 – Criptografia simétrica ............................................................................ 31
Figura 2.4 – Criptografia assimétrica......................................................................... 32
Figura 2.5 – Exemplo de função hash ....................................................................... 33
Figura 2.6 – Envio de e-mail com assinatura digital e função hash........................... 34
Figura 2.7 – Recebimento de e-mail com assinatura digital e função hash .............. 34
Figura 2.8 – Ligação simples de um firewall.............................................................. 36
Figura 3.1 – (a) Uma rede privada de linha dedicada (b) Uma rede privada virtual .. 38
Figura 3.2 – Conexão VPN Servidor a Servidor ........................................................ 40
Figura 3.3 – Exemplo de uso do protocolo PPP ........................................................ 42
Figura 3.4 – Conexão PPTP...................................................................................... 43
Figura 3.5 – Cenário Típico do L2TP ........................................................................ 44
Figura 3.6 – Datagrama IP dentro de uma infraestrutura MPLS ............................... 46
Figura 3.7 – Componentes de uma rede MPLS ........................................................ 46
Figura 3.8 – Associação de Segurança ..................................................................... 48
Figura 3.9 – Modo de Transporte SA ........................................................................ 49
Figura 3.10 – Modo de Túnel SA............................................................................... 49
Figura 3.11 – Modo Transporte e Túnel no protocolo AH ......................................... 50
Figura 3.12 – Modo Transporte e Túnel no protocolo ESP ....................................... 51
Figura 4.1 – Cenário da implementação ................................................................... 56
Figura 4.2 – Tráfego criptografado utilizando IPSec ................................................. 60
Figura 4.3 – Análise de transferência simples utilizando o IPSec ............................. 61
Figura 4.4 – Análise de transferência com arquivos simultâneos utilizando o IPSec 61
Figura 4.5 – Tráfego criptografado utilizando OpenVPN ........................................... 64
Figura 4.6 – Análise de transferência simples utilizando o OpenVPN....................... 65
Figura 4.7 – Análise de transferência com arquivos simultâneos utilizando o
OpenVPN. ................................................................................................................. 65
LISTA DE ABREVIATURAS E SIGLAS
3DES – Triple Data Encryption Standart
AES – Advanced Encryption Standart
AH – Authentication Header
ATM – Asynchronous Transfer Mode
DES – Data Encryption Standart
DNS – Domain Name System
DoS – Denial of Service
ESP – Encapsulating Security Payload
HMAC – Key-hashing for Message Authentication
HTTP – HyperText Transfer Protocol
IETF – Internet Engineering Task Force
IKE – Internet Key Exchange
IP – Internet Protocol
IPSec – Security Architecture for IP
ISAKMP – Internet Security Association and Key Management
ISO – International Stardards Organization
KB - Kilobytes
Kbps – Kilobits per seconds
Km – Quilômetros
L2F – Layer 2 Forwarding
L2TP – Layer 2 Tunneling Protocol
LAC – L2TP Access Concentrator
LAN – Local Area Network
LDP – Label Distribution Protocol
LNS – L2TP Network Server
LP – Linhas Privadas
LSP – Label Switch Path
LSR – Label Switch Router
MAN – Metropolitan Area Network
MB – Megabytes
Mbps – Megabits per seconds
MD5 – Message Digest 5
MPLS – Multiprotocol Label Switching
NAS – Network Access Server
OSI – Open Systems Interconnection
PPP – Point-to-Point Protocol
PPTP – Point-to-Point Tunneling Protocol
SA – Security Associations
SAD – Security Association Database
SHA-1 – Secure Hash Algorithm
SMTP – Simple Mail Transfer Protocol
SPD – Security Policy Database
SPI – Security Parameter Index
TCP – Transmission Control Protocol
UDP – User Data Protocol
VoIP – Voz sobre IP
VPN – Virtual Private Network
WAN – Wide Area Network
SUMÁRIO
INTRODUÇÃO .......................................................................................................... 14
1
CONCEITO DE REDES...................................................................................... 16
1.1
1.1.1
Redes Locais ......................................................................................... 16
1.1.2
Redes Metropolitanas ............................................................................ 16
1.1.3
Redes Geograficamente Distribuídas .................................................... 17
1.1.4
Internet .................................................................................................. 18
1.2
2
TIPOS DE REDES ....................................................................................... 18
1.2.1
Rede Ponto-a-ponto .............................................................................. 18
1.2.2
Rede Cliente/Servidor ............................................................................ 20
1.3
MODELO OSI .............................................................................................. 21
1.4
PROTOCOLOS ............................................................................................ 22
1.4.1
Transmission Control Protocol e Internet Procotol (TCP/IP) .................. 23
1.4.2
Protocolo IP ........................................................................................... 24
1.4.3
ProtocoloTCP ........................................................................................ 24
1.4.4
Protocolo UDP ....................................................................................... 25
SEGURANÇA EM REDES ................................................................................. 27
2.1
AMEAÇAS.................................................................................................... 28
2.2
VULNERABILIDADES.................................................................................. 28
2.3
ATAQUES .................................................................................................... 28
2.4
MÉTODOS DE DEFESA .............................................................................. 30
2.5
CRIPTOGRAFIA .......................................................................................... 30
2.5.1
Chave Simétrica .................................................................................... 30
2.5.2
Chave Assimétrica ................................................................................. 31
2.5.3
Função Hash ......................................................................................... 32
2.5.4
Assinatura Digital ................................................................................... 33
2.5.5
Certificação Digital ................................................................................. 35
2.6
3
CLASSIFICAÇÕES ...................................................................................... 16
Firewall ......................................................................................................... 35
VPN .................................................................................................................... 38
3.1
Modos de Interconexão ................................................................................ 39
3.1.1
VPN dial-up ........................................................................................... 39
3.1.2
VPN de Intranet ..................................................................................... 39
3.1.3
VPN de Extranet .................................................................................... 39
3.2
Tunelamento ................................................................................................ 39
3.3
Protocolos para VPN .................................................................................... 40
4
3.3.1
Point-to-Point Protocol (PPP) ................................................................ 41
3.3.2
Point-to-Point Tunneling Protocol (PPTP) ............................................. 42
3.3.3
Layer 2 Tunneling Protocol (L2TP) ........................................................ 44
3.3.4
Multiprotocol Label Switching (MPLS) ................................................... 45
3.3.5
Security Architecture for IP (IPsec) ........................................................ 47
IMPLEMENTAÇÃO DE UMA VPN EM FREEBSD ............................................. 55
4.1
CENÁRIO ..................................................................................................... 55
4.2
IMPLEMENTAÇÃO DA VPN COM IPSEC ................................................... 57
4.2.1
Compilação do Kernel ........................................................................... 57
4.2.2
Configuração do Firewall ....................................................................... 57
4.2.3
Configuração de uma VPN com IPSec .................................................. 58
4.2.4
Análise de desempenho da VPN com IPSec ......................................... 60
4.3
IMPLEMENTAÇÃO DA VPN COM OPENVPN ............................................ 62
4.3.1
Instalação do OpenVPN ........................................................................ 62
4.3.2
Configuração do OpenVPN ................................................................... 62
4.3.3
Análise de desempenho da VPN com OpenVPN .................................. 64
4.4
CONSIDERAÇÕES FINAIS ......................................................................... 65
CONCLUSÃO............................................................................................................ 67
REFERÊNCIAS BIBLIOGRÁFICAS .......................................................................... 69
14
INTRODUÇÃO
As redes de computadores estão cada vez mais presentes nas empresas,
órgãos governamentais, centros educacionais e até mesmo dentro das casas como
serviços ou meio de comunicação.
De acordo com Mendes (2007), redes de computadores estabelecem uma
forma padronizada de interligação de computadores para compartilhamento de
recursos físicos ou lógicos, como por exemplo, unidades de CD-ROM, arquivos de
um disco rígido, impressoras entre outros.
Com a evolução tecnológica e por questões de acessibilidade, médias e
grandes empresas, assim também como centros educacionais e de pesquisa,
necessitam trocar informações entre si para manter o compartilhamento e
disponibilidade de seus recursos e serviços. (TANENBAUM, 2003)
Anteriormente, antes da rede pública de dados, as empresas contratavam
serviços de concessionárias de telefonia para comunicação ou troca de dados por
meio de linhas privadas (LP), por exemplo, de sua matriz com todas as filias.
Atualmente as empresas fazem uso deste serviço. Uma rede construída a
partir deste modelo é chamada de rede privada. (TANENBAUM, 2003)
Segundo Tanenbaum (2003) as redes privadas possuem um ótimo
desempenho e muito bem referenciadas no quesito segurança, entretanto, o custo
de manutenção é muito alto. Com o surgimento da Internet, muitas empresas
trocaram o uso das redes privadas das concessionárias de telefonia pelo uso da
internet para trafegar seus dados. Essa mudança diminuiu muito o custo da
manutenção, entretanto, era necessário manter o mesmo padrão de segurança das
redes privadas.
Essa demanda levou a criação da Virtual Private Network (VPN), que é uma
rede sobreposta à Internet com a maioria das propriedades das redes privadas
(TANENBAUM, 2003). Segundo Wolf (2007): “VPN é uma técnica utilizada para
fazer um túnel seguro entre duas redes, geralmente separada pela internet.”
Este trabalho descreveu todos os conceitos sobre uma VPN e seus
respectivos protocolos de segurança e teve como objetivo a implementação de duas
VPNs utilizando-se o software OpenVPN e outro que utiliza os recursos do sistema
15
operacional FreeBSD através do protocolo IPSEC que são referências atualmente
para implementação de VPN.
A implementação das VPNs foram feitas no sistema operacional FreeBSD e
depois foi realizada uma análise comparativa de desempenho entre as VPNs,
utilizando o software jPerf.
A estrutura da monografia foi composta da seguinte forma: o primeiro capítulo
abrange todos os conceitos de redes de computadores como as classificações da
rede, tipos de redes, modelo OSI e protocolos que são a base para o entendimento
do trabalho; o segundo capítulo contém informações importantes sobre segurança
com relação a VPNs, onde aborda as ameaças existentes, tipos de ataques
defesas,
e
métodos de criptografia, firewall, entre outras; o terceiro capítulo é
composto pelos conceitos de VPN como os modos de interconexão, tunelamento e
protocolos utilizado, onde é destacado o IPSec; o quarto capítulo descreve como
foram implementados, de modo experimental, os modos de conexão VPN,
detalhando as configurações realizadas para funcionamento da tecnologia e as
analises realizadas sobre os modos testados; por fim o sexto capítulo tem-se a
conclusão do trabalho.
16
1 CONCEITO DE REDES
Este capítulo conceitua redes de computadores para melhor entendimento do
trabalho, e será feita a descrição acerca dos tipos de redes, suas classificações,
protocolos e segurança.
1.1
CLASSIFICAÇÕES
1.1.1 Redes Locais
Chamadas de Local Area Network (LAN) estas são redes privadas contidas
dentro de uma única empresa ou campus. São usadas para conectar estações de
trabalho e computadores pessoais, permitindo o compartilhamento de recursos e
troca de informações.
As LANs se distinguem de outros tipos de redes por seu tamanho, tecnologia
de transmissão e topologia. A tecnologia de transmissão das LANs geralmente é
feita por cabo, no qual todas as máquinas estão conectadas. As LANs normalmente
funcionam em velocidades de 10 Megabits por segundo (Mbps) a 100 Mbps, e
apresentam pouquíssimos erros de transmissão. As LANs mais atuais podem operar
em até 10 Gigabits por segundo (Gbps). (TANENBAUM, 2003).
1.1.2 Redes Metropolitanas
Uma rede metropolitana, mais conhecida como Metropolitan Area Network
(MAN), abrange uma cidade, como exemplo de uma MAN é uma rede de televisão a
cabo disponível em várias cidades.
As MANs são redes que ficam restritas a região metropolitana de uma grande
cidade, o seu raio de cobertura varia de 40 a 80 km (quilômetros). A sua velocidade
17
de transmissão geralmente é de 2 Mbps e é muito utilizada por redes de Franquias,
Universidades, Escolas e órgãos do governo municipal.( KUROSE; ROSS, 2008)
1.1.3 Redes Geograficamente Distribuídas
Conhecida como Wide Area Network (WAN), abrange uma grande área
geográfica como um país ou continente e contém um conjunto de máquinas cuja
finalidade é executar aplicações do usuário.
Segundo Mendes (2007), as redes WANs são formadas pela interligação de
pequenas ou grandes redes LANs e cada ponta da rede WAN possui a mesma
estrutura de uma rede LAN. A conexão entre elas é feita por meio de linhas
telefônicas, fibras ópticas ou ondas de rádio. A internet pode ser considerada como
uma grande rede WAN, pois interliga milhões de pequenas redes LANs ao redor do
mundo.
Figura 1.1 – Redes WAN
Fonte: Mendes, 2007, p.33
Ainda segundo Mendes (2007), uma rede de computadores torna-se
operacional quando existe a interligação dos computadores de forma local ou
remota. Para interliga-las são necessários equipamentos e softwares como placas
de rede, cabos, conectores, sistema operacional e o cliente de acesso.
Uma WAN sempre é formada pela interligação de pelo menos dois pontos, os
quais devem estar ligados a roteadores, equipamentos ativos responsáveis pela
18
interligação de duas redes diferentes. O objetivo do roteador é redirecionar os dados
que recebe de uma rede para outra rede, assim permite a conexão de duas redes
com protocolos diferentes. Esse funcionamento do roteador permite a interação
entre redes com arquiteturas diferentes. A figura 1.1 representa uma rede WAN, a
qual é formada entra a porta WAN do roteador A e o roteador B:
1.1.4 Internet
De acordo com Kurose e Ross (2010), a internet é uma infraestrutura que
provê serviços e aplicações. Estas aplicações são os correios eletrônicos (Email),
navegação na Web, mensageiros instantâneos, voz sobre IP (VoIP), assim como
muitos outros, e com os avanços da tecnologia dos componentes da internet, são
necessárias novas aplicações, portanto é importante ter em mente que a internet é
uma tecnologia em constante atualização.
Segundo Tanenbaum (2003), a internet não é uma rede e sim um conjunto de
redes diferentes que utiliza protocolos comuns e fornece determinados serviços. A
internet não foi planejada e não é controlada por ninguém.
1.2
TIPOS DE REDES
Segundo Torres (2001), existem dois tipos básicos de redes onde os dados
são compartilhados, as redes ponto-a-ponto e as redes cliente/servidor. A rede
ponto a ponto é usada em redes pequenas e a rede cliente/servidor é usada tanto
em redes pequenas quanto em redes grandes. Esses tipos de redes não dependem
da estrutura física usada pela rede, mas sim como ela esta configurada em software.
1.2.1 Rede Ponto-a-ponto
De acordo com Torres (2001), redes ponto-a-ponto é o tipo de rede mais
simples para ser montada, onde praticamente todos os sistemas operacionais já
oferecem suporte.
19
A rede ponto-a-ponto compartilha dados e periféricos sem muita complicação,
onde os computadores podem ler e escrever nos arquivos armazenados nos outros
computadores, assim como usar impressoras e outros periféricos, isso sem muita
dificuldade. Nesta rede não há o papel de um servidor como nas redes
cliente/servidor, nas redes ponto-a-ponto qualquer computador pode ser um servidor
de dados e periféricos.
A figura 1.2, mostra uma interligação com três computadores em rede, na
qual há uma impressora instalada no computador da Daniela e para que os outros
computadores tenham acesso a impressora, basta o usuário do computador onde
esta instalado a impressora, compartilhar este recurso. (Torres, 2001)
Figura 1.2 – Exemplo de rede ponto-a-ponto
Fonte: Torres, 2001, p.8
Ainda segundo Torres (2001), neste modelo não é possível compartilhar o
mesmo arquivo ao mesmo tempo, adicionar dados a um banco de dados, por
exemplo, pois “Em uma rede ponto-a-ponto, somente um usuário pode modificar
cada arquivo de dados por vez, embora mais de um usuário possa ler um mesmo
arquivo ao mesmo tempo.” (Torres, 2001)
De acordo com Torres (2001), a vantagem da rede ponto-a-ponto é a
facilidade de instalação e configuração, onde os próprios usuários podem configurar
o compartilhamento para que os demais usuários possam ter acesso, a
desvantagem é em relação à segurança da rede. Geralmente na rede ponto-a-ponto,
como os computadores ficam instalados dentro de um mesmo ambiente de trabalho,
a questão de segurança não chega a ser um problema, mas o recomendado é a
instalação de uma rede cliente/servidor mesmo em redes pequenas.
20
Torres (2001) resume a rede ponto-a-ponto da seguinte forma: usada em
redes pequenas; baixo custo; fácil implementação; baixa segurança; sistema simples
de cabeamento; normalmente os computadores estão em um mesmo ambiente de
trabalho; não existe um administrador de rede, a rede é administrada por cada
usuário; não existem micros “servidores”; cada micro ora age como um servidor; a
rede terá problemas pra crescer.
1.2.2 Rede Cliente/Servidor
Segundo Morimoto (2002), a rede cliente/servidor é mais difícil de montar e
configurar e também tem um custo mais elevado por exigir um bom poder de
processamento. Uma rede cliente/servidor concentra todos os recursos da rede em
um ou mais servidores, como arquivos, impressoras, serviços de fax e acesso a
internet, etc. Tudo será controlado pelos servidores.
Em todos os sistemas operacionais é preciso tempo para configurar os
servidores, assim como permissões de acesso aos recursos, senhas, entre outros.
Entretanto, uma vez que tudo estiver funcionando você terá uma rede muito mais
robusta e confiável.
Torres (2001) diz que o servidor nada mais é que um computador que gera
recursos para os demais computadores da rede, pode ficar sobrecarregado com a
utilização de várias tarefas e fornecendo para os demais computadores para rede,
assim tornando baixo o desempenho da rede. Com o servidor dedicado, que é um
servidor para executar somente uma tarefa, por exemplo, somente um servidor de
arquivos, ele consegue responder rapidamente os pedidos recebidos dos demais
computadores da rede assim não compromete o desempenho e oferece um melhor
desempenho para executar uma determinada tarefa.
A administração e configuração da rede cliente/servidor é centralizada, isso
melhora a organização e segurança da rede e possibilita a execução de programas
cliente/servidor, como, por exemplo, um banco de dados que pode ser modificado
por vários usuários ao mesmo tempo.
Assim Torres (2001), resume a rede cliente/servidor: usada normalmente em
redes com mais de 10 computadores ou redes pequenas que necessitem de um alto
21
grau de segurança; custo maior que o de redes ponto-a-ponto; maior desempenho
do que redes ponto-a-ponto; implementação necessita de especialistas; alta
segurança; manutenção e configuração da rede realizada pelo administrador de rede
e de forma centralizada; possibilidade de uso de aplicações de cliente/servidor.
Figura 1.3 – Desempenho do pedido de um arquivo
Fonte: Torres, 2001, p. 13
1.3
MODELO OSI
Segundo Torres (2009), quando as redes de computadores foram inventadas,
as soluções existentes eram proprietárias e não havia como relacionar soluções de
fabricantes diferentes, assim um fabricante era responsável por construir quase tudo
na rede. Para facilitar a interligação dos sistemas de computadores, a International
Standards Organization (ISO) criou o modelo de referência chamado Open Systems
Interconnection (OSI), onde os fabricantes pudessem criar protocolos a partir desse
modelo.
Segundo Tanenbaum (2003), o modelo OSI possui sete camadas, onde a ISO
atribuiu padrões para todas elas. A seguir descreve-se a função de cada uma das
camadas do modelo OSI:
Camada física: é responsável pela transmissão de bits por um meio físico,
como a placa de rede. A camada física é responsável que os dois lados devam
22
receber os mesmos bits que foram transmitidos; Camada de enlace de dados: é
responsável por criar a conexão entre o remetente e destinatário. A camada de
enlace faz com que o transmissor divida os dados e transmita-os sequencialmente,
recebe uma confirmação caso o pacote seja entregue corretamente; Camada de
rede: é responsável por indicar o caminho dos pacotes até o seu destino através de
rotas. As rotas por onde os pacotes passam podem ser baseados em tabelas
estáticas ou dinâmicas, ou seja, podem todos seguir o mesmo caminho ou não;
Camada de transporte: é responsável por aceitar os dados da camada de rede e
dividi-los em pacotes menores se necessário. A camada de transporte repassa os
pacotes para a camada de rede para garantir que todos os dados chegarão
corretamente ao destino e também determina o serviço que deve ser fornecido à
camada de sessão, como o tipo de conexão; Camada de sessão: é responsável por
permitir que dois computadores diferentes estabeleçam comunicação entre eles;
Camada de apresentação: é responsável por fazer a tradução para tornar possível a
comunicação entre dois computadores com diferentes representações de dados;
Camada de aplicação: contém uma serie de protocolos necessários para os
usuários. A camada de aplicação faz a interface entre os protocolos e o aplicativo de
acordo com a solicitação do usuário.
1.4
PROTOCOLOS
De acordo com Torres (2001), os protocolos definem como as informações
enviadas pela rede são transferidas, protocolo é o idioma usado pelos dispositivos
da rede de forma que os mesmos possam entender trocar informações em si.
Segundo Kurose e Ross (2010), um protocolo de rede é parecido com um
protocolo humano, onde a diferença é que os dispositivos que se comunicam e
realizam ações são componentes de hardwares e softwares de algum equipamento,
como exemplo, computadores, telefones celulares, roteadores, etc. Ainda seguindo
a linha de raciocínio de Kurose e Ross (2010), todas as atividades na internet que
envolvem duas ou mais entidades comunicantes são controladas por um protocolo e
uma rede pode usar vários protocolos. A seguir este trabalho abordará alguns
desses protocolos.
23
1.4.1 Transmission Control Protocol e Internet Procotol (TCP/IP)
Segundo Torres (2001), o TCP/IP é na realidade, um conjunto de protocolos,
cujo mais conhecidos dão o nome desse conjunto: TCP/IP, que operam nas
camadas de Transporte e Internet respectivamente, utiliza uma arquitetura de quatro
camadas, definidas como:
Camada de Aplicação: comunica-se com a camada de transporte através de
uma porta. As portas são numeradas e as aplicações padrão sempre utilizam uma
mesma porta, por exemplo, o protocolo Simple Mail Transfer Protocol (SMTP) utiliza
sempre a porta 25, o protocolo HyperText Transfer Protocol (HTTP) utiliza sempre a
porta 80. Esta camada que fornece ao usuário de rede a interface em forma de
aplicativos ou serviços de rede, ilustrada pela figura 1.4.
Figura 1.4 – Funcionamento da camada de aplicação
Fonte: Torres, 2001, p. 66
Camada de Transporte: é responsável por pegar os dados enviados pela
camada de aplicação, transformá-los em pacotes e repassa-los para a camada de
Internet.
Camada de Internet: é responsável pelo endereçamento dos pacotes, para
que eles consigam chegar corretamente ao seu destino. Essa camada também
determina o caminho que os pacotes irão percorrer para atingir o destino;
Camada Física: é responsável por pegar os dados enviados pela camada de
Internet e converter em sinais compatíveis com o meio de dados que serão
transmitidos, por exemplo, se o meio for óptico, a camada física converte os dados
em sinais luminosos.
24
1.4.2 Protocolo IP
O protocolo IP, como dito anteriormente, atua na camada de Internet onde
recebe os dados enviados pela camada de transporte e envia para a camada física.
Torres (2001) diz que o protocolo IP é um protocolo não orientado a conexão, isto é,
ele não verifica se os dados chegaram ao destino, isto é feito pelo protocolo TCP,
que recebe os pacotes que chegam e os coloca em ordem, solicita o reenvio dos
pacotes caso esteja faltando.
A principal função do protocolo IP é rotear os pacotes, ou seja, adicionar as
instruções para que os dados cheguem mais rápido ao seu destino. Isto é feito em
conjunto com os roteadores da rede que escolhem os caminhos mais rápidos entre a
origem e o destino do pacote.
Kurose e Ross (2010) aponta que cada endereçamento IP tem um
comprimento de 32 bits, onde este endereço é único e existem cerca de 4 bilhões de
endereços IPv4 possíveis. Esses endereços são escritos em decimal separado por
pontos, por exemplo, o endereço IP 192.32.216.9. O número decimal 193
equivalente aos 8 primeiros bits do endereço, o número decimal 32 equivalente ao
segundo conjunto de bits e assim por diante.
1.4.3 Protocolo TCP
De acordo com Torres (2001), o protocolo TCP é o mais complexo do sistema
de protocolos TCP/IP, cuja sua função e receber os datagramas do IP e ordená-los,
após isso o protocolo TCP verifica se todos datagramas chegaram corretamente.
Segundo Torres (2001), várias aplicações enviam dados, através de canais
virtuais chamados portas, ao protocolo TCP para que ele transmita esses dados pela
rede. O protocolo TCP empacota os dados recebidos e adiciona as informações das
portas de origem e destino e depois passa o pacote para o protocolo IP, que
adiciona as informações de endereço de IP de origem e destino ao pacote.
Quando o destino recebe os dados, o pacote faz o caminho contrario, onde
passa pela camada IP, que passará para a camada TCP que entregará os dados a
25
aplicação correta, já que o protocolo TCP sabe qual é a aplicação que ele deve
entregar por causa do conceito de portas, entretanto, já que o protocolo TCP ordena
todos os protocolos, ele verifica se os mesmos chegaram ao destino, onde envia
uma mensagem de confirmação de recebimento para a maquina transmissora, a
maquina transmissora se durante um determinado tempo não receber esta
confirmação, o pacote é reenviado, pois significa que os dados foram descartados
no meio do caminho por algum motivo.
Figura 1.5 – Exemplo de funcionamento do protocolo TCP
Fonte: Kurose, Ross, 2010, p. 163
1.4.4 Protocolo UDP
De acordo com Torres (2001), o protocolo User Data protocol (UDP) de
transporte não é orientado a conexão, ou seja, ele não verifica se os dados
26
chegaram ao seu destino, tornando um protocolo não viável ao uso para transportes
de dados importantes, como arquivos e e-mails.
Segundo Torres (2001), as aplicações que usam o protocolo UDP devem criar
mecanismos para colocar os datagramas em ordem e verificar se os dados foram
entregues ao destino corretamente, em outras palavras, a aplicação faz o trabalho
que é feito pelo protocolo TCP.
De acordo com Torres (2001), a vantagem de usar o protocolo UDP é que a
transmissão é mais rápida, pois o tamanho do pacote de dados fica menor e o UDP
não tem o mecanismo de verificação de chegada do pacote como o protocolo TCP,
assim torna o envio de pacotes mais rápido por não precisar esperar uma resposta
do destinatário para enviar o próximo pacote.
Segundo Torres (2001), o uso do protocolo UDP pode ser até viável em redes
onde não há quase perca de pacotes, porém em grandes redes e principalmente na
Internet, onde a taxa de perda de pacotes pode ser alta demais, torna o uso do
protocolo UDP inviável. Um dos usos mais conhecidos do protocolo UDP é para o
envio de mensagens Domain Name System (DNS).
27
2 SEGURANÇA EM REDES
Segundo Kurose e Ross (2010), todos usuários querem ter certeza que suas
mensagens estão sendo entregues ao destinatário com segurança, isto é, ter
certeza que é a pessoa que esta se comunicando seja de fato a esperada, que as
mensagens não sejam alteradas no meio do caminho e também a certeza que
podem se comunicar, sem que ninguém interrompa ou lhes negue acesso aos
recursos
necessários
para
comunicação.
Dadas
essas
considerações,
as
propriedades desejáveis de uma comunicação segura são:
Confidencialidade: somente o remetente e o destinatário pretendido devem
entender o conteúdo da mensagem transmitida. O fato de poderem capturar a
informação exige que a mesma seja criptografada de alguma maneira para impedir
que ela seja entendida por um interceptador;
Autenticação do ponto final: o remetente e o destinatário precisam confirmar a
identidade um do outro para verificar se a outra parte é realmente quem diz ser;
Integridade: mesmo efetuada a conexão e concluído a troca de informações,
é preciso assegurar que o conteúdo das informações não foi alterado;
Segurança operacional: atualmente utiliza a Internet, as redes podem ser
comprometidas por atacantes que ganham acesso por meio da Internet. Os
atacantes podem colocar aplicações maliciosas nos computadores da rede, adquirir
informações sigilosas, alterar configurações da rede, entre outros.
Figura 2.1 – Remetente, destinatário e intruso (Alice, Bob e Trudy)
Fonte: Kurose, Ross, 2010, p. 494.
28
2.1
AMEAÇAS
Segundo Tanenbaum (2003), a maior parte dos problemas de segurança da
rede é causada intencionalmente por pessoas maliciosas que tentar ter algum
benefício, atenção ou prejudicar alguém. As ameaças vão desde um estudante
curioso que quer bisbilhotar o correio eletrônico de outras pessoas, um cracker que
quer testar o sistema de segurança de uma empresa ou roubar dados, um
funcionário que foi demitido e quer se vingar, até um terrorista que pretende roubar
segredos de armas bacteriológicas.
2.2
VULNERABILIDADES
De acordo com Maziero (2009), vulnerabilidade é um defeito ou problema
presente na especificação, implementação, configuração ou operação de um
software, que possa ser explorado para violar as propriedades de segurança do
mesmo.
Segundo Maziero (2009), a maioria das vulnerabilidades ocorre devido a erros
de programação, como exemplo, não verificar a conformidade dos dados recebidos
de um usuário ou da rede.
Alguns exemplos se vulnerabilidades são: Um erro de programação no
serviço de compartilhamento de arquivos, que permite que usuários não autorizados
tenham acesso a arquivos além dos compartilhados; Uma conta de usuário sem
senha ou com uma senha padrão definida pelo fabricante que permita usuários não
autorizados a acessar o sistema; Ausência de cotas de disco, assim permitem que
um usuário alocar todo o espaço do disco somente para si, assim impedindo os
demais usuários de usar o sistema.
2.3
ATAQUES
Segundo Maziero (2009), um ataque é um ato de utilizar ou explorar uma
falha para violar uma propriedade de segurança do sistema.
29
De acordo com Pfleeeger e Pfleeger (2006), existem quatro tipos de ataques:

Interrupção: interrompe o fluxo normal das informações ou acessos, onde
afeta a disponibilidade do sistema;

Interceptação: obtém acesso indevido ao fluxo de informações, sem
necessariamente modificá-las, afeta a confidencialidade;

Modificação: modificam de forma indevida as informações ou partes do
sistema, afetando sua integridade;

Fabricação: produz falsas informações ou introduz componentes maliciosos
no sistema, é um ataque contra a autenticidade.
Figura 2.2 – Tipos básicos de ataques
Fonte: Maziero, 2009, p. 10.
Segundo Maziero (2009), existem dois tipos de ataques, os passivos, que
visam coletar informações confidenciais, e os ataques ativos, que visam modificar o
sistema para beneficiar o atacante ou prejudicar o uso pelos usuários válidos.
De acordo com Maziero (2009), a maioria dos ataques a sistemas
operacionais visam aumentar o poder de privilégios do atacante dentro do sistema,
onde os ataques são feitos geralmente em programas do sistema com mais
privilégios para receber os privilégios do administrador, ou também efetuam ataques
de negação de serviço, chamados Denial of Service (DoS), que visam prejudicar a
disponibilidade do sistema, impedindo que os usuários validos do sistema possam
utilizá-lo.
30
2.4
MÉTODOS DE DEFESA
Segundo Tanenbaum (2003), os problemas de segurança podem ser
divididos nas seguintes áreas interligadas: sigilo, autenticação e controle de
integridade. Como métodos de defesa, podem-se instalar firewalls, criptografar
conexões inteiras e autenticação dos usuários.
2.5
CRIPTOGRAFIA
Segundo Silva (2002), criptografia é o estudo de códigos e cifras, cujo nome
vem do grego kryptos, que significa oculto, e graphen, que significa escrever. A
palavra cifra vem do hebraico saphar, que significa dar números e por isso a maioria
das cifragens são baseadas em técnicas de sistemas numéricos. Os espartanos
foram os primeiros a utilizar um sistema de criptografia, com uso de um bastão e
uma tira de pano enrolada no bastão onde essa mensagem estava escrita. A tira era
desenrolada e enviada ao destino, que tinha outro bastão idêntico ao de origem,
onde o receptor enrolava a tira no bastão que possuía e lia a mensagem. Se a tira
ou o bastão fossem de tamanhos diferentes, a mensagem havia sido alterada e
aparecia torta no destino. Chamamos de plaintext (texto plano) o texto original e
ciphertext o texto criptografado.
O segredo da criptografia não está no algoritmo para embaralhar as
informações, e sim na chave de criptografia. Existem dois tipos de chaves: chave
simétrica ou chave assimétrica.
2.5.1 Chave Simétrica
Segundo Silva (2002), a chave simétrica é compartilhada pelos dois pontos,
ou seja, somente o emitente e destinatário possuem esta chave. Com isso as duas
partes podem se comunicar de um modo seguro.
31
Figura 2.3 – Criptografia simétrica
Fonte: Maziero, 2009, p. 16
De acordo com Silva (2002), a vantagem neste tipo de chave é sua
velocidade superior em relação a chave assimétrica e a desvantagem é que este
tipo de chave só pode ser usado uma para cada par de pessoas, assim dificulta a
comunicação com segurança para um grande número de pessoas. Segundo
Tanenbaum (2003), como algoritmos simétricos pode-se citar: Data Encryption
Standart (DES) – com chave de 56 bits; Triple Data Encryption Standart (3DES) –
com chave de 168 bits; Advanced Encryption Standart (AES) – com chave de 128,
192 ou 256 bits; Blowfish – com chave de 1 a 448 bits; Twofish – com chave de 128
a 256 bits; e Serpent – com chave de 128, a 256 bits.
2.5.2 Chave Assimétrica
Chave assimétrica, mais conhecida como pública, segundo Silva (2002), é
basicamente uma chave dividida em duas partes, na qual uma parte é privada e
única para o usuário, não pode ser compartilhada, e a outra parte que fica em
domínio público para qualquer pessoa que queira enviar dados criptografados para o
usuário portador da chave privada.
32
Segundo Silva (2002), a chave privada utiliza um algoritmo da chave
simétrica, como o DES ou 3-DES. O tamanho da chave assimétrica é muito maior
que as chaves simétricas, em torno de 1024 bits.
De acordo com Silva (2002), quando uma informação criptografada é enviada
com uso de uma chave pública, o destinatário utiliza a chave privada para
descriptografar a mensagem. Caso o usuário queira enviar uma mensagem
criptografada, o usuário precisará usar a chave pública e o receptor utilizará a chave
privada para descriptografá-la.
Figura 2.4 – Criptografia assimétrica
Fonte: Maziero, 2009, p. 17
2.5.3 Função Hash
Segundo Pereira (2009), hash nada mais é do que uma sequencia de dados
que serve para facilitar buscas e comparações. Em termos mais técnicos, hash é
uma sequencia de letras ou números gerados por um algoritmo, que transforma uma
grande quantidade de dados em uma quantidade menor. A função hash gera uma
cadeia de letras e números de tamanho fixo a partir de uma sequência de qualquer
tamanho.
Uma tabela de hashing ou tabela de dispersão é uma estrutura de dados que
faz associação de valores a chaves, como um índice, o que torna as pesquisas mais
33
rápidas. Um algoritmo de dispersão é um método utilizado pela criptografia para
codificar as informações e garantir a segurança e integridades delas, sendo assim
para recuperar as informações em quais foi aplicado este algoritmo, é necessário
conhecê-lo.
De acordo com Pereira (2009), a sequência de hash busca identificar um
arquivo ou informação de maneira única, hash é um método para transformar dados
em resultados exclusivos, como exemplo, uma senha, uma chave criptografada ou
mesmo um arquivo.
Observa-se na figura 2.5 o exemplo de uma mensagem longa, que após
passar pelo processo da função hash é convertido em uma mensagem de tamanho
fixo.
Figura 2.5 – Exemplo de função hash
Fonte: Kurose, Ross, 2010, p. 505
2.5.4 Assinatura Digital
De acordo com Kurose e Ross (2010), a assinatura no mundo real, comprova
que você realmente é você. Quando você assina um documento significa que você
conhece o conteúdo do mesmo e/ou concorda com ele e no mundo digital, se quiser
deixar claro quem é o dono do documento ou deixar claro que alguém concorda com
ele, é feita a assinatura digital.
Kurose e Ross (2010) enfoca que as assinaturas digitais devem ser
verificáveis, ou seja, precisa-se saber quem foi o autor da assinatura e a mesma não
34
pode ser falsificada, assim como as assinaturas por escrito. Deve ser possível
verificar que um documento assinado por um indivíduo foi na verdade assinado por
ele e que somente este indivíduo poderia ter assinado o documento.
Figura 2.6 – Envio de e-mail com assinatura digital e função hash
Fonte: Kurose, Ross, 2010, p. 509
Figura 2.7 – Recebimento de e-mail com assinatura digital e função hash
Fonte: Kurose, Ross, 2010, p. 510
Na figura 2.6 observa-se o exemplo de um envio de e-mail, onde uma
mensagem longa é enviada ao destinatário e também passa pelo processo da
35
função hash para obter uma mensagem de tamanho fixo, e depois é aplicada a
assinatura digital com a chave privada do remetente na mensagem curta para
proteger o valor hash da mensagem.
Na figura 2.7 observa-se o exemplo do recebimento de um e-mail, onde após
recebida a mensagem, a mesma passa pelo processo da função hash para obter a
mensagem menor de tamanho fixo desse e-mail e utilizado a chave publica do
remetente para descriptografar a mensagem curta fixa original, podendo assim
comparar ambas e verificar sua autenticidade.
2.5.5 Certificação Digital
Segundo o ITI, certificado digital é um documento eletrônico assinado
digitalmente que cumpre a função de associar uma pessoa a uma chave pública.
Um certificado digital apresenta normalmente as seguintes informações:

Nome da pessoa ou entidade a ser associada a chave publica;

Período de validade do certificado;

Chave pública;

Nome e assinatura da entidade que assinou o certificado;

Número de série.
Um exemplo de uso dos certificados digitais é o serviço bancário disponível
pela internet, onde os bancos possuem certificado para autenticação perante o
cliente, assegurando que o acesso esta sendo realmente com o servidor do banco, e
um exemplo com o cliente é, ao solicitar um serviço como verificar saldo da conta
corrente, utiliza-se o certificado para se autenticar perante o banco.
Segundo Maziero (2009), um cerificado digital é assinado digitalmente através
de técnicas de criptografia assimétrica e função hash, onde o objetivo final é
identificar as entidades através de suas chaves públicas.
2.6
Firewall
Segundo Silva (2002), firewall ou parede de fogo, como traduz o nome, é um
segurança que fica verificando a identidade de quem deseja entrar ou sair da rede,
36
negando acesso de quem não esta liberado, ele é baseado em uma política que
alguém especificou.
Segundo Tanenbaum (2003), a possibilidade de poder conectar qualquer
computador em qualquer lugar a outro computador pela internet é muito bom para
usuários domésticos, entretanto muito perigoso para muitas empresas que possuem
grandes quantidade de informações confidenciais online, onde a descoberta dessas
informações pelos concorrentes poderia trazer sérias consequências. Além do
perigo destas informações saírem da empresa, sempre há o perigo também de
vírus, trojans e outras pestes digitais que podem enganar a segurança e destruir
dados.
Em consequência disso, de acordo com Tanenbaum (2003), são necessários
mecanismos de defesa para filtrar o que entra e sai da empresa online e uma opção
para isso é a construção de um firewall.
Segundo Torres (2009), firewall é um poderoso roteador que interliga duas
redes onde em um dos lados temos a rede publica, que é classificada como
insegura, e no outro lado a rede privada, ou segura, cujo objetivo é analisar os
pacotes IP que passam por ele com origem e destino a uma das redes que ele quer
proteger. O firewall consegue distinguir os protocolos usados e as portas de origem
e destino do pacote, além disso, ele pode saber os endereços de IP da origem e
destino também.
Após isso, ele verifica suas regras que foram atribuídas, analisa se o pacote
pode prosseguir ou não, se ele for aceito pelas regras, o firewall começa a agir como
um roteador normal e repassa os pacotes, do contrario o firewall pode recusar o
recebimento, onde ele envia uma mensagem dizendo que a conexão foi cortada
para o remetente, ou apenas descarta o pacote e ignora qualquer comunicação,
fazendo parecer que o pacote simplesmente se perdeu.
Figura 2.8 – Ligação simples de um firewall
Fonte: Torres, 2001, p. 416
37
Este capítulo abordou os conceitos de segurança que são relevantes para o
seguimento do trabalho, notificando as ameaças predominantes, os ataques mais
comuns e mostrou também alguns mecanismos de defesas utilizados, como
criptografias e firewalls. O entendimento destes conceitos é essencial para a
segurança de uma VPN.
No próximo capítulo será descrito os conceitos de uma VPN, relatando
características e os protocolos utilizados, destacando o IPSec.
38
3 VPN
Segundo Kurose e Ross (2010), atualmente instituições criam VPNs a partir
da Internet pública existente porque a rede privada física tem um alto custo, já que a
empresa precisa comprar, instalar e manter sua própria infraestrutura, e com a VPN
todo tráfego é pela Internet pública, mas todo conteúdo antes de ser transferido pela
internet pública é criptografado para sigilo e segurança.
Segundo Guimarães, Lins e Oliveira (2006), um dos obstáculos a ser
superado para um bom funcionamento de uma VPN esta relacionado a variedade de
protocolos em operação nas redes coorporativas, além do protocolo IP, desta forma
deve ser fornecido um mecanismo para que outros protocolos, além do IP, possam
trafegar entre diversas redes.
Ainda segundo Guimarães, Lins e Oliveira (2006), outro problema é que o
protocolo de rede IPv4 não possui mecanismo de segurança próprio, tornando
inseguro o tráfego de informações pela internet.
De acordo com Tanenbaum (2003), um projeto comum é instalar em cada
filial um firewall e criar túneis pela Internet entre a matriz e as filiais, esse processo
de criação de túneis é chamado de tunneling (tunelamento).
Figura 3.1 – (a) Uma rede privada de linha dedicada (b) Uma rede privada virtual
Fonte: Tanenbaum, 2003, p. 585
Segundo Tanenbaum (2003), quando o sistema de túneis é criado, os
firewalls tem que ter os mesmos parâmetros, incluindo serviços, modos de algoritmo
e as chaves, alguns roteadores podem fazer isso, porém como os firewalls já se
destinam a segurança, o modo mais viável são os túneis começarem e terminarem
no firewall.
39
3.1
Modos de Interconexão
3.1.1 VPN dial-up
Segundo Guimarães, Lins e Oliveira (2006), VPN dial-up ou VPN de acesso
remoto, faz sua conectividade para usuários através de linhas discadas, onde o
maior benefício deste método é o acesso universal, acesso remoto e baixo custo.
Este método também pode ser chamado de VPN host-rede.
3.1.2 VPN de Intranet
Segundo Guimarães, Lins e Oliveira (2006), chamada também de VPN LANto-LAN, o modo de interconexão de VPN Intranet realiza sua conectividade entre as
redes de uma organização, possibilita a interligação de filiais, matrizes e outras
unidades organizacionais, através de uma infraestrutura não confiável, mostrando-se
como uma alternativa a contratação de circuitos dedicados e outros links WAN.
3.1.3 VPN de Extranet
De acordo Guimarães, Lins e Oliveira (2006), as VPNs Extranet proporcionam
conectividade entre parceiros de negócios, clientes e fornecedores, como uma
solução para colaboração, compartilhamento de aplicações e comércio eletrônico
entre empresas diferentes.
3.2
Tunelamento
Segundo Guimarães, Lins e Oliveira (2006), tunelamento é uma processo de
guardar um pacote dentro do outro para facilitar de algum modo no transporte dos
40
dados dentro da rede, através do tunelamento os pacotes são encapsulados por
pacotes IP, assim fornece um mecanismo onde outros protocolos, além do IP,
possam ser transmitidos através de uma VPN.
Na figura 3.2, de acordo com Guimarães, Lins e Oliveira (2006), pode-se
observar um túnel criado pela VPN, os demais computadores da rede não possuem
conhecimento que os pacotes são criptografados e enviados por uma rede pública, o
tunelamento é totalmente invisível e não precisa de nenhum software ou
configuração especial para os computadores de usuários da rede.
Figura 3.2 – Conexão VPN Servidor a Servidor
Fonte: Silva, 2002, p. 23
Segundo Guimarães, Lins e Oliveira (2006), o processo de envio é feito
primeiramente através de uma conexão entre o cliente e o servidor da rede, onde há
uma autenticação, a informação é criptografada e encapsulada em pacotes IP,
esses pacotes contém endereço de origem e destino, a medida que chegam ao
destino, os pacotes são reconstituídos e decodificados para um formato legível.
De acordo com Guimarães, Lins e Oliveira (2006), é importante saber que a
criptografia, o encapsulamento e o tunelamento não tornam os dados enviados
inacessíveis, eles podem ser coletados e analisados, portanto, se for utilizado um
algoritmo de criptografia forte e corretamente implementado, os dados reais deverão
estar seguros até chegar ao seu destino.
3.3
Protocolos para VPN
De acordo com Guimarães, Lins e Oliveira (2006), há diversos protocolos
disponíveis que oferecem segurança e privacidade na conexão para a construção de
redes VPN, não existe um protocolo mais indicado para construção de uma VPN,
41
cada situação deve ser analisada e a aplicabilidade do protocolo depende dos
requisitos e necessidades do cliente, do problema que esta sendo apresentado e da
solução que deseja obter.
Segundo Guimarães, Lins e Oliveira (2006), com o objetivo de garantir
privacidade, autenticidade e integridade das informações trafegadas via internet, a
VPN deve necessariamente utilizar, como citado antes, um controle de acesso e
criptografia para garantir esses requisitos de segurança e os usuários possuem
vários protocolos que oferecem a segurança dos dados, entre eles os principais são
o PPTP, L2TP e IPsec.
Os autores ainda citam que os protocolos PPTP, L2TP são voltados para
VPNs dial-up, e o IPsec é mais utilizado como solução LAN-to-LAN, a escolha
portanto deve-se basear no tipo de VPN que deseja implementar e também nos
aspectos de segurança de cada protocolo que se quer utilizar.
3.3.1 Point-to-Point Protocol (PPP)
Segundo Guimarães, Lins e Oliveira (2006), o protocolo PPP é um dos mais
populares para interligar computadores a provedores de acesso através de uma
linha discada, onde o usuário configura uma conexão PPP entre o host e o servidor
de acesso remoto.
De acordo com Guimarães, Lins e Oliveira (2006), o usuário doméstico se
conecta usando a linha discada e um modem, que realiza uma conexão física com o
modem do servidor de acesso remoto, que pertence ao provedor, e após o
estabelecimento desta conexão física, o computador do usuário envia uma série de
pacotes de negociação ao roteador do provedor, que retorna outros pacotes para
configurar a camada de rede do computador do usuário, como o recebimento de
uma número IP e depois de configurados os parâmetros da camada de rede, o
computador do usuário torna-se um host da internet e pode enviar e receber pacotes
IP.
Segundo Guimarães, Lins e Oliveira (2006), deve-se atentar que para haver
uma conexão PPP, é necessário que a empresa ou provedor de acesso a internet,
possua linhas telefônicas modems para acesso discado de acordo com o número de
42
usuários, onde neste quadro o usuário fica conectado somente a rede da empresa e
se quiser conexão de acesso com a internet, o usuário deverá realizar a ligação para
um servidor de acesso remoto de um provedor.
Figura 3.3 – Exemplo de uso do protocolo PPP
Fonte: Torres, 2001, p. 184
Guimarães, Lins e Oliveira (2006) resume que as principais características do
protocolo PPP são: capacidade de encapsular diversos protocolos dentro dele; trata
a detecção de erros; aceita atribuição dinâmica de endereços IP; permite realizar
autenticação de usuários.
3.3.2 Point-to-Point Tunneling Protocol (PPTP)
Segundo Guimarães, Lins e Oliveira (2006), o protocolo PPTP foi
desenvolvido através de uma união das empresas US Robotics, que é parte da
3Com, Microsoft, Ascend Communication, que é parte da Lucent, e ECI Telematics
para atender os interesses de fornecedores de hardware que participaram de sua
criação, fornecedoras de servidores de acesso remoto e aos interesses da Microsoft,
fornecedora de software para o desenvolvimento de soluções em conectividade
através do uso da internet, como uma VPN.
De acordo com Guimarães, Lins e Oliveira (2006), o protocolo PPTP foi
bastante popularizado depois das implementações realizadas pela Microsoft nos
seus sistemas Windows e tem como base uma arquitetura cliente/servidor onde se
propõe criar um canal seguro de comunicação entre os sistemas de rede Microsoft e
servidores de acesso remoto.
O protocolo PPTP utiliza o protocolo PPP para realizar suas conexões, onde
encapsula os dados através de outro protocolo e os envia a outra extremidade da
VPN, e também permite a opção de trabalhar com outros protocolos além do IP,
43
quando os pacotes chegar ao seu destino, os dados são desencapsulados e cada
pacote segue seu caminho determinado pelo cabeçalho do pacote, deste forma
permite que os usuários disquem para um provedor de acesso a internet local ou
conecte-se diretamente a internet e acessem sua rede como se estivessem em seu
local de trabalho. (GUIMARÃES; LINS; OLIVEIRA, 2003)
De acordo com Guimarães, Lins e Oliveira (2006), o protocolo PPTP possui a
capacidade de autenticação do usuário do protocolo PPP associados a outros
protocolos, porém as chaves de criptografia utilizam a senha do usuário como base,
ou seja, se a senha do usuário for fraca, a criptografia também será, e também é
possível estabelecer túneis ponto-a-ponto individual a partir de um cliente remoto,
onde não há participação de um servidor de acesso remoto.
Figura 3.4 – Conexão PPTP
Fonte: Guimarães, Lins e Oliveira, 2006, p. 92
Segundo Guimarães, Lins e Oliveira (2006), é necessário saber os processos
da comunicação PPTP: Processo de conexão e comunicação PP, que é o processo
em que o cliente utiliza o protocolo PPP para se conectar a um servidor de acesso
remoto ou um provedor de internet através uma linha telefônica; Processo de
conexão de controle PPTP, que é o processo que cria um controle sobre a conexão
do cliente até o servidor PPTP, esta conexão utiliza o protocolo TCP e é chamada
de túnel PPTP; Processo de tunelamento de dados PPTP, o processo que gera os
datagramas IP contém os pacotes PPP criptografados e os envia pelo túnel PPTP
até o servidor PPTP.
44
3.3.3 Layer 2 Tunneling Protocol (L2TP)
De acordo com Guimarães, Lins e Oliveira (2006), o protocol L2TP, ou
Protocolo de Tunelamento da Camada 2, foi desenvolvido pela Internet Engineering
Task Force (IETF) para padronizar o encapsulamento de frames PPP para
construção de VPNs de acesso remoto (dial-up), como uma alternativa para os
protocolos já existentes, onde apresenta melhores características técnicas do que o
protocolo PPTP e o Layer 2 Forwarding (L2F), implementado pela CISCO.
Segundo Guimarães, Lins e Oliveira (2006), o protocolo L2TP além de
oferecer melhores funções e características do que os protocolos PPTP e L2F, ele
oferece a possibilidade de criação de túneis multiponto, que permite que o cliente
inicialize várias VPNs, em outras palavras, um cliente remoto pode criar uma
conexão para acessar um aplicação de banco de dados e outra para acessar a
intranet simultaneamente e também o protocolo L2TP suporta qualquer protocolo
roteado além do IP.
Figura 3.5 – Cenário Típico do L2TP
Fonte: Guimarães, Lins e Oliveira, 2006, p. 97
45
Segundo Guimarães, Lins e Oliveira (2006), os principais componentes do
L2TP são: Sistema Remoto, que é o sistema do cliente ou roteador conectado a um
servidor de acesso de uma rede; L2TP Access Concentrator (LAC), ou concentrador
de acesso L2TP, que é responsável por realizar o tunelamento com a outra
extremidade do túnel; L2TP Network Server (LNS) ou Servidor de Rede L2TP, que
atua como um servidor de acesso remoto; Network Access Server (NAS) ou servidor
de acesso a rede, que é utilizado para acesso dos clientes remotos a uma rede
local, também pode trabalhar como um LAC, um LNS ou ambos.
De acordo com Guimarães, Lins e Oliveira (2006), o L2TP funciona da
seguinte maneira: o cliente remoto inicia uma conexão PPP até o LAC, que realiza o
tunelamento até o LNS através da internet ou outra rede, assim o cliente tem acesso
a rede local e obtém um endereço válido nesta rede; o processo de autorização e
autenticação pode ser realizado por um servidor de domínio dessa rede local.
3.3.4 Multiprotocol Label Switching (MPLS)
Segundo Guimarães, Lins e Oliveira (2006), MPLS ou comutação de rótulos
multiprotocolo foi inicialmente desenvolvido por fabricantes de roteadores com o
objetivo de melhores métodos de roteamento, onde pudessem reduzir ao máximo o
processamento utilizado para o roteador redirecionar o pacote e estes fabricantes,
como a CISCO, a Force10 Networks e a Juniper Networks, focaram na inclusão de
um rótulo no início de cada pacote e a execução do roteamento baseado neste
rótulo, e não no endereço destino.
De acordo com Guimarães, Lins e Oliveira (2006), a ideia dos fabricantes de
roteadores era fazer deste rótulo, um índice para uma tabela interna, como se o
trabalho de localização de saída de uma pacote fosse apenas uma pesquisa
realizada em uma tabela, tornando o roteamento muito mais rápido e desta forma a
solução encontrada aproximou-se bastante dos circuitos virtuais, que são
implementados em outros protocolos como o X.25, ATM e Frame Relay que também
trabalham com uso de rótulos.
Segundo Guimarães, Lins e Oliveira (2006), o maior problema enfrentado é
que os pacotes IP não foram projetados para circuitos virtuais, não permitindo a
46
inserção de rótulos dentro do cabeçalho IP e a solução encontrada foi adicionar o
cabeçalho MPLS antes do cabeçalho IP e encapsular o MPLS com o uso do PPP
entre os roteadores.
Figura 3.6 – Datagrama IP dentro de uma infraestrutura MPLS
Fonte: Guimarães, Lins e Oliveira, 2006, p. 99
Segundo Guimarães, Lins e Oliveira (2006), os roteadores que entendem os
pacotes MPLS são chamados de Label Switch Router (LSR), o caminho percorrido
pelo pacote é chamado de Label Switch Path (LSP) e a comunicação feita entre os
roteadores utiliza o protocolo de comunicação Label Distribution Protocol (LDP).
De acordo com Silva (2003), protocolo MPLS pode ser utilizado amplamente
para a construção de uma VPN, pois garante um isolamento completo do tráfego
através da sua criação de tabelas de rótulos usadas para roteamento.
Segundo Guimarães, Lins e Oliveira (2006), o problema da construção de
uma VPN utilizando o protocolo MPLS é que são necessários roteadores LSR entre
as entidades comunicantes.
Figura 3.7 – Componentes de uma rede MPLS
Fonte: Guimarães, Lins e Oliveira, 2006, p. 100
47
3.3.5 Security Architecture for IP (IPsec)
Segundo Guimarães, Lins e Oliveira (2006), o protocolo IPSec é um conjunto
de protocolos que defina uma arquitetura e padrões para prover serviços de
segurança na camada IP e pode ser aplicado tanto em ambientes IPv4 quanto em
ambientes IPv6.
Guimarães, Lins e Oliveira (2006) citam que o padrão IPSec foi definido após
várias discussões sobre qual seria a melhor camada para implementar criptografia
na Internet, onde especialistas acreditavam que as melhores seriam a camada de
aplicação ou de transporte, entretanto, outros especialistas acreditavam que a
camada de rede seria a melhor escolha, pois os mecanismos da camada de rede
seriam transparentes ao usuário.
De acordo com Guimarães, Lins e Oliveira (2006), diante dos argumentos
foram definidos os padrões que compõe o IPSec como o protocolo Authentication
Header (AH) que provê serviços de integridade, autenticação e não rejeição nas
conexões; o protocolo Encapsulating Security Payload (ESP) que provê serviços de
criptografia e limite no fluxo de tráfego; o protocolo Internet Security Association and
Key Management Protocol (ISAKMP) responsável pelo gerenciamento de chaves; e
um algoritmo de criptografia nulo.
Os
autores
resumem
que
o
IPSec
é
um
padrão
que
garante
interoperabilidade, qualidade, segurança baseada em criptografia para os protocolos
de rede IPv4 e IPv6 e ainda define vários serviço de segurança como o controle de
acesso, integridade, autenticação, criptografia e limite de fluxo de tráfego.
3.3.5.1 Security Associations
De acordo com Guimarães, Lins e Oliveira (2006), o IPSec atribui o conceito
de Security Associations (SA) ou Associações de Segurança, que é uma negociação
como um contrato de segurança, entre as duas entidades da rede e a forma que as
informações será transmitidas entre elas.
Segundo Tanenbaum (2003), uma AS é uma conexão simplex, ou
unidirecional, entre dois pontos extremos que gera um identificador de segurança
48
único associado a ela, ou seja, se necessário trafegar dados com segurança em
ambos sentidos, será feito uma nova associação de segurança.
Segundo Guimarães, Lins e Oliveira (2006), as SAs são identificadas por três
parâmetros: Security Parameter Index (SPI) ou Índice de Parâmetro de Segurança,
que é uma linha de bits e levada nos headers do AH e ESP com o objetivo de
possibilitar ao destinatário identificar qual é a AS relacionada a cada informação
recebida; Identificador de Protocolo de Segurança que indica qual o protocolo de
segurança que a SA utiliza; Endereço IP destino que indica qual IP do ponto final da
AS, podendo ser qualquer entidade da rede, como um host, um firewall ou um
roteador.
Figura 3.8 – Associação de Segurança
Fonte: Kurose e Ross, 2010 p. 528.
3.3.5.2 Modo de Transporte e de Túnel
De acordo com Tanenbaum (2003), existe dois modos para usar o IPSec, o
modo de transporte, onde o cabeçalho IPSec é colocado depois do cabeçalho IP e o
campo Protocol é modificado para indicar que um cabeçalho IPSec segue o
cabeçalho IP normal.
Tanenbaum (2003), destaca que o cabeçalho IPSec também carrega as
informações de segurança, um novo número de sequência, possivelmente uma
verificação de integridade da carga e principalmente o identificar AS.
De acordo com Guimarães, Lins e Oliveira (2006), o modo de túnel ou
tunelamento, é a base para as implementações das redes VPNs dedicadas entre
49
dois roteadores e também para conexões VPN entre usuários em hosts remotos e
roteadores dentro de uma Intranet e que neste modo não é necessário configurar
todas as estações e servidores com o protocolo IPSec, podendo-se fazer isso
somente nos roteadores ou gateways.
Na figura 3.9 observa-se a transformação sofrida pelo pacote original para ser
transmitido em uma rede que utiliza o IPSec no modo de transporte, nesse modo um
cabeçalho IPSec é adicionado após o cabeçalho original assim permite o campo
carga ser criptografado. Já na figura 3.10 observa-se a transformação sofrida pelo
pacote original para ser transmitido em uma rede que utiliza o IPSec no modo túnel,
nesse modo um novo cabeçalho IP e também um cabeçalho IPSec é adicionado,
assim o cabeçalho IP original e a carga podem ser criptografados.
Figura 3.9 – Modo de Transporte SA
Fonte: Guimarães, Lins e Oliveira, 2006, p. 106
Guimarães, Lins e Oliveira (2006) citam que os dois modos, transporte ou
túnel, podem ter cabeçalhos ESP ou AH.
Figura 3.10 – Modo de Túnel SA
Fonte: Guimarães, Lins e Oliveira, 2006, p. 107
50
3.3.5.3 Protocolos AH e ESP
De acordo com Kurose e Ross (2010), a diferença entre o protocolo AH e
ESP é que o protocolo AH fornece autenticação e integridade das informações, mas
não oferece confidencialidade e o protocolo ESP fornece autenticação, integridade
das informações e confidencialidade, o que torna o protocolo ESP muito mais
utilizado do que o protocolo AH, já que confidencialidade é muitas vezes essencial
para as VPNs e outras aplicações do IPSec.
Segundo Guimarães, Lins e Oliveira (2006), o processo de autenticação e
integridade utiliza algoritmos hashing que calculam um valor único quando uma
informação é passada como entrada da função hash, que utiliza a chave
estabelecida na SA e assim o processo deve garantir que seja inviável encontrar
outro mecanismo que gere o mesmo código.
Na figura 3.11 observa-se o pacote IP antes e depois da aplicação do AH em
modo transporte e modo túnel. No modo transporte um cabeçalho de autenticação é
adicionado após o cabeçalho IP original assim exceto os campos mutantes são
autenticados. No modo túnel um novo cabeçalho IP é adicionado e em seguida um
cabeçalho de autenticação permitindo que todos os campos sejam autenticados.
Figura 3.11 – Modo Transporte e Túnel no protocolo AH
Fonte: Guimarães, Lins e Oliveira, 2006, p. 110
51
De acordo com Guimarães, Lins e Oliveira (2006), os algoritmos hashing mais
conhecidos implementados no IPSec são o Message Digest 5 (MD5) e o Secure
Hash Algorithm (SHA-1), e o uso de chave publica com alguns destes algoritmos
hashing é definido como Key-hashing for Message Authentication (HMAC).
Ainda de acordo com Guimarães, Lins e Oliveira (2006), o protocolo AH pode
operar tanto no modo transporte como no modo túnel e a diferença esta na inserção
do cabeçalho, onde no modo transporte o AH é inserido após o cabeçalho IP e antes
do protocolo de mais alto nível, e no modo túnel é gerado um novo cabeçalho que
leva
o
cabeçalho
original
encapsulado
acompanhado
pelo
cabeçalho
de
autenticação.
Segundo Guimarães, Lins e Oliveira (2006), o protocolo ESP fornece, além
das características do AH, a confidencialidade por meio de criptografia, onde ele
inclui seu cabeçalho ao pacote e criptografa as informações utilizando um protocolo,
geralmente o triple-DES (3DES). O protocolo ESP também pode operar dos dois
modos, o modo de transporte e o modo de túnel, entretanto, no modo transporte
além de ser inserido antes do protocolo IP, o ESP também é usado para criptografar
e opcionalmente autenticar os dados carregados pelo IP, adicionando um trailer ESP
antes do cabeçalho do protocolo da camada de transporte, e no modo túnel ele é
utilizado para criptografar todo pacote IP, onde encapsula o pacote original dentro de
um novo pacote IP.
Figura 3.12 – Modo Transporte e Túnel no protocolo ESP
Fonte: Guimarães, Lins e Oliveira, 2006, p. 113
Guimarães, Lins e Oliveira (2006) enfocam que o protocolo ESP pode fazer
tudo o que o AH faz, porém ele não é substituível, pois o protocolo ESP checa
52
somente a integridade da carga do pacote IPSec enquanto o AH chega a integridade
do pacote por inteiro e isso torna para aplicações que requerem alto nível de
segurança, a utilização dos dois protocolos em conjunto.
3.3.5.4 Banco de Dados de Segurança
De acordo com Guimarães, Lins e Oliveira (2006), o protocolo IPSec trabalha
com dois banco de dados: Security Policy Database (SPD) ou banco de dados de
Políticas de Segurança e o Security Association Database (SAD) ou banco de dados
de Associação de Segurança.
Segundo Guimarães, Lins e Oliveira (2006), o SPD define o conjunto de
politicas
de
segurança
para
qualquer
tráfego
IP
de
entrada
e
saída,
independentemente da SA, e o SAD define o conjunto de regras ligadas a SA.
Os autores ainda explicam que o quando um pacote IP esta saindo, o SPD
avalia o mesmo para ver se os requisitos dele atende as politicas de segurança
especificadas pelo IPSec e também se há ou não a existência de um SA já
estabelecida, onde, caso já exista, o pacote é processado de acordo com a SAD e
se a SA não existir, é gerada uma nova SA que será negociada para o pacote e as
novas informações da SA são guardadas na SAD.
3.3.5.5 Gerenciamento de Chaves
De acordo com Kurose e Ross (2010), uma VPN que possui um número
limitado de roteadores, por exemplo, apenas dois roteadores, o administrador de
rede pode aplicar as informações sobre a SA manualmente nos SADs dos pontos de
destino, entretanto, é irrealizável para uma VPN grande, na qual pode possuir
centenas ou milhares de roteadores e hosts IPSec.
Ainda segundo Kurose e Ross (2010), estas grandes implementações e
quase sempre geograficamente distribuídas, requerem um mecanismo automático
53
para a geração das SAs, que o IPSec faz com o protocolo Internet Key Exchange
(IKE) ou protocolo de Troca de Chaves.
De acordo com Kurose e Ross (2010), o protocolo IKE ajusta de forma
automática as SAs, através de duas fases, desta forma permite maior proteção
contra ataques.
Ainda de acordo com Kurose e Ross (2010), a primeira fase é baseada em
duas trocas de pares de mensagem, onde durante a primeira troca os dois lados
criam um IKE SA bidirecional entre os roteadores, cifrado e autenticado entre os
roteadores, e durante a primeira troca de par de mensagens são estabelecidas as
chaves para a autenticação e criptografia para o IKE SA, seguido de uma chave
mestre que será utilizada para calcular chaves SA IPSec na fase 2.
Segundo Kurose e Ross (2010), durante a segunda troca de mensagens, os
lados mostram um ao outro sua identidade, assinando suas mensagens, entretanto,
as identidades não são reveladas.
Na fase 2, Kurose e Ross (2010) explicam que ambos lados criam uma SA
em cada direção e ao fim desta fase, as chaves de sessão serão estabelecidas para
autenticação e criptografia para os dois lados e para as duas SAs, e assim então
ambos lados podem usar as SAs e transmitir dados seguros.
3.3.5.6 Vantagens e Desvantagens
De acordo com Guimarães, Lins e Oliveira (2006), o protocolo IPSec protege
qualquer outro protocolo que funcione sobre o protocolo IP e outros meios físicos
que suportam o protocolo IP, desta forma a grande vantagem do padrão IPSec é
aproveitar a infraestrutura de rede IP existente além de outras vantagens sobre
outros protocolos mais conhecidos como o PPTP e L2TP.
Guimarães, Lins e Oliveira (2006) definem que os maiores benefícios do
IPSec são: simplicidade do uso; flexibilidade; transparente a sub-rede; fácil
manutenção; fácil implementação; gerenciamento manual e automático de chaves;
no entanto, ressalta as limitações do IPSec: ele não é seguro se o sistema não for;
não previne ataques Denial of Service (DoS); e também não evita a análise de
trafego de rede.
54
Ainda segundo os autores, com os bons pontos apresentados ao se utilizar o
protocolo IP o torna uma ferramenta poderosa contra vários tipos de invasões e
ataques, pois se utilizado de forma correta e combinado com seus recursos pode-se
tirar proveitos do modo transporte ou túnel e utilizar certificados digitais ou
compartilhar chaves através do protocolo IKE, assim diminui a possibilidade de um
invasor encontrar vulnerabilidades na conexão.
55
4 IMPLEMENTAÇÃO DE UMA VPN EM FREEBSD
A escolha do sistema operacional para os computadores que fazem a função
de gateways e as ferramentas utilizadas para implementar o protocolo IPSec é
essencial no início do processo de configuração de uma VPN. Há vários meios e
ferramentas para implementar uma VPN, alguns com preços diferenciados e outros
gratuitos, onde depende do sistema operacional utilizado e qual o suporte pretende
receber.
Este trabalho utilizou o sistema operacional FreeBSD, que é um sistema
baseado no Unix, versátil, oferece varias opções possíveis de configuração, é
gratuito e pode ser baixado da internet ou copiado de outra mídia, o que torna o
custo baixo para as empresas já que dispensa o custo com licenças.
As ferramentas utilizadas para a implementação e testes das VPNs no
sistema operacional FreeBSD foram o IPSec e OpenVPN, que são métodos
bastante utilizados nos dias atuais, ambas são gratuitas também.
Todas as orientações para instalar e configurar as ferramentas acima citadas
é retirado de livros, fóruns de discussões e documentações on-line, que podem ser
obtidas no site da comunidade responsável por cada uma delas.
A seguir é mostrada como as VPNs foram implementadas, detalhando o
cenário dos testes, configurações e as avaliações de desempenho obtidas.
4.1
CENÁRIO
Com base na Figura 4.1, os testes foram realizados interligando duas redes
distintas, onde cada uma possui um gateway VPN e um host, também foi utilizado
um servidor com o sistema operacional RouterOS, cuja função instalada foi rotear os
dados entre as redes, simulando a internet. Toda comunicação entre as maquinas é
realizada por conexões de 100 Mbps. Cada gateway é composto por duas placas de
rede, uma para a rede interna e a outra para a interligação com a VPN. Os hosts
possuem apenas uma placa de rede e funcionam em ambiente Windows.
O servidor que faz a simulação da Internet possui também duas placas de
rede, sendo uma interligada com a Gateway A e a outra com o Gateway B.
56
Figura 4.1 – Cenário da implementação
Fonte: Elaborado pelos autores, 2012.
Os testes foram realizados conforme as seguintes configurações de rede:
Componentes da REDE A
Servidor Gateway VPN
Sistema Operacional: FreeBSD 8.2 / Hostname: gatewaya
IP da interface em0: 192.168.0.1 / Netmask: 255.255.255.0 / Network: 192.168.0.0
IP da interface em1: 172.16.0.1 / Netmask: 255.255.255.0 / Network: 172.16.0.0
Gateway: 172.16.0.254
Host
Sistema Operacional: Windows XP Professional / Hostname: hosta
Gateway: 192.168.0.2
Componentes da REDE B
Servidor Gateway VPN
Sistema Operacional: FreeBSD 8.2 / Hostname: gatewayb
IP da interface em0: 192.168.1.1 / Netmask: 255.255.255.0 / Network: 192.168.1.0
IP da interface em1: 172.16.1.1 / Netmask: 255.255.255.0 / Network: 172.16.1.0
Gateway: 172.16.1.254
Host
Sistema Operacional: Windows XP Professional / Hostname: hostb
57
Gateway: 192.168.1.2
Roteador
Sistema Operacional: RouterOS / Hostname: mikrotik
IP da interface ether1: 172.16.0.254 / Netmask: 255.255.255.0 / Network: 172.16.0.0
IP da interface ether2: 172.16.1.254 / Netmask: 255.255.255.0 / Network: 172.16.1.0
4.2
IMPLEMENTAÇÃO DA VPN COM IPSEC
Por não ser parte dos objetivos deste trabalho, a instalação do sistema
operacional FreeBSD não será abordada, entretanto, algumas configurações são
necessários para o funcionamento do protocolo IPSec no sistema operacional
utilizado. Essas configurações são abordadas na seção 4.2.1.
No FreeBSD o IPSec é suportado nativamente e oferece em seu kernel os
mecanismos de criptografia AH e ESP.
4.2.1 Compilação do Kernel
Para utilizar uma VPN com o protocolo IPSec no sistema FreeBSD, é
necessário recompilar seu kernel com as seguintes instruções necessárias:
options
IPSEC
options
IPSEC_DEBUG
device
crypto
device
cryptodev
Após a recompilação do kernel com estas configurações, o sistema esta
pronto para trabalhar com o protocolo IPSec.
4.2.2 Configuração do Firewall
A configuração do firewall não é obrigatória para implementação de uma VPN,
porém é altamente recomendado que seus gateways da VPN tenha algum tipo de
58
firewall para filtrar a comunicação da interface pública do primeiro gateway para a
interface pública do segundo gateway.
O tipo de firewall usado fica a critério de administrador, recomenda-se uma
boa política de segurança para seus gateways, caso contrário, toda a segurança da
VPN é colocada em risco.
Como não é objetivo deste trabalho, também não serão abordadas
configurações de firewall, já que não é necessário para a implementação da VPN,
mas é extremamente recomendado.
4.2.3 Configuração de uma VPN com IPSec
O primeiro passo para a criação da VPN é pelas configurações do Gateway
A.
Para
configurar
o
gateway
é
necessário
criar
o
arquivo
/usr/local/etc/rc.d/vpn.sh com o seguinte conteúdo:
#!/bin/sh
Ifconfig gif0 create tunnel 172.16.0.1 172.16.1.1
Ifconfig gif0 192.168.0.1 192.168.1.1 netmask 0xffffffff
route add –net 192.168.1.0/24 192.168.1.1
setkey –f /etc/ipsec.conf
Atribua a permissão de execução para o arquivo criado anteriormente e agora
é necessário a criação do arquivo /etc/ipsec.conf com o seguinte conteúdo:
flush;
spdflush;
add
172.16.0.1
172.16.1.1
esp
1001
–E
blowfish-cbc
1002
–E
blowfish-cbc
“7b6e07868cb35728829df37e638775ce”;
add
172.16.1.1
172.16.0.1
esp
“7b6e07868cb35728829df37e638775ce”;
spdadd
192.168.0.0/24
192.168.1.0/24
any
–P
out
ipsec
in
ipsec
esp/tunnel/172.16.0.1-172.16.1.1/require;
spdadd
192.168.1.0/24
192.168.0.0/24
esp/tunnel/172.16.1.1-172.16.0.1/require;
any
–P
59
Após configurado esses dois arquivos o Gateway A já está apto a fazer uma
VPN, agora faz-se necessário a configuração do Gateway B, que é muito parecida
com a do Gateway A, com a alteração apenas dos IPs de conexão.
Para
configurar
o
Gateway
B
inicia-se
criando
o
arquivo
/usr/local/etc/rc.d/vpn.sh com o seguinte conteúdo:
#!/bin/sh
ifconfig gif0 create tunnel 172.16.1.1 172.16.0.1
ifconfig gif0 192.168.1.1 192.168.0.1 netmask 0xffffffff
route add –net 192.168.0.0/24 192.168.0.1
setkey –f /etc/ipsec.conf
Como no Gateway A, deve-se atribuir a permissão de execução para o
arquivo criado. Depois é necessário criar o arquivo /etc/ipsec.conf com o
seguinte conteúdo no Gateway B:
flush;
spdflush;
add
172.16.0.1
172.16.1.1
esp
1001
–E
blowfish-cbc
1002
–E
blowfish-cbc
“7b6e07868cb35728829df37e638775ce”;
add
172.16.1.1
172.16.0.1
esp
“7b6e07868cb35728829df37e638775ce”;
spdadd
192.168.1.0/24
192.168.0.0/24
any
–P
out
ipsec
in
ipsec
esp/tunnel/172.16.1.1-172.16.0.1/require;
spdadd
192.168.0.0/24
192.168.1.0/24
any
–P
esp/tunnel/172.16.0.1-172.16.1.1/require;
Após criado estes arquivos, os gateways estão prontos para fechar uma VPN,
entretanto, deve-se atentar que as chaves utilizados no gateways A e B devem ser
idênticas, caso contrário, a VPN não funciona.
Para
iniciar
a
VPN
criada
basta
executar
os
arquivos
/usr/local/etc/rc.d/vpn.sh em cada gateway e, depois disso, já é possível
a comunicação entre uma intranet e outra.
Para verificar se realmente se há comunicação pode ser utilizada a
ferramenta ping para testar a conexão entre as redes e para verificar se o tráfego
60
esta criptografado foi utilizada a ferramenta tcpdump, de acordo com o comando a
seguir, é necessário passar como parâmetro a placa de rede da conexão pública, a
figura 4.2 mostra o tráfego criptografado capturado pela ferramenta tcpdump.
#tcpdump –i em1
Figura 4.2 – Tráfego criptografado utilizando IPSec
Fonte: Elaborado pelos autores, 2012.
4.2.4 Análise de desempenho da VPN com IPSec
Para efetuar uma análise de desempenho da VPN criada, foi utilizado o
software jperf, que simulou uma transferência de um arquivo com o tamanho de 100
MB.
Após as transferências realizadas, as figuras 4.3, 4.4 mostram os resultados
obtidos.
Nas análises o jPerf foi utilizado em modo cliente no host A conectando-se ao
host B que foi configurado em modo servidor, e também utilizada a transmissão de
104.857.600 bytes, equivalente a 100MB.
Nas figuras 4.3 e 4.6 resultam a análise utilizando-se as configurações
padrões do jPerf, que faz uma única transmissão.
Nas figuras 4.4 e 4.7 foi utilizado o modo Dual, que realiza duas transmissões
simultâneas.
61
Figura 4.3 – Análise de transferência simples utilizando o IPSec
Fonte: Elaborado pelos autores, 2012.
Figura 4.4 – Análise de transferência com arquivos simultâneos utilizando o IPSec
Fonte: Elaborado pelos autores, 2012.
62
4.3
IMPLEMENTAÇÃO DA VPN COM OPENVPN
Nesta seção foi criada uma VPN usando a ferramenta OpenVPN que é uma
solução muito utilizada bastante segura e flexível. Como explicado anteriormente,
por não ser o objetivo do trabalho não não foi abordada a instalação do sistema
operacional FreeBSD e nem de um firewall, foi abordada somente as instalações e
configurações necessários para criação da VPN com o OpenVPN para realização da
análise de desempenho.
4.3.1 Instalação do OpenVPN
A instalação do OpenVPN no sistema operacional FreeBSD pode ser feita de
duas maneiras: a primeira através da compilação de seus códigos fonte, a segunda
pelo gerenciador de pacotes Ports, que é nativo do sistema. Optou-se pela segunda
opção pela facilidade e segurança que o gerenciador oferece, já que os pacotes por
ele instalados são versões estáveis.
A instalação do OpenVPN é feita através dos seguintes comandos:
#cd /usr/ports/security/openvpn
#make install clean
A instalação é feita de modo padrão, sem adição de novos complementos.
4.3.2 Configuração do OpenVPN
Para iniciar a configuração do OpenVPN é necessário criar o diretório
/usr/local/etc/openvpn
e
dentro
deste
diretório
criar
o
openvpn.conf, começando pelo Gateway A, com o seguinte conteúdo:
dev tun
proto udp
arquivo
63
port 22222
keepalive 10 120
comp-lzo
persist-key
persist-tun
float
cipher AES-256-CBC
ifconfig 10.0.0.1 10.0.0.2
secret static.key
route 192.168.1.0 255.255.255.0
push “route 192.168.0.0 255.255.255.0”
No Gateway B a configuração é realizada da mesma maneira, com a
alteração de apenas alguns parâmetros do arquivo openvpn.conf, sendo assim, a
configuração realizada no Gateway B é a seguinte:
remote 172.16.0.1
dev tun
proto udp
port 22222
keepalive 10 120
com-lzo
persist-key
persist-tun
float
cipher AES-256-CBC
ifconfig 10.0.0.2 10.0.0.1
secret static.key
route 192.168.0.0 255.255.255.0
Após criado os arquivos, é necessário criar uma chave utilizada para
criptografar os dados da VPN. É importante observar a criação da chave com
comprimento de 256 bits ou 32 caracteres, como a utilizada na implementação do
IPSec. A geração da chave é realizada pelo seguinte comando:
64
#openvpn –-genkey –-keysize 256 -–cipher AES-256-CBC -–secret
static.key
Esta chave deve ser a mesma em ambos os gateways e deve ser encontrada
dentro do diretório /usr/local/etc/openvpn, sendo assim, depois de gerada a
chave deve ser copiada para o outro gateway.
Depois de realizadas estas configurações, foi inicializado o OpenVPN com o
comando ./usr/local/etc/rc.d/openvpn onestart nos gateways, caso não
aconteça falhas, a redes já poderão trocar informações.
Na Figura 4.5 é mostrado o tráfego criptografado capturado pela ferramenta
tcpdump.
Figura 4.5 – Tráfego criptografado utilizando OpenVPN
Fonte: Elaborado pelos autores, 2012.
4.3.3 Analise de desempenho da VPN com OpenVPN
Para efetuar a análise de desempenho da VPN criada com o OpenVPN foi
utilizado os mesmos critérios de análise da VPN criada com o IPSec.
Após as transferências realizadas, os resultados obtidos são mostrados pelas
figuras 4.6 e 4.7.
65
Figura 4.6 – Análise de transferência simples utilizando o OpenVPN
Fonte: Elaborado pelos autores, 2012.
Figura 4.7 – Análise de transferência com arquivos simultâneos utilizando o
OpenVPN.
Fonte: Elaborado pelos autores, 2012.
4.4
CONSIDERAÇÕES FINAIS
De acordo com o cenário implementado e das análises realizadas, pode-se
verificar pelas figuras 4.2 e 4.5, que os dados que trafegam entre os hosts estão
criptografados, sendo assim, não foi possível identificar os dados, desta forma
garante confidencialidade das informações transmitidas.
66
A configuração do IPSec e OpenVPN são complexas e exige que o
administrador tenha conhecimentos sobre o protocolo e o software implementado
nas análises.
Segundo as análises apresentadas, nota-se que o protocolo IPSec leva uma
pequena vantagem de desempenho em relação ao tempo de transferência de
aproximadamente 8% e 16% nos testes realizados sobre o OpenVPN, porém a
complexidade de configuração do IPSec é maior em relação ao
OpenVPN,
entretanto, ambas as soluções são viáveis em comparação com as soluções pagas.
Nas análises foram obtidos os resultados com a utilização do recurso
criptográfico do protocolo ESP no IPSec e no OpenVPN foi utilizada a troca de
chaves simétricas, que são os modos mais conhecidos de implementação dessas
soluções, porém podem-se utilizar outros algoritmos criptográficos e obter
desempenhos diferentes.
67
CONCLUSÃO
As VPNs são cada vez mais utilizadas por órgãos governamentais ou
privados devido a economia que a tecnologia oferece por permitir utilizar soluções
com links de menor custo e de softwares gratuitos, e pela segurança obtida através
de algoritmos de criptografia e protocolos específicos no tráfego das informações.
O aumento de uso das VPNs está relacionado com o aumento dos links
comercializados pelas empresas prestadoras de serviço e também pela diminuição
de custos, o que torna cada vez mais acessível até mesmo para pequenas
empresas.
É essencial reafirmar que nem o IPSec e o OpenVPN garantem a segurança
total de uma rede, é necessário políticas de segurança rigorosas para evitar
problemas com falhas, sejam elas de hardware, software ou humana.
O sistema operacional FreeBSD apesar de não ser muito conhecido como o
Linux, é um sistema muito estável e eficaz, sendo um opção economicamente
atrativa para as organizações.
Este trabalho propôs mostrar as análises de desempenho comparativas de
VPNs com duas soluções muito utilizadas, por este modo, não abordou muitos
detalhes da implementação e configuração das VPNs.
As dificuldades encontradas durante o desenvolvimento deste trabalho foram
a falta de conhecimento aprofundado no assunto, encontrar uma ferramenta de
análise funcional e gratuita e o tempo disponível para o desenvolvimento do mesmo.
No primeiro caso entendeu-se que a VPN pode ser interligada de várias
maneiras, com vários protocolos e criptografias e até mesmo com a associação
deles, isso gerou dúvidas sobre qual seriam os mais fáceis e conhecidos para se
efetuar as análises, sendo necessário buscar respostas em livros e fóruns de
discussões na Internet e depois de um estudo um pouco mais amplo sobre eles para
efetuar as implementações a serem analisadas.
No segundo caso foi encontrar uma ferramenta que pudesse demonstrar as
análises de uma forma mais fácil e eficaz, foram encontradas várias ferramentas,
mas pagas e com limitações nas versões de demonstração.
No terceiro e último caso, foi necessário redefinir algumas prioridades, deixar
alguns finais de semana de diversão e descanso de lado e a redução de algumas
68
horas de sono ou almoço para possibilitar a conclusão do trabalho, principalmente
na etapa final com os ajustes de finalização.
De acordo com as figuras 4.3 e 4.6, na qual foi efetuada uma transferência
com o tamanho de 100MB obteve-se o resultado no tempo de transferência de 18.1
segundos na VPN interligada com o IPSec e 19.7 segundos na VPN com o
OpenVPN. Observa-se de acordo com as figuras 4.4 e 4.7, foi efetuada uma
transferência simultânea de arquivos, ou seja, foi transferido dois arquivos de 100MB
ao mesmo tempo e obteve-se o tempo de 29.8 segundos na VPN interligada com o
IPSec e 35.5 segundos na VPN interligada com o OpenVPN o que mostra que o
protocolo IPSec apresentou um melhor tempo na transferência de arquivos nos dois
casos.
Os resultados obtidos neste trabalho foram satisfatórios para que possa
entender melhor o funcionamento desta tecnologia e também a análise de duas
soluções muito utilizadas.
Como sugestão para trabalhos futuros e de forma para elevar os
conhecimentos nesta tecnologia pode-se realizar outras análises de desempenho
com a comparação de outros algoritmos criptográficos ou até mesmo implementar
outros protocolos, tendo este trabalho como base.
Sugere-se também a implementação de uma VPN de forma mais detalhada
com os comandos e alterações explicadas passo a passo para que possa atingir um
público mais leigo no assunto, dando como base para futuros estudos e
conhecimentos com a utilização do sistema operacional FreeBSD que é um sistema
robusto e estável, porém pouco disseminado no mercado comparando-se aos
concorrentes. Por fim, seria interessante efetuar os testes em uma VPN em
funcionamento real em uma empresa para considerar os problemas de colisão,
latência e largura de banda da rede na análise comparativa.
69
REFERÊNCIAS BIBLIOGRÁFICAS
GUIMARÃES, A. G; LINS, R. D; OLVEIRA, R. Segurança com Redes Privadas
Virtuais VPNs. Rio de Janeiro: Brasport, 2006.
ITI – Instituto Nacional de Tecnologia da Informação. O que é certificação digital?.
Guia Explicativo. 2011. Disponível em: <http://www.iti.gov.br/> Acesso em: 06 dez.
2011.
KUROSE, J. F. e ROSS, K. W. Redes de Computadores e a Internet: uma
abordagem top down. 5ª Ed. São Paulo: Addison Wesley, 2010.
MAZIERO, C. A. Sistemas Operacionais. Curitiba: Universidade Tecnológica
Federal do Paraná, 2009. Disponível em: <http://dainf.ct.utfpr.edu.br/~maziero/>
Acesso em: 12/11/2011.
MENDES, D. R. Redes de Computadores – Teoria e Prática. São Paulo: Novatec,
2007.
MORIMOTO, C. E. Redes – Guia Completo.
E-book. 2002. Disponível em: <
http://www.de9.ime.eb.br/~mpribeiro/redes/Redes.pdf> Acesso em: 13/11/2011.
PEREIRA, A. P. O que é Hash? - O que é hash e para que serve, 04 mar. 2009.
Disponível em: <http://www.tecmundo.com.br/1663-o-que-e-hash-.htm> Acesso em:
06 dez. 2011.
PFLEEGER, C.; PFLEGGER, S. L. Security in Computing. 4th Edition. New Jersey:
Prentice Hall, 2006.
70
SILVA, L. S. Virtual Private Network – VPN. São Paulo: Novatec, 2002.
TANENBAUM, A. S. Redes de Computadores. 4ª Ed. Rio de Janeiro: Campus,
2003.
TORRES, G. Redes de Computadores – Curso Completo. Rio de Janeiro: Axcel
Books, 2001.
WOLF,
A.
S.
Manual
Servidor
Debian.
2007.
Disponível
em
<http://ensino.univates.br/~awolf/ManualServidorDebian1_0.pdf> Acesso em: 14 set.
2011.
Download

centro estadual de educação tecnológica paula souza