Prévia do material em texto
REDES VIRTUAIS PRIVADAS SOBRE TECNOLOGIA IP Edgard Jamhour VPN: VIRTUAL PRIVATE NETWORK Estende os privilégios de acesso a uma rede privada através da uma rede pública. ISOLAMENTO DE REDE VPN A VPN B Membros da VPN A não podem enviar pacotes para membros da VPN B Internet Pública ISOLAMENTO DE REDE Por Criptografia/Autenticação Exemplos: IPsec, PPTP, SSL, etc. 1. Segurança embutida nos pacotes 2. Segurança controlada pelo usuário final 3. Isolamento de rede feito por firewalls 4. Sem garantias de QoS Por Roteamento Seletivo Exemplos: ATM, Frame Relay, MPLS 1. Segurança feita pela rede 2. Segurança controlada pelo provedor 3. Isolamento de rede feito por roteamento 4. Pode ter garantias de QoS MPLS VPN: ARQUITETURA HUB X SPOKES Todos os sites (Spokes) enviam tráfego apenas para o Hub A comunicação entre Hub e Spoke usa endereçamento próprio, independente da Internet Implementado com as tecnologias MPLS, GRE, VRP pelo Provedor TIPOS DE VPN ENTRE DUAS MÁQUINAS ENTRE UMA MÁQUINA E UMA REDE (VPN DE ACESSO) ENTRE DUAS REDES (INTRANET OU EXTRANET VPN) rede Insegura rede Insegura rede Insegura VPN = TUNELAMENTO rede Insegura pacote protegido rede Insegura pacote desprotegido rede Insegura CONCEITOS BÁSICOS DE UMA VPN O que caracteriza uma tecnologia como VPN: TUNELAMENTO: • Permite transportar pacotes com IP privado ou com outros protocolos de rede através da Internet pública. AUTENTICAÇÃO/INTEGRIDADE: • Permite controlar quais usuários podem acessar a VPN • Reduz o risco de ataques por roubo de conexão e spoofing. CRIPTOGRAFIA: • Garante a confidencialidade dos dados transportados através da VPN. O QUE É TUNELAMENTO? Tunelar significa encapsular o pacotes do protocolo A dentro do campo de dados do protocolo B, de forma que apenas o protocolo B é interpretado pela rede. Usualmente o tunelamento implica em duplicar camadas do modelo de redes. L2 L3 Tunelamento L3 Tunelamento L2 L4 Pacote Original L7 dados L2 L3 L3 L7 dados L2 L3 L2 L7 L4 L7 dados L3 L7 dados TUNELAMENTO FISICA ENLACE REDE TRANSPORTE APLICAÇÃO FISICA ENLACE REDE SSL APLICAÇÃO FISICA ENLACE REDE TRANSPORTE APLICAÇÃO FISICA ENLACE REDE TRANSPORTE APLICAÇÃO TRANSPORTE REDE REDE ENLACE Aplicação S.O. Placa de Rede Pilha Normal SSL Tunelamento Camada 3 Tunelamento Camada 2 PROTOCOLOS PARA VPN (L2 E L3) L2F: Layer 2 Fowarding Protocol (Cisco) • Não é mais utilizado. PPTP: Tunelamento de Camada 2 • Point-to-Point tunneling Protocol • Usa MPPE (Microsoft Point-to-Point Encryption) para segurança • Usa GRE (Generic Routing Encapsulation) para tunelamento L2TP: Tunelamento de Camada 2 • Level 2 Tunneling Protocol (L2TP) • Combinação do L2F e PPTP • L2PTv3: (2005) IPSec: Tunelamento de Camada 3 • IETF (Internet Engineering Task Force) VPN DE CAMADA 4 Transport Layer Security (SSL/TLS) • Usado por OpenVPN e SoftEther VPN • Software Livre (GNU GPL) • Usado pelo SSTP (Secure Socket Tunneling Protocol) • Desenvolvido pela Microsoft Datagram Transport Layer Security (DTLS) • Usado por Cisco AnyConnect VPN e OpenConnectVPN Secure Shell (SSH) VPN • Implementado por SSH • Pouco escalável mas versátil e de fácil implementação PROTOCOLOS PARA VPN Protocolo Tunelamento Criptografia Autenticação Aplicação PPTP Camada 2 Sim Sim Transporta qualquer protocolo suportado pelo PPP L2TP Camada 2 Não Sim Transporta qualquer protocolo suportado pelo PPP IPsec Camada 3 Sim Sim Transporta apenas pacotes IP IPsec e L2TP Camada 2 Sim Sim Transporta qualquer protocolo suportado pelo PPP PONTO-A-PONTO VS MULTI-PONTO Serviço Multiponto: • Múltiplas entidades conectadas ao mesmo meio • Permite envio de mensagens em broadcast • Quadros precisam incluir o endereço do destinatário Serviço Ponto-a-Ponto: • Apenas duas entidades conectadas entre si • Usuários em conexões ponto-a-ponto diferentes não se comunicam por broadcast • Não precisa de endereçamento MODEM MODEM MODEM um modem para cada usuário (linha) RAS: Remote Acess Server ou NAS: Remote Acess Server PSTN Rede Remota MODEM Tecnologia Multi-Ponto PPP: POINT TO POINT PROTOCOL Permite criar conexão de rede através de enlaces ponto-a-ponto. • O PPP é um protocolo do nível de enlace destinado a transportar mensagens ponto a ponto. • O PPP supõem que o link físico transporta os pacotes na mesma ordem em que foram gerados. O PPP permite transportar diversos protocolos de rede. IP IPX link físico ARQUITETURA PPP Link Control Protocol (LCP) • Configura parâmetros do link como tamanho dos quadros. Protocolos de Autenticação (CHAP, PAP, EAP) • Determina o método para validar a senha do usuário no servidor. Pode variar de texto aberto até criptografia. Internet Protocolo Control Protocol (IPCP) • Configura parâmetros de rede de forma similar ao DCHP • Tipo específico de NCP (Network Control Protocol) para IP • Existem outros para IPx, Netbios, etc. DHCP é para redes Multiponto IPCP é para redes Ponto-a-Ponto PAP: Autenticação sem segurança EAP: Extensible Authentication Protocol (Usado em Wireless) AUTENTICAÇÃO CHAP: PPP CHAP: Chalenge Handshake Authentication Protocol • Autenticação One-Way • Depende de um segredo Pré-compartilhado FASE LCP 2. Challenge String (CS) 3. MD5 [Password + CS] 5 MD5 Segredo + CS Digest COMPARAÇÃO 4. VALIDAÇÃO 4. OK ou Failure Suplicant Authenticator FRAME PPP: LINKS PONTO A PONTO O Frame PPP segue uma variante da estrutura do HDLC (High-level Data Link Control) FLAG ADDRESS CONTROL PROTOCOL FCS FLAG 8 bits 8 bits 8 bits 16 bits 16 bits 8 bits DADOS 0x7E 0xFF 0x03 0x0021 IP TCP IPv4 Dados EXEMPLO: ICMPV4 TRANSPORTADO POR PPP PPP identifica o protocolo com 2 bytes IPv4 identifica o protocolo com apenas 1 byte PPTP: POINT-TO-POINT TUNNELING PROTOCOL • Publicado pela Microsoft em 1999 (RFC 2637) • Microsoft, Ascend (Nokia), 3Com e outros • Cria túneis baseados em GRE (Generic Routing Encapsulation) • O canal de controle para criação de túneis PPTP é baseado em TCP (Porta 1723) • Mecanismos de segurança utilizados: • MPPE (Microsoft Point-to-Point Encryption) • MS-CHAP v1 (inseguro) • MS-CHAP v2 (vulnerável a ataques de dicionário) • PPTP com MPPE é considerado VULNERÁVEL • Nativo para várias versões de Microsoft Windows • Versões mais recentes do Windows usam SSTP • SSTP (Secure Socket Layer Tuneling Protocol) • Suporta EAP-TLS para autenticação PPP VS PPTP IP PPP PSTN Rede Ethernet IP PPP Eth IP Eth linha telefônica meio compartilhado Destino IP PPTP PSTN Internet IP PPP XYZ IP Eth linha telefônica IP PPP N A S R A S P N S IP PPTP IP XYZ Eth Rede Ethernet PPP PPTP inseguro seguro Ambiente da Empresa Ambiente da Empresa NAS: Network Access Server PNS: PPTP Network Server TOPOLOGIASPPTP Usuários conectados a VPN A não podem enviar pacotes para membros da VPN B Internet Pública Servidor PPTP A Servidor PPTP B filtro de pacotes filtro de pacotes EXEMPLO Cliente e servidor possuem endereços PÚBLICOS pré-definidos: IPC e IPS. Após a conexão eles recebem endereços PRIVADOS IPC IPS SERVIDOR PPTP RANGE IP IPprivado1 IPprivado2 ... EXEMPLO: 192.168.0.1 .. 192.168.0.254 INTERNET LOGIN + SENHA IPVPN + ROTAS SERVIDOR RADIUS INTERNET REDE VIRTUAL = TOPOLOGIA EM ESTRELA Apenas pacotes enviados para endereços virtuais são protegidos. O servidor PPTP funciona como um HUB VPN VPN VPN VPN SERVIDOR PPTP IPA IP2 IP1 IPS IPB IP3 IPC IP4 IPA IPS IP2 IP4 IPS IPc IP2 IP4 PPTP = GRE VERSÃO 2 Pacotes de PPTP são identificados pelo IP como GRE 47 = 0x2F GRE (Generic Routing Encapsulation) é uma técnica de tunelamento usada no core das redes ISP MSCHAP V1: PPTP 1. Pedido de Login (Identificação) 2. Challenge String (CS1) 3. Challenge String (CS2) + MD4 (CS1+Password) 5) chave (CS2 + password) chave (CS1 + password) RSA’s RC4 40 ou 128 bits (negociado) 6) chave (CS1 + password) chave(CS2 + password) RSA’s RC4 40 ou 128 bits (negociado) 4. OK + MD4(CS1, CS2, Password) > 1024 TCP:1723 • CHAP não gera uma chave para criptografia • MS-CHAP é uma extensão do CHAP para gerar uma chave de criptografia a partir de um segredo pré-compartilhado • A negociação é feita usando a porta de controle TCP 1723 EXEMPLO DE VPN COM FIREWALL INTERNET 1723 >1023 IP_PPTP FIREWALL: • Liberar conexão TCP no servidor PPTP na porta 1723 • Liberar envio de pacotes PPTP (0x2F) para IP de destino IP_PPTP Não há regras do firewall para servidores de destino ou IP de origem SSTP (SECURE SOCKET TUNNELING PROTOCOL) • Problemas do PPTP • Não é encapsulado em protocolos de transporte (TCP ou UDP) • Não pode atravessa NAPT • Utiliza o MPPE que é considerado inseguro • SSTP: Secure Socket Tunneling Protocol • Originalmente criado para Windows (2008 em diante) • Utiliza SSL/TLS para autenticação e transporte • Transporta pacotes PPP na porta TLS 443 (HTTPS) • Pode utilizar EAP-TLS para métodos fortes de autenticação TCP HTTPS SSTP PPP IP pacote usuário SSTP • Define 2 tipos de pacotes: • SSTP Control Packets • SSTP Data Packets • cliente SSTP servidor SSTP 1. O cliente faz uma conexão TCP na porta 443 do servidor 2. O handshake TLS/SSL é efetuado 3. O cliente negocia um túnel SSTP com o servidor 4. O cliente negocia uma conexão PPP com o servidor 5. Pacotes são transportados através do canal PPP CENÁRIO DE USO SSTP CLIENTE REMOTO • De forma similar a uma rede PPTP, o STP permite atribuir um endereço da rede privada para um usuário externo. • A comunicação feita com o endereço privado é protegida pelo túnel SSTP CENÁRIO DE USO SSTP SITE A SITE Usando o SSTP cliente como roteador, é possível usar o SSTP para conectar duas redes através a Internet L2TP: LAYER TWO TUNNELING PROTOCOL • Baseado nos Protocolos: PPTP + L2F • Oferece as seguintes funções de segurança: • Tunelamento , Autenticação, Anti-spoofing e Integridade • Não possui suporte nativo para criptografia. VPNS QUE USAM PPP PPTP: • Negociação TCP (Porta 1723) • Integridade feita apenas pelo PPP • Possui suporte nativo a criptografia L2TP: • Negociação UDP (Porta 1701) • Possui mecanismo forte de integridade. • Não possui suporte nativo a criptografia SSTP: • Negociação TCP (Porta 443) • Criptografia e integridade são feitos pelo TLS/SSL TUNELAMENTO L2TP COM IPSEC L2TP e IPsec podem ser combinados para implementar um mecanismo completo de VPN para procotolos de rede diferentes do IP, como IPx e NetBEUI. TUN/TAP Interfaces TUN/TAP permite redirecionar pacotes enviados ao sistema operacional para programas fora do kernel (espaço usuário) • TUN: Simula uma dispositivo que opera em camada 3 e transporta pacotes • TAP: Simula um dispositivo que opera em camada 2 e transporta quadros OPENVPN • Software “open-source” que implementa uma VPN baseada em SSL/TLS • Baseado em OpenSSL • Escrito por James Yonan • Publicado como GNU GPL (General Public License) • Suporta autenticação de clientes usando: • Chave Estática: segredos pré-compartilhados • TLS/SSL + certificados para autenticação e troca de chaves • Nome Usuários/ Senha (novo) • Protocolo de Transporte: Suporte a NAT • UDP: Tipicamente (porta 1195) • TCP: Opcional (porta 1194) OPENVPN EXEMPLO DE TOPOLOGIA Túnel entre o cliente remoto e o servidor de VPN Acesso ao Target (10.10.2.20) que não está associado a VPN OPENVPN SOBRE UDP NEGOCIAÇÃO DO CANAL SEGURO O canal seguro é criado utilizando-se o handshake SSL TRANSPORTE DE DADOS UDP E TCP CONCLUSÃO VPNs podem ser implementadas em diferentes camadas. As VPNs de camada 2 e 3 são implementadas na pilha de rede do sistema operacional. As VPNs de camada 4 pode ser implementadas usando SSL/TLS e não requerem suporte do sistema operacional. As VPNs de camadas 2 e 3 apresentam geralmente menos overhead (bytes adicionais usados para proteger os pacotes) e funcionam de maneira mais transparente para as demais aplicações.