Faculdade de Tecnologia SENAC Pelotas/RS
Curso Superior de Tecnologia em Redes de Computadores
Redes de Computadores III
SSH (Secure Shell)
Professor Eduardo Maroñas Monks
2010
SUMÁRIO
•
•
•
•
•
•
Histórico
Funcionalidades
Protocolo
Aplicações
Segurança
Referências Bibliográficas
Prof. Eduardo M. Monks - Redes de Computadores III
2
Histórico
•
O SSH é um protocolo para comunicação em rede de
forma segura, projetado para ser simples e de fácil
implementação.
•
A versão inicial, SSH1, foi focada no provimento de uma
forma segura de acesso remoto a hosts em substituição a
protocolos não-seguros, principalmente o Telnet.
• Além do acesso remoto, o SSH provê o recurso de
tunelamento o qual permite os uso de protocolos nãoseguros por meio de uma conexão segura.
•
A nova versão do SSH, SSH2, provê melhorias em relação
a versão 1 e está em processo de padronização no IETF
por meio das RFCs 4250 a 4256.
Prof. Eduardo M. Monks - Redes de Computadores III
3
Histórico
OPENSSH
• O protocolo SSH foi criado pelo finlandês Tatu Ylönen, em 1995
•O oOpenSSH
foi lançado na distribuição
• Inicialmente,
SSH foi disponibilizado
com uma licença aberta
OpenBSD do
2.6protocolo
em 1999 foram submetidas a licenças
• Versões posteriores
OpenSSH
foicomercial
estendido continuou
para suportar
o
restritivas, •O
mas
o uso não
liberado
SSH
2 formou
em 2000a empresa de segurança SSH
• O criador do
SSH
•Atualmente,
o OpenSSH é aonde
versão
mais
Communications
(http://www.ssh.com)
explora
popular
da implementação
livre de códigocomercialmente
o protocolo
e suas aplicações
fonte aberto do protocolo
SSHpela Tectia em 2010
• A SSH Communications
foi adquirida
•Aversões
históriado
completa
do SSH
OpenSSH
está
• As primeiras
código do
são referenciadas
como
documentada
no link
sendo a versão
1 do protocolo
( SSH 1)
http://www.openbsd.org/history.html
• Em 1997, foi
iniciado o processo de padronização do SSH junto
ao IETF
• Junto a este processo, foi iniciada a reescrita do protocolo SSH
conhecida como SSH 2, contando com diversas melhorias na
segurança
• Em 1999, o desenvolvedores do OpenBSD começaram o
desenvolvimento, a partir do código-fonte original do SSH,
originando o projeto OpenSSH (http://www.openssh.com)
Prof. Eduardo M. Monks - Redes de Computadores III
4
Funcionalidades
•
•
•
•
•
•
Compressão: o fluxo de tráfego pode ser compactado
Autenticação com chave pública: podem ser usados
certificados para autenticação ao invés de digitação de
senhas
Autenticação do servidor: provê mecanismos de
confidencialidade para o servidor a ser acessado
Redirecionamento de portas: qualquer sessão utilizando o
protocolo TCP pode ser redirecionado em uma sessão de
SSH
Redirecionando serviços X11: o SSH possibilita o
redirecionamento de sessões X11 (interface gráfica do
Linux/unix)
Transferência de arquivos: o protocolo provê os serviços de
SCP e SFTP para transferências de arquivos
Prof. Eduardo M. Monks - Redes de Computadores III
5
Funcionalidades
•
•
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.
Prof. Eduardo M. Monks - Redes de Computadores III
6
Funcionalidades
~ representa o
diretório home do
usuário
•
•
•
•
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
Prof. Eduardo M. Monks - Redes de Computadores III
7
Funcionalidades
•
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
Prof. Eduardo M. Monks - Redes de Computadores III
8
Funcionalidades
•
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!
Prof. Eduardo M. Monks - Redes de Computadores III
9
Funcionalidades
•
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!
Prof. Eduardo M. Monks - Redes de Computadores III
10
Protocolo
•
O SSH é organizado por meio de três protocolos rodando
sobre TCP que são:
• Protocolo da camada de transporte: provê
autenticação no servidor, confidencialidade e
integridade dos dados. Opcionalmente, esta camada
pode prover compressão dos dados.
• Protocolo de autenticação de usuário: autentica o
usuário ao servidor.
• Protocolo de conexão: possibilita a utilização de
vários canais lógicos de comunicação sobre uma
única conexão SSH.
•
Trabalha na porta
transporte
Prof. Eduardo M. Monks - Redes de Computadores III
22 utilizando protocolo TCP como
11
Protocolo
•
Captura no Wireshark
• Antes da
troca de dados, existe a negociação das
Versão do servidor
chaves Versão
criptográficas
entre cliente e servidor
do cliente
• Como emulador de terminais, pacotes pequenos
• Na transferência de arquivos, pacotes grandes
Fim da negociação, começo da troca
de dados
Prof. Eduardo M. Monks - Redes de Computadores III
12
Aplicações
•
•
•
Clientes e servidores de SSH existem para a maioria dos
sistemas operacionais, inclusive no Windows (SSH
Windows e Moba SSH ).
É o metodo mais utilizado para acesso remoto em
sistemas Unix/Linux e tunelamento de servidores X
(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)
Prof. Eduardo M. Monks - Redes de Computadores III
13
Segurança
• Ataque mais comum ao SSH:
•
•
•
Tentativas por força bruta de usuários e senhas de contas
(dicionário)
Ferramenta de ataque:
• THC Hydra - http://www.thc.org/thc-hydra/
• Lista de palavras http://packetstormsecurity.org/Crackers/wordlists/dicti
onaries/
Ferramenta de defesa:
• DenyHosts – http://denyhosts.sourceforge.net/
Prof. Eduardo M. Monks - Redes de Computadores III
14
Referências Bibliográficas
•
The Secure Shell (SSH) Protocol Architecture -
•
Introduction to SSH Secure Shell -
•
•
•
•
•
•
•
•
•
•
http://www.ietf.org/rfc/rfc4251.txt
http://www.ssh.com/support/documentation/online/ssh/adminguide/32/Introduction_t
o_SSH_Secure_Shell.html
Criando tuneis criptografados com ssh - http://www.dicas-l.com.br/dicasl/20061017.php
Usando o SSH no Windows - http://www.gdhpress.com.br/blog/usando-o-ssh-nowindows/
Certificados com o Putty http://the.earth.li/~sgtatham/putty/0.58/htmldoc/Chapter8.html
Servidor X para Windows – http://sourceforge.net/projects/xming/
SSH tips, tricks & protocol tutorial - http://www.openbsd.org/papers/auug2002ssh.pdf
CopSSH – Openssh para Windows - http://www.itefix.no/i2/copssh
MobaSSH (Windows) - http://mobassh.mobatek.net/en/
High Performance SSH/SCP - HPN-SSH http://www.psc.edu/networking/projects/hpn-ssh/
SSH – http://www.ssh.com/
Brute Force Tools - http://www.aldeid.com/index.php/Bruteforce
Prof. Eduardo M. Monks - Redes de Computadores III
15
Download

Redes de Computadores I