SSH Blindado - Protegendo o seu sistema de ataques SSH

SSH é, sem dúvida, uma grande ferramenta para quem trabalha em rede. Com ele você tem acesso direto à máquina, porém, é um grande vilão se mal configurado. Neste artigo, explico como deixar o seu SSH protegido de qualquer ataque. Nem todos os passos devem ser executados, mas sim implementados de acordo com sua necessidade.

[ Hits: 27.368 ]

Por: M4iir1c10 em 06/12/2012 | Blog: https://github.com/mauricioph


Ingredientes



Neste artigo não vou explicar como instalar e para que serve o SSH, porque isso já é um assunto muito bem explicado pelo nossos colegas aqui do VOL. Se você não conhece o SSH, faça uma busca logo ali no topo da página do lado oposto do logo, por SSH em artigos.

Este artigo é mais uma coletânea de ideias de outros artigos em um só, ou um resumo do que já foi falado em um único tutorial, só que o meu foco é a segurança do SSH.

Para deixar o seu sistema super seguro, vamos seguir os passos:
  1. Escolher uma senha forte;
  2. Instalar o DenyHosts para bloqueio automático de intrusos;
  3. Modificar a porta padrão;
  4. Desabilitar protocolo inseguro;
  5. Desabilitar login como root;
  6. Reduzir o número da conexões autenticadas;
  7. Reduzir o tempo de espera para login;
  8. Autorizar somente específicos usuários e/ou grupos;
  9. Autorizar conexões de um único IP;
  10. Somente autorizar usuários com chaves, proibir o uso de senhas;
  11. Ligar o SSH à uma interface de rede específica.

Estes passos envolvem modificação do arquivo de configuração global /etc/ssh/sshd_config e o empacotamento TCP através do host /etc/hosts.allow e /etc/hosts.deny.

Passo I: Senha forte

Se você não está nem aí para segurança, se você não acredita que o seu sistema sequer pode ser invadido porque você acha que seus documentos são irrelevantes para qualquer um, então, pelo menos escolha uma senha decente para proteger o mínimo do seu sistema.

Ainda que você pense que seus arquivos são irrelevantes para qualquer um, para você eles podem ter um valor e isso já é motivo suficiente para você escolher uma senha para o seu usuário e, principalmente, para o root, já que esse é o mais atacado.

Se você está em um computador que você crê que alguém pode estar tentando invadir, use estes comandos para fazer uma auditoria e veja se o root não é o alvo principal.

Top 5 mais recentes ataques:

# lastb | awk '{print $1}' | sort | uniq -c | sort -rn | head -5

Top 5 contas mais atacadas de todos os tempos:

# awk 'gsub(".*sshd.*Failed password for (invalid user )?", "") {print $1}' /var/log/secure* | sort | uniq -c | sort -rn | head -5

Top 5 IPs de atacantes (estes devem entrar na sua lista negra):

# awk 'gsub(".*sshd.*Failed password for (invalid user )?", "") {print $3}' /var/log/secure* | sort | uniq -c | sort -rn | head -5

Para que você possa dormir tranquilo sabendo que sua senha é segura, rode o John the Ripper no seu sistema, se demorar muito para descobrir a senha, é porque a senha é boa, caso o John encontre a senha rápido, é bom trocar...

Passo II: Instale DenyHost

Esta aplicação vai observar os usuários que tentam logar no sistema e falham, ao perceber que um determinado host está tentando muito e falhando, ele automaticamente inclui esse host na lista negra.

No Fedora instale assim:

# yum install denyhosts
# chkconfig denyhosts on
# /etc/init.d/denyhosts start


No Ubuntu:

sudo apt-get install denyhosts
$ sudo service denyhosts start


Dê uma olhada no arquivo de configuração e faça a alteração que você achar necessária. Caso o seu sistema não tenha, crie os arquivos /etc/hosts.allow e /etc/hosts.deny, onde em:
  • allow → Deve-se colocar o IP das máquinas que você usará para conectar.
  • deny → Máquinas que você já sabe que são de invasores ou pessoas que você deseja bloquear.

Passo III: Mude a porta padrão

Quando você instala o SSH por padrão, ele escuta a porta 22, assim, por medida de segurança, mude para uma porta maior que 1024.

Eu já vi muitos blogs e artigos indicando a porta 2222, o que não é problema, porém, eu navego contra a correnteza se vejo que tem um "mundarel" de pessoas usando a 2222, um invasor vai tentar a 2222 porque ele também faz pesquisa no Google e vê estes artigos. Assim sendo, prefiro usar uma outra tipo 2233, 2200, 2000 etc.

Porém, indico você a seguir o seu padrão. O meu Squid, por exemplo, não roda na porta 3128 e sim na 3120, qualquer instalação do Squid, eu rodo na 3120.

Bom, mas Squid já é outro assunto... Voltando ao SSH, vamos editar o arquivo /etc/ssh/sshd_config, procure a linha onde indica a porta e coloque um "#" antes, copie para a linha debaixo mudando o numero da porta:

# Port 22
Port 2200

Quando conectar, use a porta escolhida:

ssh mauricio@192.168.34.70 -p 2200

    Próxima página

Páginas do artigo
   1. Ingredientes
   2. Aumentando a segurança do servidor SSH - Continuação
   3. Testando
Outros artigos deste autor

Raios de luz explodindo atrás do texto

Máquina Enigma e encriptação em XOR

Proteja seu website ou página html com encriptaçâo

5 comandos que ninguém nunca deve executar no Linux

Áudio Profissional no GNU/Linux

Leitura recomendada

Segurança com Iptables

Carnivore e Altivore: Os predadores do FBI

Implementação de OpenVAS-5 em Ubuntu 10.04.4 LTS

SSH - Uma breve abordagem

Como assinar digitalmente um documento criado no Br/OpenOffice

  
Comentários
[1] Comentário enviado por maiconramones em 06/12/2012 - 15:05h

Muito bom o artigo, simples, eficiente e direto.

Parabéns.

[2] Comentário enviado por m4iir1c10 em 06/12/2012 - 17:18h

So uma correcao na ultima linha da primeira pagina o comando nao e $ ssh mauricio@192.168.34.70:2200 e sim $ ssh mauricio@192.168.34.70 -p 2200

E na Terceira Pagina o nome para o arquivo nao e autorized_keys e sim authorized_keys, percebeu o H entre o T e o O?

Desculpem pelos erros ;)

[3] Comentário enviado por removido em 10/12/2012 - 11:12h

Bom artigo, parabéns.
Uma outra dica é usar o fail2ban.

[4] Comentário enviado por mineirobr em 12/12/2012 - 09:42h

Excelente, parabéns :)

[5] Comentário enviado por m4cgbr em 13/12/2012 - 04:33h

Excelente, muito útil e claro nas colocações.

Obrigado

[6] Comentário enviado por voprach em 08/06/2016 - 08:50h

Recebi a seguinte mensagem após alteração da porta e reinicio do servidor: No route host
Peço a gentileza de alguém poder me ajudar. Desde já agradeço.

[7] Comentário enviado por removido em 27/07/2016 - 17:10h

Muito bom cara, muito bom mesmo.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts