construindo e integrando vpns utilizando ipsecjamhour/rss/tccrss08a... · juscelino c. de lima...

14
Construindo e Integrando VPNs Utilizando IPSEC Juscelino C. de Lima Junior, Graziele O. Alves Curso de Segurança de sistemas Pontifícia Universidade Católica do Paraná Curitiba, Outubro de 2009 Resumo A necessidade de troca de informações de forma segura e a baixo custo tornou-se um problema para a maioria das empresas que possuem suas filiais em espaços geográficos dispersos, e seus dados estruturados através de redes de computadores. A VPN – Rede Privada Virtual – é uma das soluções mais viáveis no mercado atual. Neste artigo serão mostrados os principais conceitos desta tecnologia, utilizando o sistema operacional Linux, junto com a suíte de protocolos IPSEC e o aplicativo openswan, a fim de proporcionar uma solução atrativa para empresas privadas. 1. Introdução A Virtual Private Networks (VPN) é uma das maneiras de unir empresas geograficamente dispersas, onde se utilize um meio publico para o tráfego dos dados entre as redes, como a Internet. O mecanismo fundamental que permite ter uma comunicação segura na Internet é a noção de túneis. Tendo um túnel podemos deixá- lo seguro através de criptografia e autenticação de dados que trafegam por ele, recriando então a mesma segurança que tínhamos em linhas privadas alugadas ou proprietárias. 2. Objetivos Os objetivo do trabalho é o estudo sobre VPN e suas tecnologias, a implementação de uma rede com vpn e assim será feita uma análise dos resultados obtidos.

Upload: others

Post on 31-May-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Construindo e Integrando VPNs Utilizando IPSECjamhour/RSS/TCCRSS08A... · Juscelino C. de Lima Junior, Graziele O. Alves Curso de Segurança de sistemas Pontifícia Universidade Católica

Construindo e Integrando VPNs Utilizando IPSEC

Juscelino C. de Lima Junior, Graziele O. Alves

Curso de Segurança de sistemas Pontifícia Universidade Católica do Paraná

Curitiba, Outubro de 2009

Resumo

A necessidade de troca de informações de forma segura e a baixo custo tornou-se um problema para a maioria das empresas que possuem suas filiais em espaços geográficos dispersos, e seus dados estruturados através de redes de computadores. A VPN – Rede Privada Virtual – é uma das soluções mais viáveis no mercado atual. Neste artigo serão mostrados os principais conceitos desta tecnologia, utilizando o sistema operacional Linux, junto com a suíte de protocolos IPSEC e o aplicativo openswan, a fim de proporcionar uma solução atrativa para empresas privadas.

1. Introdução

A Virtual Private Networks (VPN) é uma das maneiras de unir empresas geograficamente dispersas, onde se utilize um meio publico para o tráfego dos dados entre as redes, como a Internet. O mecanismo fundamental que permite ter uma comunicação segura na Internet é a noção de túneis. Tendo um túnel podemos deixá-lo seguro através de criptografia e autenticação de dados que trafegam por ele, recriando então a mesma segurança que tínhamos em linhas privadas alugadas ou proprietárias.

2. Objetivos

Os objetivo do trabalho é o estudo sobre VPN e suas tecnologias, a implementação de uma rede com vpn e assim será feita uma análise dos resultados obtidos.

Page 2: Construindo e Integrando VPNs Utilizando IPSECjamhour/RSS/TCCRSS08A... · Juscelino C. de Lima Junior, Graziele O. Alves Curso de Segurança de sistemas Pontifícia Universidade Católica

3. Desenvolvimento

Inicialmente será realizado um levantamento bibliográfico e um estudo sobre VPN, openswan e IPSEC em seguida a construção e integração de redes virtuais privadas usando openswan. Em seguida será feito um comparativo sobre uma rede sem vpn e outra com openswan.

4. Vpn

As VPNs (Virtual Private Networks) ou redes virtuais privadas são redes sobrepostas às redes públicas, tendo as mesmas características. São chamadas “virtuais” por que são uma ilusão, os circuitos virtuais não são circuitos reais e que a memória virtual não é memória real [Tanenbaum 2003].

