Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003 27/07/03...

67
27/07/03 13:58 Professor Roberto Amaral – Serviços de Redes 1 ência da Computação Redes de Computadores Serviços de Redes Emulador de terminal – TELNET •O TELNET permite que um usuário interação •Estabelece conexão TCP com um servidor •Transmite os toques no teclado do usuário diretamente ao computador remoto. •Serviço transparente.

Transcript of Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003 27/07/03...

Page 1: Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003 27/07/03 13:58Professor Roberto Amaral – Serviços de Redes1 Emulador.

27/07/03 13:58 Professor Roberto Amaral – Serviços de Redes 1

Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003

Emulador de terminal – TELNET

•O TELNET permite que um usuário interação

•Estabelece conexão TCP com um servidor

•Transmite os toques no teclado do usuário diretamente ao computador remoto.

•Serviço transparente.

Page 2: Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003 27/07/03 13:58Professor Roberto Amaral – Serviços de Redes1 Emulador.

27/07/03 13:58 Professor Roberto Amaral – Serviços de Redes 2

Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003

Emulador de terminal – TELNET

Telnet Server Cliente

Transmissão comandos

Aplicativo

S.O.

S.O. de RedeComando DIR

Aplicativo

S.O.

S.O. de Rede

Page 3: Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003 27/07/03 13:58Professor Roberto Amaral – Serviços de Redes1 Emulador.

27/07/03 13:58 Professor Roberto Amaral – Serviços de Redes 3

Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003

Emulador de terminal – TELNET• Transmissão de teclas

Page 4: Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003 27/07/03 13:58Professor Roberto Amaral – Serviços de Redes1 Emulador.

27/07/03 13:58 Professor Roberto Amaral – Serviços de Redes 4

Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003

Emulador de terminal – TELNETEstabelece conexão TCP com um servidor

Conexão TCP

Conexão TELNET

Page 5: Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003 27/07/03 13:58Professor Roberto Amaral – Serviços de Redes1 Emulador.

27/07/03 13:58 Professor Roberto Amaral – Serviços de Redes 5

Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003

Emulador de terminal – TELNET

• Amplamente usado

•Permite que o usuário especifique a máquina remota fornecendo seu nome de domínio ou seu endereço IP.

•O TELNET oferece três serviços básicos.

–Terminal virtual da rede

–Negociação de opções e fornecimento de um conjunto de opções padronizadas

–Trata ambas as pontas da conexão de forma simétrica.

Page 6: Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003 27/07/03 13:58Professor Roberto Amaral – Serviços de Redes1 Emulador.

27/07/03 13:58 Professor Roberto Amaral – Serviços de Redes 6

Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003

Emulador de terminal – TELNET

• Exige: Cliente e Servidor

Dispositivo de entrada e saída de dados do usuário Sistema

Operacional

Client TELNET

Sistema Operacional

Servidor TELNET

Cliente lê dados de terminal Cliente envia

dados ao servidor

Servidor envia dados

Servidor recebe dados

Inter-rede TCP/IP

Page 7: Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003 27/07/03 13:58Professor Roberto Amaral – Serviços de Redes1 Emulador.

27/07/03 13:58 Professor Roberto Amaral – Serviços de Redes 7

Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003

Emulador de terminal – TELNET

• pseudoterminal (aceite do sistema operacional)

•Um programa em nível de aplicativo : vantagens e desvantagens.

–Vantagem - Fácil a inclusão das modificações e o controle do servidor

–Desvantagem - Ineficiência. Cada sinal trafega do teclado do usuário,

Page 8: Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003 27/07/03 13:58Professor Roberto Amaral – Serviços de Redes1 Emulador.

27/07/03 13:58 Professor Roberto Amaral – Serviços de Redes 8

Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003

Emulador de terminal – TELNET

Telnet Server Filho Cliente

Pseudoterninal

S.O.

Telnet PAI

NVT Conexão

S.O.

NVT

PSEUDOTERMINAL

Page 9: Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003 27/07/03 13:58Professor Roberto Amaral – Serviços de Redes1 Emulador.

27/07/03 13:58 Professor Roberto Amaral – Serviços de Redes 9

Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003

Emulador de terminal – TELNET• TELNET - Interoperacional entre o maior número possível de sistemas

– carriage control (CR)

– linefeed (LF)

– CR-LF

•Para acomodar esta heterogeneidade, o TELNET define como as seqüências de dados e de comandos são enviadas através da Internet. A definição é conhecida como o terminal virtual de rede (NVT – Network Virtual Terminal)

Page 10: Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003 27/07/03 13:58Professor Roberto Amaral – Serviços de Redes1 Emulador.

