sexta-feira, 4 de maio de 2012

DenyHosts – Proteja o seu servidor de ataques via SSH



O SSH (Secure Shell), também conhecido como Secure Socket Shell, é um protocolo/aplicação que permite de forma segura conectar remotamente a uma máquina Linux.
No entanto, ao ativarmos o SSH numa máquina Linux no porta 22 e estando exposto para o externo (Internet), é frequente começarmos a receber milhares de tentativa de acesso provenientes de todo o mundo. Como resolver esta situação?
ssh_03

Para quem não sabe, os ataques baseados em força bruta recorrem normalmente a dicionários e vão testando milhares de utilizadores e passwords até que se consiga ganhar acesso. Para quem é administrador de sistemas linux e caso tenha o SSH a correr no sistema, pode visualizar facilmente essa informação nos logs do sistema (no caso do CentOS, essa informação está em /var/log/secure).
ssh_01
O que é o DenyHosts?
O DenyHosts é um script desenvolvido para sistemas Linux que permite “ajudar” no controle de ataques indevidos via SSH. Na prática, este script avalia constantemente as tentativas de acesso via SSH e no caso  de serem considerados como ataques de força bruta, é criada uma entrada no arquivo /etc/hosts.deny que bloqueia o acesso da máquina remota (que supostamente está tentando acesso não autorizado).
Este script permite:
  • Processar todas as tentativas de acesso (com e sem sucesso) que são registadas no arquivo /var/log/secure
  • Definir um número de tentativas falhadas no acesso
  • Adicionar manualmente máquinas à lista negra (adicionando essa informação no arquivo /etc/hosts.deny)
  • Adicionar manualmente máquinas à lista de máquinas permitidas (adicionando essa informação no arquivo /etc/hosts.allow)
  • Envio de e-mail para administrador da máquina com informações sobre as máquinas bloequadas
  • Resolução de IPs para hostnames
  • ..entre muitas outras funcionalidades (ver aqui)
Como instalar o DenyHosts no CentOS?
Para este tutorial, recorremos ao CentOS 6.0.
Para instalar o DenyHosts via repositório, vamos adicionar à nossa máquina o repositório EPEL
rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm
yum install yum-priorities
Em seguida instalamos o script DenyHosts
yum install denyhosts
Definimos que o denyhosts deverá arrancar ao automaticamente com o sistema
chkconfig denyhosts on
e em seguida, arrancamos o serviço
service denyhosts start
E está feito. Caso pretendam realizar alguma configuração no denyhosts devem fazê-la em /etc/denyhosts.conf
Para verificarem quais as máquinas que o denyhosts coloca na blacklist, basta entrar no arquivo /etc/hosts.deny, utilizado para isso, por exemplo, o comando:
tail -f /etc/hosts.deny


Nenhum comentário:

Postar um comentário