Segundo Tanenbaum [2003] como o custo elevado de redes privadas e o advento da internet, as empresas moveram seus dados para a rede pública, que tendem a ter um custo de utilização inferior aos necessários para o estabelecimento de redes proprietárias, essa demanda levou à criação de VPNS (Virtual Private Networks), que são redes privadas. Porém, as redes públicas são consideradas não confiáveis, tendo em vista que os dados que nelas trafegam estão sujeitas a interceptação e captura. Embora as VPNs possam ser implementadas sobre redes ATM (ou frame relay), a maioria implementa VPNs diretamente sobre a Internet. Um simples projeto é construir em cada escritório um firewall e criar túneis pela Internet entre todos os pares de escritórios. Se o IPSEC for usado no chamado tunelamento (tunneling), será possível agregar todo o tráfego entre dois pares de escritórios quaisquer em uma única AS (associação de segurança), autenticada e criptografada, gerando assim controle de integridade, sigilo e até mesmo uma considerável imunidade à análise de tráfego [Tanenbaum 2003].

Segundo Rezende [2004] as VPNs se tornaram componentes importantes dentro do ambiente corporativo, principalmente por seu baixo custo, pois seu conceito alia o conceito de uma rede “virtual” construída sobre uma rede ou meio compartilhada, aliada ao conceito de uma rede “privada”, onde a confidencialidade dos dados e o uso exclusivo é garantido, a fim de atingir o objetivo principal: reduzir os custos de comunicação e mantendo a segurança.O objetivo da VPN é manter os dados de forma segura, confidencial, permitindo interação somente das partes interessadas, fazendo assim com que o ganho em se usar uma rede compartilhada não seja perdido pela falta de segurança na comunicação. A VPN encapsula dados com um cabeçalho que fornece informações de roteamento, o qual permite que os dados viagem na rede pública desde a fonte até o destino. Nesta é criptografado os dados encapsulados antes de serem enviados para confiabilidade, autenticidade e segurança garantida.

Page 3: Construindo e Integrando VPNs Utilizando IPSECjamhour/RSS/TCCRSS08A... · Juscelino C. de Lima Junior, Graziele O. Alves Curso de Segurança de sistemas Pontifícia Universidade Católica

Com o objetivo de prover uma comunicação segura através de uma rede pública intermediária, as VPNs tem por base dois conceitos básicos: a criptografia e o tunelamento.

Uma rede VPN é formada freqüentemente por um conjunto de tecnologias algumas das principais serão descritas a seguir.

4.1. Tunelamento

Segundo Rezende [2004] a técnica de tunelamento é utilizada para criar uma “conexão virtual, que causa impressão ao usuário de estar conectado diretamente à rede privada e não a uma infra-estrutura pública. Sendo assim, consiste em encapsular um tipo de pacote dentro de um outro pacote para facilitar algum tipo de vantagem no transporte de uma informação dentro da rede. Este é um mecanismo que permite utilizar a infra-estrutura de rede intermediária para tráfego de dados entre duas redes distintas. Não importando o protocolo dos dados transferidos, podendo ser pacotes do mesmo protocolo ou distintos. O tunelamento é capaz de resolver um problema bastante comum, que seria a necessidade de enviar trafego pela Internet, diferentemente do tráfego IP, como, por exemplo, pacotes do tipo NetBEUI ou IPX, pois, através do tunelamento esses pacotes podem ser encapsulados por pacotes IP. Desta maneira, o tunelamento fornece um mecanismo para que outros protocolos, além do IP, possam também ser transmitidos através de uma VPN [Guimarães 2006].

4.2. Autenticação

Autenticação é a técnica na qual o processo verifica se o parceiro de comunicação diz ser quem realmente é, e não um impostor, através da utilização de protocolos de autenticação, que geralmente implementam algoritmos hash.

Mesmo se a mensagem estiver criptografada, a razão de se autenticá-la deve-se ao fato da prevenção de ataques do tipo Replay.

Page 4: Construindo e Integrando VPNs Utilizando IPSECjamhour/RSS/TCCRSS08A... · Juscelino C. de Lima Junior, Graziele O. Alves Curso de Segurança de sistemas Pontifícia Universidade Católica

4.3.Criptografia

