Universidade da Beira Interior Departamento de Informática Unidade Curricular Serviços de Acesso Remoto a Sistemas e Ficheiros Licenciatura em Tecnologias e Sistemas de Informação
Cap. 3 - Sumário ü TELNET ü Remote Login (RLOGIN) ü Secure Shell (SSH) ü Remote Shell (rsh) ü File Transfer Protocol (FTP) ü Trivial FTP ü Remote Copy (rcp) ü X Windows
TELNET Telnet - Telecommunications Network Protocol Descrito no RFC 854 Serviço normalizado de acesso remoto a sistemas sobre redes TCP/IP Serviço de funcionalidade reduzida, simples de utilizar e omnipresente Um dos serviços mais antigos da Internet (a primeira especificação data de 1969)
TELNET Suficientemente genérico para poder funcionar com qualquer tipo de computador Implementado sobre outras arquitecturas protocolares (SNA, DNA, etc.) Modo de comunicação bidireccional e em modo carácter-a-carácter, com eco gerado pelo servidor. (Opcionalmente pode funcionar em modo linha-a-linha)
TELNET Usa o porto 23 do TPC Funcionamento baseado no modelo cliente-servidor Faz o uso do conceito Network Virtual Terminal (NTV). Negociação de opções.
TELNET - Cliente Corre no sistema local É lançado pelo utilizador cliente Faz o acoplamento entre o terminal-driver e uma ligação TCP O utilizador dialoga com o terminal-driver
TELNET - Servidor Reside no sistema remoto É activado em background no arranque da máquina (deamon) Faz o acoplamento entre um pseudo terminal-driver e uma ligação TCP O pseudo terminal-driver dialoga com o interpretador de comandos
TELNET Cliente/Servidor Cliente telnet Servidor telnet Interpretador de comandos Terminal driver TCP/IP TCP/IP Pseudo Terminal driver kernel kernel Utilizador no terminal Ligação TCP O pseudo terminal driver faz com que a login shell pense que foi invocada no servidor, e que qualquer programa executado por ela pense que está a dialogar com um terminal real.
TELNET Network Virtual Terminal Dispositivo imaginário que fornece, através da rede, uma representação normalizada de um terminal canónico em modo de carácter (ASCII). O sistema local e o sistema remoto fazem o mapeamento entre o NTV e os seus terminais reais. O sistema local faz o mapeamento do terminal do utilizador no NTV. O sistema remoto faz o mapeamento do NTV no tipo de terminal que ele suporta. Elimina a necessidade de os sistemas remotos serem informados das características do terminal local.
TELNET Negociação de Opções Todos os NVTs suportam um conjunto mínimo de capacidades. Alguns terminais possuem mais capacidades do que o conjunto mínimo. Os sistemas local e remoto negoceiam um conjunto de opções mutuamente aceitáveis (conjunto de caracteres, modo de eco, tamanho da janela).
TELNET versus telnet TELNET é o protocolo. telnet é uma aplicação que suporta o protocolo TELNET sobre TCP. Existem outros protocolos da camada de aplicação que utilizam o TELNET.
Comando telnet O comando telnet invoca o protocolo TELNET. O formato deste comando é o seguinte: Sintaxe: telnet [host] Exemplo: telnet 192.168.1.1 telnet unix.ubi.pt Se o comando for executado sem opções entra-se em modo de comando. Neste modo, podem executar-se diversos subcomandos. Exemplo: open 192.168.1.1
Comandos telnet
Cap. 3 - Sumário ü TELNET ü Remote Login (RLOGIN) ü Secure Shell (SSH) ü Remote Shell (rsh) ü File Transfer Protocol (FTP) ü Trivial FTP ü Remote Copy (rcp) ü X Windows
rlogin Descrito no RFC 1282. Serviço normalizado de acesso remoto entre máquinas UNIX/LINUX sobre redes TCP/IP. Modo de comunicação bidireccional e em modo carácter-a-carácter com eco gerado pelo sistema remoto. Mais simples e eficiente que o TELNET. Não suporta opções de funcionamento.
rlogin O rlogin usa o porto 513 do protocolo TCP. Possibilita login remoto sem necessidade de especificar uma password. A autenticação do pedido de login remoto é feita verificando os ficheiros /etc/ hosts.equiv e ~/.rhosts no sistema remoto. Se o nome do sistema local não estiver em algum destes ficheiros, o utilizador terá de introduzir a password.
rlogin A sintaxe do comando rlogin é: rlogin [-l username] hostname A opção -l username é usada quando o nome do utilizador no sistema remoto é diferente do nome no sistema local.
rlogin Exemplo do ficheiro hosts.equiv: neve diamante_gold joel + david - maria Todos os utilizadores da máquina neve podem utilizar o rlogin sem password. O utilizador joel a partir da máquina diamante_gold não necessita de password no rlogin. O utilizador david pode utilizar o rlogin de qualquer máquina sem password. O utilizador maria necessita sempre de password.
Cap. 3 - Sumário ü TELNET ü Remote Login (RLOGIN) ü Secure Shell (SSH) ü Remote Shell (rsh) ü File Transfer Protocol (FTP) ü Trivial FTP ü Remote Copy (rcp) ü X Windows
Secure Shell - SSH É um programa que permite efectuar login numa máquina remota, executar comandos e copiar ficheiros. Fornece autenticação forte e comunicações seguras sobre redes inseguras. O telnet, rlogin e ftp efectuam toda a comunicação em ASCII simples, tornando-se muito vulneráveis em termos de segurança.
Secure Shell - SSH O SSH efectua a encriptação de toda a informação (pode opcionalmente também efectuar a compressão da informação). É um produto comercial, tendo custos para implementações comerciais. É grátis para outras utilizações. Foi desenvolvido na Finlândia (http://www.ssh.fi). Os protocolos SSH estão disponíveis em: http://www.ietf.org/html.charters/secsh-charter.html A versão actual é o Secure Shell 3.2
SSH Versão 1 Usa encriptação RSA (Rivest, Shamir, Adir), 3DES (Triple Data Encryption Standard) e Blowfish Algumas implementações também usam IDEA (International Data Encryption Algorithm), contudo o OpenSSL não a utiliza. Usa CRC (Cyclic redundancy checking) para manter a integridade dos dados.
SSH Versão 2 Usa encriptação DSA (Digital Signature Algorithm), melhor implementado na versão comercial do SSH. Usa uma abordagem diferente relativamente ao CRC. SSH1 and SSH2 não são compatíveis entre si.
SSH Versão 3 Apresenta funcionalidades de autenticação melhoradas. Possui funcionalidades PKI (Public Key Infrastructure) avançadas. Testado e certificado para actuar com CAs (Certification Authorities) como o SSH Certifier e RSA Security Keon PKI, de modo a integrar-se facilmente com os sistemas PKI actuais. Suporte adicional para OCSP (Online Certificate Status Protocol) melhorando a segurança efectuando verificações em tempo real da validade dos certificados. Suporte para smart cards.
SSH Versão 3 Suporte para Servidores Windows Funcionalidades PKI semelhantes às versões UNIX Grande segurança e funcionalidade, com melhoria substancial do desempenho. Redução significativa da utilização da CPU em transferências de ficheiros. Suporte para SFTP (Secure File Transfer Protocol) com registo das acções dos utilizadores em ficheiros de log. Aceita Anonymous SFTP Inclui ainda uma API (Application Programming Interface) de suporte a funcionalidades ssh-agent
Open SSH Implementação do protocolo SSH Freeware Suporta as versões SSH1, SSH2 e SSH3 O OpenSSH está actualmente na Versão 4.2 Disponível em http://www.openssh.org
SSH - Comandos ssh Programa cliente Telnet/rlogin. sshd Programa Servidor (daemon) que permite o acesso. ssh-agent Agente de autenticação para guardar chaves privadas. ssh-add Ferramenta usada para adicionar chaves ao agente. sftp Programa tipo FTP que funciona sobre o protocolo SSH.
SSH - Comandos scp (Secure file copy) Programa semelhante ao rcp. ssh-keygen Ferramenta para gerar chaves. sftp-server Servidor FTP que funciona sobre SSH inicializado automaticamente por sshd. ssh-keyscan Ferramenta usada para aceder às chaves públicas existentes em servidores SSH.
Alguns clientes SSH ssh PuTTy TeraTerm Pro with SSH extentions SecureCRT WinSCP (implementação do SCP para windows)
FTP Seguro O SSH através da aplicação sftp (secure FTP) permite transferir ficheiros de um modo semelhante ao ftp através de um meio de comunicação encriptado (ssh). Pode usar a autenticação de chave pública e compressão. O sftp efectua a ligação a um servidor passando depois a actuar em modo de comando interactivo semelhante ao ftp normal.
FTP Seguro Pode descarregar ficheiros automaticamente se não for usado um método de autenticação interactivo, caso contrário só o pode fazer depois da autenticação. Pode ser inicializado a partir de uma directoria remota.
FTP Seguro Sintaxe: sftp [[utilizador@]máquina[:ficheiro [ficheiro]]] sftp [[utilizador@]máquina[:directoria[/]]] Opções: C envia dados comprimidos para outras opções consultar: man sftp
Cap. 3 - Sumário ü TELNET ü Remote Login (RLOGIN) ü Secure Shell (SSH) ü Remote Shell (rsh) ü File Transfer Protocol (FTP) ü Trivial FTP ü Remote Copy (rcp) ü X Windows
Remote Shell (rsh) Execução remota de comandos UNIX. Sintaxe abreviada: rsh maquina_remota comando_remoto Autenticação: na directoria do utilizador, na máquina remota, deve existir um ficheiro.rhosts com a lista das máquinas autorizadas a executar comandos remotos.
Cap. 3 - Sumário ü TELNET ü Remote Login (RLOGIN) ü Secure Shell (SSH) ü Remote Shell (rsh) ü File Transfer Protocol (FTP) ü Trivial FTP ü Remote Copy (rcp) ü X Windows
File Transfer Protocol (ftp) Definido nas RFCs 959, 2228 e 2640. Funciona no modelo cliente/servidor. Oferece os elementos básicos para partilha de ficheiros entre máquinas (acesso e manipulação de ficheiros locais e remotos). Envio (upload) de ficheiros Recepção (download) de ficheiros Outras operações sobre o sistema de ficheiros.
File Transfer Protocol (ftp) Serviço normalizado de acesso remoto a ficheiros sobre redes TCP/IP. É necessário uma conta no servidor ou o servidor permitir FTP anónimo (anonymous FTP). Utiliza duas ligações TCP: Ligação de controlo - para a troca de comandos e respostas; Ligação de dados - para a transferência de informação.
File Transfer Protocol (ftp) O servidor fica escuta de pedidos no porto 21 (ligação de controlo). A ligação de controlo é mantida até ao fim da sessão. A ligação de dados é estabelecida sempre que for necessário transferir um ficheiro.
FTP Comandos (Windows)
FTP Comandos (Linux)
Cap. 3 - Sumário ü TELNET ü Remote Login (RLOGIN) ü Secure Shell (SSH) ü Remote Shell (rsh) ü File Transfer Protocol (FTP) ü Trivial FTP ü Remote Copy (rcp) ü X Windows
Trivial FTP Descrito nos RFCs 783 e 1350. Serviço normalizado de acesso remoto a ficheiros sobre redes UDP/IP, pode também funcionar sobre outros protocolos de transporte. Serviço com funcionalidades muito reduzidas e de utilização simples. Simples, fácil de implementar e pode residir em ROM.
Trivial FTP Sem segurança. Não é necessário especificar o user_name e a password. Esta característica foi utilizada por crackers para copiar o ficheiro de passwords de sistemas Unix, podendo depois tentar descobrir essas passwords.
Trivial FTP Para prevenir esta falha de segurança, os sistemas passaram apenas a permitir o acesso por TFTP a uma só directoria. Não permite a listagem dos ficheiros existentes no servidor. O cliente tem de saber à partida qual o nome do ficheiro a transferir.
Trivial FTP - Sintaxe
Cap. 3 - Sumário ü TELNET ü Remote Login (RLOGIN) ü Secure Shell (SSH) ü Remote Shell (rsh) ü File Transfer Protocol (FTP) ü Trivial FTP ü Remote Copy (rcp) ü X Windows
Remote Copy (rcp) Cópia remota de ficheiros e directorias entre sistemas UNIX. Sintaxe abreviada: rcp maquina_remota:ficheiro_remoto ficheiro_local rcp ficheiro.local maquina_remota:ficheiro_remoto Autenticação: ficheiro.rhosts.
Cap. 3 - Sumário ü TELNET ü Remote Login (RLOGIN) ü Secure Shell (SSH) ü Remote Shell (rsh) ü File Transfer Protocol (FTP) ü Trivial FTP ü Remote Copy (rcp) ü X Windows
X Windows Descrito no RFC 1013. Acesso remoto em modo gráfico, em ambiente cliente-servidor. Servidor X: aplicação de gestão do monitor gráfico, teclado e rato. Pode ser totalmente implementado em hardware (terminais X).
X Windows Clientes X: aplicações locais ou remotas que usam o programa servidor. Utiliza TCP para comunicações remotas. Quando o servidor e os clientes estão na mesma máquina, a comunicação é feita através da comunicação entre processos.