Acesso remoto a computadores 2 Grupo • • • • André B. Oliveira César H. Kallas Marcelo G. Hyppolito Rafael B. Curi RA: 01071489 RA: 02099224 RA: 01035690 RA: 02135473 Pontifícia Universidade Católica de Campinas Tópicos em Engenharia de Computação B Prof. Eduardo N. Zagari Acesso remoto a computadores 3 Tópicos • • • • • • • • Introdução Sistema de Janelas X - X Window SSH NX VNC Comparação Demonstração Conclusão Acesso remoto a computadores 4 Introdução • O mundo está ligado em rede • Estudo das tecnologias de acesso remoto a computadores • O objetivo é prover um ambiente de trabalho remoto e distribuído Acesso remoto a computadores 5 Introdução Figura 1 - Modelo de acesso remoto Acesso remoto a computadores 6 X Window System • Sistema de janelas e um protocolo que provê acesso a interfaces gráficas • Surgiu em 1984 no MIT, atualmente implementado pela X.org • http://www.x.org Acesso remoto a computadores 7 X Window System • Plataforma POSIX (Unix, Linux, etc) • Possui um framework para desenhar e mover janelas na tela, interagindo periféricos de entrada • Projeto complexo Acesso remoto a computadores 8 X Window System • Arquitetura cliente e servidor • Comunicação através de pacotes • O servidor aceita pedidos para desenhar janelas gráficas e de entrada via teclado, mouse, etc Acesso remoto a computadores 9 X Window System • Arquitetura • O servidor X provê um leque de serviços básicos para o cliente Acesso remoto a computadores 10 X Window System • Comunicação do servidor com o cliente • Event: O servidor envia um evento para o cliente, como a entrada de um teclado, movimento de uma janela, etc. Acesso remoto a computadores 11 X Window System • Janelas • São criadas a partir de uma janela inicial (root) Acesso remoto a computadores 12 X Window System • Identificadores • Dados armazenados no servidor sobre as janelas • São únicos Acesso remoto a computadores 13 X Window System • Atributos: tamanho, cor, posição, fundo (declarados pelo protocolo do X) • Propridades: valores criados pelas aplicações clientes (não declarados pelo protocolo) Acesso remoto a computadores 14 X Window System • Eventos: são pacotes enviados pelo servidor para o cliente para comunicar que alguma coisa ocorreu • Exemplo: usuário seleciona texto no cliente Acesso remoto a computadores 15 X Window System • Gerenciadores de Janelas • Controla a aparência das janelas / elementos gráficos • Provê uma interface amigável • Exemplo: KDE, Gnome Acesso remoto a computadores 16 X Window System • Recursos • Comunicação transparente do cliente com servidor • Podem funcionar na mesma máquina ou em máquinas diferentes Acesso remoto a computadores 17 X Window System • Recursos • Podem funcionar através de uma conexão segura (criptograda) • Várias instâncias podem coexistir na mesma máquina Acesso remoto a computadores 18 X Window System ftp://ftp-acd.puc-campinas.edu.br/pub/professores/ceatec/zagari/EE/SD • Sistema distribuído Acesso remoto a computadores 19 X Window System • Arquitetura escalável • Comunicação via rede From Computer Desktop Encyclopedia Acesso remoto a computadores 20 SSH – Secure Shell • Criado pela empresa SSH Communications Security em 1995, com implementação livre (OpenSSH) • Plataforma POSIX (Unix, Linux, etc) • http://www.ssh.fi Acesso remoto a computadores 21 SSH – Secure Shell • Arquitetura cliente e servidor TCP/IP • Autenticação segura • Transferência segura de arquivos • Encapsula outros protocolos Acesso remoto a computadores 22 SSH – Secure Shell • Acesso tipo terminal - via linha de comando Acesso remoto a computadores 23 SSH – Secure Shell • A troca de mensagens é criptografada (supre o telnet) • Chave pública e privada http://www.interpeak.com Acesso remoto a computadores 24 Acesso remoto a computadores 25 SSH – Secure Shell • Proteção contra IP spoofing (quando um computador se finge de outro) • Proteção contra DNS spoofing (ataque de sobreposição de servidores DNS), usando chave pública • Troca de chaves usando algorítmo RSA (atualizadas de tempo em tempo) Acesso remoto a computadores 26 SSH – Secure Shell • Encapsulamento de outros protocolos http://sial.org/howto/openssh/forward/reverse-ssh-tunnel.png Acesso remoto a computadores 27 NX • Criado pela empresa NoMachine • Plataforma POSIX (Unix, Linux, etc) e Microsoft • http://www.nomachine.com Acesso remoto a computadores 28 NX • Pequena camada de software que provê serviços • Comunica diretamente com o X e com os protocolos RDP (Microsoft) e RFB (VNC) • Túnel de dados via SSH Acesso remoto a computadores 29 NX http://linuxdevices.com/files/misc/nx_system_architecture.gif Acesso remoto a computadores 30 NX • X precisa de uma banda larga e baixa latência • Melhor tecnologia de compressão para o protocolo X (10:1 e 100:1) • Adiciona sistema de proxy no caminho Acesso remoto a computadores 31 NX • Sistema de cache: Proxy não reenvia dados já enviados • Controle de banda (Ex. Screensaver com conexão de 56Kbps) • Permite compartilhar arquivos, impressoras e som Acesso remoto a computadores 32 VNC - Virtual Network Computing • Desenvolvido por membros do Olivetti & Oracle Research Labs (ORL) • Multiplataforma • http://www.realvnc.com Acesso remoto a computadores 33 VNC - Virtual Network Computing • Protocolo RFB • Exige pouco do cliente • Opera no nível do framebuffer (independe do SO) Acesso remoto a computadores 34 VNC - Virtual Network Computing • Opera no nível do framebuffer (independe do Sist. Operacional) Acesso remoto a computadores 35 VNC - Virtual Network Computing • Arquitetura cliente e servidor Acesso remoto a computadores 36 VNC - Virtual Network Computing • Framebuffer: memória onde são armazenados os quadros gerados pelo sistema de vídeo • RFB Server: responsável pela troca de mensagens via TCP/IP Acesso remoto a computadores 37 VNC - Virtual Network Computing • RectangleEncoder: faz a leitura dos dados do framebuffer e os codifica • DesktopControl: recebe as mensagens do cliente referente à entradas (eventos do mouse e teclado) e as passo ao SO Acesso remoto a computadores 38 VNC - Virtual Network Computing • RFB Client: comunica com módulo RFB Server e também ajusta parâmetros da conexão • RectangleDecoder: decodificar os quadros recebidos do RectangleEncoder e os repassa à interface com o usuário. Acesso remoto a computadores 39 Comparação Software Segurança Compactação Portabilidade Uso de recursos X Window fraca fraca restrita* alto SSH forte forte restrita* baixo NX forte forte restrita* médio VNC fraca fraca forte baixo * Restrito ao sistemas de padrão POSIX (Unix, Linux, etc) Acesso remoto a computadores 40 Demonstração • • • • • • X Window SSH SSH e X Window NX VNC VNC com túnel via SSH Acesso remoto a computadores 41 Conclusão • Acesso remoto permite distribuir recursos • Tecnologias de fácil acesso Acesso remoto a computadores