Segurança e confidencialidade dos dados são requisitos primordiais para qualquer VPN. Uma das razões principais em escolher IPsec como sua tecnologia VPN e a confidencialidade dos dados gerados por qualquer esquema de criptografia.

Um algoritmo criptográfico, também chamado cifrador (cipher), é uma função matemática usada para criptografar e descriptografar. Chamamos de plaintext o texto original e ciphertext o texto embaralhado ou criptografado [Wouters 2006].

A palavra criptografia vem das palavras gregas que significam “escrita secreta”. É uma técnica usada para garantir a privacidade das informações [Tanenbaum 2003].

5. Ipsec

IPSEC (IP Security Protocol) é um conjunto de protocolos que define a arquitetura e as especificações para prover serviços de segurança dentro do protocolo IP. Foi padronizado para garantir interoperabilidade, mecanismo de criptografia para o IPv4 e Ipv6. IPSec também define um conjunto de serviços de segurança, incluindo integridade dos dados, autenticação, confidencialidade e limite de fluxo de trafego. Oferece estes serviços independentemente do algoritmo de criptografia usado, pois possui uma arquitetura aberta no sentido de possibilitar a inclusão de outros algoritmos de autenticação e criptografia. [Silva 2003].

5.1 Protocolos IPSEC

Seu objetivo é prover serviços de segurança para pacotes IP na camada de rede. Entre eles estão controle de acesso, integridade dos dados, proteção contra ataques do tipo modificação (replay) e confidencialidade dos dados.

Os protocolos de segurança usados para prover segurança ao datagrama IP quando se utiliza IPSEC são: Encapsulation Security Payload (Encapsulamento Seguro do Dado – ESP) e o Authentication Header (Autenticação de Cabeçalho – AH). Estes fazem parte da arquitetura básica IPSec, por questões de garantia de interoperabilidade, esses protocolos estabelecem que todas as implementações IPSec

Page 5: Construindo e Integrando VPNs Utilizando IPSECjamhour/RSS/TCCRSS08A... · Juscelino C. de Lima Junior, Graziele O. Alves Curso de Segurança de sistemas Pontifícia Universidade Católica

suportem alguns algoritmos predefinidos, como DES, 3-DES, Blowfish,CAST, AES, SERPENT e TWOFISH já para autenticação HMAC, MD5, SHA1, SHA2.

Pode ser usado em dois modos, no Modo de Transporte, o cabeçalho IPSEC é inserido logo depois do cabeçalho IP. O campo Protocol no cabeçalho IP é alterado para indicar que um cabeçalho IPSEC contém informações de segurança, principalmente o identificador SA, um novo número de seqüência e, possivelmente, uma verificação de integridade da carga útil [Tanenbaum 2003].

5.1.1 Authentication Header

O protocolo AH (Authentication Header) adiciona autenticação e integridade, ou seja, garante a autenticidade do pacote e também que este não seja alterado durante a transmissão. Pode ser usado no modo transporte ou no modo túnel. Previne ataques do tipo Replay, ou seja, quando uma pessoa mal intencionada captura pacotes válidos e autenticados pertencentes a uma conexão, replica-os e os reenvia, como se fosse à entidade que iniciou a conexão. Também previne ataques do tipo Spoofing, ou seja, quando o invasor assume o papel de uma entidade confiável para o destino e, desta forma, ganha privilégios na comunicação [Sarlo 2003]. O AH adiciona autenticação, porém não trata a confidencialidade, portanto os dados que estão trafegando na rede estarão intactos e desprotegidos, podendo ser capturados por alguém mal-intencionado. A confidencialidade é tratada pelo protocolo ESP (Encapsulation Security Payload).

5.1.2 Encapsulation Security Payload

O protocolo de Encapsulamento Seguro do Dado, fornece autenticação, confidencialidade das informações por meio da criptografia e proteção de replay. O algoritmo de criptografia utilizado é configurado na AS, na qual o pacote IP é enviado. Como o pacote IP é um datagrama, cada pacote deve conter informações necessárias para estabelecer o sincronismo da criptografia, permitindo que a descriptografia ocorra na entidade de destino [Sarlo 2003]. Se nenhum algoritmo de criptografia for utilizado, o que é uma situação possível no padrão, o protocolo ESP só oferecerá o serviço de autenticação.

