Telnet_SSH_certo

Download Report

Transcript Telnet_SSH_certo

TELNET E SSH
Christian França
Josiane Dalmasio
Midra Sian Liberato
TELNET

O serviço telnet oferece o login remoto em
seu computador, que lhe permite trabalhar
conectado a distância como se estivesse em
frente a ela. Ele substitui o rlogin e possui
muitas melhorias em relação a ele, como o
controle de acesso, personalização de seção
e controle de terminal.
TELNET - Características





Conexão rápida (não utiliza transmissão de dados
criptografada), recomendado para ambientes
seguros.
Possui uma versão com suporte a criptografia via ssl.
Possui controle de acesso tcpd (usando
/etc/hosts.allow e /etc/hosts.deny).
A maioria dos sistemas operacionais trazem este
utilitário por padrão como sistema de acesso remoto
a máquinas UNIX.
Suporte a terminais ANSI (cores e códigos de escape
especiais para o console) e uma grande variedade de
outros terminais.
TELNET – Ficha Técnica
Pacotes:




telnet - Cliente telnet com suporte a autenticação.
telnetd - Servidor telnet com suporte a autenticação.
telnet-ssl - Cliente telnet com suporte a autenticação
e ssl. Também suporta conexão a servidores telnet
padrão quando o servidor não suporta ssl. Por
padrão é tentada a conexão usando ssl, se esta
falhar será assumida a transmissão em texto plano.
telnetd-ssl - Servidor telnet com suporte a
autenticação e ssl. Também suporta conexão de
clientes telnet padrão (sem suporte a ssl).
TELNET – Ficha Técnica
Utilitários:



in.telnetd - Servidor telnet
telnet - Cliente telnet padrão (quando o
pacote telnet-ssl está instalado, é
simplesmente um link para telnet-ssl).
telnet-ssl - Cliente telnet com suporte a ssl.
TELNET – Requerimentos de Hardware

Normalmente o servidor telnet é carregado
via inetd, o que permite sua utilização em
uma máquina com a quantidade mínima de
memória RAM requerida para o
funcionamento do kernel: 2 MB para kernels
da série 2.2 e 4MB para kernels da série 2.4.
Arquivos de log criados pelo servidor telnet

Mensagens do servidor telnet relacionadas
com seções são enviadas para
/var/log/daemon.log. Adicionalmente, as
mensagens sobre autenticação (serviços de
login) são registradas pelos módulos PAM
em /var/log/auth.log.
TELNET - Instalação



apt-get install telnet telnetd ou apt-get install telnet-ssl telnetdssl.
Os pacotes com o -ssl no final possuem suporte a criptografia
ssl. Por padrão a porta usada para executar o serviço telnet é a
23 (ou outro número de porta definido no /etc/services). A
instalação do servidor telnet é feita via inetd (no arquivo
/etc/inetd.conf) e o controle de acesso ao serviço é feito através
dos arquivos /etc/hosts.allow e /etc/hosts.deny (veja Serviços
iniciados através do inetd, Seção 4.7.2 e O mecanismo de
controle de acessos tcpd, Seção 4.8.3).
O servidor tem o nome in.telnetd e este deverá ser usado para
ajustar o controle de acesso nos arquivos acima.
Iniciando o servidor /reiniciando/
recarregando a configuração

O arquivo que controla o funcionamento do
servidor telnet é o /etc/inetd.conf e o controle
de acesso sendo feito pelos arquivos
/etc/hosts.allow e /etc/hosts.deny. Será
necessário reiniciar o servidor inetd caso
algum destes três arquivos seja modificado:
killall -HUP inetd. A porta de operação padrão
é a 23 e pode ser modificada no arquivo
/etc/services.
Fazendo conexões ao servidor telnet
Use o comando: telnet [endereço] [porta] para realizar
conexões com uma máquina rodando o servidor
telnet.
Adicionalmente as seguintes opções podem ser
usadas:
 -l [usuario] - Envia o nome de usuário ao
