DenyHosts

O OpenSSH é um serviço muito usado para manter conexões remotas de maneira
segura, mas so instala-lo não o deixa seguro, existem maneiras de melhorar
isso.

1) Desabilitar login de usuarios root

PermitRootLogin no

2) Alterar a porta default

Port 2345

3) AllowGroups DenyGroups

Permissão sobre grupos

4) DenyHosts

Mas o que eh DenyHosts?

DenyHosts é um analizador de logs que identifica tentativas de brute force
no seu serviço sshd, vamos entender como funciona.

Primeiro faça download do arquivo e descompacte-o:

wget http://ufpr.dl.sourceforge.net/sourceforge/denyhosts/DenyHosts-2.6.tar.gz
tar xvfz DenyHosts-2.6.tar.gz -C /usr/src
mv DenyHosts-2.6/ denyhosts/
cd denyhosts/
cp denyhosts.cfg-dist denyhosts.cfg

Configurando…

denyhosts.cfg:

# Arquivo de log que contem as tentativas de conexoes
SECURE_LOG=/var/log/auth.log
# Arquivo que restringe os hosts
HOSTS_DENY=/etc/hosts.deny

# Remove a entrada do ip no HOSTS_DENY, depois do tempo definido
# 'm' = minutos
# 'h' = horas
# 'd' = dias
# 'w' = semanas
# 'y' = anos
PURGE_DENY = 2d

# Quantas vezes um determinado host ficara sendo adicionado no
# /etc/hosts.deny
# O default eh '0' para indefinido
PURGE_THRESHOLD = 0

# Definira qual serviço devera ficar bloqueado
# sshd, ALL, etc.
BLOCK_SERVICE = ALL

# Quantas veses um login sem existencia tera que ter falhado para ser
# bloqueado.
DENY_THRESHOLD_INVALID = 5

# Quantas vezes um login existente tera que ter falhado para ser
# bloqueado.
DENY_THRESHOLD_VALID = 10

# Quantas vezes o login root tera que ter falhado para ser
# bloqueado.

DENY_THRESHOLD_ROOT = 1

# Caminho do diretorio de armazenamento do denyhosts;
# usernames(validos/invalidos), hosts(validos/invalidos), a data que foram
# adicionados.
WORK_DIR = /usr/src/denyhosts/data

# Quantas vezes o login que esta no arquivo
# $WORD_DIR/restricted-usernamesroot tera que ter falhado para ser
# bloqueado.
DENY_THRESHOLD_RESTRICTED = 1

# Traduz o ip para nome

HOSTNAME_LOOKUP=YES

# If this file exists when DenyHosts is run, then DenyHosts will exit
# immediately. Otherwise, this file will be created upon invocation
# and deleted upon exit. This ensures that only one instance is
# running at a time.
#
LOCK_FILE = /var/lock/subsys/denyhosts/

############################################
Opcionais
############################################

# Email do administrador para receber os reports do DenyHosts
ADMIN_EMAIL = rehate@slackware-ce.com.br

# Configuração para o DenyHosts mandar os reports
SMTP_HOST =
SMTP_PORT = 25
SMTP_USERNAME=login
SMTP_PASSWORD=senha
SMTP_FROM = DenyHosts
SMTP_SUBJECT = DenyHosts Report
SMTP_DATE_FORMAT = %a, %d %b %Y %H:%M:%S %z

#########################################

# Traduz o ip para nome.
#
ALLOWED_HOSTS_HOSTNAME_LOOKUP=YES

# Log do daemon
DAEMON_LOG = /var/log/denyhosts

# Formato do Log
# Jan 1 13:05:59
DAEMON_LOG_TIME_FORMAT = %b %d %H:%M:%S

# Sincronizacao

# servidor de sicronização
SYNC_SERVER = http://xmlrpc.denyhosts.net:9911
# intervalo para cada sicronização
SYNC_INTERVAL = 1h

# Fazer upload dos ips bloqueados
SYNC_UPLOAD = yes

###############################-FIM-##############################

O DenyHosts trabalha com expressão regular para analisar o auth.log se você
quiser dar uma melhorada, basta olhar o arquivo: regex.py

Colocando para rodar:

agora basta adicionar ele no seu crontab

*/30 * * * * python /usr/src/denyhosts/denyhosts.py -c /usr/src/denyhosts/denyhosts.cfg

e receber as notificações por email

Referências:
http://denyhosts.sourceforge.net/faq.html
Agredecimentos:
lovezinho :)
Luiz Antonio Oliveira
aka redhate
at slackwarebrasi.org
GUS-BR & GUS-CE & SlackBR

0 Responses to “DenyHosts”


  1. No Comments


FireStats icon Produzido pelo FireStats