Você está na página 1de 13

Implementao de VPN em Linux, com protocolo IPSEC

Roni Shigueta 1, Fbio Shinohara1


1

Departamento de Informtica Universidade Paranaense (UNIPAR) Avenida Brasil, 1123 Cianorte Pr Brasil

shigueta@yahoo.com, shim.cne@zipmail.com.br

Abstract. The Internet has been a lot accentuated in the last years, generating like this the need of new techniques of transmission of files. A great discovery is VPN, that transmits information with safety and lower cost. This article it possesses installation information, configuration of VPN and some theoretical foundations.

Resumo. O crescimento da rede mundial tem sido muito acentuado nos ltimos anos, gerando assim a necessidade de novas tcnicas de transmisso de arquivos. Uma grande descoberta a VPN, que transmite informaes com segurana e baixo custo. Este artigo possui informaes de instalao, configurao da VPN e alguns fundamentos tericos.

1. Introduo
Inicialmente as redes de computadores surgiram com a finalidade de conectar micros e efetuar o compartilhamento de recursos, mais tarde houve o surgimento da rede mundial (Internet), a qual foi desenvolvida para ser uma rede militar que interligava pontos estratgicos, mas com o passar dos tempos tornou-se uma grande rede comercial [1]. Com o desenvolvimento tecnolgico muitas empresas passaram a implantar redes em suas filiais, na maioria das vezes estas redes no se comunicam devido ao fator financeiro. As vantagens de conexo de uma filial com sua matriz so muitas, pode-se citar alguns exemplos: proporciona a troca de informaes sobre estoque, faturamento e outros diversos tipos de sistemas administrativos. Devido as informaes importantes sobre a empresa, que trafegam na rede, surge uma grande necessidade de uma poltica de segurana que dever proporcionar a integridade dos dados transmitidos e a autorizao de acesso a sistemas para usurios. Uma eficiente soluo para este problema seria a VPN (Virtual Private Network) ou Rede Privada Virtual, tem como objetivo transmitir dados com maior segurana e menor custo, funciona da seguinte maneira: seria uma rede privada construda sobre uma rede pblica (Internet), ou seja, a filial usaria toda estrutura da Internet para se comunicar com sua matriz.[1] [2] [6] [10] A VPN apresenta algumas vantagens: realizar a troca de informaes seguras em qualquer lugar onde exista Internet e o baixo custo financeiro que seria uma grande motivao para sua implementao, pois os links dedicados possuem alto custo e no seriam necessrios a aquisio de equipamentos especficos. Utiliza uma tcnica denominada de tunelamento, onde estabelecido um tnel virtual por onde trafegam as informaes, formando assim uma ligao ponto-a-ponto. Este tunelamento baseado em criptografia e por este motivo que os dados se tornam seguros.[1] [6]

2. Tipos de Protocolos utilizados em uma VPN


