220 likes | 344 Views
Configuração de um servidor SSH. Disciplina: Serviços de Rede. Campus Cachoeiro Curso Técnico em Informática. SSH. SSH(Secure Shell) é um padrão para comunicação e acesso remoto a máquinas Linux de forma segura, ou seja, utilizando criptografia.
E N D
Configuração de um servidor SSH Disciplina: Serviços de Rede Campus Cachoeiro Curso Técnico em Informática
SSH • SSH(Secure Shell) é um padrão para comunicação e acesso remoto a máquinas Linux de forma segura, ou seja, utilizando criptografia. • Ele permite administrar máquinas remotamente, executando inclusive aplicativos gráficos e permite transferir arquivos de várias formas diferentes.
SSH • A grande vantagem do SSH sobre outras ferramentas de acesso remoto é a grande ênfase na segurança. • Um servidor SSH bem configurado é virtualmente impenetrável e você pode acessá-lo de forma segura, mesmo que a sua rede local esteja comprometida. • Ele utiliza um conjunto de técnicas de criptografia para assegurar que apenas as pessoas autorizadas terão acesso ao servidor, que todos os dados transmitidos sejam impossíveis de decifrar e que a integridade da conexão seja mantida.
Texto cifrado SSH • O SSH utiliza chaves assimétricas para fazer a autenticação. As chaves assimétricas são um sistema muito interessante, onde temos um par de chaves. Uma (a chave pública), permite apenas encriptar dados, enquanto a segunda (a chave privada) permite desencriptar as informações embaralhadas pela primeira. Chave Texto em claro Criptograma Algoritmo Texto original
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. • A configuração do servidor, independentemente da distribuição usada, vai no arquivo "/etc/ssh/sshd_config", enquanto a configuração do cliente vai no "/etc/ssh/ssh_config".
Configuração • Para se logar em um servidor SSH, utilizar o comando • ssh ip_servidor • Para se logar no servidor com a possibilidade de abrir aplicativos gráficos entre com o comando:
Configuração • ssh –X servidor • mas antes é necessário descomentar a opção ForwardX11 Yes no arquivo ssh_config e acrescentar X11Forwarding yes no arquivo sshd_config no servidor. • Para se logar como um usuário específico ao invés do usuário padrão use o comando: ssh usuário@servidor ssh -l usuário servidor
Configuração • Uma das primeiras linhas do arquivo de configuração é: Port 22 Esta é a porta que será usada pelo servidor SSH para aceitar requisições do cliente. Protocol 1,2 Atualmente utilizamos o SSH 2, mas ainda existem alguns poucos clientes que utilizam a primeira versão do protocolo. Deixando a opção com as duas versões, o servidor aceitará clientes que utilizam ambas as versões do protocolo.
Configuração • ListenAddress – Endereço onde o servidor SSH estará escutando por requisições • HostKey – arquivo da chave privada usado pelo servidor para descriptografar a informação. • RSAAuthentication – permite autenticação utilizando o algoritmo de criptografia RSA • PubKeyAuthentication – permite autenticação por chave pública
Negar login como root • Para impedir que usuários se loguem como root no servidor, configurar a variável PermitRootLogin no arquivo sshd_config como No
Negar login como usuário específico Para impedir logins de usuários específicos, colocar no arquivo sshd_config a variável DenyUsers usuário Para permitir logins de usuários específicos, colocar no arquivo sshd_config a variável AllowUsers usuário
Modificar conteúdo do banner Banner: Alguns servidores exibem mensagens de advertência antes do prompt de login, avisando que todas as tentativas de acesso estão sendo monitoradas ou coisas do gênero. A mensagem é especificada através da opção "Banner", onde você indica um arquivo de texto com o conteúdo a ser mostrado, ou editar o arquivo padrão: - Descomentar a opção Banner no sshd_config e editar o arquivo /etc/issue.net
Chave Secreta Compartilhada Texto cifrado Texto original Algoritmo de Decifragem (inverso do algo. de cifragem) Uso de Criptografia no SSH Chave Secreta Compartilhada Texto original Algoritmo de Cifragem Quando você se conecta a um servidor SSH, seu micro e o servidor trocam suas chaves públicas, permitindo que um envie informações para o outro de forma segura. Através deste canal inicial é feita a autenticação, seja utilizando login e senha, seja utilizando chave e passphrase.
Criptografia no SSH • Até aqui, tudo é feito utilizando chaves de 512 bits ou mais (de acordo com a configuração). O problema é que, embora impossível de quebrar, este nível de encriptação demanda uma quantidade muito grande de processamento. Se todas as informações fossem transmitidas desta forma, o SSH seria muito lento. • Para solucionar este problema, depois de fazer a autenticação, o SSH passa a utilizar um algoritmo mais simples, que demanda muito menos processamento, para transmitir os dados. Por padrão é utilizado o 3DES (triple-DES), que é um algoritmo de criptografia simétrica.
Criptografia no SSH • Para criação de chaves criptográficas para uso no ssh, é necessário utilizar o comando sempre como seu usuário padrão e não como root. ssh-keygen –t rsa Generating public/private rsa key pair.Enter file in which to save the key (/home/morimoto/.ssh/id_rsa):Created directory '/home/morimoto/.ssh'.Enter passphrase (empty for no passphrase):Enter same passphrase again:Your identification has been saved in /home/morimoto/.ssh/id_rsa.Your public key has been saved in /home/morimoto/.ssh/id_rsa.pub.The key fingerprint is:ff:28:26:f6:87:67:9f:4c:9a:c8:0a:3b:21:81:88:b4 morimoto@athenas
Criptografia no SSH • Isso vai gerar os arquivos ".ssh/id_rsa" e ".ssh/id_rsa.pub" dentro do seu diretório home, que são respectivamente sua chave privada e a chave pública. • O ".ssh/id_rsa" é um arquivo secreto, que deve usar obrigatoriamente o modo de acesso "600" (que você define usando o chmod), para evitar que outros usuários da máquina possam lê-lo. • Muito servidores recusam a conexão caso os arquivos estejam com as permissões abertas.
Criptografia no SSH Para exportar a chave pública, de forma que seja possível uma comunicação criptografada com o servidor, é necessário o comando ssh-copy-id login@servidor para que a chave pública seja enviada para o diretório remoto do usuário no servidor. A partir daí, ao invés de pedir sua senha, o servidor verifica a chave privada, instalada na sua máquina e em seguida pede a passphrase. Mesmo que alguém consiga roubar sua chave privada, não conseguirá conectar sem saber a passphrase e vice-versa.
Transferência de Arquivos no SSH • O SSH possui uma primitiva de transferir arquivos chamada scp (secure copy). Tal ferramenta permite que arquivos sejam enviados entre máquinas utilizando os mesmos recursos de autenticação e criptografia que o ssh. • Usando o comando scp é possível especificar em uma única linha o login e o endereço do servidor, junto com o arquivo que será transferido. • A sintaxe é a seguinte: • scp arquivo_local login@servidor:pasta_remota • Exemplo: $ scp /home/arquivo.tar usuario@empresa.com.br:/var/www/download
SSH no Windows • Existem diversas versões do SSH. A maioria das distribuições Linux inclui o OpenSSH, que não possui um cliente for Windows. No entanto, isso não chega a ser um problema, pois o SSH é um protocolo aberto, o que permite o desenvolvimento de clientes para várias plataformas, inclusive Windows.
SSH no Windows • Um exemplo de cliente simples e gratuito é o Putty. • Usar o putty para se conectar a servidores Linux é bem simples, pois não precisa sequer ser instalado. • A grande limitação do uso de clientes SSH no Windows é que são limitados ao modo texto, sendo impossível executar aplicativos gráficos no mesmo, devido às diferenças entre as interfaces gráficas do Windows e Linux. • Ambos podem ser baixados no: http://www.putty.nl/. Outro exemplo é a versão da SSH Security, que tem vários recursos mas é gratuita apenas para universidades e usuários domésticos. O link é: http://www.ssh.com.