Transcript
Page 1: Redes de Computadores III SSH (Secure Shell) Professor Eduardo Maroñas Monks 2010 Faculdade de Tecnologia SENAC Pelotas/RS Curso Superior de Tecnologia

Redes de Computadores Redes de Computadores IIIIII

SSH (Secure Shell)SSH (Secure Shell)

Professor Eduardo Maroñas MonksProfessor Eduardo Maroñas Monks20102010

Faculdade de Tecnologia SENAC Pelotas/RSFaculdade de Tecnologia SENAC Pelotas/RSCurso Superior de Tecnologia em Redes de Computadores Curso Superior de Tecnologia em Redes de Computadores

Page 2: Redes de Computadores III SSH (Secure Shell) Professor Eduardo Maroñas Monks 2010 Faculdade de Tecnologia SENAC Pelotas/RS Curso Superior de Tecnologia

SUMÁRIOSUMÁRIO

Prof. Eduardo M. Monks - Redes de Computadores III Prof. Eduardo M. Monks - Redes de Computadores III 22

• HistóricoHistórico• FuncionalidadesFuncionalidades• ProtocoloProtocolo• AplicaçõesAplicações• SegurançaSegurança• Referências BibliográficasReferências Bibliográficas

Page 3: Redes de Computadores III SSH (Secure Shell) Professor Eduardo Maroñas Monks 2010 Faculdade de Tecnologia SENAC Pelotas/RS Curso Superior de Tecnologia

HistóricoHistórico

Prof. Eduardo M. Monks - Redes de Computadores III Prof. Eduardo M. Monks - Redes de Computadores III 33

• O SSH é um protocolo para comunicação em rede de O SSH é um protocolo para comunicação em rede de forma segura, projetado para ser simples e de fácil forma segura, projetado para ser simples e de fácil implementação. implementação.

• A versão inicial, SSH1, foi focada no provimento de uma A versão inicial, SSH1, foi focada no provimento de uma forma segura de acesso remoto a hosts em substituição forma segura de acesso remoto a hosts em substituição a protocolos não-seguros, principalmente o a protocolos não-seguros, principalmente o TelnetTelnet. .

• Além do acesso remoto, o SSH provê o recurso de Além do acesso remoto, o SSH provê o recurso de tunelamento o qual permite os uso de protocolos não-tunelamento o qual permite os uso de protocolos não-seguros por meio de uma conexão segura. seguros por meio de uma conexão segura.

• A nova versão do SSH, SSH2, provê melhorias em A nova versão do SSH, SSH2, provê melhorias em relação a versão 1 e está em processo de padronização relação a versão 1 e está em processo de padronização no IETF por meio das RFCs 4250 a 4256.no IETF por meio das RFCs 4250 a 4256.

Page 4: Redes de Computadores III SSH (Secure Shell) Professor Eduardo Maroñas Monks 2010 Faculdade de Tecnologia SENAC Pelotas/RS Curso Superior de Tecnologia

HistóricoHistórico

Prof. Eduardo M. Monks - Redes de Computadores III Prof. Eduardo M. Monks - Redes de Computadores III 44

OPENSSHOPENSSH• O protocolo SSH foi criado pelo finlandês Tatu Ylönen, em 1995O protocolo SSH foi criado pelo finlandês Tatu Ylönen, em 1995• Inicialmente, o SSH foi disponibilizado com uma licença aberta Inicialmente, o SSH foi disponibilizado com uma licença aberta • Versões posteriores do protocolo foram submetidas a licenças Versões posteriores do protocolo foram submetidas a licenças

restritivas, mas o uso não comercial continuou liberadorestritivas, mas o uso não comercial continuou liberado• O criador do SSH formou a empresa de segurança SSH O criador do SSH formou a empresa de segurança SSH