computador remoto. Muito útil com o telnet-ssl.
 -E - Desativa o caracter de escape
 -a - Tenta fazer o login automático usando o nome
de usuário local. Se o login falhar, será solicitado o
nome de usuário. Esta opção é usada por padrão
com o cliente telnet-ssl.
 -r - Emula o comportamento do programa rlogin.
SSH

O SSH (Secure SHell) é ao mesmo tempo um
protocolo e uma aplicação para acesso remoto. Os
protocolos foram desenvolvidos em 1995 por Tatu
Ylonen, fundador da empresa SSH Communications
Security. O conjunto permaneceu livre até a sua
versão 1.2.12, quando se tornou um produto
proprietário desta empresa. Foi desta versão que se
originou o aplicativo OpenSSH (uma implementação
destes protocolos e várias ferramentas auxiliares),
em 1999. Existem também várias outras opções
comerciais de implementação do SSH porém, por
ser livre, o OpenSSH é a mais popular.
SSH


Desenvolvido com a segurança em mente desde o princípio do
projeto. Como conseqüência, ele é capaz de proteger o host de
ataques de IP spoofing, IP source routing e DNS spoof.
Basicamente, o atacante só consegue fazer com que o serviço
seja interrompido, ele não é capaz de tomar conta da seção (e
consequentemente da máquina) que está utilizando o software.
Todo o tráfego transmitido por uma conexão SSH (as senhas e
todo o conteúdo, como um arquivo sendo transmitido entre os
hosts) é fortemente criptografado, sendo virtualmente impossível
para um atacante sniffar e conseguir ler as mensagens trocadas
entre os participantes da conexão (pelo menos em tempo hábil
para que aquele conteúdo decifrado seja de alguma utilidade
para ele).
OpenSSH



OpenSSH é uma versão livre do protocolo Secure
Shell (SSH) e da família de ferramentas para controlar
remotamente um computador ou transferir ficheiros
entre computadores.
Substitui ferramentas tradicionais para executar essas
funções, tais como telnet ou rcp, pois são inseguras e
transmitem as palavras passe dos utilizadores em
texto simples quando utilizadas.
Fornece um serviço para o servidor e ferramentas
cliente para facilitar um controle remoto seguro,
codificado e operações de transferência de ficheiros,
substituindo efetivamente as ferramentas padrão.
OpenSSH



O componente sshd do servidor OpenSSH, aguarda
continuamente ligações de qualquer das ferramentas dos
clientes.
Quando um pedido de ligação ocorre, o sshd configura a
ligação correta dependendo do tipo de ferramenta do
cliente que está a ligar. Por exemplo, se o computador
remoto se está a ligar com a aplicação cliente ssh, o
processo do servidor OpenSSH inicia uma ligação de
controle remoto após a autenticação.
Se o utilizador remoto usa uma aplicação rcp o processo
do servidor OpenSSH inicia uma cópia segura dos ficheiros
entre o servidor e o cliente após a autenticação. O
OpenSSH pode utilizar vários métodos de autenticação,
incluindo palavras passe simples, chaves públicas e
senhas Kerberos.
OpenSSH - Instalação
Instalação cliente OpenSSH:
# sudo apt-get install openssh-client

Instalação servidor OpenSSH:
# sudo apt-get install openssh-server

SSH - Configuração
Pode alterar o comportamento predefinido da
aplicação servidor OpenSSH, sshd, editando
o ficheiro /etc/ssh/sshd_config. Para
informações sobre as directivas de
configuração usadas neste ficheiro, pode
consultar a página de manual apropriada
com o seguinte comando, executado num
terminal:
# man sshd_config

SSH - Configuração

