Segurança SSH com DenyHosts
Neste artigo mostrarei como bloquear tentativas de SSH Brute Force com o DenyHosts no Slackware Linux, mas vale para qualquer distribuição.
Parte 2: Configurando o DenyHosts
Dentro do arquivo de configuração /opt/DenyHosts-2.6/denyhosts.cfg vamos descomentar/comentar/acrescentar as seguintes linhas:
Obs.: Ainda existem muitas outras opções do DenyHosts.
# /etc/rc.d/rc.denyshosts restart
Verificando se ele está executando:
# ps ax | grep denyhosts
2600 ? S 0:03 python /usr/bin/denyhosts.py --daemon --config=/usr/share/denyhosts/denyhosts.cfg
1940 pts/0 R+ 0:00 grep denyhosts
Testando o DenyHosts:
Vamos tentar locar na máquina local com o usuário fulano:
# ssh -l fulano localhost
Depois de colocar as senhas erradas verifique o resultado:
# cat /opt/DenyHosts/data/users-invalid
fulano:5:Thu Dec 18 13:31:27 2008
Isso aí, agora seu serviço de SSH está mais seguro.
#Arquivo de log a ser verificado
SECURE_LOG = /var/log/secure
#Arquivo com os hosts bloqueados
HOSTS_DENY = /etc/hosts.deny
#Limpar o arquivo a cada 2 dias
PURGE_DENY = 2d
#Qual serviço deve ser bloqueado
BLOCK_SERVICE = sshd
#Número de tentativas que um usuário não valido pode tentar se conectar
DENY_THRESHOLD_INVALID = 2
#Número de tentativas que um usuário valido pode tentar para se conectar
DENY_THRESHOLD_VALID = 2
#Número de tentativas com a senha do ROOT
DENY_THRESHOLD_ROOT = 1
#Email do destinatário que receberá os logs de bloqueio de IP
ADMIN_EMAIL = meuemail@meudominio.com.br
#Servidor de SMTP
SMTP_HOST = smtp.meudominio.com.br
#Porta do servidor SMTP
SMTP_PORT = 25
#Remetente
SMTP_FROM = DenyHosts <nobody@localhost>
#Assunto
SMTP_SUBJECT = DenyHosts - IP bloqueado no servidor XXXX
#Arquivo de LOG do DenyHosts
DAEMON_LOG = /var/log/denyhosts
#De quanto em quanto tempo o DenyHosts deve varrer o arquivo de logs do sistema
DAEMON_SLEEP = 30s
SECURE_LOG = /var/log/secure
#Arquivo com os hosts bloqueados
HOSTS_DENY = /etc/hosts.deny
#Limpar o arquivo a cada 2 dias
PURGE_DENY = 2d
#Qual serviço deve ser bloqueado
BLOCK_SERVICE = sshd
#Número de tentativas que um usuário não valido pode tentar se conectar
DENY_THRESHOLD_INVALID = 2
#Número de tentativas que um usuário valido pode tentar para se conectar
DENY_THRESHOLD_VALID = 2
#Número de tentativas com a senha do ROOT
DENY_THRESHOLD_ROOT = 1
#Email do destinatário que receberá os logs de bloqueio de IP
ADMIN_EMAIL = meuemail@meudominio.com.br
#Servidor de SMTP
SMTP_HOST = smtp.meudominio.com.br
#Porta do servidor SMTP
SMTP_PORT = 25
#Remetente
SMTP_FROM = DenyHosts <nobody@localhost>
#Assunto
SMTP_SUBJECT = DenyHosts - IP bloqueado no servidor XXXX
#Arquivo de LOG do DenyHosts
DAEMON_LOG = /var/log/denyhosts
#De quanto em quanto tempo o DenyHosts deve varrer o arquivo de logs do sistema
DAEMON_SLEEP = 30s
Obs.: Ainda existem muitas outras opções do DenyHosts.
Finalizando
Colocando o DenyHosts em produção:# /etc/rc.d/rc.denyshosts restart
Verificando se ele está executando:
# ps ax | grep denyhosts
2600 ? S 0:03 python /usr/bin/denyhosts.py --daemon --config=/usr/share/denyhosts/denyhosts.cfg
1940 pts/0 R+ 0:00 grep denyhosts
Testando o DenyHosts:
Vamos tentar locar na máquina local com o usuário fulano:
# ssh -l fulano localhost
Depois de colocar as senhas erradas verifique o resultado:
# cat /opt/DenyHosts/data/users-invalid
fulano:5:Thu Dec 18 13:31:27 2008
Isso aí, agora seu serviço de SSH está mais seguro.
eu uso uma outra bloqueava sempre hosts.deny, e outras conf,
vou aplicar aqui em um dos servidores aqui ver como fica, junto das minhas, se funcionar depois posto ai.