Communications (http://www.ssh.com) onde explora Communications (http://www.ssh.com) onde explora comercialmente o protocolo e suas aplicaçõescomercialmente o protocolo e suas aplicações• A SSH Communications foi adquirida pela Tectia em 2010A SSH Communications foi adquirida pela Tectia em 2010

• As primeiras versões do código do SSH são referenciadas como As primeiras versões do código do SSH são referenciadas como sendo a versão 1 do protocolo ( SSH 1)sendo a versão 1 do protocolo ( SSH 1)

• Em 1997, foi iniciado o processo de padronização do SSH junto Em 1997, foi iniciado o processo de padronização do SSH junto ao IETFao IETF

• Junto a este processo, foi iniciada a reescrita do protocolo SSH Junto a este processo, foi iniciada a reescrita do protocolo SSH conhecida como SSH 2, contando com diversas melhorias na conhecida como SSH 2, contando com diversas melhorias na segurançasegurança

• Em 1999, o desenvolvedores do OpenBSD começaram o Em 1999, o desenvolvedores do OpenBSD começaram o desenvolvimento, a partir do código-fonte original do SSH, desenvolvimento, a partir do código-fonte original do SSH, originando o projeto OpenSSH (http://www.openssh.com)originando o projeto OpenSSH (http://www.openssh.com)

•O OpenSSH foi lançado na distribuição O OpenSSH foi lançado na distribuição OpenBSD 2.6 em 1999OpenBSD 2.6 em 1999•O OpenSSH foi estendido para suportar O OpenSSH foi estendido para suportar o SSH 2 em 2000o SSH 2 em 2000•Atualmente, o OpenSSH é a versão mais Atualmente, o OpenSSH é a versão mais popular da implementação livre de popular da implementação livre de código-fonte aberto do protocolo SSHcódigo-fonte aberto do protocolo SSH•A história completa do OpenSSH está A história completa do OpenSSH está documentada no link documentada no link http://www.openbsd.org/history.htmlhttp://www.openbsd.org/history.html

Page 5: Redes de Computadores III SSH (Secure Shell) Professor Eduardo Maroñas Monks 2010 Faculdade de Tecnologia SENAC Pelotas/RS Curso Superior de Tecnologia

FuncionalidadesFuncionalidades

Prof. Eduardo M. Monks - Redes de Computadores III Prof. Eduardo M. Monks - Redes de Computadores III 55

• Compressão:Compressão: o fluxo de tráfego pode ser compactado o fluxo de tráfego pode ser compactado • Autenticação com chave pública:Autenticação com chave pública: podem ser usados podem ser usados

certificados para autenticação ao invés de digitação de certificados para autenticação ao invés de digitação de senhassenhas

• Autenticação do servidor:Autenticação do servidor: provê mecanismos de provê mecanismos de confidencialidade para o servidor a ser acessadoconfidencialidade para o servidor a ser acessado

• Redirecionamento de portas:Redirecionamento de portas: qualquer sessão utilizando o qualquer sessão utilizando o protocolo TCP pode ser redirecionado em uma sessão de protocolo TCP pode ser redirecionado em uma sessão de SSHSSH

• Redirecionando serviços X11:Redirecionando serviços X11: o SSH possibilita o o SSH possibilita o redirecionamento de sessões X11 (interface gráfica do redirecionamento de sessões X11 (interface gráfica do Linux/unix) Linux/unix)

• Transferência de arquivos:Transferência de arquivos: o protocolo provê os serviços o protocolo provê os serviços de SCP e SFTP para transferências de arquivosde SCP e SFTP para transferências de arquivos

Page 6: Redes de Computadores III SSH (Secure Shell) Professor Eduardo Maroñas Monks 2010 Faculdade de Tecnologia SENAC Pelotas/RS Curso Superior de Tecnologia

FuncionalidadesFuncionalidades

Prof. Eduardo M. Monks - Redes de Computadores III Prof. Eduardo M. Monks - Redes de Computadores III 66

• Basicamente, a autenticação se dá ou por usuário e senha, ou usuário e chave privada/pública. • Com o usuário e senha, ao se tentar a conexão a um servidor deverá ser

digitado o usuário e a senha.  • No caso de uso com chaves, a autenticação deverá ser feita configurando

o lado servidor previamente com a chave pública do cliente. Quando houver a tentativa de acesso, o servidor SSH buscará a chave pública do host do cliente em um arquivo localizado em .ssh/authorized_keys no diretório home do usuário requisitado para o login.

• Caso a chave estiver armazenada no arquivo, o acesso se dará sem a necessidade de digitar a senha.

• Este método tem duas vantagens básicas. • A primeira é a segurança, porque não existirá a possibilidade de ataques

de força bruta tentando adivinhar a senha do usuário. Simplesmente, não existe a senha!

• A outra vantagem é a possibilidade de automatizar scripts para executar comandos em servidores remotos. Desta forma, a administração de múltiplos servidores fica muito mais fácil e ágil.

Page 7: Redes de Computadores III SSH (Secure Shell) Professor Eduardo Maroñas Monks 2010 Faculdade de Tecnologia SENAC Pelotas/RS Curso Superior de Tecnologia

FuncionalidadesFuncionalidades

Prof. Eduardo M. Monks - Redes de Computadores III Prof. Eduardo M. Monks - Redes de Computadores III 77

• Verificação da confidencialidade• Utilizado para previnir que um host malicioso se faça passar

pelo servidor legítimo• No Linux, o arquivo ~/.ssh/known_hosts armazena as chaves

dos servidores que são verificadas a cada sessão• Se a chave trocar ou não existir a mensagem da figura abaixo

será gerada

~ representa o diretório home do usuário

Page 8: Redes de Computadores III SSH (Secure Shell) Professor Eduardo Maroñas Monks 2010 Faculdade de Tecnologia SENAC Pelotas/RS Curso Superior de Tecnologia

FuncionalidadesFuncionalidades

Prof. Eduardo M. Monks - Redes de Computadores III Prof. Eduardo M. Monks - Redes de Computadores III 88

• Tunelamento• Possibilita utilizar protocolos baseados em TCP de forma

criptografada por meio de uma sessão de SSH• Interessante para obter maior segurança em redes não

confiáveis• Facilita a configuração do firewall, necessitando apenas

abrir a porta 22• O SSH “carrega” o tráfego do outro protocolo

Page 9: Redes de Computadores III SSH (Secure Shell) Professor Eduardo Maroñas Monks 2010 Faculdade de Tecnologia SENAC Pelotas/RS Curso Superior de Tecnologia

FuncionalidadesFuncionalidades

Prof. Eduardo M. Monks - Redes de Computadores III Prof. Eduardo M. Monks - Redes de Computadores III 99

• Transferência de arquivos• Substitui o FTP para transferência de arquivos, com

segurança• Usa somente a porta 22• Utiliza as mesmas formas de autenticação do SSH• Dois protocolos: SFTP e SCP

• SFTP – similar aos comandos do FTP• SCP – similar ao comando cp (copy) do Linux

• O desempenho na rede é pior do que o FTP!

Page 10: Redes de Computadores III SSH (Secure Shell) Professor Eduardo Maroñas Monks 2010 Faculdade de Tecnologia SENAC Pelotas/RS Curso Superior de Tecnologia

FuncionalidadesFuncionalidades

Prof. Eduardo M. Monks - Redes de Computadores III Prof. Eduardo M. Monks - Redes de Computadores III 1010

• Redirecionamento de servidor X• O SSH possibilita redirecionar os serviços de janelas do

Linux (X11) • No cliente, deverá haver um servidor X• Desta forma, é possível rodar aplicativos gráficos

remotamente• Funciona também no Windows, possibilitando rodar

aplicativo gráficos do Linux (Xming – http://sourceforge.net/projects/xming/) • Na verdade, as aplicações rodam no servidor remoto,

mas a interface aparece no cliente!

Page 11: Redes de Computadores III SSH (Secure Shell) Professor Eduardo Maroñas Monks 2010 Faculdade de Tecnologia SENAC Pelotas/RS Curso Superior de Tecnologia

ProtocoloProtocolo

Prof. Eduardo M. Monks - Redes de Computadores III Prof. Eduardo M. Monks - Redes de Computadores III 1111

•   O SSH é organizado por meio de três protocolos O SSH é organizado por meio de três protocolos rodando sobre TCP que são:rodando sobre TCP que são:• Protocolo da camada de transporte: provê Protocolo da camada de transporte: provê

autenticação no servidor, confidencialidade e autenticação no servidor, confidencialidade e integridade dos dados. Opcionalmente, esta camada integridade dos dados. Opcionalmente, esta camada pode prover compressão dos dados.pode prover compressão dos dados.

• Protocolo de autenticação de usuário: autentica o Protocolo de autenticação de usuário: autentica o usuário ao servidor.usuário ao servidor.

• Protocolo de conexão: possibilita a utilização de Protocolo de conexão: possibilita a utilização de vários canais lógicos de comunicação sobre uma vários canais lógicos de comunicação sobre uma única conexão SSH.única conexão SSH.

• Trabalha na porta Trabalha na porta 2222 utilizando protocolo utilizando protocolo TCPTCP como como transportetransporte

Page 12: Redes de Computadores III SSH (Secure Shell) Professor Eduardo Maroñas Monks 2010 Faculdade de Tecnologia SENAC Pelotas/RS Curso Superior de Tecnologia

ProtocoloProtocolo

Prof. Eduardo M. Monks - Redes de Computadores III Prof. Eduardo M. Monks - Redes de Computadores III 1212

•   Captura no WiresharkCaptura no Wireshark• Antes da troca de dados, existe a negociação das Antes da troca de dados, existe a negociação das

chaves criptográficas entre cliente e servidorchaves criptográficas entre cliente e servidor• Como emulador de terminais, pacotes pequenosComo emulador de terminais, pacotes pequenos• Na transferência de arquivos, pacotes grandesNa transferência de arquivos, pacotes grandes

Fim da negociação, começo da troca de dados

Versão do clienteVersão do servidor

Page 13: Redes de Computadores III SSH (Secure Shell) Professor Eduardo Maroñas Monks 2010 Faculdade de Tecnologia SENAC Pelotas/RS Curso Superior de Tecnologia

AplicaçõesAplicações

Prof. Eduardo M. Monks - Redes de Computadores III Prof. Eduardo M. Monks - Redes de Computadores III 1313

• Clientes e servidores de SSH existem para a maioria dos Clientes e servidores de SSH existem para a maioria dos sistemas operacionais, inclusive no Windows (sistemas operacionais, inclusive no Windows (SSH Windows e e Moba SSH ). ).

• É o metodo mais utilizado para acesso remoto em É o metodo mais utilizado para acesso remoto em sistemas Unix/Linux e tunelamento de servidores X sistemas Unix/Linux e tunelamento de servidores X (servidor gráfico de janelas no Linux/Unix).(servidor gráfico de janelas no Linux/Unix).

• Versões freeware ou de código-fonte aberto:

• Putty, Psftp, Pscp (Windows/Linux)• SSHSecureShellClient (cliente) (Windows)• Winscp (cliente de SFTP/SCP) (Windows)• OpenSSH (clientes e servidores) (Linux/Windows)• MobaSSH (servidor para Windows)

Page 14: Redes de Computadores III SSH (Secure Shell) Professor Eduardo Maroñas Monks 2010 Faculdade de Tecnologia SENAC Pelotas/RS Curso Superior de Tecnologia

SegurançaSegurança

Prof. Eduardo M. Monks - Redes de Computadores III Prof. Eduardo M. Monks - Redes de Computadores III 1414

• Ataque mais comum ao SSH:Ataque mais comum ao SSH:• Tentativas por força bruta de usuários e senhas de Tentativas por força bruta de usuários e senhas de

contas (dicionário)contas (dicionário)• Ferramenta de ataque: Ferramenta de ataque:

• THC Hydra - THC Hydra - http://www.thc.org/thc-hydra/• Lista de palavras - Lista de palavras -

http://packetstormsecurity.org/Crackers/wordlists/dihttp://packetstormsecurity.org/Crackers/wordlists/dictionaries/ctionaries/

• Ferramenta de defesa:Ferramenta de defesa:• DenyHosts – http://denyhosts.sourceforge.net/DenyHosts – http://denyhosts.sourceforge.net/

Page 15: Redes de Computadores III SSH (Secure Shell) Professor Eduardo Maroñas Monks 2010 Faculdade de Tecnologia SENAC Pelotas/RS Curso Superior de Tecnologia

Referências BibliográficasReferências Bibliográficas

Prof. Eduardo M. Monks - Redes de Computadores III Prof. Eduardo M. Monks - Redes de Computadores III 1515

• The Secure Shell (SSH) Protocol Architecture - The Secure Shell (SSH) Protocol Architecture - http://www.ietf.org/rfc/rfc4251.txt

• Introduction to SSH Secure Shell - Introduction to SSH Secure Shell - http://www.ssh.com/support/documentation/online/ssh/adminguide/32/Introduction_to_SSH_Secure_Shell.html

• Criando tuneis criptografados com ssh - Criando tuneis criptografados com ssh - http://www.dicas-l.com.br/dicas-l/20061017.php

• Usando o SSH no Windows - Usando o SSH no Windows - http://www.gdhpress.com.br/blog/usando-o-ssh-no-windows/

• Certificados com o Putty - Certificados com o Putty - http://the.earth.li/~sgtatham/putty/0.58/htmldoc/Chapter8.html

• Servidor X para Windows – Servidor X para Windows – http://sourceforge.net/projects/xming/• SSH tips, tricks & protocol tutorial - SSH tips, tricks & protocol tutorial -

http://www.openbsd.org/papers/auug2002-ssh.pdf• CopSSH – Openssh para Windows - CopSSH – Openssh para Windows - http://www.itefix.no/i2/copssh• MobaSSH (Windows) - MobaSSH (Windows) - http://mobassh.mobatek.net/en/• High Performance SSH/SCP - HPN-SSH - High Performance SSH/SCP - HPN-SSH -

http://www.psc.edu/networking/projects/hpn-ssh/• SSH – SSH – http://www.ssh.com/• Brute Force Tools - Brute Force Tools - http://www.aldeid.com/index.php/Bruteforce


Top Related