Existem muitas directivas no ficheiro de configuração do
sshd controlando coisas como as configurações das
comunicações e os modos de autenticação. De seguida
apresentam-se exemplos de directivas de configuração que
podem ser alteradas ao editar o ficheiro /etc/ssh/ssh_config.
# sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.original
# sudo chmod a-w /etc/ssh/sshd_config.original
SSH - Configuração
A seguir apresentam-se exemplos de directivas que pode alterar:
 Para ajustar o OpenSSH para aceitar pedidos (escutar) o
protocolo TCP na porta 2222, em vez da porta por omissão TPC
porta 22, altere a directiva Port como se segue:
Port 2222
Para fazer com que o sshd permita credenciais de login
baseadas em chaves públicas, adicione simplesmente a linha
seguinte:
PubkeyAuthentication yes

SSH - Configuração
No ficheiro /etc/ssh/sshd_config, ou se a linha já estiver presente
assegure-se de que não está comentada.
 Para fazer com que o seu servidor OpenSSH mostre o conteúdo
do ficheiro /etc/issue.net como uma mensagem de pré-login,
adicione simplesmente ou modifique a seguinte linha no ficheiro
/etc/ssh/sshd_config.
Banner /etc/issue.net


Após a marcação de alterações no ficheiro /etc/ssh/sshd_config,
grave o ficheiro e reinicie a aplicação servidor sshd para tornar
efectivas as alterações utilizando o comando seguinte num
terminal:
# sudo /etc/init.d/ssh restart
Simplificando tarefas com o SSH
Partindo do ponto que seu servidor de hospedagem
tem acesso por SSH, vamos aprender a usá-lo:
Para quem utiliza Linux, basta abrir a linha de
comando e digitar ssh nome_do_host, já para
usuários de Windows, será necessário instalar um
cliente (recomendo o PuTTY, basta efetuar o
download e instalá-lo). Quando iniciar o PuTTY
aparecerão as inúmeras configurações, onde
geralmente só é preciso indicar o Host Name e
então clicar em Open.
Simplificando tarefas com o SSH
Logo em seguida será aberta uma janela
com linha de comando onde será perguntado
seu nome de usuário (login) e a respectiva
senha.
Agora divirta-se, você está conectado!
Legal, mas se eu já uso um cliente de FTP,
para que precisaria de outro de SSH?
Simplificando tarefas com o SSH
Existem operações que podem economizar uma
quantidade incalculável de tempo se realizadas com
alguns simples comandos por SSH. Imagine as
seguintes situações em seu cotidiano:
É necessário realizar operações em massa como
renomear todos os arquivos de uma pasta, e agora?
Você pode renomear todos manualmente, ou usar a
cabeça e digitar no SSH algo como for arq to *.JPG;
do mv $arq ${arq/.JPG/.jpg};done (nesse caso todos
os arquivos com a extensão .JPG são modificados
para .jpg, mas as possibilidades são infinitas).
Simplificando tarefas com o SSH
Agora o desafio é criar um pacote de backup
com todos os seus arquivos, você pode
baixar todos eles separadamente,
compacatá-los usando seu programa favorito
e então enviar novamente por FTP. Mas é
muito mais fácil conectar remotamente em
seu servidor e executar zip -r backup.zip
diretorio, você tem então seu arquivo
backup.zip com todos os arquivos contidos
na pasta diretorio.
Simplificando tarefas com o SSH


Essa vem do blog do Elcio, no artigo “Quem tem
medo do terminal?“. Suponhamos que você precise
copiar uma pasta chamada “site” para “sitenovo”,
para então trabalhar de maneira segura na nova
versão de seu site. Você vai baixar todos os
arquivos para sua máquina (igualmente ao exemplo
anterior), renomear a pasta e então enviá-los de
volta? Não complique! Basta um simples comando:
cp -r site sitenovo. Muito mais simples, não?
Citei apenas três exemplos, mas as possibilidades
são infinitas e o tempo economizado é
incontestável. Não tenha medo do terminal, e
aproveite o que ele tem a oferecer.