Redes de Computadores I

Propaganda
Faculdade de Tecnologia SENAC Pelotas/RS
Curso Superior de Tecnologia em Redes de Computadores
Unidade curricular Redes de Computadores III
SSH (Secure Shell)
Professor Eduardo Maroñas Monks
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á
•Vantagens do o
método
com chaves:
ser feita configurando
lado servidor
previamente
com a chave pública do cliente. Quando houver a
•A primeira é a segurança, porque não
tentativa de acesso,
o servidor SSH buscará a chave
existirá a possibilidade de ataques de força
pública do host
do tentando
cliente em
um arquivo
localizado
bruta
adivinhar
a senha do
usuário.
Simplesmente,
existe a senha!
em .ssh/authorized_keys
nonão
diretório
home do usuário
requisitado para o login.
•A outra vantagem é a possibilidade de
• Caso a chave estiver
armazenada no arquivo, o acesso
automatizar scripts para executar
se dará sem a comandos
necessidade
de digitar
a senha.
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 22 utilizando protocolo TCP
como transporte
Prof. Eduardo M. Monks - Redes de Computadores III
11
Protocolo
•
Captura no Wireshark
servidor de dados, existe a
• AntesVersão
da do
troca
Versão do cliente
negociação das chaves criptográficas
entre cliente e servidor
• Como emulador de terminais: pacotes
pequenos
Fim da negociação,
começo da troca
• Na transferência de arquivos:
pacotes
de dados
grandes
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 comuns 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 http://www.ietf.org/rfc/rfc4251.txt
• Introduction to SSH Secure Shell http://www.ssh.com/support/documentation/online/ssh/adminguid
e/32/Introduction_to_SSH_Secure_Shell.html
• Criando tuneis criptografados com ssh - http://www.dicasl.com.br/dicas-l/20061017.php
• Usando o SSH no Windows http://www.gdhpress.com.br/blog/usando-o-ssh-no-windows/
• 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/auug2002-ssh.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