27/07/03 13:58 Professor Roberto Amaral – Serviços de Redes 10

Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003

Emulador de terminal – TELNET• Software do cliente converte os toques para NVT e os envia ao servidor. • O software do servidor converte os dados e comandos recebidos em formato NVT para o formato requerido pelo sistema

remoto.

Dispositivo de entrada e

saída de dados do usuário

Cliente ServidorSistema Servidor

Conexão TCP Inter-rede

Formato do sistema cliente

usado

Formato do sistema do

servidor usado

Formato NVT usado

Page 11: Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003 27/07/03 13:58Professor Roberto Amaral – Serviços de Redes1 Emulador.

27/07/03 13:58 Professor Roberto Amaral – Serviços de Redes 11

Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003

Emulador de terminal – TELNET

Código de Controle ASCII

 Valor Decimal

 Significado atribuído

NULL 0Nenhuma operação (não tem qualquer efeito sobre a saída)

BELL 7 Som audível/sinal visível (nenhum movimento)

BS 8 Mova para a esquerda a posição de um caracter

HT 9Mova à direita até a próxima marca de tabulação horizontal

LF 10 Mova para baixo (verticalmente) até a próxima linha

VT 11Mova para baixo até a próxima marca de tabulação vertical

FF 12 Mova até a borda superior da próxima página

CR 13 Mova até a margem esquerda da linha atual

Outro controle - Nenhuma operação (não tem efeito algum sobre a saída)

interpretação para os caracteres de controle

Page 12: Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003 27/07/03 13:58Professor Roberto Amaral – Serviços de Redes1 Emulador.

27/07/03 13:58 Professor Roberto Amaral – Serviços de Redes 12

Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003

Emulador de terminal – TELNET• Além da interpretação de caracteres de controle, o NVT define que a finalização da linha padrão seja feita através de uma seqüência de duplo caractere CR-LF. Quando um usuário pressionar a tecla que corresponde ao fim da linha no

terminal local (p. ex., ENTER ou RETURN), o cliente TELNET deverá converte-la em CR-LF para a retransmissão. O servidor TELNET converte CR-LF para a seqüência de caracteres de fim de linha apropriados na máquina remota.

Page 13: Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003 27/07/03 13:58Professor Roberto Amaral – Serviços de Redes1 Emulador.

27/07/03 13:58 Professor Roberto Amaral – Serviços de Redes 13

Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003

Emulador de terminal – TELNET. A figura abaixo lista as funções de controle permitidas pelo NVT

Sinal Significado atribuído

IP Interrupt Process (finalizar execução do programa)

AO Abort Output (descartar informações resultantes)

AYT Are You There (testar se o servidor responde)

EC Erase Character (excluir caracteres anteriores)

EL Erase Line (excluir toda a linha atual)

SYNCHSynchorniza (limpar a rota de dados até o ponto TCP de urgência, mas não interpretar os comandos)

BRK Break (tecla de interrupção ou sinal de atenção)

Page 14: Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003 27/07/03 13:58Professor Roberto Amaral – Serviços de Redes1 Emulador.

27/07/03 13:58 Professor Roberto Amaral – Serviços de Redes 14

Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003

• A maioria dos teclados não possui teclas extras.

• Os interpretadores de comandos dos S.O. dispõem de uma variedade de formas para gerá-los.

• Os projetistas NVT optaram por manter os comandos separados do conjunto de caracteres normais ASCII por dois motivos.

• Para definir as funções de controle separadamente permite maior flexibilidade ao TELNET.

• Para fazer a separação entre os sinais de controle e dos dados normais.

Emulador de terminal – TELNET

Page 15: Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003 27/07/03 13:58Professor Roberto Amaral – Serviços de Redes1 Emulador.

27/07/03 13:58 Professor Roberto Amaral – Serviços de Redes 15

Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003

Emulador de terminal – TELNET

• Para transmitir funções de controle por uma conexão TCP, o TELNET codifica-as usando uma seqüência de escape.

• Uma seqüência de escape utiliza um octeto reservado para indicar que um octeto de código de controle vem em seguida.

• No TELNET, o octeto reservado que inicia de escape é conhecido como octeto IAC (interpret as command).

Page 16: Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003 27/07/03 13:58Professor Roberto Amaral – Serviços de Redes1 Emulador.

27/07/03 13:58 Professor Roberto Amaral – Serviços de Redes 16

Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003

Emulador de terminal – TELNETComandos possíveis e a codificação decimal.

Comando 

Valor Decimal Significado atribuído

