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: 34.449 ]

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

GRUB com imagens aleatórias e KDM com vídeo de fundo

Máquina Enigma e encriptação em XOR

Rode o Blackbox no Windows XP

Letras brilhantes com Gimp

Proteção de tela ou vídeo como papel de parede

Leitura recomendada

Tor e Hidden Service Protocol - Explicando tecnicamente a "Deep Web"

Monitoramento de redes com o Zenoss

Hardening, se adequando as normas ISO 27000

Administrando Linux via web (parte 1)

Criando um repositório criptografado de dados com Cryptsetup (dm-crypt) sem (re)particionamento do HD

  
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

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts