UNIVERSIDADE DA BEIRA INTERIOR
Departamento de Informática
Administração de Sistemas
Licenciatura em:
- Tecnologias e Sistemas de Informação
3. Serviços de Acesso Remoto a
Sistemas e Ficheiros
Docente:
Prof. Joel RodriguesTELNET
• 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).
• 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). • Usa o porto 23 do TPC.
• Faz o uso do conceito Network Virtual Terminal (NTV). • Negociação de opções.
Funcionamento baseado no modelo cliente-servidor: 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.
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.
Terminal driver TCP/IP Cliente telnet Utilizador no terminal kernel Pseudo Terminal driver TCP/IP Servidor telnet kernel Ligação TCP Interpretador de comandos
Figura 3.1 – Modelo Cliente/Servidor do Telnet.
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”.
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.
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
Remote Login (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. • 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.
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.
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.
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. • Telnet, rlogin e ftp efectuam toda a comunicação em ASCII simples, tornando-se
muito vulneráveis em termos de segurança.
• 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, 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.
• 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.
• 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.
Comandos SSH
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. scp – (Secure file copy) Programa semelhante ao rcp.
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.
• 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.
Sintaxe:
− sftp [[utilizador@]máquina[:ficheiro [ficheiro]]] − sftp [[utilizador@]máquina[:directoria[/]]]
Opções:
− C envia dados comprimidos
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.
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).
o Envio (upload) de ficheiros
o Recepção (download) de ficheiros
o Outras operações sobre o sistema de ficheiros.
• 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:
o Ligação de controlo - para a troca de comandos e respostas; o Ligação de dados - para a transferência de informação.
• 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.
Figura 3.3 – Comandos do ftp em Windows.
Figura 3.4 – Comandos do ftp em Linux.
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.
• 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.
• 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.
Figura 3.5 – Sintaxe do tftp em 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.
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).
• 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 de processos.