IAC 255Interpreta o octeto seguinte como comando (quando o octeto IAC aparece na forma de dados, o emissor o duplica e envia a seqüência de dois octetos)

DONT 254Negação a solicitação de execução da opção especificada

DO 253 Aprovação a permitir a opção especificada

WONT 252 Negação a permitir a opção especificada

WILL 251 Concordância em executar a opção especificada

SB 250 Início de subnegociação de opções

GA 249 O sinal “vá em frente”(go ahead)

EL 248 O sinal “apagar linha” (erase line)

Page 17: Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003 27/07/03 13:58Professor Roberto Amaral – Serviços de Redes1 Emulador.

27/07/03 13:58 Professor Roberto Amaral – Serviços de Redes 17

Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003

Emulador de terminal – TELNET

Comando 

Valor Decimal Significado atribuído

EC 247 O sinal “apagar caractere” (erase character)

AYT 246 O sinal “você está ai” (are you there)

AO 245 O sinal “cancela saída” (abort output)

IP 244 O sinal “interromper processo” (interrupt process)

BRK 243 O sinal “interromper” (break)

DMARK 242O intervalo de fluxo de dados de um SYNCH (sempre acompanhado de uma notificação TCP Urgent)

NOP 241 Fora de operação

SE 240 Fim de subnegociação de opções

EOR 239 Fim de registro

Comandos possíveis e a codificação decimal.

Page 18: Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003 27/07/03 13:58Professor Roberto Amaral – Serviços de Redes1 Emulador.

27/07/03 13:58 Professor Roberto Amaral – Serviços de Redes 18

Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003

Emulador de terminal – TELNETComandos possíveis e a codificação decimal.

Interprete como Comando

Concordância em executar a opção

especificada

Page 19: Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003 27/07/03 13:58Professor Roberto Amaral – Serviços de Redes1 Emulador.

27/07/03 13:58 Professor Roberto Amaral – Serviços de Redes 19

Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003

Emulador de terminal – TELNETComando go-ahead

O sinal “vá em frente

Page 20: Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003 27/07/03 13:58Professor Roberto Amaral – Serviços de Redes1 Emulador.

27/07/03 13:58 Professor Roberto Amaral – Serviços de Redes 20

Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003

Emulador de terminal – TELNETResposta Comando go-ahead

O sinal “vá em frente

Page 21: Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003 27/07/03 13:58Professor Roberto Amaral – Serviços de Redes1 Emulador.

27/07/03 13:58 Professor Roberto Amaral – Serviços de Redes 21

Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003

Emulador de terminal – TELNET

• Enviar funções de controle juntamente com dados normais nem

sempre é suficiente para assegurar os resultados desejados.

Forçar o servidor a ler uma função de controle

• Exemplo de função de controle da interrupção de processo para o servidor.

• O servidor deve parar de ler os dados da conexão TCP, fazendo com que os buffers fiquem carregados.

• Oportunamente, o TCP da máquina do servidor começa a indicar uma janela de tamanho zero, impedindo que os dados fluam pela conexão

Page 22: Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003 27/07/03 13:58Professor Roberto Amaral – Serviços de Redes1 Emulador.

27/07/03 13:58 Professor Roberto Amaral – Serviços de Redes 22

Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003

Emulador de terminal – TELNET• Se o usuário gerar uma função de

controle de interrupção quando os buffers estiverem cheios, a função de controle jamais chegará ao servidor. Isso indica que o cliente poderá formar a seqüência de comando IAC IP e envia-lo à conexão TCP, mas como o TCP parou de transmitir à máquina do servidor, o servidor não lerá a seqüência de controle.

Page 23: Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003 27/07/03 13:58Professor Roberto Amaral – Serviços de Redes1 Emulador.

27/07/03 13:58 Professor Roberto Amaral – Serviços de Redes 23

Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003

Emulador de terminal – TELNET

Telnet Server Cliente

Conexão Normal

Programa Travado

IAC IP URGENTE

Buffer Cheio Zera a

Janela

Servidor Aceita URG

Servidor Libera Buffer

Conexão Normal

Page 24: Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003 27/07/03 13:58Professor Roberto Amaral – Serviços de Redes1 Emulador.

27/07/03 13:58 Professor Roberto Amaral – Serviços de Redes 24

Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003

Emulador de terminal – TELNET

O TELNET não pode depender somente do stream de dados convencional para transmitir as seqüências de controle entre o cliente e o servidor, já que um aplicativo que esteja operando erroneamente e que precise ser controlado poderá inadvertidamente bloquear o stream de dados.

