240 likes | 306 Views
TELNET E SSH Christian França Josiane Dalmasio Midra Sian Liberato. TELNET.
E N D
TELNET E SSHChristian FrançaJosiane DalmasioMidra 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 telnetd-ssl. • 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.