Boas práticas com OpenSSH

OpenSSH (Abra o Shell Seguro) é um conjunto de aplicativos que permite comunicações criptografadas em uma rede, usando o protocolo SSH. Ele foi criado como uma alternativa livre e aberta ao programa Secure Shell, que é um software proprietário. « Wikipedia.

Alguns usuários podem pensar que as boas práticas devem ser aplicadas apenas em servidores, mas não é o caso. Muitas distribuições GNU / Linux incluem OpenSSH por padrão e há algumas coisas para se manter em mente.

Segurança

Estes são os 6 pontos mais importantes a serem considerados ao configurar o SSH:

  1. Use uma senha forte.
  2. Altere a porta padrão de SSH.
  3. Sempre use a versão 2 do protocolo SSH.
  4. Desabilite o acesso root.
  5. Limite o acesso do usuário.
  6. Use autenticação de chave.
  7. outras opções

Uma senha forte

Uma boa senha é aquela que contém caracteres alfanuméricos ou especiais, espaços, letras maiúsculas e minúsculas... etc. Aqui em DesdeLinux Mostramos vários métodos para gerar boas senhas. Pode visitar este artigo y este outro.

Alterar a porta padrão

A porta padrão para SSH é 22. Para alterá-la, tudo o que precisamos fazer é editar o arquivo / etc / ssh / sshd_config. Procuramos a linha que diz:

#Port 22

nós removemos o comentário e trocamos o 22 por outro número .. por exemplo:

Port 7022

Para conhecer as portas que não estamos utilizando em nosso computador / servidor podemos executar no terminal:

$ netstat -ntap

Agora para acessar nosso computador ou servidor devemos fazê-lo com a opção -p da seguinte maneira:

$ ssh -p 7022 usuario@servidor

Protocolo de uso 2

Para ter certeza de que estamos usando a versão 2 do protocolo SSH, devemos editar o arquivo / etc / ssh / sshd_config e procure a linha que diz:

# Protocolo 2

Nós removemos o comentário e reiniciamos o serviço SSH.

Não permitir acesso como root

Para evitar que o usuário root seja capaz de acessar remotamente via SSH, olhamos o arquivo/ etc / ssh / sshd_config a linha:

#PermitRootLogin no

e nós removemos o comentário. Acho que vale a pena esclarecer que antes de fazer isso devemos nos certificar de que nosso usuário possui as permissões necessárias para realizar tarefas administrativas.

Limitar o acesso dos usuários

Também não faz mal nenhum permitir o acesso via SSH apenas a determinados usuários confiáveis, por isso voltamos ao arquivo / etc / ssh / sshd_config e adicionamos a linha:

PermitirUsuários elav usemoslinux kzkggaara

Onde obviamente, os usuários elav, usemoslinux e kzkggaara são os que poderão acessar.

Use autenticação de chave

Embora este método seja o mais recomendado, devemos ter cuidado especial, pois acessaremos o servidor sem inserir a senha. Isso significa que se um usuário conseguir entrar em nossa sessão ou se nosso computador for roubado, podemos ter problemas. No entanto, vamos ver como fazer.

A primeira coisa é criar um par de chaves (públicas e privadas):

ssh-keygen -t rsa -b 4096

Em seguida, passamos nossa chave para o computador / servidor:

ssh-copy-id -i ~/.ssh/id_rsa.pub elav@200.8.200.7

Finalmente, temos que ter descomentado, no arquivo / etc / ssh / sshd_config a linha:

AuthorizedKeysFile .ssh/authorized_keys

outras opções

Contribuição de Yukiteru

Podemos reduzir o tempo de espera em que um usuário pode fazer login com sucesso no sistema para 30 segundos

LoginGraceTime 30

Para evitar ataques de ssh através de TCP Spoofing, deixando o criptografado ativo no lado do ssh ativo por no máximo 3 minutos, podemos ativar essas 3 opções.

TCPKeepAlive no ClientAliveInterval 60 ClientAliveCountMax 3

Desative o uso de arquivos rhosts ou shosts, que, por razões de segurança, não devem ser usados.

IgnoreRhosts sim IgnoreUserKnownHosts sim RhostsAuthentication não RhostsRSAAuthentication não

Verifique as permissões efetivas do usuário durante o login.

StrictModes yes

Ative a separação de privilégios.

UsePrivilegeSeparation yes

Conclusões:

Ao seguir essas etapas, podemos adicionar segurança extra aos nossos computadores e servidores, mas nunca devemos esquecer que há um fator importante: o que há entre a cadeira e o teclado. É por isso que recomendo a leitura este artigo.

fonte: Como Forjar


Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: Miguel Ángel Gatón
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.

  1.   yukiteru dito

    Excelente post @elav e eu adiciono algumas coisas interessantes:

    LoginGraceTime 30

    Isso nos permite reduzir o tempo de espera em que um usuário pode fazer login com sucesso no sistema para 30 segundos

    TCPKeepAlive não
    Intervalo ClientAlive 60
    ClienteAliveCountMax 3

    Essas três opções são bastante úteis para evitar ataques de ssh por meio de TCP Spoofing, deixando o criptografado ativo no lado do ssh por no máximo 3 minutos.

    IgnoreRhosts sim
    IgnoreUserKnownHosts sim
    RhostsAuthentication não
    RhostsRSAAuthentication não

    Ele desativa o uso de arquivos rhosts ou shosts, que por razões de segurança não devem ser usados.

    StrictModes sim

    Esta opção é usada para verificar as permissões efetivas do usuário durante o login.

    UsePrivilegeSeparation sim

    Ative a separação de privilégios.

    1.    elav. dito

      Bem, daqui a pouco vou editar o post e adicioná-lo ao post 😀

  2.   Eugenio dito

    Descomentar para não alterar a linha é redundante. As linhas comentadas mostram o valor padrão de cada opção (leia o esclarecimento no início do próprio arquivo). O acesso root está desabilitado por padrão, etc. Portanto, descomentar não tem absolutamente nenhum efeito.

    1.    elav. dito

      # A estratégia usada para opções no sshd_config padrão fornecido com
      # OpenSSH é especificar opções com seus valores padrão onde
      # possível, mas deixe-os comentados. As opções não comentadas substituem o
      # valor padrão.

      Sim, mas por exemplo, como sabemos que estamos usando apenas a versão 2 do protocolo? Porque poderíamos muito bem usar 1 e 2 ao mesmo tempo. Como diz a última linha, descomentar esta opção, por exemplo, sobrescreve a opção padrão. Se estivermos usando a versão 2 por padrão, tudo bem, se não, usamos SIM ou SIM 😀

      Obrigado por comentar

  3.   Sli dito

    Artigo muito bom, eu sabia várias coisas mas uma coisa que nunca ficou clara para mim é o uso de chaves, realmente o que são e quais as vantagens que tem, se eu usar chaves posso usar senhas ??? Se sim, por que aumenta a segurança e se não, como faço para acessá-lo de outro pc?

  4.   adian dito

    Saudações, instalei o debian 8.1 e não consigo conectar do meu windows pc ao debian com WINSCP, terei que usar o protocolo 1? qualquer ajuda .. obrigado
    adian

  5.   franksanabria dito

    Você pode estar interessado neste vídeo sobre o openssh https://m.youtube.com/watch?v=uyMb8uq6L54

  6.   Telha dito

    Quero experimentar algumas coisas aqui, várias já tentei graças ao Arch Wiki, outras por preguiça ou falta de conhecimento. Vou guardar para quando iniciar meu RPi