Page 25: Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003 27/07/03 13:58Professor Roberto Amaral – Serviços de Redes1 Emulador.

27/07/03 13:58 Professor Roberto Amaral – Serviços de Redes 25

Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003

Emulador de terminal – TELNETOpções TELNET

Nome Código RFC  Significado atribuído

Transmit Binary 0 856 Mude transmissão para um binário de 8 bits

Echo 1 857 Permita que um lado faça echo dos dados que recebe

Suppress-GA 3 858Solicite status de uma opção TELNET de uma instalação remota

Status 5859 Solicite status de uma opção TELNET de uma

instalação remota

Timing Mark 6 860Solicite que marca de sincronização seja inserida no stream de retorno para sincronizar as duas extremidades de uma conexão

Terminal Type 24 884

Troque informações sobre a marca e o modelo do terminal sendo utilizado (permite que os programas ajustem a saída como seqüência de posicionamento de cursos para o terminal do usuário)

End-of-Record 25 885 Finalize dados enviados com código EOR

Linemode 34 1116Use edição local e envie as linhas completas em vez de caracteres específicos.

Page 26: Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003 27/07/03 13:58Professor Roberto Amaral – Serviços de Redes1 Emulador.

27/07/03 13:58 Professor Roberto Amaral – Serviços de Redes 26

Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003

Emulador de terminal – TELNETQualquer extremidade pode faça uma solicitação. (protocolo

simétrico)

Telnet Server Cliente

DO X ou DON’T X Will X ?WILL X e WONT X

Inicia o serviço com a opção

Page 27: Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003 27/07/03 13:58Professor Roberto Amaral – Serviços de Redes1 Emulador.

27/07/03 13:58 Professor Roberto Amaral – Serviços de Redes 27

Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003

Emulador de terminal – TELNETNegociação

Negociação

Page 28: Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003 27/07/03 13:58Professor Roberto Amaral – Serviços de Redes1 Emulador.

27/07/03 13:58 Professor Roberto Amaral – Serviços de Redes 28

Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003

Emulador de terminal – TELNETNegociação

Page 29: Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003 27/07/03 13:58Professor Roberto Amaral – Serviços de Redes1 Emulador.

27/07/03 13:58 Professor Roberto Amaral – Serviços de Redes 29

Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003

Emulador de terminal – TELNETNegociação

Início de subnegociação de opções

Page 30: Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003 27/07/03 13:58Professor Roberto Amaral – Serviços de Redes1 Emulador.

27/07/03 13:58 Professor Roberto Amaral – Serviços de Redes 30

Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003

Emulador de terminal – TELNETNegociação

FIM de subnegociação de opções

Page 31: Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003 27/07/03 13:58Professor Roberto Amaral – Serviços de Redes1 Emulador.

27/07/03 13:58 Professor Roberto Amaral – Serviços de Redes 31

Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003

TÁ LOCO............

? ? ?

Page 32: Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003 27/07/03 13:58Professor Roberto Amaral – Serviços de Redes1 Emulador.

27/07/03 13:58 Professor Roberto Amaral – Serviços de Redes 32

Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003

Segurança – Secure Shell

O Secure Shell é um programa para ligar equipamentos que estão em máquinas diferentes permitindo executar comandos remotamente.

Descrição

O SSH ( Secure Shell ) é muito parecido com o telnet mas possui suporte a criptografia de dados tornando a técnica de sniffer ineficiente, evitando que logins, senhas, cartões de créditos e outros dados sejam grampeados.

Page 33: Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003 27/07/03 13:58Professor Roberto Amaral – Serviços de Redes1 Emulador.

27/07/03 13:58 Professor Roberto Amaral – Serviços de Redes 33

Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003

Segurança – Secure ShellTELNET

Page 34: Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003 27/07/03 13:58Professor Roberto Amaral – Serviços de Redes1 Emulador.

27/07/03 13:58 Professor Roberto Amaral – Serviços de Redes 34

Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003

Segurança – Secure ShellSSH

Page 35: Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003 27/07/03 13:58Professor Roberto Amaral – Serviços de Redes1 Emulador.

27/07/03 13:58 Professor Roberto Amaral – Serviços de Redes 35

Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003

Segurança – Secure ShellSoftware SSH é Free implementado para suportar os protocolos SSH1 e SSH2.

As implementações de SSH usam como padrão a porta 22/tcp do TCP/IP.

Possuem suporte para kerberos, autenticação TIS e sockts.

Instalação e configuração são muito simples, grande suporte técnico em listas de discussão, estabilidade, escalabilidade, segurança quando bem configurado, suportado por diversos sistemas operacionais.

