Nesse post irei demonstrar o uso do DenyHosts, que tem a mesma finalidade, para proteger o seu servidor ssh contra ataque de brute force.
Que o SSH é uma ferramenta indispensável para qualquer administrador GNU/Linux e a até Unix/Correlatos não é nenhuma novidade, mas por incrível que pareça quando menciono que qualquer um que tenha o SSH instalado e o mesmo está acessível na internet ele está sujeito a tentativas de acessos não autorizados cometidos por pessoas mau intencionadas que fazem uso de diversos scripts/programas criados especificamente para esse propósito.
O DenyHosts permite o monitoramento do serviço SSH e pode bloquear tentativas consecutivas de acesso a usuários existentes ou não em seu servidor.
Primeiramente vamos instalar o DenyHosts:
# apt-get install denyhosts
Vamos a configuração e algumas explicações de alguns parâmetros
# vi /etc/denyhosts.conf
# Arquivo de log de autenticação SECURE_LOG = /var/log/auth.log # O denyhosts vem configurado para utilizar tcp_wrappers HOSTS_DENY = /etc/hosts.deny # Por quanto tempo as entradas no arquivo hosts.deny serão mantidas, ajuste as suas necessidades. PURGE_DENY = 1d # Qual o serviço será monitorado, para todos use ALL BLOCK_SERVICE = sshd # Bloqueia o host após a quantidade especificada de falhas de login de usuários inválidos. DENY_THRESHOLD_INVALID = 3 # Bloqueia host após falhas de login para usuários válidos DENY_THRESHOLD_VALID = 5 # Bloqueia qualquer tentativa de login do usuário root DENY_THRESHOLD_ROOT = 1 # Igual a opção acima mas para nomes de usuários listados em WORK_DIR/restricted-usernames DENY_THRESHOLD_RESTRICTED = 1 # Diretório onde o denyhost escreve seus dados WORK_DIR = /var/lib/denyhosts # Tenta obter um nome associado ao endereço IP HOSTNAME_LOOKUP=YES # Email do administrador ADMIN_EMAIL = seunome@seudominio # Host e porta do servidor SMTP SMTP_HOST = localhost SMTP_PORT = 25 # Quem esta enviando o email SMTP_FROM = DenyHosts <nobody@localhost> # Desbloqueio de usuários válidos que tenham apenas errado na digitação AGE_RESET_VALID=1d # O mesmo só que aplicado ao usuário root AGE_RESET_ROOT=25d # O mesmo para usuário restrito AGE_RESET_RESTRICTED=25d # Para usuários inválidos AGE_RESET_INVALID=10d # Onde irá armazenar o log DAEMON_LOG = /var/log/denyhosts
Após as modificações vamos reiniciar o denyhosts
# /etc/init.d/denyhosts restart
Na imagem abaixo tenho uma pequena amostra de todos os hosts bloqueados pelo denyhosts
Uma boa pedida também é configurar o seu servidor SSH para não permitir login do usuário root (PermitRootLogin no) e também a troca da porta de acesso (Port 6702).
Espero que tenham gostado do post e não deixem de assinar o nosso portal.