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.