Page 36: Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003 27/07/03 13:58Professor Roberto Amaral – Serviços de Redes1 Emulador.

27/07/03 13:58 Professor Roberto Amaral – Serviços de Redes 36

Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003

Segurança – Secure ShellO SSH (www.ssh.fi) é escrito em C ANSI’

(www.ssh.fi)

openssh (www.openssh.com) possui suporte ao ssh1 e ssh2.

SSH2 possui maior flexibilidade, melhor escalabilidade e uma maior segurança. O SSH2 atualmente é menos usado que o SSH1, como ambos são incompatíveis as instituições/empresas que precisam se comunicar com outras tem que utilizar o SSH1.

Page 37: Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003 27/07/03 13:58Professor Roberto Amaral – Serviços de Redes1 Emulador.

27/07/03 13:58 Professor Roberto Amaral – Serviços de Redes 37

Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003

Segurança – Secure ShellSuporte a vários algoritmos criptográficos

• BlowFish – Chave de 64 bits – Utilizado em redes de alta velocidade e de alto volume

• DES – Padrão do governo EUA

• IDEA - Chave de 128 bits

• RSA – Sistema criptográfico de chave publica / chave privada

Page 38: Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003 27/07/03 13:58Professor Roberto Amaral – Serviços de Redes1 Emulador.

27/07/03 13:58 Professor Roberto Amaral – Serviços de Redes 38

Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003

Segurança – Secure ShellCOMO FUNCIONA O SECURE SHELL

O Ssh usa um esquema de autenticação de servidor por RSA. O

esquema está baseado em criptografia de chaves públicas e privadas,

no qual a encriptação e desencriptação usam chaves separadas, não

sendo possível através da chave de encriptação saber a de

desencriptação. RSA é um sistema onde cada usuário cria um par de

chaves pública/privada para propósitos de autenticação. O servidor

sabe a chave pública, e só o usuário sabe a sua chave privada.   

Page 39: Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003 27/07/03 13:58Professor Roberto Amaral – Serviços de Redes1 Emulador.

27/07/03 13:58 Professor Roberto Amaral – Serviços de Redes 39

Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003

Segurança – Secure Shell

A comunicação entre o cliente de Ssh e o servidor é codificada, de

forma a que a chave de sessão nunca é transmitida em rede sem estar

encriptada.  

COMO FUNCIONA O SECURE SHELL

Possui um arquivo que contém a lista de chaves dos clientes.

Quando o usuário invoca o cliente de Ssh para iniciar uma sessão , o

servidor confere a chave, para saber se é permitida, enviando a

resposta.

Page 40: Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003 27/07/03 13:58Professor Roberto Amaral – Serviços de Redes1 Emulador.

27/07/03 13:58 Professor Roberto Amaral – Serviços de Redes 40

Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003

Servidor Cliente

Cria chave RSA de Servidor Temporária

Cria chave pública e privada

Inicia servidor dedicado

Envia a chave pública ao servidor e pede ligação

Compara sua chave pública com a recebida

Envia a chave pública do cliente e a chave pública do servidor

Gera número aleatório e encripta com sua chave privada e com a pública do

Server e abre sessão

Espera confirmação para iniciar os comandos

Envia a chave de sessãoDecripta a chave de sessão com sua chave privada e pública do Cliente. Abre a comunicação com a chave de sessão

Page 41: Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003 27/07/03 13:58Professor Roberto Amaral – Serviços de Redes1 Emulador.

27/07/03 13:58 Professor Roberto Amaral – Serviços de Redes 41

Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003

Segurança – Secure ShellProgramas inclusos no SSH

• Make-ssh-know-hosts : Programa que localiza hosts em um determinado domínio

• SCP – Secure Shell Copy : forma segura de copiar arquivos

• ssh – Client Secure Shell : Emulador de terminal

• ssh-add : Adiciona identidade ao agente de autenticação• ssh-agent : Autenticação RSA

• sshd : Servidor Secure Shell – Porta 22

• ssh-keygen : Gerador de chave do ssh

Page 42: Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003 27/07/03 13:58Professor Roberto Amaral – Serviços de Redes1 Emulador.

27/07/03 13:58 Professor Roberto Amaral – Serviços de Redes 42

Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003

Segurança – Secure Shell - SSHD

Sshd é um programa para iniciar o servidor que por sua vez, espera

por ligações de clientes.

Cada cliente instanciado cria um novo deamon, gerando uma chave

para encriptar, autenticar, executar comandos e trocar dados.

Cada Host tem uma chave RSA usada para sua identificação. Quando

o deamon inicia gera uma chave RSA do tipo servidor.  

