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”