PPTP (Point to Point Tunneling Protocol Protocolo de Tunelamento Ponto a Ponto), desenvolvido pelo Frum PPTP, formado pelas empresa US Robotics, Ascend, ECI Telematics, Microsoft e 3Com. Utiliza o protocolo PPP (Point to Point Ponto a Ponto) para fazer o gerenciamento das conexes, o PPTP no oferece servios de criptografia, utiliza o MPPE (Microsoft Point to Point Encryption Criptografia Ponto a Ponto

Microsoft) para fazer a criptografia, as autenticaes so efetuadas pelos protocolos MS-CHAP ou pelo EAT-PLS.[1] [6] L2TP (Layer 2 Tunneling Protocol Protocolo de Tunelamento Camada 2), desenvolvido pela Cisco e depois homologado pela IETF (Internet EngineeringTask Force Fora Tarefa de Engenharia da Internet), caracterstica de multiprotocolo, autenticao feita em dois nveis, um quando o usurio autenticado pelo provedor de acesso e o outro depois que a conexo dos gateways estabelecida. Utiliza o DES (Data Encryption Standart Encriptao de Dados Padro.[1] [6] IPSec, conjunto de regras para proteo do trfego de pacotes IP (Internet Protocol), principal atributo garantir a segurana da comunicao. Desenvolvido pelo Grupo de Trabalho de Segurana do IP da IETF, baseado em conceitos de autenticao, integridade e privacidade. Utiliza o protocolo IKE (Internet Key Exchange Intercmbio de Chaves na Internet) responsvel pelo estabelecimento das chaves de criptografia e descriptografia.[1] [6] Existem dois tipos de configurao, quanto ao envio de dados, no protocolo IPSec. Modo de transporte o padro, ligao host para host, adio de cabealho IPSec entre o cabealho IP e os dados, voltado para encapsulamento e autenticao. Criptografa somente os dados. O Host responsvel pela segurana, ele mesmo faz o encapsulamento IPSec. Modelo de pacote no modo de transporte. [1] [6] ----- Cabealho IP----- Cabealho IPSEC----- Dados-----

Modo de Tnel, utilizado na comunicao entre gateways, adiciona um novo cabealho IP ao pacote velho (cabealho IPSec, cabealho IP e dados) e fornece maior segurana. Criptografa totalmente o pacote e adiciona um cabealho IP com a origem e destino do pacote. A segurana feita entre somente entre os dois qateways.[1] [6] Modelo de pacote no modo tnel. ----- Cabealho IP novo -----{Cabealho IPSec ---- Cabealho IP Antigo ---- Dados ----}

3. Principais Componentes de uma VPN


Existem trs tipos de topologia: Host-Host, Host-Rede e Rede-Rede. A topologia Host-Host conecta dois hosts em redes distintas fornecendo segurana para transmitir dados pela internet.

A Host-Rede, conecta um host a uma rede atravs da internet, utilizando um software VPN de conexo remota. A Rede-Rede, conecta dois gateways de diferentes redes utilizando a internet, entre os gateways formado um tnel por onde so transmitidos os dados criptografados. Ser utilizado a opo Rede-Rede, e os componentes sero: Um microcomputador com sistema operacional Red Hat Linux 9, com duas placas de rede, com funo principal de simular a Internet, as placas de redes serviro como roteadores da rede A e rede B. Dois microcomputadores com sistema operacional Red Hat Linux 9, com duas placas de rede cada um, com funo de gateway VPN das redes. Dois microcomputadores com sistema operacional Windows XP, com uma placa de rede, com funo de hosts da rede A e B. Um microcomputador com sistema operacional Windows XP, com o software Ethereal para fazer a captura dos pacotes e posterior verificao de seu contedo.

4. Funcionamento de uma VPN


O funcionamento de uma VPN baseado nos protocolos responsveis pela transmisso dos dados de uma rede para outra, a principal funo destes protocolos a criao de tneis por onde os dados sero transmitidos. O tunelamento composto de trs processos: Encapsulamento dados so encapsulados com informaes de destino. Transmisso Com as informaes do cabealho os dados so enviados para seu destino. Desencapsulamento Quando chegam os dados eles so desencapsulados , restando somente informaes de dados enviados da rede de origem. Existem alguns requisitos para a implementao de uma VPN que so: suporte carto Token, distribuio dinmica de endereo, criptografia de dados, autenticao de usurio, suporte a multiprotocolo e gerenciamento de chave.

5. Metodologia
Em nossa implementao de VPN foram escolhidos os sistemas operacionais Red Hat Linux 9 nos gateways A e B. O sistema operacional Linux foi escolhido principalmente

por ser gratuito, multitarefa, memria virtual, implementao TCP/IP, biblioteca compartilhada, multiusurio, modo protegido, cdigo aberto e regras de firewall. A figura 1 ilustra o modelo da rede que foi implementada, trazendo dados sobre os IP utilizados, a internet foi simulada por um micro com funo de roteador.

Figura 1. Modelo da Rede.

As configuraes dos equipamentos de rede utilizados sero os seguintes: Internet Placa de rede Eth0 IP 172.16.0.1 Broadcast 172.16.0.255 Placa de rede Eth1 IP 200.200.200.2 Broadcast 200.200.200.255 Netmask 255.255.255.0 Network 200.200.200.0 Netmask 255.255.255.0 Network 172.16.0.0

Rede A Gateway rede A Placa de rede Eth0 IP 10.0.0.1 Broadcast 10.0.0.255 Netmask - 255.255.255.0 Network 10.0.0.0

Placa de rede Eth1 IP 200.200.200.1 Broadcast 200.200.200.255 Host A Placa de rede Eth0 IP 10.0.0.2 Broadcast 10.0.0.255 Netmask 255.255.255.0 Network 10.0.0.0 Netmask 255.255.255.0 Network 200.200.200.0

Rede B Gateway B Placa de rede Eth0 IP 172.16.0.2 Broadcast 172.16.0.255 Placa de rede Eth1 IP 192.168.0.1 Broadcast 192.168.0.255 Netmask 255.255.255.0 Network 192.168.0.0 Netmask 255.255.255.0 Network 172.16.0.0

Host B IP 192.168.0.2 Broadcast 192.168.0.255 Netmask 255.255.255.0 Network 192.168.0.0

A ferramenta que pode ser utilizada para a configurao da VPN, o Freeswan 2.0 (Free Secure Wan) , pode ser baixada gratuitamente no site oficial www.freeswan.org. Existem duas maneiras de instalao do Freeswan, uma obter os fontes e fazer a compilao do kernel e a outra atravs de pacotes j compilados (RPM). Utilizaremos a segunda por ser uma forma mais rpida e fcil para instalarmos o freeswan, porm temos que atentar para a verso do kernel do sistema operacional, em nosso caso a verso a 2.4.20-8, necessrio baixar os arquivos freeswan-module-2.00-2.4.20_80.i386.rpm e freeswan-userland-2.00-2.4.20_8-0.i386.rpm. Baixados os arquivos, deve ser iniciado a instalao do pacote Freeswan, digitando os seguintes comandos:

rpm ivh freeswan-module-2.00-2.4.20_8-0.i386.rpm rpm ivh freeswan-userland-2.00-2.4.20_8-0.i386.rpm

Instalado o freeswan, utilizar o comando abaixo para iniciar o servio do IPSec. Service ipsec start.

Iniciado o servio, digitar o comando Ipsec verify com finalidade de verificar a instalao do pacote , deve aparecer uma tela com os seguintes dados: Checking your system to see if Ipsec got installed and started correctly Version check and ipsec on-path Checking for KLIPS support in kernel Checking for RSA private key (/etc/ipsec.secrets) Checking that pluto is running DNS checks Looking for forward key for localhost.localdomain Does the machine have at least one non-private address [Failed] [OK] [OK] [OK] [OK]

Para a VPN funcionar corretamente existem algumas modificaes, ser preciso habilitar o packet forwarding e o arquivo que modificaremos o /etc/sysctl.conf. Dentro do arquivo mudaremos o ip_forward para 1 e o RP_filter para 0 . Instalado o pacote freeswan vamos configurar os arquivos /etc/ipsec.conf e /etc/ipsec.secrets, so eles os responsveis pelas chaves utilizadas e tneis criados. O ipsec.secrets possui as chaves RSA e linha de comando necessria a pubkey. O arquivo ipsec.conf define as configuraes da VPN. A VPN utiliza uma criptografia assimtrica, e o algoritimo utilizado o RSA, a chave gerada em nosso exemplo uma chave de 128 bits, neste tipo de criptografia so geradas duas chaves, uma chave privada e outra pblica. A chave pblica divulgada para todos os usurios enquanto a chave privada somente seu dententor a possui. Quando o usurio A envia uma mensagem para o B, utiliza a chave pblica de B e somente B com sua chave privada pode ler a mensagem.[1] [2] [3] [6] Exemplo do arquivo ipsec.secrets.Seu contedo possue as chaves que sero usadas na negociao da conexo.

/etc/ipsec.secrets : RSA { # RSA 1024 bits micro11 Wed Jul 20 20:31:18 2005 # for signatures only, UNSAFE FOR ENCRYPTION #pubkey=0sAQNrUhuD1qwIhH0FHpdROFbrcmop8bwkSfbUkjCNFyGtYspVML8Na P72cj/LEk58FDM+4iZDk3mj/i64S47tKNh9b8s5GwvFr1QKjZ8BV+ngZKYy+SI+nlyz sug7sOWIn2XAatxA3JgeUDs8CB9sHozguKhvOEXa1GqxY1vVpvbMPQ== #IN KEY 0x4200 4 1 AQNrUhuD1qwIhH0FHpdROFbrcmop8bwkSfbUkjCNFyGtYspVML8NaP72cj/LEk58 FDM+4iZDk3mj/i64S47tKNh9b8s5GwvFr1QKjZ8BV+ngZKYy+SI+nlyzsug7sOWIn2 XAatxA3JgeUDs8CB9sHozguKhvOEXa1GqxY1vVpvbMPQ== # (0x4200 = auth-only host-level, 4 = IPSec, 1 = RSA)

Exemplo de configurao do arquivo ipsec.conf, com os dados utilizados na metodologia. As alteraes do arquivo so a partir da linha conn vpn. /etc/ipsec.conf # /etc/ipsec.conf - FreeS/WAN IPsec configuration file # RCSID $Id: ipsec.conf.in,v 1.10 2003/04/23 05:02:24 sam Exp $ # This file: /usr/local/share/doc/freeswan/ipsec.conf-sample # Manual: # Help: # http://www.freeswan.org/freeswan_trees/freeswan-2.00/doc/quickstart.html # http://www.freeswan.org/freeswan_trees/freeswan-2.00/doc/config.html # http://www.freeswan.org/freeswan_trees/freeswan-2.00/doc/adv_config.html # Policy groups are enabled by default. See: # http://www.freeswan.org/freeswan_trees/freeswan-2.00/doc/policygroups.html # # Examples: # http://www.freeswan.org/freeswan_trees/freeswan-2.00/doc/examples version2.0 # conforms to second version of ipsec.conf specification ipsec.conf.5

# basic configuration config setup # Debug-logging controls: "none" for (almost) none, "all" for lots. #klipsdebug=all #plutodebug=dns

# Add connections here. # sample VPN connection #sample# #sample# #sample# #sample# #sample# #sample# #sample# #sample# #sample# #sample# #sample# #sample# conn vpn #authby=secret #keyexchange=ike #keylife=8h left=200.200.200.1 leftsubnet=10.0.0.0/24 leftrsasigkey=0sAQOzqocJrae8LBCSRTWW01tKFOJsifcv09zrxxb+N2iN7oMM 8zVN4oWPVno3Fb1enE/uqo7V2P+XQuwVhJEXUb63TVDpk6atd26cEMuUzqhOAG +6uGAxEP63Ll5ITBEt237ZNt/qQ9hgpF1f4txSauhxbn06/fT0AslY3c9nhEH4iw== leftnexthop=200.200.200.2 conn sample # Left security gateway, subnet behind it, next hop toward right. left=10.0.0.1 leftsubnet=172.16.0.0/24 leftnexthop=10.22.33.44 # Right security gateway, subnet behind it, next hop toward left. right=10.12.12.1 rightsubnet=192.168.0.0/24 rightnexthop=10.101.102.103 # To authorize this connection, but not actually start it, at startup, # uncomment this. #auto=start

right= 172.16.0.2 rightsubnet = 192.168.0.0/24 rightrsasigkey=0sAQNrUhuD1qwIhH0FHpdROFbrcmop8bwkSfbUkjCNFyGtYsp VML8NaP72cj/LEk58FDM+4iZDk3mj/i64S47tKNh9b8s5GwvFr1QKjZ8BV+ngZKYy +SI+nlyzsug7sOWIn2XAatxA3JgeUDs8CB9sHozguKhvOEXa1GqxY1vVpvbMPQ== rightnexthop=172.16.0.1 auto=add Aps todos estes processos deve-se reiniciar o servio do IPSec utilizando o comando service ipsec restart depois usaremos o comando ipsec auto up vpn para subir a VPN e para baixar ipsec auto down vpn.

6. Testes Realizados
Foram realizados testes aps a instalao e configurao da VPN, um deles foi atravs do comando ping e o outro pela captura de pacotes entre os gateways. O comando ping apenas respondia entre os hosts da duas redes e no entre gateways e host. Na captura de pacotes utiliza-se o software Ethereal, depois enviado um pacote pela VPN e outro fora da VPN, chegando a concluso que realmente pela VPN os dados trafegavam criptografados, conforme figuras abaixo: A figura 2 ilustra informaes sobre os pacotes capturados pelo software Ethereal, onde constam os tipos de protocolo, origem , destino, tamanho do pacote e principalmente seu contedo descriptografado testec. A figura 3 mostra informaes sobre os pacotes capturados no software Ethereal, a tela possui informaes sobre, tipo de protocolo, tamanho, origem, destino do pacote e principalmente o contedo criptografado. Trasmitindo pela VPN o protocolo mais utilizado o ESP (Encapsulating Security Payload) enquanto fora da VPN os protocolos so variados. Foi usado um telnet nas duas capturas, ou seja, o mesmo comando e contedo. Ficando assim realmente provado a criptografia dos dados.

Figura 2. Tela de captura de dados no criptografados.

Figura 3. Tela de captura de dados criptografados.

7. Concluso
Este artigo vem propor uma implementao de VPN com IPSec em linux, utilizando a ferramenta freeswan 2.0, passando para o leitor os passos principais de sua instalao e configurao. A tecnologia VPN vem crescendo cada vez mais entre as empresas privadas e pblicas, pois os motivos principais deste crescimento so a segurana e economia do trfego das informaes. Segurana devido aos dados trafegarem criptografados e economia por usar totalmente a estrutura da Internet. Seria uma alternativa ao uso dos caros links dedicados, oferecidos pelas empresas que esto no mercado de telecomunicaes. Em relao a ferramenta Freeswan, ela atendeu plenamente a implementao dos protocolos do IPSec e caractersticas de segurana, em contrapartida sua configurao para leigos de um alto grau de dificuldade, pelo motivo de que existem poucos tutorias, livros que abordam a sua correta instalao e at mesmo em seu site oficial alguns dados so inconsistentes. Um grande fator de deciso para a escolha do Linux e freeswan, apesar da dificuldade de implementao, foi por serem softwares livres, cdigo fonte aberto e no requerem custos sobre sua aquisio. Os resultados deste artigo foram positivos, principalmente pela tecnologia VPN em Linux que utiliza equipamentos acessveis e softwares gratuitos, podendo assim num futuro prximo com o crescimento da Internet se tornar presente em todos os tipos de empresas, independente de seu tamanho e ramo de atividade.

8. Referncias
[1]Ortiz, Eduardo Bellincanta, 1976. VPN: Implementando Solues com Linux / Eduardo Bellincanta Ortiz, EdWilson Tavares Ferreira So Paulo: rica, 2003; [2] Luiz C. Santos, 2004 http://www.clubedasredes.eti.br; 2001.

[3]Marcelo Augusto Rauh Schmitt, http://www.rnp.br/wrnp2/2001/palestras_middleware/pal_middle_02.pdf; [4] http://www.freeswan.org; [5] http://www.linuxman.pro.br/vpn; [6] Alan T. Vasques e Rafael P. Schuber, 2002. http://www.modulo.com; [7] http://www.conectiva.com.br; [8] Marcelo Gondim, 2002. http://www.linuxit.com.br; [9]Paulo Roberto Ralio. http://br-linux.org/tutoriais/000210.html;

[10]Tanenbaum, Andrew S., 1994. Redes de Computadores. Rio de Janeiro: campus, 1997.