Esta chave é alterada de hora em hora enquanto estiver sendo usada e

nunca é guardada em disco.

Page 43: Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003 27/07/03 13:58Professor Roberto Amaral – Serviços de Redes1 Emulador.

27/07/03 13:58 Professor Roberto Amaral – Serviços de Redes 43

Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003

Segurança – Secure Shell - SSHD

Quando um cliente pede ligação ao deamon, este envia a sua chave

pública de Host e a chave pública de servidor para o cliente.

O cliente compara a chave de Host com a da sua base de dados, verificando assim que não houve alteração.

O cliente gera 256 bit’s aleatórios criando um número. Este número é encriptado com as duas chaves (host e servidor), enviando o número encriptado para o servidor.

Ambos usam este número aleatório como chave de sessão que é usada para encriptar todas as comunicações.

Page 44: Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003 27/07/03 13:58Professor Roberto Amaral – Serviços de Redes1 Emulador.

27/07/03 13:58 Professor Roberto Amaral – Serviços de Redes 44

Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003

Segurança – Secure Shell - SSHDAo iniciar o dialogo de autenticação, o cliente usa sua password,

combinada com autenticação RSA Host ou RSA Challenge-response ou TIS channenge response.

Finalmente, o cliente pede um acesso ou execução de um comando.

Ambos os lados entram então na modalidade de sessão. (DADOS)

Quando o programa termina e todas as conexões forem fechadas, o servidor emite um comando de saída ao cliente, e ambos os lados são desligados.

Sshd pode ser configurado na linha de comando usando um arquivo de configuração.

Page 45: Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003 27/07/03 13:58Professor Roberto Amaral – Serviços de Redes1 Emulador.

27/07/03 13:58 Professor Roberto Amaral – Serviços de Redes 45

Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003

Segurança – Secure Shell - SSHSsh (Secure Shell) é um programa para se ligar a uma máquina remota e executar comandos a partir dessa mesma máquina remota.

Isso é conseguido ao estabelecer um rlogin, que providencia uma comunicação segura (encriptada).

Por cada cliente instanciado cria-se um novo deamon, tendo este capacidade para gerar chaves, encriptar, autenticar, executar comandos e troca de dados.

Remote Login: Protoclo de login remoto desenvolvido para oUNIX pela Berkeley. O

Rlogin oferece o mesmo serviço que o TELNET

Page 46: Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003 27/07/03 13:58Professor Roberto Amaral – Serviços de Redes1 Emulador.

27/07/03 13:58 Professor Roberto Amaral – Serviços de Redes 46

Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003

Segurança – Secure Shell - SSHCada Host tem uma chave RSA usados para sua identificação.

Esta chave é alterada a cada conexão e nunca é guardada em disco.

Quando o deamon se inicia gera uma chave RSA do tipo servidor.

Quando um cliente pede ligação ao deamon, este envia a sua chave pública de Host e a de servidor para o cliente.

O cliente compara a chave do Host com a da base de dados e gera 256 bit’s aleatórios criando um número.

Ambos usam este número aleatório como chave de sessão que é usada para encriptar todas as comunicações.

Page 47: Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003 27/07/03 13:58Professor Roberto Amaral – Serviços de Redes1 Emulador.

27/07/03 13:58 Professor Roberto Amaral – Serviços de Redes 47

Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003

Segurança – Secure Shell - SSHNeste ponto é iniciado o dialogo de autenticação..

O cliente autentica-se com sua password, combinada com autenticação RSA Host, RSA Challenge-response.

Se o cliente for autenticado com sucesso, inicia um diálogo para preparar a sessão.

Neste ponto o cliente pode pedir o alocamento de um pseudo-tty, conexões tipo forwarding X11, TCP/IP, ou ligações pelo agente de autenticação, sobre um canal seguro

Page 48: Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003 27/07/03 13:58Professor Roberto Amaral – Serviços de Redes1 Emulador.

27/07/03 13:58 Professor Roberto Amaral – Serviços de Redes 48

Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003

Segurança – Secure Shell - SSH

Finalmente, o cliente pede um acesso ou execução de um comando.

Ambos os lados entram então na modalidade de sessão.

Quando o programa termina e todas as conexões estiveram fechadas, o servidor emite um comando de saída ao cliente, e ambos os lados são desligados.

Page 49: Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003 27/07/03 13:58Professor Roberto Amaral – Serviços de Redes1 Emulador.

27/07/03 13:58 Professor Roberto Amaral – Serviços de Redes 49

Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003

