introdução ao ssh

3
Introdução ao SSH Por: André Casteliano ( 23/08/2001 ) Introdução Olá pessoal, neste artigo irei tratar sobre o SSH (Secure Shell), uma fantástica ferramenta de administração remota, demonstrando através de exemplos práticos como ele pode substituir não só outras ferramentas de administração remota como telnet, rlogin , rsh, etc como também serviços como, por exemplo, o FTP. Tudo isto com a certeza de quem está conectando na outra ponta e criptografia dos dados. O que é SSH? Esta ferramenta foi originalmente desenvolvida pela empresa finlandesa de mesmo nome ( http://www.ssh.fi ), e surgiu como uma maneira de suprir as deficiências não só do telnet mas como também do rlogin (Remote Login) e do rsh (Remote Shell). Com o tempo acabou transformando-se na ferramenta padrão para a administração de sistemas no mundo UNIX, substituindo totalmente o telnet, tanto que o nome ``SSH'' é usado hoje não só para designar o programa e a empresa que o criou como também suas variantes e clones. A grande vantagem do SSH está em encriptar os dados que são transmitidos durante a sessão e provavelmente ninguém gosta da idéia de ter suas informações transitando pela rede totalmente abertas, principalmente senhas. Além disso, é possível com o SSH agregar outros serviços como, por exemplo, o SCP (Secure Copy) que substitui com tranquilidade e até com mais praticidade o bom e velho FTP. Cliente SSH Existem diversos clientes disponíveis, desde o original da SSH, que é um produto comercial com versões para várias plataformas e sistemas operacionais, até versões gratuitas. Neste artigo, estarei demonstrando a utilização do OpenSSH (que é originário do projeto OpenBSD ), que é uma versão adaptada do SSH de livre distribuição desenvolvido por Tatu Ylonen mas com a inclusão de novos recursos e outros algoritmos de encriptação que não o RSA e DES, como o Blowfish. Caso você possua um outro cliente SSH, saiba que os comandos e a utilização são praticamente idênticos, logo se você já possui uma outra versão não fique preocupado. Em virtude da política de exportação de software de criptografia nos EUA, as versões internacionais, distribuições originárias de lá, não podem conter o SSH, ficando com o usuário a tarefa de instalá-lo. No caso das distribuições baseadas em RPM utilize o serviço RPM Find , para as baseadas na Debian acrescente a linha deb http://non-us.debian.org/debian- non-US stable/non-US main contrib non-free em /etc/apt/source.list e para quem usa Slackware pegue o pacote em http://www.linux-mafia.org . Para distribuições empacotadas fora dos EUA não existe este problema. Para quem vai compilá-lo, vale a pena lembrar que o OpenSSH necessita do OpenSSL (a página é: http://www.openssl.org ). E que não se esqueça de pegar o código fonte já com os patches para Linux (existem diferenças na parte de rede dos BSD e do Linux). E caso você queira utilizar um cliente SSH a partir de uma estação Windows(TM), para administrar suas estações, saiba que existem clientes SSH para Windows, como o PuTTY, o TeraTERM ou o SecureTTY, confira nas páginas de download por outros programas e maiores informações. Preparando o servidor O pacote do SSH traz tanto o cliente como o servidor, o SSHD (ou SSH Dæmon). No caso de uma instalação a partir de pacotes RPM ou DEB um script estilo System V (ou seja, funciona com os parâmetros start, stop, restart, etc...) será criado no respectivo diretório /etc/(...)init.d. No caso do Slackware, que trabalha com inicialização estilo BSD, o script /etc/rc.inet2 irá procurar pelo dæmon nos diretórios /sbin, /usr/sbin ou /usr/local/sbin. http://olinux.uol.com.br/artigos/372/print_preview.html 1 de 3 06-12-2009 12:47

Upload: felipe-santos

Post on 09-Jul-2015

654 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Introdução ao Ssh

Introdução ao SSHPor: André Casteliano ( 23/08/2001 )

Introdução

Olá pessoal, neste artigo irei tratar sobre o SSH (Secure Shell), uma fantástica ferramenta de administraçãoremota, demonstrando através de exemplos práticos como ele pode substituir não só outras ferramentas deadministração remota como telnet, rlogin , rsh, etc como também serviços como, por exemplo, o FTP. Tudoisto com a certeza de quem está conectando na outra ponta e criptografia dos dados.

O que é SSH?

Esta ferramenta foi originalmente desenvolvida pela empresa finlandesa de mesmo nome ( http://www.ssh.fi), e surgiu como uma maneira de suprir as deficiências não só do telnet mas como também do rlogin(Remote Login) e do rsh (Remote Shell). Com o tempo acabou transformando-se na ferramenta padrão paraa administração de sistemas no mundo UNIX, substituindo totalmente o telnet, tanto que o nome ``SSH'' éusado hoje não só para designar o programa e a empresa que o criou como também suas variantes e clones.

A grande vantagem do SSH está em encriptar os dados que são transmitidos durante a sessão eprovavelmente ninguém gosta da idéia de ter suas informações transitando pela rede totalmente abertas,principalmente senhas. Além disso, é possível com o SSH agregar outros serviços como, por exemplo, o SCP(Secure Copy) que substitui com tranquilidade e até com mais praticidade o bom e velho FTP.

Cliente SSH

Existem diversos clientes disponíveis, desde o original da SSH, que é um produto comercial com versões paravárias plataformas e sistemas operacionais, até versões gratuitas. Neste artigo, estarei demonstrando autilização do OpenSSH (que é originário do projeto OpenBSD ), que é uma versão adaptada do SSH de livredistribuição desenvolvido por Tatu Ylonen mas com a inclusão de novos recursos e outros algoritmos deencriptação que não o RSA e DES, como o Blowfish.

Caso você possua um outro cliente SSH, saiba que os comandos e a utilização são praticamente idênticos,logo se você já possui uma outra versão não fique preocupado. Em virtude da política de exportação desoftware de criptografia nos EUA, as versões internacionais, distribuições originárias de lá, não podem conter oSSH, ficando com o usuário a tarefa de instalá-lo. No caso das distribuições baseadas em RPM utilize o serviçoRPM Find , para as baseadas na Debian acrescente a linha deb http://non-us.debian.org/debian-non-US stable/non-US main contrib non-free em /etc/apt/source.list e para quem usa Slackwarepegue o pacote em http://www.linux-mafia.org . Para distribuições empacotadas fora dos EUA não existeeste problema.

Para quem vai compilá-lo, vale a pena lembrar que o OpenSSH necessita do OpenSSL (a página é:http://www.openssl.org ). E que não se esqueça de pegar o código fonte já com os patches para Linux(existem diferenças na parte de rede dos BSD e do Linux). E caso você queira utilizar um cliente SSH a partirde uma estação Windows(TM), para administrar suas estações, saiba que existem clientes SSH para Windows,como o PuTTY, o TeraTERM ou o SecureTTY, confira nas páginas de download por outros programas emaiores informações.

Preparando o servidor

O pacote do SSH traz tanto o cliente como o servidor, o SSHD (ou SSH Dæmon). No caso de uma instalação apartir de pacotes RPM ou DEB um script estilo System V (ou seja, funciona com os parâmetros start, stop,restart, etc...) será criado no respectivo diretório /etc/(...)init.d. No caso do Slackware, que trabalha cominicialização estilo BSD, o script /etc/rc.inet2 irá procurar pelo dæmon nos diretórios /sbin, /usr/sbin ou/usr/local/sbin.

http://olinux.uol.com.br/artigos/372/print_preview.html

1 de 3 06-12-2009 12:47

Page 2: Introdução ao Ssh

Caso sua a instalação, por algum motivo, não esteja carregando automaticamente o SSHD durante ainicialização verifique se não há algum problema com as permissões dos arquivos, e se persistindo o problemainclua-o no manualmente no rc.local ou no final do rcS (no caso da Debian).

Utilizando o SSH

Após instalar o SSH, vamos utilizá-lo. Para quem está usando o SSH pela primeira vez é interessante criar opar de chaves públicas e privadas para a sua estação. Isto é feito pelo comando ssh-keygen , bastaexecutá-lo. Será criado o par de chaves RSA que serão gravadas, por padrão, em seu diretório HOME. Esteprocedimemto não é obrigatório mas pode facilitar bastante a sua vida. Para testar se tanto o cliente quanto oservidor estão funcionando corretamente tente conectar-se em sua própria estação usando ssh localhost .

Usar o SSH é bastante simples, bastando incluir o nome (ou endereço IP) da máquina que se deseja usar.Quando da primeira conexão em uma determinada estação, ele perguntará se deseja adicioná-la à sua listade hosts conhecidos (.ssh/know_hosts). E geralmente o SSH irá tentar se conectar na estação remota usandoa mesma conta que você está usando no servidor local, para contornar esse problema, use o parâmetro -l ouentão usuário@host para especificar quem você deseja usar na conexão remota.

Secure Copy

Pelo que foi mostrado até agora é bastante fácil substituir o telnet pelo SSH na tarefa de administração desuas estações. Porém, o SSH permite que você utilize outros serviços usando a conexão segura. O exemplomais conhecido é o scp (Secure Copy) que permite a transferência de arquivos entre estações. Supondo quevocê queira enviar um arquivo local para o seu servidor:

scp [arquivo_local] [usuario@servidor remoto]:[nome do arquivo no servidor remoto]

Ou supondo que você queira na sua máquina um arquivo que está no servidor:

scp usuario@servidor_remoto:arquivo usuario@sua_maquina:arquivo

Para maiores detalhes sobre a utilização do SCP consulte sua respectiva página de manual (man scp).

X11 Forward

Outro serviço interessante que pode ser usado junto com o SSH, é o X11 Forwarding. Como todos sabem (oudeveriam saber) o X/Window é bem mais do que uma interface gráfica, é um protocolo de comunicaçãocliente/servidor que se utiliza do TCP/IP. Graças a isto, o cliente (a aplicação que você está usando) e oservidor (quem está colocando as janelas na tela) podem tranquilamente estar em computadores diferentes.Assim como no Telnet, o uso do X11 Forwarding dentro de uma sessão SSH garante a encriptação daquilo queestá indo de um lado ao outro da rede.

Para usar você precisa antes habilitar o acesso da estação remota em seu X/Window local usando xhost+{nome ou IP da estação remota} . Aí, conectar-se e redirecionar a saída dos programas mudando avariável do sistema DISPLAY para sua estação com export DISPLAY=(nome ou IP da estação local):(n), sendo "n" a sessão do X que você pretende usar (geralmente este valor é 0).

Aumentando a segurança do SSH

Não basta encriptação, muitas vezes é bom ser um pouco mais paranóico. No arquivo sshd_config você podeconfigurar alguns parâmetros que podem te deixar mais garantidos quanto a quem e de onde você pode ser

http://olinux.uol.com.br/artigos/372/print_preview.html

2 de 3 06-12-2009 12:47

Page 3: Introdução ao Ssh

acessado. Dentre os parâmetros os que podem realmente restringir o acesso são:

PermitRootLogin Use : "Yes" ou "No" para habilitar o login como rootAllowHosts : A relação de estações que podem se conectar, use o endereço IP ou então o nome damáquina.DenyHosts : A relação das estações que não podem se conectarAllowUsers : Aqueles que podem se logar na estaçãoDenyUsers : Aqueles que, por motivos que não vamos discutir agora, não podem se logar

Após estas alterações você vai precisar reinicializar o dæmon, isto pode ser feito usando o script que está noinit.d com ssh restart ou então com killall -HUP sshd .

Conclusão

Bom pessoal, espero que tenham gostado. Com o que foi apresentado aqui, já é possível acessarremotamente uma outra estação, copiar arquivos e até usar programas de X/Window sem se preocupar como que gente curiosa possa estar vendo. Estarei à disposição para tirar eventuais dúvidas. Abraços!

Colaborou: Giovanni Nunes

Copyright (C) 1999-2000 Linux Solutions

http://olinux.uol.com.br/artigos/372/print_preview.html

3 de 3 06-12-2009 12:47