Aula – SSH e Telnet
Transcrição
Aula – SSH e Telnet
Prof. Sandro Wambier HISTÓRIA OpenSSH foi criada pela equipe da OpenBSD como uma alternativa ao software original SSH da Tatu Ylönen, que é um software proprietário. Os desenvolvedores da OpenSSH clamam que seu programa é mais seguro que o original devido a sua política de produção limpa e o seu código auditado. A palavra open no nome se refere a que ele foi baseado no código aberto da Licença BSD. Embora o código fonte esteja disponível para o SSH original, várias restrições são impostas sobre o seu uso e distribuição. O OpenSSH apareceu pela primeira vez no OpenBSD 2.6 e sua primeira versão portável foi feita em Outubro de 1999. A versão 5.1 do OpenSSH, é uma implementação completa e em código aberto dos protocolos SSH 1.3, 1.5 e 2.0. foi lançada em julho de 2008 Prof. Sandro Wambier O que é ssh? • O SSH permite administrar máquinas remotamente, permite transferir arquivos de várias formas, sessões X, etc. • • • • Conexão de dados criptografada entre cliente/servidor. Cópia de arquivos usando conexão criptografada(scp). Suporte a ftp criptografado (sftp). Autenticação usando um par de chaves pública/privada RSA ou DSA. • Algoritmo de criptografia livre de patentes. Prof. Sandro Wambier Módulos do ssh • O SSH é dividido em dois módulos. O sshd é o módulo servidor, um serviço que fica residente na máquina que será acessada, enquanto o ssh é o módulo cliente, um utilitário que você utiliza para acessá-lo. Prof. Sandro Wambier Instalação do ssh • O padrão do Debian é já trazer o ssh instalado. • Caso seja necessário instalar, use: Debian #apt-get install openssh-server Fedora: #yum install openssh-server Ou manualmente baixando o pacote .tar de algum repositório*. *Lugar onde ficam armazenados diversos pacotes geralmente organizados por distribuições e versões. Prof. Sandro Wambier Configuração • A configuração do servidor, vai no arquivo /etc/ssh/sshd_config • A configuração do cliente vai no /etc/ssh/ssh_config. Prof. Sandro Wambier Iniciando o servidor ssh • Com o pacote instalado, você inicia o servidor usando o comando /etc/init.d/sshd start • Para que ele seja inicializado durante o boot, use o comando: update-rc.d -f sshd defaults Prof. Sandro Wambier Iniciando o servidor ssh • No Debian o servidor só funcionará se o arquivo sshd_not_to_be_run, presente em /etc/ssh for renomeado ou excluído. Renomeando o arquivo: mv /etc/ssh/sshd_not_to_be_run /etc/sshd_not_to_be_run.old Prof. Sandro Wambier Tunelamento SSH • Muitos protocolos, como o POP3, FTP e outros não se utilizam de criptografia na identificação ou na sessão, ou seja, sua senha e o que você está digitando, lendo e fazendo fica "boiando" na rede. Qualquer um pode-se utilizar de um sniffer e “escutar” tudo o que vc está fazendo. • O SSH pode fazer túneis de conexão criptografada. • Para isso, você deve conectar-se ao servidor e especificar uma porta local na qual você se conectará, uma porta e um servidor para o qual você quer uma conexão segura. Prof. Sandro Wambier Tunelamento SSH • Como usar um túnel SSH ssh -L 8021:servidor:21 ines@servidor • 8021 é o número da porta local que vai receber a conexão e repassá-la pelo túnel encriptado até ao servidor. • servidor é o servidor no qual queremos nos conectar por FTP seguramente, usando o túnel.(poderia ser outra maquina da rede) • 21 é a porta de FTP, ou seja, a porta no servidor que queremos nos conectar. • ines@servidor especifica a máquina a ser utilizada como ponte de conexão segura. A conexão vai criptografada até esta máquina, depois é descriptografada. • Agora, é só se conectar à máquina local, na porta 8021: • ftp localhost 8021 Prof. Sandro Wambier Configuração do servidor ssh • Você pode configurar várias opções relacionadas ao servidor SSH, incluindo a porta TCP a ser usada editando o arquivo /etc/ssh/sshd_config • A maior parte das opções dentro do arquivo podem ser omitidas, pois o servidor simplesmente utiliza valores padrão para as opções que não constarem no arquivo. Prof. Sandro Wambier Opções do sshd_config port • Porta: Uma das primeiras linhas é a: Port 22 • Esta é a porta que será usada pelo servidor SSH. O padrão é usar a porta 22. Ao mudar a porta do servidor aqui, você deverá usar a opção "-p" ao conectar a partir dos clientes, para indicar a porta usada, como em: ssh -p 222 usuario@IP_DO_SERVIDOR_SSH *Não se esqueça que se tiver ligado por um router deve abrir a respectiva porta no router. Prof. Sandro Wambier Opções do sshd_config port - II • Mudar a porta padrão do SSH é uma boa idéia se você está preocupado com a segurança. • Colocar seu servidor numa porta mais escondida, já dificulta um pouco as coisas. Prof. Sandro Wambier Opções do sshd_config - Controle de acesso • Logo abaixo vem a opção "ListenAddress", que permite limitar o SSH a uma única placa de rede, em casos de micros com duas ou mais placas. • Digamos que o servidor use o endereço "192.168.0.1" na rede local e você quer que o servidor SSH não fique disponível na internet. • Você adicionaria a linha: ListenAddress 192.168.0.0 Prof. Sandro Wambier Opções do sshd_config - Usuários e senhas • Outra opção interessante, logo abaixo é a: PermitRootLogin yes • Esta opção determina se o servidor aceitará que clientes se loguem como root. Do ponto de vista da segurança, é melhor deixar esta opção como "no", pois assim o usuário precisará primeiro se logar usando um login normal e depois virar root usando o "su" ou "su -". Prof. Sandro Wambier Opções do sshd_config - Usuários e senhas – II • Por padrão, o SSH permite que qualquer usuário cadastrado no sistema logue-se remotamente, você pode redefinir isso através da opção "AllowUsers", que especifica uma lista de usuários que podem usar o SSH. • Para permitir que apenas os usuários dunha e luna possam usar o SSH, adicione a linha: AllowUsers miro ines Prof. Sandro Wambier Opções do sshd_config - Usuários e senhas – III • Você pode ainda inverter a lógica, usando a opção "DenyUsers". Neste caso, todos os usuários cadastrados no sistema podem fazer login, com exceção dos especificados na linha, como em: DenyUsers miro ines Prof. Sandro Wambier Opções do sshd_config - Usuários e senhas – IV • Outra opção relacionada à segurança é a: PermitEmptyPasswords no • Esta opção faz com que qualquer conta sem senha fique automaticamente desativada no SSH, evitando que alguém consiga se conectar ao servidor "por acaso" ao descobrir a conta desprotegida. Prof. Sandro Wambier Opções do sshd_config - Banner • Alguns servidores exibem mensagens de advertência antes do prompt de login. • A mensagem é especificada através da opção "Banner", onde você indica um arquivo de texto com o conteúdo a ser mostrado, como em: Banner = /etc/ssh/banner.txt Prof. Sandro Wambier Opções do sshd_config - X11 Forwarding • Um pouco depois temos a opção: X11Forwarding yes • Esta opção determina se o servidor permitirá que os clientes executem aplicativos gráficos remotamente. X11Forwarding no • Desta forma, os clientes poderão executar apenas comandos e aplicativos de modo texto. Prof. Sandro Wambier Opções do sshd_config Módulos • O SSH inclui um módulo de transferência de arquivos (o SFTP). Ele é ativado através da linha: Subsystem sftp /usr/lib/sftp-server • É realmente necessário que esta linha esteja presente para que o SFTP funcione. Prof. Sandro Wambier Efetivando as alterações • Para que as alterações entrem em vigor, reinicie o servidor SSH: /etc/init.d/ssh restart Prof. Sandro Wambier Transferindo arquivos • Além de permitir rodar aplicativos e fazer toda a administração de um servidor remotamente, o ssh também pode ser usado para transferir arquivos. • Para isso podem ser usados: scp sftp Prof. Sandro Wambier scp • É uma forma de transferir arquivos via SSH • Permite especificar numa única linha o login e endereço do servidor, junto com o arquivo que será transferido. Prof. Sandro Wambier A sintaxe do scp scp arquivo_local login@servidor:pasta_remota exemplo: scp –p 22 teste.txt [email protected]:/home/miro/ End! Prof. Sandro Wambier Telnet Prof. Sandro Wambier Telnet • O serviço telnet é que oferece o login remoto em seu computador, que permite trabalhar conectado a distância como se estivesse em frente a 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. Prof. Sandro Wambier Telnet seguro? • Atualmente possui tanto a versão original (insegura), quanto uma versão mais segura com suporte a ssl. • Pacotes: telnet Cliente telnet com suporte a autenticação. telnetd Servidor telnet com suporte a autenticação. Prof. Sandro Wambier Telnet seguro? – II • Pacotes telnet-ssl Cliente telnet com suporte a autenticação e 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). Prof. Sandro Wambier Utilitários in.telnetd Servidor telnet telnet Cliente telnet padrão (quando o pacote telnetssl está instalado, é simplesmente um link para telnetssl). telnet-ssl Cliente telnet com suporte a ssl. Prof. Sandro Wambier Instalação apt-get install telnet telnetd • Ou para a versão com suporte a ssl apt-get install telnet-ssl telnetd-ssl • Os pacotes com o ssl no final possuem suporte a criptografia ssl. Prof. Sandro Wambier Configuração • Por padrão a porta usada para executar o serviço telnet é a 23. • O servidor tem o nome in.telnetd e este deverá ser usado para ajustar o controle de acesso nos arquivos hosts. Prof. Sandro Wambier • Caso algum destes três arquivos seja modificado: /etc/inetd.conf /etc/hosts.allow /etc/hosts.deny. • Será necessário reiniciar o servidor inetd Com o comando killall HUP inetd Prof. Sandro Wambier 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. Prof. Sandro Wambier Exemplos • Conecta-se ao servidor telnet rodando na porta 23 de sua própria máquina telnet localhost • Conecta-se ao servidor telnet 192.168.0.1 operando na porta 130 usando o nome de usuário luna telnet –l ines 192.168.0.1 130 Prof. Sandro Wambier