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.
Membros da VPN A não podem enviar pacotes para membros da VPN B Isolamento de Rede Membros da VPN A não podem enviar pacotes para membros da VPN B VPN A VPN B Internet Pública
ISOLAMENTO DE REDE Por Criptografia/Autenticação Exemplos: IPsec, PPTP, SSL, etc. Segurança embutida nos pacotes Segurança controlada pelo usuário final Isolamento de rede feito por firewalls Sem garantias de QoS Por Roteamento Seletivo Exemplos: MPLS, GRE, SD-WAN Segurança feita pela rede Segurança controlada pelo provedor Isolamento de rede feito por roteamento 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
(INTRANET OU EXTRANET VPN) Tipos de VPN ENTRE DUAS MÁQUINAS rede Insegura rede Insegura ENTRE UMA MÁQUINA E UMA REDE (VPN DE ACESSO) rede Insegura ENTRE DUAS REDES (INTRANET OU EXTRANET VPN)
VPN = Tunelamento pacote protegido 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 L4 L7 dados Pacote Original L2 L3 L3 L4 L7 L7 dados dados Tunelamento L3 L2 L3 L2 L7 L3 L7 dados Tunelamento L2
TUNELAMENTO Pilha Normal Tunelamento Camada 3 Tunelamento Camada 2 SSL Aplicação APLICAÇÃO APLICAÇÃO APLICAÇÃO APLICAÇÃO SSL TRANSPORTE TRANSPORTE TRANSPORTE TRANSPORTE S.O. REDE REDE REDE REDE REDE ENLACE REDE Placa de Rede ENLACE ENLACE ENLACE ENLACE FISICA FISICA FISICA FISICA
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 Segurança para aplicações baseadas em UDP 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 Transporta qualquer protocolo suportado pelo PPP L2TP Não IPsec Camada 3 Transporta apenas pacotes IP IPsec e L2TP
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 RAS: Remote Acess Server ou NAS: Remote Acess Server um modem para cada usuário (linha) MODEM PSTN MODEM Rede Remota MODEM 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. IPX O PPP permite transportar diversos protocolos de rede. IP link físico
Arquitetura PPP DHCP é para redes Multiponto 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 5 MD5 Segredo + CS Digest COMPARAÇÃO 4. VALIDAÇÃO FASE LCP 2. Challenge String (CS) Suplicant Authenticator 3. MD5 [Password + CS] 4. OK ou Failure
Frame PPP: Links ponto a ponto O Frame PPP segue uma variante da estrutura do HDLC (High-level Data Link Control) IP TCP Dados IPv4 0x7E 0xFF 0x03 0x0021 FLAG ADDRESS CONTROL PROTOCOL DADOS FCS FLAG 8 bits 8 bits 8 bits 16 bits 16 bits 8 bits
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 RAS PNS NAS inseguro seguro NAS: Network Access Server Ambiente da Empresa RAS Destino PSTN Rede Ethernet PPP inseguro IP IP IP PPP PPP Eth Eth PPTP linha telefônica meio compartilhado seguro Ambiente da Empresa Rede Ethernet PNS Internet PSTN NAS IP IP IP Eth PPTP PPTP Eth IP IP IP PPP PPP XYZ XYZ linha telefônica NAS: Network Access Server PNS: PPTP Network Server
TOPOLOGIAS PPTP Internet Pública Usuários conectados a VPN A não podem enviar pacotes para membros da VPN B filtro de pacotes filtro de pacotes Servidor PPTP A Servidor PPTP B
Exemplo Cliente e servidor possuem endereços PÚBLICOS pré-definidos: IPC e IPS. Após a conexão eles recebem endereços PRIVADOS EXEMPLO: 192.168.0.1 .. 192.168.0.254 LOGIN + SENHA IPVPN + ROTAS RANGE IP IPprivado1 IPprivado2 ... IPS IPC SERVIDOR PPTP INTERNET SERVIDOR RADIUS
Rede Virtual = TOPOLOGIA EM ESTRELA Apenas pacotes enviados para endereços virtuais são protegidos. O servidor PPTP funciona como um HUB IPA IPS IP2 IP4 IPA IP2 VPN IPS IPB SERVIDOR PPTP IP3 VPN VPN INTERNET IP1 IPC IP4 VPN IPS IPc IP2 IP4
são identificados pelo IP como GRE 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
1. Pedido de Login (Identificação) 3. Challenge String (CS2) + MSCHAP V1: PPTP 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 1. Pedido de Login (Identificação) 2. Challenge String (CS1) 3. Challenge String (CS2) + MD4 (CS1+Password) > 1024 4. OK + MD4(CS1, CS2, Password) TCP:1723 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)
Exemplo de VPN com Firewall IP_PPTP Não há regras do firewall para servidores de destino ou IP de origem >1023 1723 INTERNET FIREWALL: Liberar conexão TCP no servidor PPTP na porta 1723 Liberar envio de pacotes PPTP (0x2F) para IP de destino IP_PPTP
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 IP TCP HTTPS SSTP PPP pacote usuário
SSTP Define 2 tipos de pacotes: SSTP Control Packets SSTP Data Packets cliente SSTP servidor SSTP O cliente faz uma conexão TCP na porta 443 do servidor O handshake TLS/SSL é efetuado O cliente negocia um túnel SSTP com o servidor O cliente negocia uma conexão PPP com o servidor 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.