Segurança – Secure Shell - keygen Ssh-keygen gera e organiza as chaves de identificação para o ssh(cliente).

Cada usuário que deseja utilizar o ssh com chave RSA de autenticação, utiliza

este programa para criar a chave que será guardada em arquivo.

Normalmente este programa pergunta qual o arquivo para guardar a chave

privada. A chave pública é guardada no arquivo com o mesmo nome da

chave privada, mas com a extensão ".pub".

Os nomes de arquivos alternativos podem ser dados na linha de comando. O

campo da palavra chave (passphrase) pode estar vazio. Um bom tamanho

para a palavra chave é de 10-30 caracteres. A palavra chave pode ser

mudada posteriormente, usando a opção de -p .

Page 50: Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003 27/07/03 13:58Professor Roberto Amaral – Serviços de Redes1 Emulador.

27/07/03 13:58 Professor Roberto Amaral – Serviços de Redes 50

Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003

Segurança – Secure Shell – keygen

Não há nenhum modo para recuperar uma palavra chave perdida. Se a

palavra chave for esquecida, será necessário gerar uma chave nova e

copiar a correspondente chave pública para a outra máquina.

A cifra a ser usada quando codificamos chaves com uma palavra

chave está definida no ssh.h. Usando a opção –u, as chaves

encriptadas com qualquer algoritmo de cifra podem-se alterar para

usar a cifra por defeito.

Page 51: Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003 27/07/03 13:58Professor Roberto Amaral – Serviços de Redes1 Emulador.

27/07/03 13:58 Professor Roberto Amaral – Serviços de Redes 51

Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003

Segurança – Secure Shell – agentSsh-agente é um programa que guarda as chaves privadas de

autenticação.

É necessário iniciar o ssh-agente no inicio de uma sessão de login, e todos os outros programas são criados como filhos.

Programas iniciados debaixo do agente, herdam uma ligação para o agente, e o agente é automaticamente usado para autenticação de RSA, quando se inicia a ligação para outras máquinas usando o Ssh.

Page 52: Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003 27/07/03 13:58Professor Roberto Amaral – Serviços de Redes1 Emulador.

27/07/03 13:58 Professor Roberto Amaral – Serviços de Redes 52

Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003

Segurança – Secure Shell – agentO agente não tem nenhuma chave privada inicialmente.

Chaves são adicionadas com o ssh-add. Quando executado sem argumentos,

ssh-add adiciona em um arquivo de identificação.

Várias identidades podem ser armazenado no agente.

A idéia é que o agente rode no PC local ou no terminal. Assim os dados de autenticação não precisam ser armazenados em qualquer outra máquina. Podendo se ligar a qualquer host de um modo seguro.

Page 53: Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003 27/07/03 13:58Professor Roberto Amaral – Serviços de Redes1 Emulador.

27/07/03 13:58 Professor Roberto Amaral – Serviços de Redes 53

Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003

Segurança – Secure Shell – ssh-add

Ssh-adds adiciona identidades para o agente de autenticação, ssh-agent.

O agente de autenticação tem que estar rodando, quando for necessário adicionar identidades para o agente de autenticação.

Page 54: Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003 27/07/03 13:58Professor Roberto Amaral – Serviços de Redes1 Emulador.

27/07/03 13:58 Professor Roberto Amaral – Serviços de Redes 54

Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003

Segurança – Secure Shell – ssh-scp

Scp serve para copiar arquivos entre dois host sobre um rede.

Utiliza o ssh para transferir os dados , e usa o mesmo sistema de

autenticação. Provê a mesma segurança que o Ssh. 

Se for necessário o Scp pede passwords para autenticação.

Page 55: Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003 27/07/03 13:58Professor Roberto Amaral – Serviços de Redes1 Emulador.

27/07/03 13:58 Professor Roberto Amaral – Serviços de Redes 55

Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003

Server SSH - Windows

Page 56: Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003 27/07/03 13:58Professor Roberto Amaral – Serviços de Redes1 Emulador.

27/07/03 13:58 Professor Roberto Amaral – Serviços de Redes 56

Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003

Server SSH - Windows

Page 57: Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003 27/07/03 13:58Professor Roberto Amaral – Serviços de Redes1 Emulador.

27/07/03 13:58 Professor Roberto Amaral – Serviços de Redes 57

Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003

Page 58: Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003 27/07/03 13:58Professor Roberto Amaral – Serviços de Redes1 Emulador.

27/07/03 13:58 Professor Roberto Amaral – Serviços de Redes 58

Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003

Page 59: Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003 27/07/03 13:58Professor Roberto Amaral – Serviços de Redes1 Emulador.

