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

SSH (SSH (Secure ShellSecure Shell))

Professor Eduardo Maroñas MonksProfessor Eduardo Maroñas Monks

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

Unidade curricular Redes de Computadores IIIUnidade curricular Redes de Computadores III

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

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: SSH (Secure Shell) Professor Eduardo Maroñas Monks Faculdade de Tecnologia SENAC Pelotas/RS Curso Superior de Tecnologia em Redes de Computadores Unidade

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: SSH (Secure Shell) Professor Eduardo Maroñas Monks Faculdade de Tecnologia SENAC Pelotas/RS Curso Superior de Tecnologia em Redes de Computadores Unidade

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: SSH (Secure Shell) Professor Eduardo Maroñas Monks Faculdade de Tecnologia SENAC Pelotas/RS Curso Superior de Tecnologia em Redes de Computadores Unidade

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: SSH (Secure Shell) Professor Eduardo Maroñas Monks Faculdade de Tecnologia SENAC Pelotas/RS Curso Superior de Tecnologia em Redes de Computadores Unidade

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 Basicamente, a autenticação se dá ou por usuário e senha, ou usuário e chave privada/pública. senha, ou usuário e chave privada/pública. • Com o usuário e senhaCom o usuário e senha, ao se tentar a conexão a um , ao se tentar a conexão a um

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

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

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

•Vantagens do método com chaves: Vantagens do método com chaves:

•A primeira é a segurança, porque não existirá a A primeira é a segurança, porque não existirá a possibilidade de ataques de força bruta possibilidade de ataques de força bruta tentando adivinhar a senha do usuário. tentando adivinhar a senha do usuário. Simplesmente, não existe a senha!Simplesmente, não existe a senha!

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

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

FuncionalidadesFuncionalidades

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

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

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

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

será geradaserá gerada

~ representa o diretório home do usuário

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

FuncionalidadesFuncionalidades

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

• TunelamentoTunelamento• Possibilita utilizar protocolos baseados em TCP de forma Possibilita utilizar protocolos baseados em TCP de forma

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

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

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

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

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: SSH (Secure Shell) Professor Eduardo Maroñas Monks Faculdade de Tecnologia SENAC Pelotas/RS Curso Superior de Tecnologia em Redes de Computadores Unidade

FuncionalidadesFuncionalidades

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

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

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

remotamenteremotamente• Funciona também no Windows, possibilitando rodar Funciona também no Windows, possibilitando rodar

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

mas a interface aparece no cliente!mas a interface aparece no cliente!

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

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 O SSH é organizado por meio de três protocolos rodando sobre TCP que protocolos rodando sobre TCP que são:são:• Protocolo da camada de transporte:Protocolo da camada de transporte:

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

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

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

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

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

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 Antes da troca de dados, existe a

negociação das chaves criptográficas negociação das chaves criptográficas entre cliente e servidorentre cliente e servidor

• Como emulador de terminais: Como emulador de terminais: pacotes pacotes pequenospequenos

• Na transferência de arquivos: Na transferência de arquivos: pacotes pacotes grandesgrandes

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

Versão do clienteVersão do servidor

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

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 Clientes e servidores de SSH existem para a maioria dos sistemas operacionais, inclusive no maioria dos sistemas operacionais, inclusive no Windows (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: SSH (Secure Shell) Professor Eduardo Maroñas Monks Faculdade de Tecnologia SENAC Pelotas/RS Curso Superior de Tecnologia em Redes de Computadores Unidade

SegurançaSegurança

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

• Ataque mais comuns ao SSH:Ataque mais comuns 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: SSH (Secure Shell) Professor Eduardo Maroñas Monks Faculdade de Tecnologia SENAC Pelotas/RS Curso Superior de Tecnologia em Redes de Computadores Unidade

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