Assim como o protocolo AH, alguns campos são inseridos no pacote IP para adicionar os serviços necessários e outros campos têm o mesmo comportamento do protocolo AH, estes campos estão contidos no Cabeçalho ESP, outros no final do pacote e outros campos no segmento de autenticação.

Page 6: Construindo e Integrando VPNs Utilizando IPSECjamhour/RSS/TCCRSS08A... · Juscelino C. de Lima Junior, Graziele O. Alves Curso de Segurança de sistemas Pontifícia Universidade Católica

5.2 Modo Transporte

No Modo de Transporte apenas o segmento da camada de transporte é processado, autenticado e criptografado. O cabeçalho ESP é inserido entre o Cabeçalho IP e os Dados, adicionando os campos Dados de Autenticação e Segmento de Autenticação. Se o pacote original já tiver um cabeçalho de segurança IPSec, ou seja, se for um pacote da AS, este novo cabeçalho será colocado antes do cabeçalho IPSec já construído. Da mesma forma que o protocolo AH, como o cabeçalho original é mantido no novo pacote, o modo Transporte do ESP só pode ser usado entre servidores ou hosts [Rezende 2004].

5. 3 Modo Túnel

Neste modo todo o pacote IP é autenticado e criptografado, para isso todo pacote original é colocado dentro de um novo pacote, sendo gerado um novo cabeçalho ESP, bem como adiciona os campos Dados de Autenticação. Se o túnel for estabelecido entre dois servidores ou hosts, os endereços destinos e origem do novo cabeçalho serão os mesmos do cabeçalho criptografado dentro do pacote. Se o túnel for feito entre gateways, como roteadores ou firewall, os endereços de origem e destino do novo cabeçalho serão dos gateways e os endereços dentro do pacote criptografados serão dos hosts ou servidores atrás dos gateways [Sarlo 2003].

5.4. Resultados Obtidos

Os testes e resultados obtidos, como previamente mostrado, foram feitos utilizando o cenário que consta na figura 27, em um dos gateways VPN deste cenário foi instalado o software Wireshark1, versão 0.99.5, para analisar e filtrar o tráfego de comunicação deste gateway foi possível acompanhar o estabelecimento da sessão ISAKMP, IPSEC e a comunicação criptografada.

1 Wireshark (antigo Ethereal) é um programa que analisa o trafego de rede, e o organiza por protocolos.

Page 7: Construindo e Integrando VPNs Utilizando IPSECjamhour/RSS/TCCRSS08A... · Juscelino C. de Lima Junior, Graziele O. Alves Curso de Segurança de sistemas Pontifícia Universidade Católica

5.4.1. Estabelecimento da sessão

Há uma captura de tela do programa Wireshark, como mostra a figura 1, filtrando o protocolo ISAKMP e monitorando o estabelecimento de uma SA como foi visto à teoria no capítulo 4. Nesta figura é possível verificar que consta todos os passos para o estabelecimento da sessão, tais como o modo principal (Main Mode), este modo fará a troca de chaves Diffie-Hellman que é mostrado mais a fundo no capítulo 4.

Após o modo principal (Main Mode) estiver estabelecido, começará a “Fase 2” também chamada de “Quick Mode (modo rápido)”, está fase envolve acordos entre as duas pontas da VPN em vários parâmetros criptográficos tais como qual cifrador e algoritmo usar, por quanto tempo a chave que estabeleceu a sessão pode ser válida e qual protocolo (AH ou ESP) e modo (Transporte ou Túnel) usar.

Figura 1 – Tela do wireshark no estabelecimento de uma SA entre os gateways.

Page 8: Construindo e Integrando VPNs Utilizando IPSECjamhour/RSS/TCCRSS08A... · Juscelino C. de Lima Junior, Graziele O. Alves Curso de Segurança de sistemas Pontifícia Universidade Católica

5.4.2. Sessão FTP

Outra situação que se verificou o funcionamento da VPN é no estabelecimento de uma sessão FTP2. A figura 2 mostra o payload3 selecionado está criptografado, assim como todos os outros pacotes transmitidos nesta sessão.

Figura 2 – Tela do wireshark mostrando pacotes ESP.

