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:
- Use uma senha forte.
- Altere a porta padrão de SSH.
- Sempre use a versão 2 do protocolo SSH.
- Desabilite o acesso root.
- Limite o acesso do usuário.
- Use autenticação de chave.
- 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
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
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.
Bem, daqui a pouco vou editar o post e adicioná-lo ao post 😀
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.
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
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?
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
Você pode estar interessado neste vídeo sobre o openssh https://m.youtube.com/watch?v=uyMb8uq6L54
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