27/07/03 13:58 Professor Roberto Amaral – Serviços de Redes 59

Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003

Page 60: Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003 27/07/03 13:58Professor Roberto Amaral – Serviços de Redes1 Emulador.

27/07/03 13:58 Professor Roberto Amaral – Serviços de Redes 60

Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003

Page 61: Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003 27/07/03 13:58Professor Roberto Amaral – Serviços de Redes1 Emulador.

27/07/03 13:58 Professor Roberto Amaral – Serviços de Redes 61

Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003

Comando SSH – WindowsUtiliza os mesmo comando do Prompt do Windows. Exemplo:

Page 62: Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003 27/07/03 13:58Professor Roberto Amaral – Serviços de Redes1 Emulador.

27/07/03 13:58 Professor Roberto Amaral – Serviços de Redes 62

Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003

Server SSH – Linux - OpenSSHImplementação - OPENSSHO pacote OpenSSH é uma implementação livre do pacote SSH original que possui restrições à sua utilização comercial.

Pré-requisitosPara uma implementação bem-sucedida do servidor SSH é necessário que:

•sua rede esteja corretamente configurada

O OpenSSH é compatível com a versão 1 do protocolo SSH (com suas duas variantes, a 1.3 e 1.5) e com a versão 2.

Page 63: Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003 27/07/03 13:58Professor Roberto Amaral – Serviços de Redes1 Emulador.

27/07/03 13:58 Professor Roberto Amaral – Serviços de Redes 63

Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003

Server SSH – Linux - OpenSSH. InstalaçãoSelecione para instalação com o synaptic os pacotes:

•openssh-server•linuxconf-opensshd•openssh-client

ou abra um terminal e utilize os comandos abaixo:

# apt-get install openssh-server # apt-get install linuxconf-opensshd # apt-get install openssh-client

Os procedimentos descritos acima instalarão o servidor e o cliente SSH. Para instalar apenas o cliente basta selecionar somente o pacote openssh-cliente para instalação.

Page 64: Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003 27/07/03 13:58Professor Roberto Amaral – Serviços de Redes1 Emulador.

27/07/03 13:58 Professor Roberto Amaral – Serviços de Redes 64

Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003

Server SSH – Linux – OpenSSHConfiguração do servidor SSH

Configuração -> Rede -> Tarefas de servidor -> Servidor SSH (openssh) do LinuxconfO campo Porta contém o número da porta que o servidor SSH utilizará

Define quais endereços de rede do servidor deverão ser utilizados para receber conexões SSH

O valor padrão especifica que deverão ser utilizadas as versões 2 e 1

Chaves de autenticação do servidor. O pacote de instalação do Openssh ao ser instalado gera automaticamente essas chaves e as coloca nos locais corretos, logo não há necessidade de se alterar.

Controle de acesso de usuário

Page 65: Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003 27/07/03 13:58Professor Roberto Amaral – Serviços de Redes1 Emulador.

27/07/03 13:58 Professor Roberto Amaral – Serviços de Redes 65

Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003

Server SSH – Linux –SSH-1.2.27Baixar em www.ssh.fi

Descompactar os arquivos *.c, *.h e configure

$ ./configure Verificação dos arquivos necessário para configuração e compilação do ssh

$ make criação do ssh

Ao término do make, teremos os seguintes arquivos :

scp, ssh, ssh-add, ssh-agent, sshd, ssh-keygen

Complete a instalação com: $ make install ( /usr/local/ )

Page 66: Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003 27/07/03 13:58Professor Roberto Amaral – Serviços de Redes1 Emulador.

27/07/03 13:58 Professor Roberto Amaral – Serviços de Redes 66

Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003

Server SSH – Linux –SSH-1.2.27Verificar a opções dos arquivos de configuração do ssh:

/etc/sshd_config (arquivo de configuração do servidor)

Estas alterações são permanentes.

Geralmente será necessário que as alterações sejam feitas somente na inicialização do ssh. (sshd_config)

-b (quantos bits é a chave do servidor)-g (tempo limite para autenticação)-i (para inicializar a partir do inetd)-p (especifica a porta – pode ser utilizado uma porta alternativa-k (tempo para regeneração de chaves)

Iniciando o servidor : $ sshd

Page 67: Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003 27/07/03 13:58Professor Roberto Amaral – Serviços de Redes1 Emulador.

27/07/03 13:58 Professor Roberto Amaral – Serviços de Redes 67

Cursos de Ciência da Computação – Redes de Computadores – Serviços de Redes - 2003

Server SSH – Linux – Utilização Utiliza os mesmo comando de terminal do Linux