É possível verificar na figura 2 que os pacotes que trafegam pela rede são o protocolo ESP, não sendo possível assim ver a sessão FTP que foi estabelecida entre as duas redes, pois este protocolo é responsável pela criptografia e autenticação dos dados.

2 File Transfer Protocol (FTP), é um método padrão de envio de arquivos entre computadores através da Internet ou software para tal.3 No pacote o payload é os dados reais sendo transmitidos através de uma rede.

Page 9: Construindo e Integrando VPNs Utilizando IPSECjamhour/RSS/TCCRSS08A... · Juscelino C. de Lima Junior, Graziele O. Alves Curso de Segurança de sistemas Pontifícia Universidade Católica

Já a figura 3 possui uma captura de tela filtrando todos os pacotes FTP (File Transfer Protocol) no Wireshark, da mesma sessão FTP, mas desta vez sem o IPSEC ativado, é possível observar que os pacotes que trafegam pela rede estão totalmente descriptografados, contendo informações confidencias tais como nome do usuário da sessão (Openswan), senha (123mudar) e comandos efetuados pelo mesmo durante a sessão FTP.

Figura 3 – Tela do Wireshark mostrando pacotes FTP.

5.4.3. Teste de desempenho utilizando o utilitário ping

Em testes realizados para avaliar o desempenho da solução VPN, houve uma análise dos tempos de respostas dos pacotes em uma conexão VPN. Verificou-se que os tempos de resposta estavam bem próximos à de um cenário sem o estabelecimento de uma conexão VPN (sem criptografia e autenticação). Porém é necessário e recomendado realizar testes com intervalos mais longos e em um ambiente coorporativo real.

Page 10: Construindo e Integrando VPNs Utilizando IPSECjamhour/RSS/TCCRSS08A... · Juscelino C. de Lima Junior, Graziele O. Alves Curso de Segurança de sistemas Pontifícia Universidade Católica

A figura 4 apresenta uma captura no monitoramento de um Ping. A resposta por si só já representa que a VPN está funcionando devidamente. Pode-se analisar o tempo de resposta na coluna “Time”. Nesta situação, está na faixa de centésimos de segundos, ou seja, encontra-se em sua normalidade.

Figura 4 – Tela do Wireshark durante o comando Ping entre servidores VPN.

5.4.4. Teste de desempenho utilizando a ferramenta Time

Realizou-se também testes utilizando a ferramenta time para cronometrar o tempo de transferência de um arquivo de um cliente da rede A para um cliente da rede B.

Page 11: Construindo e Integrando VPNs Utilizando IPSECjamhour/RSS/TCCRSS08A... · Juscelino C. de Lima Junior, Graziele O. Alves Curso de Segurança de sistemas Pontifícia Universidade Católica

A ferramenta time4 é usada junto com um comando, neste caso o cp5. Quando o comando termina, é mostrado informações sobre recursos utilizados por este comando, tais como tempo de execução e processamento da CPU.

Antes de ser utilizado o comando time foi utilizado o comando mount para montar no cliente da rede B que possui o IP 192.168.250.5, as pastas compartilhadas do cliente da rede A que por sua vez possui o IP 192.168.253.5. É observado na figura 5 o comando mount6 e seus parâmetros.

Figura 5 – Comando mount.

Estando os arquivos montados, é possível utilizar o comando cp, a figura 6 mostra a copia (utilizando o comando cp), de um arquivo (video.wmv) de 116,537,317 bytes (111MB) em uma rede VPN utilizando IPSEC sendo implementado pelo aplicativo Openswan.

O comando time por sua vez mostra que o tempo real passado entre a chamada e o término do comando cp demorou 2 minutos e 21.048 segundos, o campo user mostra que tempo e utilização da CPU pelo usuário foi de 0.020 segundos e o campo sys mostra que o tempo de utilização da CPU pelo sistema foi de 1.464 segundos.

Figura 6 – Comando time executado em um ambiente com VPN.

O mesmo procedimento foi realizado nesta mesma rede, porém agora com IPSEC desabilitado nos gateways.

4 O comando time roda programas e resumi o uso dos recursos do sistema.5 O comando cp do sistema operacional Unix é usado para copiar arquivos. O nome do comando é uma forma abreviada para copy (copiar).6 Mount é um comando unix/linux usado para montar unidades de armazenamento no sistema de arquivos

Page 12: Construindo e Integrando VPNs Utilizando IPSECjamhour/RSS/TCCRSS08A... · Juscelino C. de Lima Junior, Graziele O. Alves Curso de Segurança de sistemas Pontifícia Universidade Católica

É observado na figura 7 que o tempo real passado entre a chamada e o término do comando cp foi menor do que a rede com VPN, sendo de 1 minuto e 47.420 segundos. Os tempos de utilização da CPU também diminuíram, sendo que a utilização da CPU feita pelo usuário foi de 0.016 segundos e a utilização da CPU pelo sistema foi de 1.320 segundos.

Figura 7 – Comando time executado em um ambiente sem VPN.

Verificou-se então que por utilizar recursos criptográficos, o desempenho em comparação com a rede sem VPN é relativamente pior. Com a utilização do IPSEC em modo túnel o tamanho dos pacotes aumenta, porém estes mesmos pacotes podem trafegar seguramente através da Internet.

6. Conclusão

Este trabalho se propôs a estudar e mostrar como implementar uma VPN baseada na Internet, bem como implementar um experimento de uma infra-estrutura de VPN utilizando ferramentas livres, tais como Linux utilizando o aplicativo Openswan que implementa o protocolo IPSEC, detalhando aspectos de suas configurações, além de analisar a funcionalidade e segurança da mesma.

Foram analisadas e discutidas algumas topologias de rede e serviços como Firewall que combinados podem ser utilizados em uma infra-estrutura VPN.

As VPNs são cada vez mais pesquisadas e implementadas em organizações, sejam privadas ou governamentais, em diversos ambientes. Os principais motivos desta procura estão ligados a segurança e economia no tráfego das informações. Porém está economia no tráfego das informações não pode ser comprovada nos experimentos.

O IPSEC como o conjunto de protocolos se mostrou mais adequado para suportar soluções VPN entre redes corporativas. Esse é um dos protocolos mais bem

Page 13: Construindo e Integrando VPNs Utilizando IPSECjamhour/RSS/TCCRSS08A... · Juscelino C. de Lima Junior, Graziele O. Alves Curso de Segurança de sistemas Pontifícia Universidade Católica

sucedidos, aceito por grande número de especialistas e com inúmeras aplicações. Mas uma de suas limitações é que ele apenas autentica computadores e não usuários.

A instalação do aplicativo Openswan não possui mistérios, mas sua configuração é relativamente complexa, pois possui uma vasta gama de opções a serem analisadas e testadas, porém é facilitada com a vasta documentação e suporte de alguns desenvolvedores da ferramenta.

O Openswan mostrou ser extremamente capaz de gerenciar os túneis VPNs, mas infelizmente ele tem uma certa complexidade ao ser configurado em ambientes aonde possua modems utilizando NAT (Network Address Translation).

Page 14: Construindo e Integrando VPNs Utilizando IPSECjamhour/RSS/TCCRSS08A... · Juscelino C. de Lima Junior, Graziele O. Alves Curso de Segurança de sistemas Pontifícia Universidade Católica

Bibliografia

TANENBAUM, Andrew S. Computer Networks: Fourth Edition. Prentice Hall, march. 2003.

GUIMARÃES, G. Alexandre e DUEIRE, L. Rafael e OLIVEIRA, Raimundo. Segurança com redes privadas virtuais VPNs. Rio de Janeiro, Brasport, 2006.

WOUTERS, Paul e Bantoft, Len. Bulding and Integrating Virtual Private Networks with Openswan. Packt Publishing Ltd., UK. 2006.

SARLO, Lino da Silva. VPN: Aprenda a Construir Redes Privadas Virtuais em Plataformas Linux e Windows. São Paulo, Novatec, 2003.

SILVA, Lino S. Virtual Private Network, VPN: Aprenda a construir redes privadas virtuais em plataformas Linux e Windows. Novatec Editora Ltda., Brasil. 2003.

REZENDE, Edmar Roberto Santana. Segurança no Acesso Remoto VPN. In: Instituto de Computação Universidade Estadual de Campinas, 2004.